You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by mr...@apache.org on 2008/07/07 15:56:36 UTC
svn commit: r674491 - in
/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi:
WorkspaceImpl.java query/QueryImpl.java query/QueryManagerImpl.java
query/QueryResultImpl.java
Author: mreutegg
Date: Mon Jul 7 06:56:35 2008
New Revision: 674491
URL: http://svn.apache.org/viewvc?rev=674491&view=rev
Log:
JCR-1658: Executing query throws UnsupportedRepositoryOperationException(LEVEL_2_SUPPORTED) for a level 1 only implementation
Modified:
jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceImpl.java
jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryImpl.java
jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryManagerImpl.java
jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryResultImpl.java
Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceImpl.java?rev=674491&r1=674490&r2=674491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceImpl.java Mon Jul 7 06:56:35 2008
@@ -260,9 +260,8 @@
public QueryManager getQueryManager() throws RepositoryException {
session.checkIsAlive();
if (qManager == null) {
- qManager = new QueryManagerImpl(session,
- session.getNamePathResolver(), session.getItemManager(),
- session.getHierarchyManager(), wspManager);
+ qManager = new QueryManagerImpl(session, session,
+ session.getItemManager(), wspManager);
}
return qManager;
}
Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryImpl.java?rev=674491&r1=674490&r2=674491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryImpl.java Mon Jul 7 06:56:35 2008
@@ -21,7 +21,7 @@
import org.apache.jackrabbit.jcr2spi.ItemManager;
import org.apache.jackrabbit.jcr2spi.WorkspaceManager;
-import org.apache.jackrabbit.jcr2spi.hierarchy.HierarchyManager;
+import org.apache.jackrabbit.jcr2spi.ManagerProvider;
import org.apache.jackrabbit.spi.Path;
import org.apache.jackrabbit.spi.commons.name.NameConstants;
import org.apache.jackrabbit.spi.QueryInfo;
@@ -52,9 +52,9 @@
private final Session session;
/**
- * Name and Path resolver
+ * Provides various managers.
*/
- private final NamePathResolver resolver;
+ private final ManagerProvider mgrProvider;
/**
* The item manager of the session that executes this query.
@@ -62,11 +62,6 @@
private final ItemManager itemManager;
/**
- * The hierarchy manager of the session that executes this query.
- */
- private final HierarchyManager hierarchyManager;
-
- /**
* The query statement
*/
private String statement;
@@ -91,24 +86,21 @@
* Creates a new query.
*
* @param session the session that created this query.
- * @param resolver
+ * @param mgrProvider the manager provider.
* @param itemMgr the item manager of that session.
- * @param hierarchyManager the HierarchyManager of that session.
* @param wspManager the workspace manager that belongs to the
* session.
* @param statement the query statement.
* @param language the language of the query statement.
* @throws InvalidQueryException if the query is invalid.
*/
- public QueryImpl(Session session, NamePathResolver resolver,
- ItemManager itemMgr, HierarchyManager hierarchyManager,
- WorkspaceManager wspManager,
+ public QueryImpl(Session session, ManagerProvider mgrProvider,
+ ItemManager itemMgr, WorkspaceManager wspManager,
String statement, String language)
throws InvalidQueryException, RepositoryException {
this.session = session;
- this.resolver = resolver;
+ this.mgrProvider = mgrProvider;
this.itemManager = itemMgr;
- this.hierarchyManager = hierarchyManager;
this.statement = statement;
this.language = language;
this.wspManager = wspManager;
@@ -120,27 +112,26 @@
* Creates a query from a node.
*
* @param session the session that created this query.
- * @param resolver
+ * @param mgrProvider the manager provider.
* @param itemMgr the item manager of that session.
- * @param hierarchyManager
* @param wspManager the workspace manager that belongs to the session.
* @param node the node from where to read the query.
* @throws InvalidQueryException if the query is invalid.
* @throws RepositoryException if another error occurs while reading from
* the node.
*/
- public QueryImpl(Session session, NamePathResolver resolver,
- ItemManager itemMgr, HierarchyManager hierarchyManager,
- WorkspaceManager wspManager, Node node)
+ public QueryImpl(Session session, ManagerProvider mgrProvider,
+ ItemManager itemMgr, WorkspaceManager wspManager,
+ Node node)
throws InvalidQueryException, RepositoryException {
this.session = session;
- this.resolver = resolver;
+ this.mgrProvider = mgrProvider;
this.itemManager = itemMgr;
- this.hierarchyManager = hierarchyManager;
this.node = node;
this.wspManager = wspManager;
+ NamePathResolver resolver = mgrProvider.getNamePathResolver();
if (!node.isNodeType(resolver.getJCRName(NameConstants.NT_QUERY))) {
throw new InvalidQueryException("Node is not of type nt:query");
}
@@ -159,8 +150,7 @@
public QueryResult execute() throws RepositoryException {
QueryInfo qI = wspManager.executeQuery(
statement, language, getNamespaceMappings());
- return new QueryResultImpl(itemManager, hierarchyManager,
- qI, resolver, session.getValueFactory());
+ return new QueryResultImpl(itemManager, mgrProvider, qI);
}
/***
@@ -210,6 +200,7 @@
PathNotFoundException, VersionException, ConstraintViolationException,
LockException, UnsupportedRepositoryOperationException, RepositoryException {
+ NamePathResolver resolver = mgrProvider.getNamePathResolver();
try {
Path p = resolver.getQPath(absPath).getNormalizedPath();
if (!p.isAbsolute()) {
Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryManagerImpl.java?rev=674491&r1=674490&r2=674491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryManagerImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryManagerImpl.java Mon Jul 7 06:56:35 2008
@@ -18,8 +18,7 @@
import org.apache.jackrabbit.jcr2spi.ItemManager;
import org.apache.jackrabbit.jcr2spi.WorkspaceManager;
-import org.apache.jackrabbit.jcr2spi.hierarchy.HierarchyManager;
-import org.apache.jackrabbit.spi.commons.conversion.NamePathResolver;
+import org.apache.jackrabbit.jcr2spi.ManagerProvider;
import javax.jcr.Node;
import javax.jcr.RepositoryException;
@@ -39,9 +38,9 @@
private final Session session;
/**
- * Name and Path resolver
+ * Provides various managers.
*/
- private final NamePathResolver resolver;
+ private final ManagerProvider mgrProvider;
/**
* The <code>ItemManager</code> of for item retrieval in search results
@@ -49,11 +48,6 @@
private final ItemManager itemMgr;
/**
- * The <code>HierarchyManager</code> of for item retrieval in search results
- */
- private final HierarchyManager hierarchyManager;
-
- /**
* The <code>WorkspaceManager</code> where queries are executed.
*/
private final WorkspaceManager wspManager;
@@ -62,20 +56,18 @@
* Creates a new <code>QueryManagerImpl</code> for the passed
* <code>Session</code>.
*
- * @param session
- * @param itemMgr
- * @param hierarchyManager
- * @param wspManager
+ * @param session the current session.
+ * @param mgrProvider the manager provider.
+ * @param itemMgr the item manager of the current session.
+ * @param wspManager the workspace manager.
*/
public QueryManagerImpl(Session session,
- NamePathResolver resolver,
+ ManagerProvider mgrProvider,
ItemManager itemMgr,
- HierarchyManager hierarchyManager,
WorkspaceManager wspManager) {
this.session = session;
- this.resolver = resolver;
+ this.mgrProvider = mgrProvider;
this.itemMgr = itemMgr;
- this.hierarchyManager = hierarchyManager;
this.wspManager = wspManager;
}
@@ -85,8 +77,7 @@
public Query createQuery(String statement, String language)
throws InvalidQueryException, RepositoryException {
checkIsAlive();
- QueryImpl query = new QueryImpl(session, resolver, itemMgr, hierarchyManager, wspManager, statement, language);
- return query;
+ return new QueryImpl(session, mgrProvider, itemMgr, wspManager, statement, language);
}
/**
@@ -95,8 +86,7 @@
public Query getQuery(Node node)
throws InvalidQueryException, RepositoryException {
checkIsAlive();
- QueryImpl query = new QueryImpl(session, resolver, itemMgr, hierarchyManager, wspManager, node);
- return query;
+ return new QueryImpl(session, mgrProvider, itemMgr, wspManager, node);
}
/**
Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryResultImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryResultImpl.java?rev=674491&r1=674490&r2=674491&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryResultImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryResultImpl.java Mon Jul 7 06:56:35 2008
@@ -17,16 +17,13 @@
package org.apache.jackrabbit.jcr2spi.query;
import org.apache.jackrabbit.jcr2spi.ItemManager;
-import org.apache.jackrabbit.jcr2spi.hierarchy.HierarchyManager;
+import org.apache.jackrabbit.jcr2spi.ManagerProvider;
import org.apache.jackrabbit.spi.Name;
import org.apache.jackrabbit.spi.QueryInfo;
import org.apache.jackrabbit.spi.commons.conversion.NamePathResolver;
-import org.slf4j.LoggerFactory;
-import org.slf4j.Logger;
import javax.jcr.NodeIterator;
import javax.jcr.RepositoryException;
-import javax.jcr.ValueFactory;
import javax.jcr.query.QueryResult;
import javax.jcr.query.RowIterator;
@@ -36,19 +33,14 @@
class QueryResultImpl implements QueryResult {
/**
- * The logger instance for this class
- */
- private static final Logger log = LoggerFactory.getLogger(QueryResultImpl.class);
-
- /**
* The item manager of the session executing the query
*/
private final ItemManager itemMgr;
/**
- * The HierarchyManager of the session executing the query
+ * Provides various managers.
*/
- private final HierarchyManager hierarchyMgr;
+ private final ManagerProvider mgrProvider;
/**
* The spi query result.
@@ -56,33 +48,18 @@
private final QueryInfo queryInfo;
/**
- * The namespace nameResolver of the session executing the query
- */
- private final NamePathResolver resolver;
-
- /**
- * The JCR value factory.
- */
- private final ValueFactory valueFactory;
-
- /**
* Creates a new query result.
*
- * @param itemMgr the item manager of the session executing the query.
- * @param hierarchyMgr the HierarchyManager of the session executing the
- * query.
- * @param queryInfo the spi query result.
- * @param resolver
- * @param valueFactory the JCR value factory.
- */
- QueryResultImpl(ItemManager itemMgr, HierarchyManager hierarchyMgr,
- QueryInfo queryInfo, NamePathResolver resolver,
- ValueFactory valueFactory) {
+ * @param itemMgr the item manager of the session executing the query.
+ * @param mgrProvider the manager provider.
+ * @param queryInfo the spi query result.
+ */
+ QueryResultImpl(ItemManager itemMgr,
+ ManagerProvider mgrProvider,
+ QueryInfo queryInfo) {
this.itemMgr = itemMgr;
- this.hierarchyMgr = hierarchyMgr;
+ this.mgrProvider = mgrProvider;
this.queryInfo = queryInfo;
- this.resolver = resolver;
- this.valueFactory = valueFactory;
}
/**
@@ -91,6 +68,7 @@
public String[] getColumnNames() throws RepositoryException {
Name[] names = queryInfo.getColumnNames();
String[] propNames = new String[names.length];
+ NamePathResolver resolver = mgrProvider.getNamePathResolver();
for (int i = 0; i < names.length; i++) {
propNames[i] = resolver.getJCRName(names[i]);
}
@@ -108,7 +86,8 @@
* {@inheritDoc}
*/
public RowIterator getRows() throws RepositoryException {
- return new RowIteratorImpl(queryInfo, resolver, valueFactory);
+ return new RowIteratorImpl(queryInfo, mgrProvider.getNamePathResolver(),
+ mgrProvider.getJcrValueFactory());
}
/**
@@ -116,6 +95,7 @@
* @return a node iterator over the result nodes.
*/
private ScoreNodeIterator getNodeIterator() {
- return new NodeIteratorImpl(itemMgr, hierarchyMgr, queryInfo);
+ return new NodeIteratorImpl(itemMgr,
+ mgrProvider.getHierarchyManager(), queryInfo);
}
}