Search in sources :

Example 21 with Key

use of org.apache.jackrabbit.oak.plugins.document.UpdateOp.Key in project jackrabbit-oak by apache.

the class NodeDocumentSweeperTest method sweepUncommittedBeforeHead.

@Test
public void sweepUncommittedBeforeHead() throws Exception {
    Revision uncommitted = ns.newRevision();
    NodeBuilder b = ns.getRoot().builder();
    b.child("test");
    merge(ns, b);
    ns.runBackgroundUpdateOperations();
    UpdateOp op = new UpdateOp(getIdFromPath("/test"), false);
    op.setMapEntry("foo", uncommitted, "value");
    setCommitRoot(op, uncommitted, 0);
    setModified(op, uncommitted);
    assertNotNull(store.findAndUpdate(NODES, op));
    List<UpdateOp> ops = Lists.newArrayList();
    Revision nextSweepStart = sweep(ops);
    assertEquals(ns.getHeadRevision().getRevision(ns.getClusterId()), nextSweepStart);
    assertEquals(1, ops.size());
    op = ops.get(0);
    Map<Key, Operation> changes = op.getChanges();
    assertEquals(2, changes.size());
    Operation o = changes.get(new Key(COMMIT_ROOT, uncommitted));
    assertNotNull(o);
    assertEquals(REMOVE_MAP_ENTRY, o.type);
    o = changes.get(new Key("foo", uncommitted));
    assertNotNull(o);
    assertEquals(REMOVE_MAP_ENTRY, o.type);
}
Also used : Operation(org.apache.jackrabbit.oak.plugins.document.UpdateOp.Operation) NodeBuilder(org.apache.jackrabbit.oak.spi.state.NodeBuilder) Key(org.apache.jackrabbit.oak.plugins.document.UpdateOp.Key) Test(org.junit.Test)

Example 22 with Key

use of org.apache.jackrabbit.oak.plugins.document.UpdateOp.Key in project jackrabbit-oak by apache.

the class NodeDocumentSweeperTest method updatePre18Branch.

@Test
public void updatePre18Branch() throws Exception {
    String branchRev = mk.branch(null);
    branchRev = mk.commit("/", "+\"foo\":{}", branchRev, null);
    mk.merge(branchRev, null);
    ns.runBackgroundUpdateOperations();
    // simulate a pre 1.8 branch commit by removing the branch commit entry
    NodeDocument doc = store.find(NODES, getIdFromPath("/foo"));
    assertNotNull(doc);
    assertEquals(1, doc.getLocalBranchCommits().size());
    UpdateOp op = new UpdateOp(doc.getId(), false);
    for (Revision r : doc.getLocalBranchCommits()) {
        NodeDocument.removeBranchCommit(op, r);
    }
    assertNotNull(store.findAndUpdate(NODES, op));
    List<UpdateOp> ops = Lists.newArrayList();
    Revision nextSweepStart = sweep(ops);
    assertEquals(ns.getHeadRevision().getRevision(ns.getClusterId()), nextSweepStart);
    assertEquals(1, ops.size());
    op = ops.get(0);
    Map<Key, Operation> changes = op.getChanges();
    assertEquals(1, changes.size());
    Key k = changes.keySet().iterator().next();
    assertEquals("_bc", k.getName());
    assertEquals(SET_MAP_ENTRY, changes.get(k).type);
}
Also used : Operation(org.apache.jackrabbit.oak.plugins.document.UpdateOp.Operation) Key(org.apache.jackrabbit.oak.plugins.document.UpdateOp.Key) Test(org.junit.Test)

Aggregations

Key (org.apache.jackrabbit.oak.plugins.document.UpdateOp.Key)22 Map (java.util.Map)15 Operation (org.apache.jackrabbit.oak.plugins.document.UpdateOp.Operation)15 Test (org.junit.Test)9 TreeMap (java.util.TreeMap)8 Condition (org.apache.jackrabbit.oak.plugins.document.UpdateOp.Condition)7 DocumentStoreException (org.apache.jackrabbit.oak.plugins.document.DocumentStoreException)6 MemoryDocumentStore (org.apache.jackrabbit.oak.plugins.document.memory.MemoryDocumentStore)6 NodeBuilder (org.apache.jackrabbit.oak.spi.state.NodeBuilder)6 HashMap (java.util.HashMap)5 Stopwatch (com.google.common.base.Stopwatch)4 BasicDBObject (com.mongodb.BasicDBObject)4 Nonnull (javax.annotation.Nonnull)4 Revision (org.apache.jackrabbit.oak.plugins.document.Revision)4 ImmutableMap (com.google.common.collect.ImmutableMap)3 MongoException (com.mongodb.MongoException)3 ArrayList (java.util.ArrayList)3 CommitFailedException (org.apache.jackrabbit.oak.api.CommitFailedException)3 Condition.newEqualsCondition (org.apache.jackrabbit.oak.plugins.document.UpdateOp.Condition.newEqualsCondition)3 UncheckedExecutionException (com.google.common.util.concurrent.UncheckedExecutionException)2