Package org.apache.jackrabbit.oak.plugins.index

Examples of org.apache.jackrabbit.oak.plugins.index.PropertyIndex


    @Test
    public void test() {
        MicroKernel mk = new MicroKernelImpl();
        Indexer indexer = new Indexer(mk);
        indexer.init();
        PropertyIndex index = indexer.createPropertyIndex("id", true);

        String head = mk.getHeadRevision();

        // meta data
        String meta = mk.getNodes(Indexer.INDEX_CONFIG_PATH, head, 1, 0, -1, null);
        Assert.assertEquals("{\":childNodeCount\":2,\":data\":{\":childNodeCount\":0}," +
                "\"property@id,unique\":{\":childNodeCount\":1,\":data\":{}}}", meta);

        String oldHead = head;

        Assert.assertEquals(null, index.getPath("1", head));

        head = mk.commit("/", "+\"test\" : {\"id\":\"1\"}", head, null);
        head = mk.commit("/", "+\"test2\" : {\"id\":\"2\"}", head, null);

        Assert.assertEquals("/test", index.getPath("1", head));
        Assert.assertEquals("/test2", index.getPath("2", head));

        Assert.assertEquals("/test", index.getPath("1", oldHead));
        Assert.assertEquals("/test2", index.getPath("2", oldHead));

        Assert.assertEquals("/test", index.getPath("1", head));
        Assert.assertEquals("/test2", index.getPath("2", head));

        head = mk.commit("/", "-\"test2\"", head, null);
        head = mk.commit("/test", "+\"test\" : {\"id\":\"3\"}", head, null);

        Assert.assertEquals("/test/test", index.getPath("3", head));

        // Recreate the indexer
        indexer = new Indexer(mk);
        indexer.init();
        index = indexer.createPropertyIndex("id", true);
        head = mk.getHeadRevision();
        Assert.assertEquals("/test/test", index.getPath("3", head));
        Assert.assertEquals(null, index.getPath("0", head));

        Assert.assertEquals("/test", index.getPath("1", head));
        head = mk.commit("/", "^ \"test/id\": 100", head, null);
        Assert.assertEquals(null, index.getPath("1", head));
        Assert.assertEquals("/test", index.getPath("100", head));

        Assert.assertEquals("/test/test", index.getPath("3", head));
        head = mk.commit("/", "- \"test\"", head, null);
        Assert.assertEquals(null, index.getPath("100", head));
        Assert.assertEquals(null, index.getPath("3", head));
    }
View Full Code Here


        indexer.init();
    }

    @Test
    public void createIndexAfterAddingData() {
        PropertyIndex indexOld = indexer.createPropertyIndex("x", false);
        mk.commit("/", "+ \"test\": { \"test2\": { \"id\": 1 }, \"id\": 1 }", mk.getHeadRevision(), "");
        mk.commit("/", "+ \"test3\": { \"test2\": { \"id\": 2 }, \"id\": 2 }", mk.getHeadRevision(), "");
        indexOld.getPath("x", mk.getHeadRevision());
        PropertyIndex index = indexer.createPropertyIndex("id", false);
        Iterator<String> it = index.getPaths("1", mk.getHeadRevision());
        Assert.assertTrue(it.hasNext());
        Assert.assertEquals("/test", it.next());
        Assert.assertTrue(it.hasNext());
        Assert.assertEquals("/test/test2", it.next());
        Assert.assertFalse(it.hasNext());
View Full Code Here

        Assert.assertFalse(it.hasNext());
    }

    @Test
    public void nonUnique() {
        PropertyIndex index = indexer.createPropertyIndex("id", false);
        mk.commit("/", "+ \"test\": { \"test2\": { \"id\": 1 }, \"id\": 1 }", mk.getHeadRevision(), "");
        mk.commit("/", "+ \"test3\": { \"test2\": { \"id\": 2 }, \"id\": 2 }", mk.getHeadRevision(), "");
        Iterator<String> it = index.getPaths("1", mk.getHeadRevision());
        Assert.assertTrue(it.hasNext());
        Assert.assertEquals("/test", it.next());
        Assert.assertTrue(it.hasNext());
        Assert.assertEquals("/test/test2", it.next());
        Assert.assertFalse(it.hasNext());
View Full Code Here

        Assert.assertFalse(it.hasNext());
    }

    @Test
    public void nestedAddNode() {
        PropertyIndex index = indexer.createPropertyIndex("id", true);

        mk.commit("/", "+ \"test\": { \"test2\": { \"id\": 2 }, \"id\": 1 }", mk.getHeadRevision(), "");
        Assert.assertEquals("/test", index.getPath("1", mk.getHeadRevision()));
        Assert.assertEquals("/test/test2", index.getPath("2", mk.getHeadRevision()));
    }
