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 2007/01/20 01:08:59 UTC

svn commit: r498012 - in /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core: ./ observation/ state/

Author: jukka
Date: Fri Jan 19 16:08:58 2007
New Revision: 498012

URL: http://svn.apache.org/viewvc?view=rev&rev=498012
Log:
JCR-688: Use PathResolver instead of NamespaceResolver in HierarcyManagers.

Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/CachingHierarchyManager.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/HierarchyManagerImpl.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SearchManager.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ZombieHierarchyManager.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/ChangeLogBasedHierarchyMgr.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/EventStateCollection.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SessionItemStateManager.java

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/CachingHierarchyManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/CachingHierarchyManager.java?view=diff&rev=498012&r1=498011&r2=498012
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/CachingHierarchyManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/CachingHierarchyManager.java Fri Jan 19 16:08:58 2007
@@ -24,8 +24,8 @@
 import org.apache.jackrabbit.core.state.NodeStateListener;
 import org.apache.jackrabbit.core.util.Dumpable;
 import org.apache.jackrabbit.name.MalformedPathException;
-import org.apache.jackrabbit.name.NamespaceResolver;
 import org.apache.jackrabbit.name.Path;
+import org.apache.jackrabbit.name.PathResolver;
 import org.apache.jackrabbit.name.QName;
 import org.apache.jackrabbit.util.PathMap;
 import org.slf4j.Logger;
@@ -102,8 +102,8 @@
      */
     public CachingHierarchyManager(NodeId rootNodeId,
                                    ItemStateManager provider,
-                                   NamespaceResolver nsResolver) {
-        super(rootNodeId, provider, nsResolver);
+                                   PathResolver resolver) {
+        super(rootNodeId, provider, resolver);
         upperLimit = DEFAULT_UPPER_LIMIT;
     }
 

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/HierarchyManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/HierarchyManagerImpl.java?view=diff&rev=498012&r1=498011&r2=498012
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/HierarchyManagerImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/HierarchyManagerImpl.java Fri Jan 19 16:08:58 2007
@@ -23,15 +23,14 @@
 import org.apache.jackrabbit.core.state.NodeState;
 import org.apache.jackrabbit.core.state.PropertyState;
 import org.apache.jackrabbit.name.MalformedPathException;
-import org.apache.jackrabbit.name.NamespaceResolver;
-import org.apache.jackrabbit.name.NoPrefixDeclaredException;
 import org.apache.jackrabbit.name.Path;
+import org.apache.jackrabbit.name.PathResolver;
 import org.apache.jackrabbit.name.QName;
-import org.apache.jackrabbit.name.PathFormat;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import javax.jcr.ItemNotFoundException;
+import javax.jcr.NamespaceException;
 import javax.jcr.RepositoryException;
 
 /**
@@ -49,26 +48,26 @@
 
     protected final NodeId rootNodeId;
     protected final ItemStateManager provider;
-    // used for outputting user-friendly paths and names
-    protected final NamespaceResolver nsResolver;
+
+    /**
+     * Path resolver for outputting user-friendly paths in error messages.
+     */
+    protected final PathResolver resolver;
 
     public HierarchyManagerImpl(NodeId rootNodeId,
                                 ItemStateManager provider,
-                                NamespaceResolver nsResolver) {
+                                PathResolver resolver) {
         this.rootNodeId = rootNodeId;
         this.provider = provider;
-        this.nsResolver = nsResolver;
+        this.resolver = resolver;
     }
 
     public NodeId getRootNodeId() {
         return rootNodeId;
     }
 
-    public NamespaceResolver getNamespaceResolver() {
-        return nsResolver;
-    }
-
     //-------------------------------------------------< misc. helper methods >
