Package de.fhg.igd.mongomvcc

Examples of de.fhg.igd.mongomvcc.VCollection


   
    // Checkout the "master" branch
    VBranch master = db.checkout(VConstants.MASTER);
   
    // 2. Put something into the index
    VCollection persons = master.getCollection("persons");
    Map<String, Object> elvis = factory.createDocument();
    elvis.put("name", "Elvis");
    elvis.put("age", 3);
    persons.insert(elvis);
   
    // insert another person
    persons.insert(factory.createDocument("name", "Peter"));
   
    // 3. Commit index to the database
    long firstCid = master.commit();
   
    // 4. Read documents from the database
    VCursor c = persons.find();
    for (Map<String, Object> person : c) {
      System.out.print("Person { name: " + person.get("name"));
      if (person.containsKey("age")) {
         System.out.print(", age: " + person.get("age"));
      }
      System.out.println(" }");
    }
   
    Map<String, Object> elvis2 = persons.findOne(factory.createDocument("name", "Elvis"));
    if (elvis2 != null) {
      System.out.println("Elvis lives!");
    }
   
    // 5. Make another commit
    persons.insert(factory.createDocument("name", "Max"));
    elvis.put("age", 4);
    persons.insert(elvis);
    master.commit();
   
    // 6. Checkout a previous version
    System.out.println("There are " + persons.find().size() + " persons");
    Map<String, Object> elvis3 = persons.findOne(factory.createDocument("name", "Elvis"));
    System.out.println("Elvis is now " + elvis3.get("age") + " years old");
   
    VBranch oldMaster = db.checkout(firstCid);
    VCollection oldPersons = oldMaster.getCollection("persons");
    System.out.println("Previously, there were only " + oldPersons.find().size() + " persons");
    Map<String, Object> oldElvis = oldPersons.findOne(factory.createDocument("name", "Elvis"));
    System.out.println("Last year, Elvis was " + oldElvis.get("age") + " years old");
   
    // 7. Drop the database
    db.drop();
  }
View Full Code Here


  /**
   * Tests if changes to the index can be rolled back
   */
  @Test
  public void rollback() {
    VCollection persons = _master.getCollection("persons");
    assertEquals(0, persons.find().size());
    putPerson("Max", 6);
    assertEquals(1, persons.find().size());
    _master.rollback();
    assertEquals(0, persons.find().size());
  }
View Full Code Here

    //insert two documents to skip in-index shortcut
    putPerson("Max", 6);
    putPerson("Pax", 8);
    _master.commit();
   
    VCollection persons = _master.getCollection("persons");
    VCursor cursor = persons.find();
    DBCursor dbcursor = extractDBCursor(cursor);
    assertEquals(2, cursor.size());
    assertTrue(hasAttachedFilter(cursor));
    assertEquals(2, dbcursor.size());
   
    putPerson("Elvis", 3);
    _master.commit();
   
    persons = _master.getCollection("persons");
    cursor = persons.find();
    dbcursor = extractDBCursor(cursor);
    assertEquals(3, cursor.size());
    assertTrue(hasAttachedFilter(cursor));
    assertEquals(3, dbcursor.size());
   
    persons.delete(_factory.createDocument("name", "Max"));
    _master.commit();
   
    persons = _master.getCollection("persons");
    cursor = persons.find();
    dbcursor = extractDBCursor(cursor);
    assertEquals(2, cursor.size());
    assertTrue(hasAttachedFilter(cursor));
    assertEquals(2, dbcursor.size());
  }
View Full Code Here

    long firstCID = _master.commit();
    putPerson("Elvis", 3);
    _master.commit();
   
    VBranch oldMaster = _db.checkout(firstCID);
    VCollection persons = oldMaster.getCollection("persons");
    VCursor cursor = persons.find();
    DBCursor dbcursor = extractDBCursor(cursor);
    assertEquals(2, cursor.size());
    assertTrue(hasAttachedFilter(cursor));
    assertEquals(2, dbcursor.size());
  }
View Full Code Here

  @Test
  public void goBackInTime() throws Exception {
    Map<String, Object> max = putPerson("Max", 6);
    long oldCid = _master.commit();
   
    VCollection persons = _master.getCollection("persons");
    Map<String, Object> max2 = persons.findOne(_factory.createDocument("name", "Max"));
    assertEquals(6, max2.get("age"));
   
    max.put("age", 7);
    persons.insert(max);
    _master.commit();
   
    persons = _master.getCollection("persons");
    max2 = persons.findOne(_factory.createDocument("name", "Max"));
    assertEquals(7, max2.get("age"));
   
    VBranch oldMaster = _db.checkout(oldCid);
    persons = oldMaster.getCollection("persons");
    max2 = persons.findOne(_factory.createDocument("name", "Max"));
    assertEquals(6, max2.get("age"));
  }
