You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2008/05/12 18:51:39 UTC
svn commit: r655556 - in
/jackrabbit/trunk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi:
WorkspaceImpl.java query/QueryImpl.java query/QueryManagerImpl.java
Author: jukka
Date: Mon May 12 09:51:39 2008
New Revision: 655556
URL: http://svn.apache.org/viewvc?rev=655556&view=rev
Log:
JCR-1564: JSR 283 namespace handling
- Removed the query -> LocalNamespaceMappings dependency in jcr2spi
- Now it works, thanks to revision 655554
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
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=655556&r1=655555&r2=655556&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 May 12 09:51:39 2008
@@ -261,7 +261,7 @@
public QueryManager getQueryManager() throws RepositoryException {
session.checkIsAlive();
if (qManager == null) {
- qManager = new QueryManagerImpl(session, session.getLocalNamespaceMappings(),
+ qManager = new QueryManagerImpl(session,
session.getNamePathResolver(), session.getItemManager(),
session.getHierarchyManager(), wspManager);
}
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=655556&r1=655555&r2=655556&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 May 12 09:51:39 2008
@@ -16,10 +16,12 @@
*/
package org.apache.jackrabbit.jcr2spi.query;
+import java.util.HashMap;
+import java.util.Map;
+
import org.apache.jackrabbit.jcr2spi.ItemManager;
import org.apache.jackrabbit.jcr2spi.WorkspaceManager;
import org.apache.jackrabbit.jcr2spi.hierarchy.HierarchyManager;
-import org.apache.jackrabbit.jcr2spi.name.LocalNamespaceMappings;
import org.apache.jackrabbit.spi.Path;
import org.apache.jackrabbit.spi.commons.name.NameConstants;
import org.apache.jackrabbit.spi.QueryInfo;
@@ -50,11 +52,6 @@
private final Session session;
/**
- * The namespace mappings of the session that executes this query.
- */
- private final LocalNamespaceMappings nsResolver;
-
- /**
* Name and Path resolver
*/
private final NamePathResolver resolver;
@@ -94,7 +91,6 @@
* Creates a new query.
*
* @param session the session that created this query.
- * @param nsResolver the namespace resolver to be used.
* @param resolver
* @param itemMgr the item manager of that session.
* @param hierarchyManager the HierarchyManager of that session.
@@ -104,27 +100,26 @@
* @param language the language of the query statement.
* @throws InvalidQueryException if the query is invalid.
*/
- public QueryImpl(Session session, LocalNamespaceMappings nsResolver, NamePathResolver resolver,
+ public QueryImpl(Session session, NamePathResolver resolver,
ItemManager itemMgr, HierarchyManager hierarchyManager,
WorkspaceManager wspManager,
String statement, String language)
throws InvalidQueryException, RepositoryException {
this.session = session;
this.resolver = resolver;
- this.nsResolver = nsResolver;
this.itemManager = itemMgr;
this.hierarchyManager = hierarchyManager;
this.statement = statement;
this.language = language;
this.wspManager = wspManager;
- this.wspManager.checkQueryStatement(statement, language, nsResolver.getLocalNamespaceMappings());
+ this.wspManager.checkQueryStatement(
+ statement, language, getNamespaceMappings());
}
/**
* Creates a query from a node.
*
* @param session the session that created this query.
- * @param nsResolver the namespace resolver to be used.
* @param resolver
* @param itemMgr the item manager of that session.
* @param hierarchyManager
@@ -134,14 +129,13 @@
* @throws RepositoryException if another error occurs while reading from
* the node.
*/
- public QueryImpl(Session session, LocalNamespaceMappings nsResolver, NamePathResolver resolver,
+ public QueryImpl(Session session, NamePathResolver resolver,
ItemManager itemMgr, HierarchyManager hierarchyManager,
WorkspaceManager wspManager, Node node)
throws InvalidQueryException, RepositoryException {
this.session = session;
this.resolver = resolver;
- this.nsResolver = nsResolver;
this.itemManager = itemMgr;
this.hierarchyManager = hierarchyManager;
this.node = node;
@@ -155,20 +149,36 @@
}
statement = node.getProperty(resolver.getJCRName(NameConstants.JCR_STATEMENT)).getString();
language = node.getProperty(resolver.getJCRName(NameConstants.JCR_LANGUAGE)).getString();
- this.wspManager.checkQueryStatement(statement, language,
- nsResolver.getLocalNamespaceMappings());
+ this.wspManager.checkQueryStatement(
+ statement, language, getNamespaceMappings());
}
/**
* @see Query#execute()
*/
public QueryResult execute() throws RepositoryException {
- QueryInfo qI = wspManager.executeQuery(statement, language,
- nsResolver.getLocalNamespaceMappings());
+ QueryInfo qI = wspManager.executeQuery(
+ statement, language, getNamespaceMappings());
return new QueryResultImpl(itemManager, hierarchyManager,
qI, resolver, session.getValueFactory());
}
+ /***
+ * Utility method that returns the namespace mappings of the current
+ * session.
+ *
+ * @return namespace mappings (prefix -> uri)
+ * @throws RepositoryException if a repository error occurs
+ */
+ private Map getNamespaceMappings() throws RepositoryException {
+ Map mappings = new HashMap();
+ String[] prefixes = session.getNamespacePrefixes();
+ for (int i = 0; i < prefixes.length; i++) {
+ mappings.put(prefixes[i], session.getNamespaceURI(prefixes[i]));
+ }
+ return mappings;
+ }
+
/**
* @see Query#getStatement()
*/
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=655556&r1=655555&r2=655556&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 May 12 09:51:39 2008
@@ -19,7 +19,6 @@
import org.apache.jackrabbit.jcr2spi.ItemManager;
import org.apache.jackrabbit.jcr2spi.WorkspaceManager;
import org.apache.jackrabbit.jcr2spi.hierarchy.HierarchyManager;
-import org.apache.jackrabbit.jcr2spi.name.LocalNamespaceMappings;
import org.apache.jackrabbit.spi.commons.conversion.NamePathResolver;
import javax.jcr.Node;
@@ -40,11 +39,6 @@
private final Session session;
/**
- * The local namespace mappings for this query manager.
- */
- private final LocalNamespaceMappings nsResolver;
-
- /**
* Name and Path resolver
*/
private final NamePathResolver resolver;
@@ -69,19 +63,16 @@
* <code>Session</code>.
*
* @param session
- * @param nsResolver
* @param itemMgr
* @param hierarchyManager
* @param wspManager
*/
public QueryManagerImpl(Session session,
- LocalNamespaceMappings nsResolver,
NamePathResolver resolver,
ItemManager itemMgr,
HierarchyManager hierarchyManager,
WorkspaceManager wspManager) {
this.session = session;
- this.nsResolver = nsResolver;
this.resolver = resolver;
this.itemMgr = itemMgr;
this.hierarchyManager = hierarchyManager;
@@ -94,7 +85,7 @@
public Query createQuery(String statement, String language)
throws InvalidQueryException, RepositoryException {
checkIsAlive();
- QueryImpl query = new QueryImpl(session, nsResolver, resolver, itemMgr, hierarchyManager, wspManager, statement, language);
+ QueryImpl query = new QueryImpl(session, resolver, itemMgr, hierarchyManager, wspManager, statement, language);
return query;
}
@@ -104,7 +95,7 @@
public Query getQuery(Node node)
throws InvalidQueryException, RepositoryException {
checkIsAlive();
- QueryImpl query = new QueryImpl(session, nsResolver, resolver, itemMgr, hierarchyManager, wspManager, node);
+ QueryImpl query = new QueryImpl(session, resolver, itemMgr, hierarchyManager, wspManager, node);
return query;
}