View Full Code Here

        Assert.assertEquals("/test/test2", index.getPath("2", mk.getHeadRevision()));
    }

    @Test
    public void move() {
        PropertyIndex index = indexer.createPropertyIndex("id", true);

        mk.commit("/", "+ \"test\": { \"test2\": { \"id\": 2 }, \"id\": 1 }", mk.getHeadRevision(), "");
        Assert.assertEquals("/test", index.getPath("1", mk.getHeadRevision()));
        Assert.assertEquals("/test/test2", index.getPath("2", mk.getHeadRevision()));

        mk.commit("/", "> \"test\": \"moved\"", mk.getHeadRevision(), "");
        Assert.assertEquals("/moved", index.getPath("1", mk.getHeadRevision()));
        Assert.assertEquals("/moved/test2", index.getPath("2", mk.getHeadRevision()));
    }
View Full Code Here

        Assert.assertEquals("/moved/test2", index.getPath("2", mk.getHeadRevision()));
    }

    @Test
    public void copy() {
        PropertyIndex index = indexer.createPropertyIndex("id", false);

        mk.commit("/", "+ \"test\": { \"test2\": { \"id\": 2 }, \"id\": 1 }", mk.getHeadRevision(), "");
        Assert.assertEquals("/test", index.getPath("1", mk.getHeadRevision()));
        Assert.assertEquals("/test/test2", index.getPath("2", mk.getHeadRevision()));

        mk.commit("/", "* \"test\": \"copied\"", mk.getHeadRevision(), "");
        Iterator<String> it = index.getPaths("1", mk.getHeadRevision());
        Assert.assertTrue(it.hasNext());
        Assert.assertEquals("/copied", it.next());
        Assert.assertTrue(it.hasNext());
        Assert.assertEquals("/test", it.next());
        Assert.assertFalse(it.hasNext());
        it = index.getPaths("2", mk.getHeadRevision());
        Assert.assertTrue(it.hasNext());
        Assert.assertEquals("/copied/test2", it.next());
        Assert.assertTrue(it.hasNext());
        Assert.assertEquals("/test/test2", it.next());
        Assert.assertFalse(it.hasNext());
View Full Code Here

            boolean unique = false;
            if (property.endsWith("," + PropertyIndexConstants.UNIQUE)) {
                unique = true;
                property = property.substring(0, property.length() - PropertyIndexConstants.UNIQUE.length() - 1);
            }
            PropertyIndex propertyIndex = indexer.getPropertyIndex(property);
            if (propertyIndex == null) {
                throw ExceptionFactory.get("Unknown index: " + index);
            }
            if (unique) {
                String value = propertyIndex.getPath(data, revisionId);
                if (value != null) {
                    s.value(value);
                }
            } else {
                Iterator<String> it = propertyIndex.getPaths(data, revisionId);
                while (it.hasNext()) {
                    s.value(it.next());
                }
            }
        }
View Full Code Here

TOP

Related Classes of org.apache.jackrabbit.oak.plugins.index.PropertyIndex

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.