View Full Code Here

  public void branch() {
    putPerson("Peter", 26);
    long peterCid = _master.commit();
   
    VBranch maxBranch = _db.createBranch("Max", peterCid);
    VCollection maxPersons = maxBranch.getCollection("persons");
    assertEquals(1, maxPersons.find().size());
   
    maxPersons.insert(_factory.createDocument("name", "Max"));
    long maxCid = maxBranch.commit();
   
    maxBranch = _db.checkout("Max");
    assertEquals(maxCid, maxBranch.getHead());
   
    VBranch peterBranch = _db.checkout(VConstants.MASTER);
    assertEquals(peterCid, peterBranch.getHead());
   
    maxPersons = maxBranch.getCollection("persons");
    VCollection peterPersons = peterBranch.getCollection("persons");
    assertEquals(2, maxPersons.find().size());
    assertEquals(1, peterPersons.find().size());
    assertNotNull(maxPersons.findOne(_factory.createDocument("name", "Max")));
    assertNull(peterPersons.findOne(_factory.createDocument("name", "Max")));
   
    putPerson("Elvis", 3);
    long elvisCid = _master.commit();
   
    maxBranch = _db.checkout("Max");
    peterBranch = _db.checkout(VConstants.MASTER);
    assertEquals(maxCid, maxBranch.getHead());
    assertEquals(elvisCid, peterBranch.getHead());
    maxPersons = maxBranch.getCollection("persons");
    peterPersons = peterBranch.getCollection("persons");
    assertEquals(2, maxPersons.find().size());
    assertEquals(2, peterPersons.find().size());
    assertNotNull(maxPersons.findOne(_factory.createDocument("name", "Max")));
    assertNull(peterPersons.findOne(_factory.createDocument("name", "Max")));
    assertNotNull(peterPersons.findOne(_factory.createDocument("name", "Elvis")));
    assertNull(maxPersons.findOne(_factory.createDocument("name", "Elvis")));
  }
View Full Code Here

  @Test
  public void createBranchAfterConflict() {
    VBranch master2 = _db.checkout(VConstants.MASTER);
    putPerson("Max", 3);

    VCollection persons2 = master2.getCollection("persons");
    persons2.insert(_factory.createDocument("name", "Elvis"));

    long masterCid = _master.commit();
    try {
      master2.commit();
      fail("We expect a VException here since the branch's head " +
View Full Code Here

   * @param name the person's name
   * @param age the person's age
   * @return the person (after the put)
   */
  protected Map<String, Object> putPerson(String name, int age) {
    VCollection persons = _master.getCollection("persons");
    assertNotNull(persons);
    Map<String, Object> peter = new HashMap<String, Object>();
    peter.put("name", name);
    peter.put("age", age);
    persons.insert(peter);
    assertNotNull(peter.get("uid"));
    return peter;
  }
View Full Code Here

    VBranch master2 = _db.createBranch("master2", cid1);
    putPerson("Elvis", 3);
    long cid2 = _master.commit();
    VBranch master3 = _db.createBranch("master3", cid2);
   
    VCollection persons2 = master2.getCollection("persons");
    persons2.insert(_factory.createDocument("name", "Pax"));
    long cid3 = master2.commit();
   
    VCollection persons3 = master3.getCollection("persons");
    persons3.insert(_factory.createDocument("name", "Peter"));
    long cid4 = master3.commit();
   
    VBranch master1a = _db.checkout(cid2);
    VCollection persons1a = master1a.getCollection("persons");
    persons1a.insert(_factory.createDocument("name", "Tom"));
    long cid5 = master1a.commit();
   
    VBranch master2a = _db.checkout(cid3);
    VCollection persons2a = master2a.getCollection("persons");
    persons2a.insert(_factory.createDocument("name", "Bob"));
    long cid6 = master2a.commit();
   
    VBranch master3a = _db.checkout(cid4);
    VCollection persons3a = master3a.getCollection("persons");
    persons3a.insert(_factory.createDocument("name", "Howard"));
    long cid7 = master3a.commit();
   
    long stime = System.currentTimeMillis();
    Thread.sleep(500);
   
    persons3a.insert(_factory.createDocument("name", "Brenda"));
    long cid8 = master3a.commit();
   
    return new Object[] { new long[] { cid5, cid6, cid7, cid8 }, stime };
  }
View Full Code Here

    _master.commit();
    Map<String, Object> elvis = putPerson("Elvis", 3);
    r[0] = (Long)elvis.get(MongoDBConstants.ID);
   
    VBranch master2 = _db.createBranch("master2", cid1);
    VCollection persons2 = master2.getCollection("persons");
    persons2.insert(_factory.createDocument("name", "Howard"));
    master2.commit();
    Map<String, Object> fritz = _factory.createDocument("name", "Fritz");
    persons2.insert(fritz);
    r[1] = (Long)fritz.get(MongoDBConstants.ID);
   
    long stime = System.currentTimeMillis();
    Thread.sleep(500);
   
    Map<String, Object> david = _factory.createDocument("name", "David");
    persons2.insert(david);
    r[2] = (Long)david.get(MongoDBConstants.ID);
   
    return new Object[] { r, stime };
  }
View Full Code Here

TOP

Related Classes of de.fhg.igd.mongomvcc.VCollection

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.