+
     /**
      * Failsafe conversion of internal <code>Path</code> to JCR path for use in
      * error messages etc.
@@ -78,9 +77,9 @@
      */
     public String safeGetJCRPath(Path path) {
         try {
-            return PathFormat.format(path, nsResolver);
-        } catch (NoPrefixDeclaredException npde) {
-            log.error("failed to convert " + path.toString() + " to JCR path.");
+            return resolver.getJCRPath(path);
+        } catch (NamespaceException e) {
+            log.error("failed to convert {} to a JCR path", path);
             // return string representation of internal path as a fallback
             return path.toString();
         }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SearchManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SearchManager.java?view=diff&rev=498012&r1=498011&r2=498012
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SearchManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SearchManager.java Fri Jan 19 16:08:58 2007
@@ -197,7 +197,8 @@
         }
 
         if (excludedNodeId != null) {
-            HierarchyManagerImpl hmgr = new HierarchyManagerImpl(rootNodeId, itemMgr, nsReg);
+            HierarchyManagerImpl hmgr = new HierarchyManagerImpl(
+                    rootNodeId, itemMgr, nsReg.getPathResolver());
             excludePath = hmgr.getPath(excludedNodeId);
         }
 

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java?view=diff&rev=498012&r1=498011&r2=498012
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SessionImpl.java Fri Jan 19 16:08:58 2007
@@ -38,16 +38,12 @@
 import org.apache.jackrabbit.core.xml.SysViewSAXEventGenerator;
 import org.apache.jackrabbit.core.util.Dumpable;
 import org.apache.jackrabbit.core.lock.LockManager;
-import org.apache.jackrabbit.name.MalformedPathException;
 import org.apache.jackrabbit.name.NameException;
 import org.apache.jackrabbit.name.NameResolver;
 import org.apache.jackrabbit.name.NamespaceResolver;
-import org.apache.jackrabbit.name.ParsingNameResolver;
-import org.apache.jackrabbit.name.ParsingPathResolver;
 import org.apache.jackrabbit.name.Path;
 import org.apache.jackrabbit.name.PathResolver;
 import org.apache.jackrabbit.name.QName;
-import org.apache.jackrabbit.name.PathFormat;
 import org.apache.jackrabbit.uuid.UUID;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -266,8 +262,7 @@
      * @return session item state manager
      */
     protected SessionItemStateManager createSessionItemStateManager(LocalItemStateManager manager) {
-        return new SessionItemStateManager(rep.getRootNodeId(),
-                manager, getNamespaceResolver());
+        return new SessionItemStateManager(rep.getRootNodeId(), manager, this);
     }
 
     /**

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java?view=diff&rev=498012&r1=498011&r2=498012
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/WorkspaceImpl.java Fri Jan 19 16:08:58 2007
@@ -31,10 +31,8 @@
 import org.apache.jackrabbit.core.xml.ImportHandler;
 import org.apache.jackrabbit.core.xml.Importer;
 import org.apache.jackrabbit.core.xml.WorkspaceImporter;
-import org.apache.jackrabbit.name.MalformedPathException;
 import org.apache.jackrabbit.name.NameException;
 import org.apache.jackrabbit.name.Path;
-import org.apache.jackrabbit.name.PathFormat;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.xml.sax.ContentHandler;
@@ -133,8 +131,8 @@
         this.wspConfig = wspConfig;
         this.rep = rep;
         this.stateMgr = createItemStateManager(stateMgr);
-        this.hierMgr = new CachingHierarchyManager(rep.getRootNodeId(),
-                this.stateMgr, session.getNamespaceResolver());
+        this.hierMgr = new CachingHierarchyManager(
+                rep.getRootNodeId(), this.stateMgr, session);
         this.stateMgr.addListener(hierMgr);
         this.session = session;
     }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ZombieHierarchyManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ZombieHierarchyManager.java?view=diff&rev=498012&r1=498011&r2=498012
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ZombieHierarchyManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ZombieHierarchyManager.java Fri Jan 19 16:08:58 2007
@@ -21,7 +21,6 @@
 import org.apache.jackrabbit.core.state.ItemStateManager;
 import org.apache.jackrabbit.core.state.NoSuchItemStateException;
 import org.apache.jackrabbit.core.state.NodeState;
-import org.apache.jackrabbit.name.NamespaceResolver;
 import org.apache.jackrabbit.name.QName;
 
 import java.util.Iterator;
@@ -40,11 +39,10 @@
      */
     protected ItemStateManager attic;
 
