static NodeIterator executeQuery(final Session session, final Node templateQueryNode) throws RepositoryException { final String statement = templateQueryNode.getProperty("jcr:statement").getString(); final String language = templateQueryNode.getProperty("jcr:language").getString(); final QueryManager queryManager = session.getWorkspace().getQueryManager(); final Query query = queryManager.createQuery(statement, language); final QueryResult queryResult = query.execute(); return queryResult.getNodes(); }
public boolean hasTranslation(String language) throws RepositoryException { String id = node.getProperty(HippoTranslationNodeType.ID).getString(); Query query = node.getSession().getWorkspace().getQueryManager().createQuery( "SELECT * FROM " + HippoTranslationNodeType.NT_TRANSLATED + " WHERE " + HippoTranslationNodeType.ID + "='" + id + "'" + " AND " + HippoTranslationNodeType.LOCALE + "='" + language + "'", Query.SQL); final QueryResult result = query.execute(); NodeIterator nodes = result.getNodes(); return nodes.hasNext(); }
private List<Node> getItemNodesToBeExecuted(final Session session) throws RepositoryException { final List<Node> initializeItems = new ArrayList<>(); final QueryManager queryManager = session.getWorkspace().getQueryManager(); final Query getInitializeItems = queryManager.createQuery(PENDING_INITIALIZE_ITEMS_QUERY, Query.SQL); final NodeIterator nodes = getInitializeItems.execute().getNodes(); while(nodes.hasNext()) { initializeItems.add(nodes.nextNode()); } return initializeItems; }
private void check(Session session) throws RepositoryException { check(session.getRootNode()); Query query = session.getWorkspace().getQueryManager().createQuery("//element(*,nt:base)", Query.XPATH); QueryResult result = query.execute(); for (NodeIterator iter = result.getNodes(); iter.hasNext();) { Node node = iter.nextNode(); if (node != null && log.isTraceEnabled()) { log.trace("query: {}", node.getPath()); } } }
/** * Find nodes located in the provided node or in sub-folders within it that have the provided nodeType. * As this method uses jcr queries to find nodes, it might not see nodes that have been created but not saved yet (i.e. during installation of a module). */ protected NodeIterator findPrincipalNodes(final Node node, final String nodeType) throws RepositoryException { final StringBuilder builder = new StringBuilder("select * from [").append(nodeType).append("]"); if (!"/".equals(node.getPath())) { builder.append(" where isdescendantnode(['").append(node.getPath()).append("'])"); } final String queryString = builder.toString(); log.debug("Executing query \"{}\".", queryString); final Query query = node.getSession().getWorkspace().getQueryManager().createQuery(queryString, Query.JCR_SQL2); return query.execute().getNodes(); }
private HippoNodeIterator findAllHandleNodes(Session session) throws RepositoryException { // order by clause forces result.getSize() != -1 (we need the size) String stmt = "/jcr:root" + context.getDocumentBasePath() + "//element(*,hippo:handle) order by @jcr:score descending"; Query query = session.getWorkspace().getQueryManager().createQuery(stmt, Query.XPATH); return (HippoNodeIterator) query.execute().getNodes(); }
private void check(Session session) throws RepositoryException { check(session.getRootNode()); Query query = session.getWorkspace().getQueryManager().createQuery("//element(*,nt:base)", Query.XPATH); QueryResult result = query.execute(); for (NodeIterator iter = result.getNodes(); iter.hasNext();) { Node node = iter.nextNode(); if (node != null && log.isTraceEnabled()) { log.trace("query: {}", node.getPath()); } } }
@Override protected void doExecute(InstallContext installContext) throws RepositoryException, TaskExecutionException { final String statement = "select * from [nt:base] where [mgnl:template] = '" + oldTemplateId + "'"; QueryManager qm = installContext.getJCRSession(workspace).getWorkspace().getQueryManager(); Query query = qm.createQuery(statement, Query.JCR_SQL2); NodeIterator iter = query.execute().getNodes(); while (iter.hasNext()) { operateOnNode(installContext, iter.nextNode()); } }
@Override protected void runTest() throws Exception { QueryManager qm = session.getWorkspace().getQueryManager(); Query q = qm.createQuery(getQuery(), Query.JCR_SQL2); QueryResult r = q.execute(); NodeIterator nodes = r.getNodes(); int counter = 0; while(nodes.hasNext() && counter++<FETCH_NODES) { nodes.next(); } }
protected Node getUserNode(Session session) throws RepositoryException { String userId = session.getUserID(); StringBuilder statement = new StringBuilder(); statement.append("//element"); statement.append("(*, ").append(HippoNodeType.NT_USER).append(")"); statement.append('[').append("fn:name() = ").append("'").append(NodeNameCodec.encode(userId, true)).append( "'").append(']'); Query q; q = session.getWorkspace().getQueryManager().createQuery(statement.toString(), Query.XPATH); QueryResult result = q.execute(); if (result.getNodes().hasNext()) { return result.getNodes().nextNode(); } return null; }
@Override public List<T9Node> getSiblings(String t9Id) { try { Set<T9Node> nodes = new HashSet<T9Node>(); QueryManager qm = targetNode.getSession().getWorkspace().getQueryManager(); Query query = qm.createQuery( "/jcr:root" + ROOT_PATH + "//element(*, " + HippoTranslationNodeType.NT_TRANSLATED + ")[@" + HippoTranslationNodeType.ID + "='" + t9Id + "']", Query.XPATH); for (NodeIterator iter = query.execute().getNodes(); iter.hasNext();) { Node sibling = iter.nextNode(); nodes.add(getT9Node(sibling)); } return new ArrayList<T9Node>(nodes); } catch (RepositoryException e) { throw new RuntimeException("Unable to retrieve siblings for " + t9Id, e); } }
private Node findNodeByNameAndType( final Node parentNode, final String groupingNodeName, final String groupingNodeType ) throws Exception { final String queryText = String.format( FIND_CHILD_BY_NAME_AND_TYPE, groupingNodeType, parentNode.getPath(), groupingNodeName ); final Session session = parentNode.getSession(); final QueryManager queryMgr = session.getWorkspace().getQueryManager(); final Query query = queryMgr.createQuery( queryText, Query.JCR_SQL2 ); final QueryResult result = query.execute(); final NodeIterator itr = result.getNodes(); if ( itr.getSize() == 0 ) { return null; } return itr.nextNode(); }
private void executeQuery() throws RepositoryException{ QueryManager queryManager = UserSession.get().getJcrSession().getWorkspace().getQueryManager(); @SuppressWarnings("deprecation") // we have to use XPath Query jcrQuery = queryManager.createQuery(this.query, Query.XPATH); QueryResult queryResult = jcrQuery.execute(); this.hippoNodeIterator = (HippoNodeIterator)queryResult.getNodes(); }
@Override protected Object load() { try { QueryManager qmgr = UserSession.get().getJcrSession().getWorkspace().getQueryManager(); Query query = qmgr.createQuery(statement, language); return query.execute(); } catch (RepositoryException ex) { log.error("could not execute query", ex); } return null; }
private List<Resource> getResourcesFromQuery(ResourceResolver resourceResolver, String language, String statement, String relPath) throws RepositoryException { final List<Resource> resources = new ArrayList<>(); QueryManager queryManager = resourceResolver.adaptTo(Session.class).getWorkspace().getQueryManager(); NodeIterator nodeIter = queryManager.createQuery(statement, language).execute().getNodes(); while (nodeIter.hasNext()) { Resource resource = resourceResolver.getResource(nodeIter.nextNode().getPath()); final Resource relativeAwareResource = getRelativeAwareResource(resource, relPath); if (relativeAwareResource != null) { resources.add(relativeAwareResource); } } return resources; }
/** * Executes the query with given language.Unlike in the old API item type has to be specified in query itself. * <code>SELECT * FROM [mgnl:page]</code> example for selecting just pages in JCR SQL2 language. * Duplicate nodes are removed from result. * For date/time expressions use <code>DateUtil.create*Expression()</code> methods. * * @return Result as NodeIterator */ public static NodeIterator search(String workspace, String statement, String language) throws InvalidQueryException, RepositoryException { Session session = MgnlContext.getJCRSession(workspace); QueryManager manager = session.getWorkspace().getQueryManager(); Query query = manager.createQuery(statement, language); return NodeUtil.filterDuplicates(query.execute().getNodes()); }
@Override 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()); } } } }
@Override 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()); } } } }
protected List<Node> findLockedNodesForUsers(final String previewConfigurationPath, final List<String> userIds) throws RepositoryException { if (userIds.isEmpty()) { return Collections.emptyList(); } final Session session = pageComposerContextService.getRequestContext().getSession(); final String xpath = buildXPathQueryLockedNodesForUsers(previewConfigurationPath, userIds); final QueryResult result = session.getWorkspace().getQueryManager().createQuery(xpath, Query.XPATH).execute(); List<Node> lockedNodesForUsers = new ArrayList<>(); for (Node lockedNodeForUsers : new NodeIterable(result.getNodes())) { lockedNodesForUsers.add(lockedNodeForUsers); } return lockedNodesForUsers; }
protected NodeIterator runQuery(String queryString) throws RepositoryException { QueryManager qm = MgnlContext.getJCRSession(RSSAggregatorConstants.WORKSPACE).getWorkspace().getQueryManager(); log.debug(queryString); Query q = qm.createQuery(queryString, "xpath"); QueryResult res = q.execute(); NodeIterator feeds = res.getNodes(); FilteringNodeIterator iterator = new FilteringNodeIterator(feeds, new NodeTypePredicate(NodeTypes.Content.NAME)); return iterator; } }