@Override public CancellableQuery createExecutableQuery( QueryCommand query, PlanHints hints, Map<String, Object> variables ) throws RepositoryException { session.checkLive(); // Submit immediately to the workspace graph ... Schemata schemata = session.workspace().nodeTypeManager().schemata(); NodeTypes nodeTypes = session.repository().nodeTypeManager().getNodeTypes(); RepositoryIndexes indexDefns = session.repository().queryManager().getIndexes(); String workspaceName = session.workspaceName(); JcrRepository.RunningState state = session.repository().runningState(); RepositoryQueryManager queryManager = state.queryManager(); RepositoryCache repoCache = state.repositoryCache(); NodeCache nodeCache = hints.useSessionContent ? session.cache() : session.cache().getWorkspace(); Map<String, NodeCache> overriddenNodeCaches = new HashMap<String, NodeCache>(); overriddenNodeCaches.put(workspaceName, nodeCache); Set<String> workspaceNames = null; if (hints.includeSystemContent) { workspaceNames = new LinkedHashSet<String>(); workspaceNames.add(workspaceName); workspaceNames.add(repoCache.getSystemWorkspaceName()); } else { workspaceNames = Collections.singleton(workspaceName); } return queryManager.query(executionContext, repoCache, workspaceNames, overriddenNodeCaches, query, schemata, indexDefns, nodeTypes, hints, variables); }
@Override public CancellableQuery createExecutableQuery( QueryCommand query, PlanHints hints, Map<String, Object> variables ) throws RepositoryException { session.checkLive(); // Submit immediately to the workspace graph ... Schemata schemata = session.workspace().nodeTypeManager().schemata(); NodeTypes nodeTypes = session.repository().nodeTypeManager().getNodeTypes(); RepositoryIndexes indexDefns = session.repository().queryManager().getIndexes(); String workspaceName = session.workspaceName(); JcrRepository.RunningState state = session.repository().runningState(); RepositoryQueryManager queryManager = state.queryManager(); RepositoryCache repoCache = state.repositoryCache(); NodeCache nodeCache = hints.useSessionContent ? session.cache() : session.cache().getWorkspace(); Map<String, NodeCache> overriddenNodeCaches = new HashMap<String, NodeCache>(); overriddenNodeCaches.put(workspaceName, nodeCache); Set<String> workspaceNames = null; if (hints.includeSystemContent) { workspaceNames = new LinkedHashSet<String>(); workspaceNames.add(workspaceName); workspaceNames.add(repoCache.getSystemWorkspaceName()); } else { workspaceNames = Collections.singleton(workspaceName); } return queryManager.query(executionContext, repoCache, workspaceNames, overriddenNodeCaches, query, schemata, indexDefns, nodeTypes, hints, variables); }