-    public ZombieHierarchyManager(NodeId rootNodeId,
+    public ZombieHierarchyManager(HierarchyManagerImpl parent,
                                   ItemStateManager provider,
-                                  ItemStateManager attic,
-                                  NamespaceResolver nsResolver) {
-        super(rootNodeId, provider, nsResolver);
+                                  ItemStateManager attic) {
+        super(parent.getRootNodeId(), provider, parent.resolver);
         this.attic = attic;
     }
 

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/ChangeLogBasedHierarchyMgr.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/ChangeLogBasedHierarchyMgr.java?view=diff&rev=498012&r1=498011&r2=498012
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/ChangeLogBasedHierarchyMgr.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/ChangeLogBasedHierarchyMgr.java Fri Jan 19 16:08:58 2007
@@ -28,8 +28,8 @@
 import org.apache.jackrabbit.core.state.NoSuchItemStateException;
 import org.apache.jackrabbit.core.state.NodeReferences;
 import org.apache.jackrabbit.core.state.NodeReferencesId;
-import org.apache.jackrabbit.name.NamespaceResolver;
 import org.apache.jackrabbit.name.Path;
+import org.apache.jackrabbit.name.PathResolver;
 
 import javax.jcr.ItemNotFoundException;
 import javax.jcr.RepositoryException;
@@ -56,18 +56,17 @@
      * @param rootNodeId the id of the root node.
      * @param manager the item state manager.
      * @param changes the changes that will be applied on the item state manager.
-     * @param resolver the namespace resolver of the current session.
+     * @param resolver path resolver for outputting user friendly paths
      */
     ChangeLogBasedHierarchyMgr(NodeId rootNodeId,
                                ItemStateManager manager,
                                ChangeLog changes,
-                               NamespaceResolver resolver) {
+                               PathResolver resolver) {
         super(rootNodeId,
                 new ChangeLogItemStateManager(manager, changes),
                 resolver);
-        zombieHierMgr =
-                new ZombieHierarchyManager(rootNodeId, provider,
-                        new AtticItemStateManager(changes), resolver);
+        zombieHierMgr = new ZombieHierarchyManager(
+                this, provider, new AtticItemStateManager(changes));
     }
 
     /**

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/EventStateCollection.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/EventStateCollection.java?view=diff&rev=498012&r1=498011&r2=498012
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/EventStateCollection.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/observation/EventStateCollection.java Fri Jan 19 16:08:58 2007
@@ -123,9 +123,8 @@
         // create a hierarchy manager, that is based on the ChangeLog and
         // the ItemStateProvider
         // todo use CachingHierarchyManager ?
-        ChangeLogBasedHierarchyMgr hmgr =
-                new ChangeLogBasedHierarchyMgr(rootNodeId, stateMgr, changes,
-                        session.getNamespaceResolver());
+        ChangeLogBasedHierarchyMgr hmgr = new ChangeLogBasedHierarchyMgr(
+                rootNodeId, stateMgr, changes, session);
 
         /**
          * Important:

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SessionItemStateManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SessionItemStateManager.java?view=diff&rev=498012&r1=498011&r2=498012
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SessionItemStateManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SessionItemStateManager.java Fri Jan 19 16:08:58 2007
@@ -24,7 +24,7 @@
 import org.apache.jackrabbit.core.PropertyId;
 import org.apache.jackrabbit.core.ZombieHierarchyManager;
 import org.apache.jackrabbit.core.util.Dumpable;
-import org.apache.jackrabbit.name.NamespaceResolver;
+import org.apache.jackrabbit.name.PathResolver;
 import org.apache.jackrabbit.name.QName;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -85,11 +85,11 @@
      *
      * @param rootNodeId the root node id
      * @param stateMgr the local item state manager
-     * @param nsResolver the namespace resolver
+     * @param resolver path resolver for outputting user-friendly paths
      */
     public SessionItemStateManager(NodeId rootNodeId,
                                    LocalItemStateManager stateMgr,
-                                   NamespaceResolver nsResolver) {
+                                   PathResolver resolver) {
         transientStore = new ItemStateMap();
         atticStore = new ItemStateMap();
 
@@ -97,7 +97,7 @@
         stateMgr.addListener(this);
 
         // create hierarchy manager that uses both transient and persistent state
-        hierMgr = new CachingHierarchyManager(rootNodeId, this, nsResolver);
+        hierMgr = new CachingHierarchyManager(rootNodeId, this, resolver);
         addListener(hierMgr);
     }
 
@@ -447,10 +447,7 @@
 
         // use a special attic-aware hierarchy manager
         ZombieHierarchyManager zombieHierMgr =
-                new ZombieHierarchyManager(hierMgr.getRootNodeId(),
-                        this,
-                        getAttic(),
-                        hierMgr.getNamespaceResolver());
+            new ZombieHierarchyManager(hierMgr, this, getAttic());
 
         // use an array of lists to group the descendants by relative depth;
         // the depth is used as array index