Package org.apache.jackrabbit.oak.spi.state

Examples of org.apache.jackrabbit.oak.spi.state.NodeStore


        run(store);
    }

    @Test
    public void rebasePreservesNew() {
        NodeStore store = new KernelNodeStore(new MicroKernelImpl());
        NodeBuilder root = store.getRoot().builder();
        NodeBuilder added = root.setChildNode("added");
        assertTrue(root.hasChildNode("added"));
        assertTrue(added.isNew());
        store.rebase(root);
        assertTrue(added.exists());
        assertTrue(root.hasChildNode("added"));
        assertTrue(added.isNew());
    }
View Full Code Here


        assertTrue(added.isNew());
    }

    @Test
    public void rebaseInvariant() {
        NodeStore store = new KernelNodeStore(new MicroKernelImpl());
        NodeBuilder root = store.getRoot().builder();
        NodeBuilder added = root.setChildNode("added");
        NodeState base = root.getBaseState();
        store.rebase(root);
        assertEquals(base, root.getBaseState());
    }
View Full Code Here

        assertEquals(base, root.getBaseState());
    }

    @Test
    public void rebase() throws CommitFailedException {
        NodeStore store = new KernelNodeStore(new MicroKernelImpl());
        NodeBuilder root = store.getRoot().builder();
        modify(store);
        store.rebase(root);
        assertEquals(store.getRoot(), root.getBaseState());
    }
