Search in sources :

Example 96 with QueryManager

use of javax.jcr.query.QueryManager in project jackrabbit-oak by apache.

the class VersionTest method testVersionFromQuery.

public void testVersionFromQuery() throws RepositoryException, NotExecutableException {
    Node n = testRootNode.addNode(nodeName1, testNodeType);
    n.addMixin(mixVersionable);
    superuser.save();
    VersionManager vMgr = superuser.getWorkspace().getVersionManager();
    vMgr.checkpoint(n.getPath());
    QueryManager qm = superuser.getWorkspace().getQueryManager();
    Version v = vMgr.getBaseVersion(n.getPath());
    Query q = qm.createQuery("//element(*, nt:version)[@jcr:uuid = '" + v.getIdentifier() + "']", Query.XPATH);
    NodeIterator nodes = q.execute().getNodes();
    assertTrue(nodes.hasNext());
    assertTrue(nodes.nextNode() instanceof Version);
    RowIterator rows = q.execute().getRows();
    assertTrue(rows.hasNext());
    assertTrue(rows.nextRow().getNode() instanceof Version);
}
Also used : NodeIterator(javax.jcr.NodeIterator) Query(javax.jcr.query.Query) Version(javax.jcr.version.Version) Node(javax.jcr.Node) RowIterator(javax.jcr.query.RowIterator) QueryManager(javax.jcr.query.QueryManager) VersionManager(javax.jcr.version.VersionManager)

Example 97 with QueryManager

use of javax.jcr.query.QueryManager in project jackrabbit by apache.

the class ShareableNodeTest method testRemoveAncestorOfSharedNode.

/**
     * Verify that a shared node is removed when the ancestor is removed.
     * See also JCR-2257.
     */
public void testRemoveAncestorOfSharedNode() throws Exception {
    Node a1 = testRootNode.addNode("a1");
    Node a2 = a1.addNode("a2");
    Node b1 = a1.addNode("b1");
    ensureMixinType(b1, mixShareable);
    testRootNode.save();
    //now we have a shareable node N with path a1/b1
    Workspace workspace = testRootNode.getSession().getWorkspace();
    String path = a2.getPath() + "/b2";
    workspace.clone(workspace.getName(), b1.getPath(), path, false);
    testRootNode.save();
    //now we have another shareable node N' in the same shared set as N with path a1/a2/b2
    a2.remove();
    testRootNode.save();
    // assert b2 is removed from index
    QueryManager qm = superuser.getWorkspace().getQueryManager();
    String stmt = testPath + "//b2";
    NodeIterator it = qm.createQuery(stmt, Query.XPATH).execute().getNodes();
    assertFalse(it.hasNext());
}
Also used : NodeIterator(javax.jcr.NodeIterator) Node(javax.jcr.Node) QueryManager(javax.jcr.query.QueryManager) Workspace(javax.jcr.Workspace)

Example 98 with QueryManager

use of javax.jcr.query.QueryManager in project jackrabbit by apache.

the class SkipDeniedNodesTest method testSkipNodes.

public void testSkipNodes() throws RepositoryException {
    Node testNode = (Node) anonymous.getItem(testRoot);
    checkSequence(testNode.getNodes(), new String[] { n1.getPath(), n3.getPath(), n4.getPath() });
    QueryManager qm = anonymous.getWorkspace().getQueryManager();
    String ntName = n1.getPrimaryNodeType().getName();
    String stmt = testPath + "/element(*, " + ntName + ") order by @" + propertyName1;
    QueryImpl query = (QueryImpl) qm.createQuery(stmt, Query.XPATH);
    query.setOffset(0);
    query.setLimit(2);
    checkSequence(query.execute().getNodes(), new String[] { n1.getPath(), n3.getPath() });
    query = (QueryImpl) qm.createQuery(stmt, Query.XPATH);
    query.setOffset(2);
    query.setLimit(2);
    checkSequence(query.execute().getNodes(), new String[] { n4.getPath() });
}
Also used : Node(javax.jcr.Node) QueryManager(javax.jcr.query.QueryManager)

Example 99 with QueryManager

use of javax.jcr.query.QueryManager in project jackrabbit by apache.

the class RepositoryServiceImpl method createQuery.

private Query createQuery(Session session, String statement, String language, Map<String, String> namespaces) throws InvalidQueryException, RepositoryException {
    QueryManager qMgr = session.getWorkspace().getQueryManager();
    // apply namespace mappings to session
    Map<String, String> previous = setNamespaceMappings(session, namespaces);
    try {
        return qMgr.createQuery(statement, language);
    } finally {
        // reset namespace mappings
        setNamespaceMappings(session, previous);
    }
}
Also used : QueryManager(javax.jcr.query.QueryManager)

Example 100 with QueryManager

use of javax.jcr.query.QueryManager in project jackrabbit by apache.

the class DescendantSearchTest method runTest.

public void runTest() throws Exception {
    QueryManager manager = session.getWorkspace().getQueryManager();
    for (int i = 0; i < NODE_COUNT; i++) {
        Query query = createQuery(manager, i);
        NodeIterator iterator = query.execute().getNodes();
        while (iterator.hasNext()) {
            Node node = iterator.nextNode();
            if (node.getProperty("testcount").getLong() != i) {
                throw new Exception("Invalid test result: " + node.getPath());
            }
        }
    }
}
Also used : NodeIterator(javax.jcr.NodeIterator) Query(javax.jcr.query.Query) Node(javax.jcr.Node) QueryManager(javax.jcr.query.QueryManager) RepositoryException(javax.jcr.RepositoryException)

Aggregations

QueryManager (javax.jcr.query.QueryManager)103 Query (javax.jcr.query.Query)69 Node (javax.jcr.Node)61 QueryResult (javax.jcr.query.QueryResult)55 Session (javax.jcr.Session)54 NodeIterator (javax.jcr.NodeIterator)34 RowIterator (javax.jcr.query.RowIterator)27 Test (org.junit.Test)27 AbstractRepositoryTest (org.apache.jackrabbit.oak.jcr.AbstractRepositoryTest)22 RepositoryException (javax.jcr.RepositoryException)18 Row (javax.jcr.query.Row)14 JackrabbitSession (org.apache.jackrabbit.api.JackrabbitSession)14 FacetResult (org.apache.jackrabbit.oak.query.facet.FacetResult)9 ValueFactory (javax.jcr.ValueFactory)7 NoSuchElementException (java.util.NoSuchElementException)6 InvalidItemStateException (javax.jcr.InvalidItemStateException)3 Value (javax.jcr.Value)3 Authorizable (org.apache.jackrabbit.api.security.user.Authorizable)3 ArrayList (java.util.ArrayList)2 HashSet (java.util.HashSet)2