View Full Code Here

     * </ul>
     *
     */
    @Test
    public void testAsync() throws Exception {
        NodeStore store = new MemoryNodeStore();
        IndexEditorProvider provider = new PropertyIndexEditorProvider();

        NodeBuilder builder = store.getRoot().builder();
        createIndexDefinition(builder.child(INDEX_DEFINITIONS_NAME),
                "rootIndex", true, false, ImmutableSet.of("foo"), null)
                .setProperty(ASYNC_PROPERTY_NAME, "async");
        builder.child("testRoot").setProperty("foo", "abc");

        // merge it back in
        store.merge(builder, EmptyHook.INSTANCE, null);

        AsyncIndexUpdate async = new AsyncIndexUpdate("async", store, provider);
        async.run();
        NodeState root = store.getRoot();

        // first check that the index content nodes exist
        checkPathExists(root, INDEX_DEFINITIONS_NAME, "rootIndex",
                INDEX_CONTENT_NODE_NAME);
        assertFalse(root.getChildNode(INDEX_DEFINITIONS_NAME).hasChildNode(
View Full Code Here

     * </ul>
     *
     */
    @Test
    public void testAsyncDouble() throws Exception {
        NodeStore store = new MemoryNodeStore();
        IndexEditorProvider provider = new PropertyIndexEditorProvider();

        NodeBuilder builder = store.getRoot().builder();
        createIndexDefinition(builder.child(INDEX_DEFINITIONS_NAME),
                "rootIndex", true, false, ImmutableSet.of("foo"), null)
                .setProperty(ASYNC_PROPERTY_NAME, "async");
        createIndexDefinition(builder.child(INDEX_DEFINITIONS_NAME),
                "rootIndexSecond", true, false, ImmutableSet.of("bar"), null)
                .setProperty(ASYNC_PROPERTY_NAME, "async");

        builder.child("testRoot").setProperty("foo", "abc")
                .setProperty("bar", "def");
        builder.child("testSecond").setProperty("bar", "ghi");

        // merge it back in
        store.merge(builder, EmptyHook.INSTANCE, null);

        AsyncIndexUpdate async = new AsyncIndexUpdate("async", store, provider);
        async.run();
        NodeState root = store.getRoot();

        // first check that the index content nodes exist
        checkPathExists(root, INDEX_DEFINITIONS_NAME, "rootIndex",
                INDEX_CONTENT_NODE_NAME);
        checkPathExists(root, INDEX_DEFINITIONS_NAME, "rootIndexSecond",
View Full Code Here

     * </ul>
     *
     */
    @Test
    public void testAsyncDoubleSubtree() throws Exception {
        NodeStore store = new MemoryNodeStore();
        IndexEditorProvider provider = new PropertyIndexEditorProvider();

        NodeBuilder builder = store.getRoot().builder();
        createIndexDefinition(builder.child(INDEX_DEFINITIONS_NAME),
                "rootIndex", true, false, ImmutableSet.of("foo"), null)
                .setProperty(ASYNC_PROPERTY_NAME, "async");
        createIndexDefinition(
                builder.child("newchild").child("other")
                        .child(INDEX_DEFINITIONS_NAME), "subIndex", true,
                false, ImmutableSet.of("foo"), null)
                .setProperty(ASYNC_PROPERTY_NAME, "async");

        builder.child("testRoot").setProperty("foo", "abc");
        builder.child("newchild").child("other").child("testChild")
                .setProperty("foo", "xyz");

        // merge it back in
        store.merge(builder, EmptyHook.INSTANCE, null);

        AsyncIndexUpdate async = new AsyncIndexUpdate("async", store, provider);
        async.run();
        NodeState root = store.getRoot();

        // first check that the index content nodes exist
        checkPathExists(root, INDEX_DEFINITIONS_NAME, "rootIndex",
                INDEX_CONTENT_NODE_NAME);
        checkPathExists(root, "newchild", "other", INDEX_DEFINITIONS_NAME,
View Full Code Here

public class MergeTest {

    @Test
    public void testSequentialMerge() throws CommitFailedException {
        NodeStore store = new SegmentNodeStore(new MemoryStore());

        assertFalse(store.getRoot().hasProperty("foo"));
        assertFalse(store.getRoot().hasProperty("bar"));

        NodeBuilder a = store.getRoot().builder();
        a.setProperty("foo", "abc");
        store.merge(a, EmptyHook.INSTANCE, null);

        assertTrue(store.getRoot().hasProperty("foo"));
        assertFalse(store.getRoot().hasProperty("bar"));

        NodeBuilder b = store.getRoot().builder();
        b.setProperty("bar", "xyz");
        store.merge(b, EmptyHook.INSTANCE, null);

        assertTrue(store.getRoot().hasProperty("foo"));
        assertTrue(store.getRoot().hasProperty("bar"));
    }
View Full Code Here

        assertTrue(store.getRoot().hasProperty("bar"));
    }

    @Test
    public void testOptimisticMerge() throws CommitFailedException {
        NodeStore store = new SegmentNodeStore(new MemoryStore());

        NodeBuilder a = store.getRoot().builder();
        a.setProperty("foo", "abc");

        NodeBuilder b = store.getRoot().builder();
        b.setProperty("bar", "xyz");

        assertFalse(store.getRoot().hasProperty("foo"));
        assertFalse(store.getRoot().hasProperty("bar"));

        store.merge(a, EmptyHook.INSTANCE, null);

        assertTrue(store.getRoot().hasProperty("foo"));
        assertFalse(store.getRoot().hasProperty("bar"));

        store.merge(b, EmptyHook.INSTANCE, null);

        assertTrue(store.getRoot().hasProperty("foo"));
        assertTrue(store.getRoot().hasProperty("bar"));
    }
View Full Code Here

        }
    }

    @Test
    public void oak965() throws CommitFailedException {
        NodeStore store1 = init(fixture.createNodeStore());
        NodeStore store2 = init(fixture.createNodeStore());
        try {
            NodeState tree1 = store1.getRoot();
            NodeState tree2 = store2.getRoot();
            tree1.equals(tree2);
        } finally {
            fixture.dispose(store1);
            fixture.dispose(store2);
        }
View Full Code Here

        MongoMK mk1 = createMK(1, 1000, ds, bs);
        MongoMK mk2 = createMK(2, 1000, ds, bs);

        try {
            NodeStore ns1 = new KernelNodeStore(mk1);
            NodeStore ns2 = new KernelNodeStore(mk2);

            NodeBuilder builder1 = ns1.getRoot().builder();
            builder1.child("bar");

            NodeBuilder builder2 = ns2.getRoot().builder();
            builder2.child("qux");

            ns1.merge(builder1, HOOK, null);
            ns2.merge(builder2, HOOK, null);
        } finally {
            mk1.dispose();
            mk2.dispose();
        }
    }
View Full Code Here

TOP

Related Classes of org.apache.jackrabbit.oak.spi.state.NodeStore

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.