You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by an...@apache.org on 2007/10/18 20:41:57 UTC

svn commit: r586065 [4/8] - in /jackrabbit/trunk/contrib/spi: client/src/test/java/org/apache/jackrabbit/jcr2spi/ jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/ jcr2spi/src/main/java/...

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/NodeTypeRegistryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/NodeTypeRegistryImpl.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/NodeTypeRegistryImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/NodeTypeRegistryImpl.java Thu Oct 18 11:41:45 2007
@@ -22,11 +22,14 @@
 import org.apache.jackrabbit.jcr2spi.state.Status;
 import org.apache.jackrabbit.jcr2spi.state.PropertyState;
 import org.apache.jackrabbit.jcr2spi.hierarchy.PropertyEntry;
-import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.spi.Name;
 import org.apache.jackrabbit.spi.QNodeDefinition;
 import org.apache.jackrabbit.spi.QPropertyDefinition;
 import org.apache.jackrabbit.spi.QNodeTypeDefinition;
 import org.apache.jackrabbit.spi.QValue;
+import org.apache.jackrabbit.nodetype.InvalidNodeTypeDefException;
+import org.apache.jackrabbit.nodetype.NodeTypeConflictException;
+import org.apache.jackrabbit.name.NameConstants;
 import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
 
@@ -141,16 +144,16 @@
     /**
      * @see NodeTypeRegistry#getRegisteredNodeTypes()
      */
-    public QName[] getRegisteredNodeTypes() throws RepositoryException {
+    public Name[] getRegisteredNodeTypes() throws RepositoryException {
         Set qNames = registeredNTDefs.keySet();
-        return (QName[]) qNames.toArray(new QName[registeredNTDefs.size()]);
+        return (Name[]) qNames.toArray(new Name[registeredNTDefs.size()]);
     }
 
 
     /**
-     * @see NodeTypeRegistry#isRegistered(QName)
+     * @see NodeTypeRegistry#isRegistered(Name)
      */
-    public boolean isRegistered(QName nodeTypeName) {
+    public boolean isRegistered(Name nodeTypeName) {
         return registeredNTDefs.containsKey(nodeTypeName);
     }
 
@@ -169,7 +172,7 @@
         internalRegister(ntDef, ent);
 
         // notify listeners
-        notifyRegistered(ntDef.getQName());
+        notifyRegistered(ntDef.getName());
         return ent;
     }
 
@@ -188,15 +191,15 @@
 
         // notify listeners
         for (Iterator iter = ntDefs.iterator(); iter.hasNext();) {
-            QName ntName = ((QNodeTypeDefinition)iter.next()).getQName();
+            Name ntName = ((QNodeTypeDefinition)iter.next()).getName();
             notifyRegistered(ntName);
         }
     }
 
     /**
-     * @see NodeTypeRegistry#unregisterNodeType(QName)
+     * @see NodeTypeRegistry#unregisterNodeType(Name)
      */
-    public void unregisterNodeType(QName nodeTypeName) throws NoSuchNodeTypeException, RepositoryException {
+    public void unregisterNodeType(Name nodeTypeName) throws NoSuchNodeTypeException, RepositoryException {
         HashSet ntNames = new HashSet();
         ntNames.add(nodeTypeName);
         unregisterNodeTypes(ntNames);
@@ -209,7 +212,7 @@
             throws NoSuchNodeTypeException, RepositoryException {
         // do some preliminary checks
         for (Iterator iter = nodeTypeNames.iterator(); iter.hasNext();) {
-            QName ntName = (QName) iter.next();
+            Name ntName = (Name) iter.next();
             
             // Best effort check for node types other than those to be
             // unregistered that depend on the given node types
@@ -228,7 +231,7 @@
 
         // persist removal of node type definitions
         // NOTE: conflict with existing content not asserted on client
-        storage.unregisterNodeTypes((QName[]) nodeTypeNames.toArray(new QName[nodeTypeNames.size()]));
+        storage.unregisterNodeTypes((Name[]) nodeTypeNames.toArray(new Name[nodeTypeNames.size()]));
 
 
         // all preconditions are met, node types can now safely be unregistered
@@ -236,7 +239,7 @@
 
         // notify listeners
         for (Iterator iter = nodeTypeNames.iterator(); iter.hasNext();) {
-            QName ntName = (QName) iter.next();
+            Name ntName = (Name) iter.next();
             notifyUnregistered(ntName);
         }
     }
@@ -247,7 +250,7 @@
     public synchronized EffectiveNodeType reregisterNodeType(QNodeTypeDefinition ntd)
             throws NoSuchNodeTypeException, InvalidNodeTypeDefException,
             RepositoryException {
-        QName name = ntd.getQName();
+        Name name = ntd.getName();
         if (!registeredNTDefs.containsKey(name)) {
             throw new NoSuchNodeTypeException(name.toString());
         }
@@ -268,9 +271,9 @@
     }
 
     /**
-     * @see NodeTypeRegistry#getNodeTypeDefinition(QName)
+     * @see NodeTypeRegistry#getNodeTypeDefinition(Name)
      */
-    public QNodeTypeDefinition getNodeTypeDefinition(QName nodeTypeName)
+    public QNodeTypeDefinition getNodeTypeDefinition(Name nodeTypeName)
         throws NoSuchNodeTypeException {
         QNodeTypeDefinition def = (QNodeTypeDefinition) registeredNTDefs.get(nodeTypeName);
         if (def == null) {
@@ -280,25 +283,25 @@
     }
     //------------------------------------------< EffectiveNodeTypeProvider >---
     /**
-     * @see EffectiveNodeTypeProvider#getEffectiveNodeType(QName)
+     * @see EffectiveNodeTypeProvider#getEffectiveNodeType(Name)
      */
-    public synchronized EffectiveNodeType getEffectiveNodeType(QName ntName)
+    public synchronized EffectiveNodeType getEffectiveNodeType(Name ntName)
             throws NoSuchNodeTypeException {
         return getEffectiveNodeType(ntName, entCache, registeredNTDefs);
     }
 
     /**
-     * @see EffectiveNodeTypeProvider#getEffectiveNodeType(QName[])
+     * @see EffectiveNodeTypeProvider#getEffectiveNodeType(Name[])
      */
-    public synchronized EffectiveNodeType getEffectiveNodeType(QName[] ntNames)
+    public synchronized EffectiveNodeType getEffectiveNodeType(Name[] ntNames)
             throws NodeTypeConflictException, NoSuchNodeTypeException {
         return getEffectiveNodeType(ntNames, entCache, registeredNTDefs);
     }
 
     /**
-     * @see EffectiveNodeTypeProvider#getEffectiveNodeType(QName[], Map)
+     * @see EffectiveNodeTypeProvider#getEffectiveNodeType(Name[], Map)
      */
-    public EffectiveNodeType getEffectiveNodeType(QName[] ntNames, Map ntdMap)
+    public EffectiveNodeType getEffectiveNodeType(Name[] ntNames, Map ntdMap)
         throws NodeTypeConflictException, NoSuchNodeTypeException {
         return getEffectiveNodeType(ntNames, entCache, ntdMap);
     }
@@ -311,21 +314,21 @@
      */
     public EffectiveNodeType getEffectiveNodeType(NodeState nodeState) throws ConstraintViolationException, NoSuchNodeTypeException {
         try {
-            QName[] allNtNames;
+            Name[] allNtNames;
             if (nodeState.getStatus() == Status.EXISTING) {
                 allNtNames = nodeState.getNodeTypeNames();
             } else {
                 // TODO: check if correct (and only used for creating new)
-                QName primaryType = nodeState.getNodeTypeName();
-                allNtNames = new QName[] { primaryType }; // default
+                Name primaryType = nodeState.getNodeTypeName();
+                allNtNames = new Name[] { primaryType }; // default
                 try {
-                    PropertyEntry pe = nodeState.getNodeEntry().getPropertyEntry(QName.JCR_MIXINTYPES, true);
+                    PropertyEntry pe = nodeState.getNodeEntry().getPropertyEntry(NameConstants.JCR_MIXINTYPES, true);
                     if (pe != null) {
                         PropertyState mixins = pe.getPropertyState();
                         QValue[] values = mixins.getValues();
-                        allNtNames = new QName[values.length + 1];
+                        allNtNames = new Name[values.length + 1];
                         for (int i = 0; i < values.length; i++) {
-                            allNtNames[i] = values[i].getQName();
+                            allNtNames[i] = values[i].getName();
                         }
                         allNtNames[values.length] = primaryType;
                     } // else: no jcr:mixinTypes property exists -> ignore
@@ -349,12 +352,12 @@
      * @return
      * @throws NoSuchNodeTypeException
      */
-    private EffectiveNodeType getEffectiveNodeType(QName ntName,
+    private EffectiveNodeType getEffectiveNodeType(Name ntName,
                                                    EffectiveNodeTypeCache entCache,
                                                    Map ntdCache)
         throws NoSuchNodeTypeException {
         // 1. check if effective node type has already been built
-        EffectiveNodeTypeCache.Key key = entCache.getKey(new QName[]{ntName});
+        EffectiveNodeTypeCache.Key key = entCache.getKey(new Name[]{ntName});
         EffectiveNodeType ent = entCache.get(key);
         if (ent != null) {
             return ent;
@@ -390,7 +393,7 @@
      * @throws NodeTypeConflictException
      * @throws NoSuchNodeTypeException
      */
-    private EffectiveNodeType getEffectiveNodeType(QName[] ntNames,
+    private EffectiveNodeType getEffectiveNodeType(Name[] ntNames,
                                                    EffectiveNodeTypeCache entCache,
                                                    Map ntdCache)
         throws NodeTypeConflictException, NoSuchNodeTypeException {
@@ -432,7 +435,7 @@
                      * no matching sub-aggregates found:
                      * build aggregate of remaining node types through iteration
                      */
-                    QName[] remainder = key.getNames();
+                    Name[] remainder = key.getNames();
                     for (int i = 0; i < remainder.length; i++) {
                         QNodeTypeDefinition ntd = (QNodeTypeDefinition) ntdCache.get(remainder[i]);
                         EffectiveNodeTypeImpl ent = EffectiveNodeTypeImpl.create(this, ntd, ntdCache);
@@ -465,7 +468,7 @@
     /**
      * Notify the listeners that a node type <code>ntName</code> has been registered.
      */
-    private void notifyRegistered(QName ntName) {
+    private void notifyRegistered(Name ntName) {
         // copy listeners to array to avoid ConcurrentModificationException
         NodeTypeRegistryListener[] la =
                 new NodeTypeRegistryListener[listeners.size()];
@@ -484,7 +487,7 @@
     /**
      * Notify the listeners that a node type <code>ntName</code> has been re-registered.
      */
-    private void notifyReRegistered(QName ntName) {
+    private void notifyReRegistered(Name ntName) {
         // copy listeners to array to avoid ConcurrentModificationException
         NodeTypeRegistryListener[] la = new NodeTypeRegistryListener[listeners.size()];
         Iterator iter = listeners.values().iterator();
@@ -502,7 +505,7 @@
     /**
      * Notify the listeners that a node type <code>ntName</code> has been unregistered.
      */
-    private void notifyUnregistered(QName ntName) {
+    private void notifyUnregistered(Name ntName) {
         // copy listeners to array to avoid ConcurrentModificationException
         NodeTypeRegistryListener[] la = new NodeTypeRegistryListener[listeners.size()];
         Iterator iter = listeners.values().iterator();
@@ -534,7 +537,7 @@
             log.debug("Effective node type for " + ntd + " not yet built.");
         }
         // register nt-definition
-        registeredNTDefs.put(ntd.getQName(), ntd);
+        registeredNTDefs.put(ntd.getName(), ntd);
 
         // store property & child node definitions of new node type by id
         QPropertyDefinition[] pda = ntd.getPropertyDefs();
@@ -551,7 +554,7 @@
         }
     }
 
-    private void internalUnregister(QName name) {
+    private void internalUnregister(Name name) {
         QNodeTypeDefinition ntd = (QNodeTypeDefinition) registeredNTDefs.remove(name);
         entCache.invalidate(name);
 
@@ -574,7 +577,7 @@
 
     private void internalUnregister(Collection ntNames) {
         for (Iterator iter = ntNames.iterator(); iter.hasNext();) {
-            QName name = (QName) iter.next();
+            Name name = (Name) iter.next();
             internalUnregister(name);
         }
     }
@@ -612,10 +615,10 @@
          * will only contain those node type definitions that are known so far.
          *
          * @param nodeTypeName node type name
-         * @return a set of node type <code>QName</code>s
+         * @return a set of node type <code>Name</code>s
          * @throws NoSuchNodeTypeException
          */
-        private Set getDependentNodeTypes(QName nodeTypeName) throws NoSuchNodeTypeException {
+        private Set getDependentNodeTypes(Name nodeTypeName) throws NoSuchNodeTypeException {
             if (!nodetypeDefinitions.containsKey(nodeTypeName)) {
                 throw new NoSuchNodeTypeException(nodeTypeName.toString());
             }
@@ -626,7 +629,7 @@
             while (iter.hasNext()) {
                 QNodeTypeDefinition ntd = (QNodeTypeDefinition) iter.next();
                 if (ntd.getDependencies().contains(nodeTypeName)) {
-                    names.add(ntd.getQName());
+                    names.add(ntd.getName());
                 }
             }
             return names;
@@ -655,7 +658,7 @@
         }
 
         public boolean containsKey(Object key) {
-            if (!(key instanceof QName)) {
+            if (!(key instanceof Name)) {
                 return false;
             }
             return get(key) != null;
@@ -665,7 +668,7 @@
             if (!(value instanceof QNodeTypeDefinition)) {
                 return false;
             }
-            return get(((QNodeTypeDefinition)value).getQName()) != null;
+            return get(((QNodeTypeDefinition)value).getName()) != null;
         }
 
         public Set keySet() {
@@ -703,14 +706,14 @@
         }
 
         public Object get(Object key) {
-            if (!(key instanceof QName)) {
+            if (!(key instanceof Name)) {
                 throw new IllegalArgumentException();
             }
             QNodeTypeDefinition def = (QNodeTypeDefinition) nodetypeDefinitions.get(key);
             if (def == null) {
                 try {
                     // node type does either not exist or hasn't been loaded yet
-                    Iterator it = storage.getDefinitions(new QName[] {(QName) key});
+                    Iterator it = storage.getDefinitions(new Name[] {(Name) key});
                     updateInternalMap(it);
                 } catch (RepositoryException e) {
                     log.debug(e.getMessage());
@@ -729,8 +732,8 @@
             Iterator iter = nodetypeDefinitions.values().iterator();
             while (iter.hasNext()) {
                 QNodeTypeDefinition ntd = (QNodeTypeDefinition) iter.next();
-                ps.println(ntd.getQName());
-                QName[] supertypes = ntd.getSupertypes();
+                ps.println(ntd.getName());
+                Name[] supertypes = ntd.getSupertypes();
                 ps.println("\tSupertypes");
                 for (int i = 0; i < supertypes.length; i++) {
                     ps.println("\t\t" + supertypes[i]);
@@ -742,7 +745,7 @@
                 for (int i = 0; i < pd.length; i++) {
                     ps.print("\tPropertyDefinition");
                     ps.println(" (declared in " + pd[i].getDeclaringNodeType() + ") ");
-                    ps.println("\t\tName\t\t" + (pd[i].definesResidual() ? "*" : pd[i].getQName().toString()));
+                    ps.println("\t\tName\t\t" + (pd[i].definesResidual() ? "*" : pd[i].getName().toString()));
                     String type = pd[i].getRequiredType() == 0 ? "null" : PropertyType.nameFromValue(pd[i].getRequiredType());
                     ps.println("\t\tRequiredType\t" + type);                  
                     String[] vca = pd[i].getValueConstraints();
@@ -785,14 +788,14 @@
                 for (int i = 0; i < nd.length; i++) {
                     ps.print("\tNodeDefinition");
                     ps.println(" (declared in " + nd[i].getDeclaringNodeType() + ") ");
-                    ps.println("\t\tName\t\t" + (nd[i].definesResidual() ? "*" : nd[i].getQName().toString()));
-                    QName[] reqPrimaryTypes = nd[i].getRequiredPrimaryTypes();
+                    ps.println("\t\tName\t\t" + (nd[i].definesResidual() ? "*" : nd[i].getName().toString()));
+                    Name[] reqPrimaryTypes = nd[i].getRequiredPrimaryTypes();
                     if (reqPrimaryTypes != null && reqPrimaryTypes.length > 0) {
                         for (int n = 0; n < reqPrimaryTypes.length; n++) {
                             ps.print("\t\tRequiredPrimaryType\t" + reqPrimaryTypes[n]);
                         }
                     }
-                    QName defPrimaryType = nd[i].getDefaultPrimaryType();
+                    Name defPrimaryType = nd[i].getDefaultPrimaryType();
                     if (defPrimaryType != null) {
                         ps.print("\n\t\tDefaultPrimaryType\t" + defPrimaryType);
                     }

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/NodeTypeRegistryListener.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/NodeTypeRegistryListener.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/NodeTypeRegistryListener.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/NodeTypeRegistryListener.java Thu Oct 18 11:41:45 2007
@@ -16,7 +16,7 @@
  */
 package org.apache.jackrabbit.jcr2spi.nodetype;
 
-import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.spi.Name;
 
 /**
  * The <code>NodeTypeRegistryListener</code> interface allows an implementing
@@ -32,19 +32,19 @@
      *
      * @param ntName name of the node type that has been registered
      */
-    void nodeTypeRegistered(QName ntName);
+    void nodeTypeRegistered(Name ntName);
 
     /**
      * Called when a node type has been re-registered.
      *
      * @param ntName name of the node type that has been registered
      */
-    void nodeTypeReRegistered(QName ntName);
+    void nodeTypeReRegistered(Name ntName);
 
     /**
      * Called when a node type has been deregistered.
      *
      * @param ntName name of the node type that has been unregistered
      */
-    void nodeTypeUnregistered(QName ntName);
+    void nodeTypeUnregistered(Name ntName);
 }

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/NodeTypeStorage.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/NodeTypeStorage.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/NodeTypeStorage.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/NodeTypeStorage.java Thu Oct 18 11:41:45 2007
@@ -16,7 +16,7 @@
  */
 package org.apache.jackrabbit.jcr2spi.nodetype;
 
-import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.spi.Name;
 import org.apache.jackrabbit.spi.QNodeTypeDefinition;
 
 import javax.jcr.nodetype.NoSuchNodeTypeException;
@@ -46,11 +46,11 @@
      * @throws NoSuchNodeTypeException
      * @throws RepositoryException
      */
-    public Iterator getDefinitions(QName[] nodeTypeNames) throws NoSuchNodeTypeException, RepositoryException;
+    public Iterator getDefinitions(Name[] nodeTypeNames) throws NoSuchNodeTypeException, RepositoryException;
 
     public void registerNodeTypes(QNodeTypeDefinition[] nodeTypeDefs) throws NoSuchNodeTypeException, RepositoryException;
 
     public void reregisterNodeTypes(QNodeTypeDefinition[] nodeTypeDefs) throws NoSuchNodeTypeException, RepositoryException;
 
-    public void unregisterNodeTypes(QName[] nodeTypeNames) throws NoSuchNodeTypeException, RepositoryException;
+    public void unregisterNodeTypes(Name[] nodeTypeNames) throws NoSuchNodeTypeException, RepositoryException;
 }

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/PropertyDefinitionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/PropertyDefinitionImpl.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/PropertyDefinitionImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/PropertyDefinitionImpl.java Thu Oct 18 11:41:45 2007
@@ -16,10 +16,11 @@
  */
 package org.apache.jackrabbit.jcr2spi.nodetype;
 
-import org.apache.jackrabbit.name.NamespaceResolver;
 import org.apache.jackrabbit.spi.QPropertyDefinition;
 import org.apache.jackrabbit.spi.QValue;
 import org.apache.jackrabbit.value.ValueFormat;
+import org.apache.jackrabbit.conversion.NamePathResolver;
+import org.apache.jackrabbit.nodetype.InvalidConstraintException;
 import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
 
@@ -31,7 +32,7 @@
 /**
  * This class implements the <code>PropertyDefinition</code> interface.
  * All method calls are delegated to the wrapped {@link QPropertyDefinition},
- * performing the translation from <code>QName</code>s to JCR names
+ * performing the translation from <code>Name</code>s to JCR names
  * (and vice versa) where necessary.
  */
 public class PropertyDefinitionImpl extends ItemDefinitionImpl implements PropertyDefinition {
@@ -48,11 +49,11 @@
      *
      * @param propDef    property definition
      * @param ntMgr      node type manager
-     * @param nsResolver namespace resolver
+     * @param resolver
      */
     PropertyDefinitionImpl(QPropertyDefinition propDef, NodeTypeManagerImpl ntMgr,
-                           NamespaceResolver nsResolver, ValueFactory valueFactory) {
-        super(propDef, ntMgr, nsResolver);
+                           NamePathResolver resolver, ValueFactory valueFactory) {
+        super(propDef, ntMgr, resolver);
         this.valueFactory = valueFactory;
     }
 
@@ -70,7 +71,7 @@
         Value[] values = new Value[defVals.length];
         for (int i = 0; i < defVals.length; i++) {
             try {
-                values[i] = ValueFormat.getJCRValue(defVals[i], nsResolver, valueFactory);
+                values[i] = ValueFormat.getJCRValue(defVals[i], resolver, valueFactory);
             } catch (RepositoryException e) {
                 // should never get here
                 String propName = (getName() == null) ? "[null]" : getName();
@@ -101,7 +102,7 @@
             String[] vca = new String[constraints.length];
             for (int i = 0; i < constraints.length; i++) {
                 ValueConstraint constr = ValueConstraint.create(pd.getRequiredType(), constraints[i]);
-                vca[i] = constr.getDefinition(nsResolver);
+                vca[i] = constr.getDefinition(resolver);
             }
             return vca;
         } catch (InvalidConstraintException e) {

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/ValueConstraint.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/ValueConstraint.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/ValueConstraint.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/ValueConstraint.java Thu Oct 18 11:41:45 2007
@@ -16,25 +16,25 @@
  */
 package org.apache.jackrabbit.jcr2spi.nodetype;
 
-import org.apache.jackrabbit.name.IllegalNameException;
-import org.apache.jackrabbit.name.MalformedPathException;
-import org.apache.jackrabbit.name.NamespaceResolver;
-import org.apache.jackrabbit.name.NoPrefixDeclaredException;
-import org.apache.jackrabbit.name.UnknownPrefixException;
-import org.apache.jackrabbit.name.NameException;
-import org.apache.jackrabbit.name.NameFormat;
-import org.apache.jackrabbit.name.QName;
-import org.apache.jackrabbit.name.Path;
-import org.apache.jackrabbit.name.PathFormat;
+import org.apache.jackrabbit.conversion.NamePathResolver;
+import org.apache.jackrabbit.conversion.NameResolver;
+import org.apache.jackrabbit.conversion.NameException;
+import org.apache.jackrabbit.conversion.PathResolver;
+import org.apache.jackrabbit.spi.Name;
+import org.apache.jackrabbit.spi.Path;
 import org.apache.jackrabbit.spi.QPropertyDefinition;
 import org.apache.jackrabbit.spi.QValue;
 import org.apache.jackrabbit.value.DateValue;
+import org.apache.jackrabbit.nodetype.InvalidConstraintException;
+import org.apache.jackrabbit.name.PathFactoryImpl;
+import org.apache.jackrabbit.name.NameFactoryImpl;
 import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
 
 import javax.jcr.PropertyType;
 import javax.jcr.RepositoryException;
 import javax.jcr.ValueFormatException;
+import javax.jcr.NamespaceException;
 import javax.jcr.nodetype.ConstraintViolationException;
 import java.util.Calendar;
 import java.util.regex.Matcher;
@@ -72,8 +72,9 @@
      *
      * @return the definition of this constraint.
      * @see #getQualifiedDefinition()
+     * @param resolver
      */
-    public String getDefinition(NamespaceResolver nsResolver) {
+    public String getDefinition(NamePathResolver resolver) {
         return qualifiedDefinition;
     }
 
@@ -81,7 +82,7 @@
      * By default the qualified definition is the same as the JCR definition.
      *
      * @return the qualified definition String
-     * @see #getDefinition(NamespaceResolver)
+     * @see #getDefinition(NamePathResolver)
      */
     public String getQualifiedDefinition() {
         return qualifiedDefinition;
@@ -171,12 +172,12 @@
      *
      * @param type
      * @param definition
-     * @param nsResolver
+     * @param resolver
      * @return
      * @throws InvalidConstraintException
      */
     public static ValueConstraint create(int type, String definition,
-                                         NamespaceResolver nsResolver)
+                                         NamePathResolver resolver)
             throws InvalidConstraintException {
         if (definition == null) {
             throw new IllegalArgumentException("Illegal definition (null) for ValueConstraint.");
@@ -199,13 +200,13 @@
                 return new NumericConstraint(definition);
 
             case PropertyType.NAME:
-                return new NameConstraint(definition, nsResolver);
+                return new NameConstraint(definition, resolver);
 
             case PropertyType.PATH:
-                return new PathConstraint(definition, nsResolver);
+                return new PathConstraint(definition, resolver);
 
             case PropertyType.REFERENCE:
-                return new ReferenceConstraint(definition, nsResolver);
+                return new ReferenceConstraint(definition, resolver);
 
             default:
                 throw new IllegalArgumentException("Unknown/unsupported target type for constraint: " + PropertyType.nameFromValue(type));
@@ -621,6 +622,7 @@
  * <code>PathConstraint</code> ...
  */
 class PathConstraint extends ValueConstraint {
+
     final Path path;
     final boolean deep;
 
@@ -628,10 +630,11 @@
         super(qualifiedDefinition);
         // constraint format: qualified absolute or relative path with optional trailing wildcard
         deep = qualifiedDefinition.endsWith("*");
-        path = Path.valueOf(qualifiedDefinition);
+        // TODO improve. don't rely on a specific factory impl
+        path = PathFactoryImpl.getInstance().create(qualifiedDefinition);
     }
 
-    PathConstraint(String definition, NamespaceResolver nsResolver)
+    PathConstraint(String definition, PathResolver resolver)
             throws InvalidConstraintException {
         super(definition);
 
@@ -642,23 +645,28 @@
             definition = definition.substring(0, definition.length() - 1);
         }
         try {
-            path = PathFormat.parse(definition, nsResolver);
-        } catch (MalformedPathException mpe) {
+            path = resolver.getQPath(definition);
+        } catch (NameException e) {
+            String msg = "Invalid path expression specified as value constraint: " + definition;
+            log.debug(msg);
+            throw new InvalidConstraintException(msg, e);
+        } catch (NamespaceException e) {
             String msg = "Invalid path expression specified as value constraint: " + definition;
             log.debug(msg);
-            throw new InvalidConstraintException(msg, mpe);
+            throw new InvalidConstraintException(msg, e);
         }
     }
 
     /**
-     * Uses {@link PathFormat#format(Path, NamespaceResolver)} to convert the
+     * Uses {@link NamePathResolver#getJCRPath(Path)} to convert the
      * qualified <code>Path</code> into a JCR path.
      *
-     * @see ValueConstraint#getDefinition(NamespaceResolver)
+     * @see ValueConstraint#getDefinition(NamePathResolver)
+     * @param resolver
      */
-    public String getDefinition(NamespaceResolver nsResolver) {
+    public String getDefinition(NamePathResolver resolver) {
         try {
-            String p = PathFormat.format(path, nsResolver);
+            String p = resolver.getJCRPath(path);
             if (!deep) {
                 return p;
             } else if (path.denotesRoot()) {
@@ -666,7 +674,7 @@
             } else {
                 return p + "/*";
             }
-        } catch (NoPrefixDeclaredException npde) {
+        } catch (NamespaceException e) {
             // should never get here, return raw definition as fallback
             return getQualifiedDefinition();
         }
@@ -697,7 +705,7 @@
                 try {
                     p0 = path.getNormalizedPath();
                     p1 = p.getNormalizedPath();
-                } catch (MalformedPathException e) {
+                } catch (RepositoryException e) {
                     throw new ConstraintViolationException("path not valid: " + e);
                 }
                 if (deep) {
@@ -707,7 +715,7 @@
                                 + " does not satisfy the constraint '"
                                 + getQualifiedDefinition() + "'");
                         }
-                    } catch (MalformedPathException e) {
+                    } catch (RepositoryException e) {
                         // can't compare relative with absolute path
                         throw new ConstraintViolationException(p
                             + " does not satisfy the constraint '"
@@ -738,44 +746,45 @@
  */
 class NameConstraint extends ValueConstraint {
 
-    private final QName name;
+    private final Name name;
 
     NameConstraint(String qualifiedDefinition) {
         super(qualifiedDefinition);
         // constraint format: String representation of qualified name
-        name = QName.valueOf(qualifiedDefinition);
+        // TODO improve. don't rely on a specific factory impl
+        name = NameFactoryImpl.getInstance().create(qualifiedDefinition);
     }
 
-    NameConstraint(String definition, NamespaceResolver nsResolver)
+    NameConstraint(String definition, NameResolver resolver)
             throws InvalidConstraintException {
         super(definition);
         // constraint format: JCR name in prefix form
         try {
-            NameFormat.checkFormat(definition);
-            name = NameFormat.parse(definition, nsResolver);
-        } catch (IllegalNameException ine) {
+            name = resolver.getQName(definition);
+        } catch (NameException e) {
             String msg = "invalid name specified as value constraint: "
                     + definition;
             log.debug(msg);
-            throw new InvalidConstraintException(msg, ine);
-        } catch (NameException upe) {
+            throw new InvalidConstraintException(msg, e);
+        } catch (NamespaceException e) {
             String msg = "invalid name specified as value constraint: "
                     + definition;
             log.debug(msg);
-            throw new InvalidConstraintException(msg, upe);
+            throw new InvalidConstraintException(msg, e);
         }
     }
 
     /**
-     * Uses {@link NameFormat#format(QName, NamespaceResolver)} to convert the
-     * qualified <code>QName</code> into a JCR name.
+     * Uses {@link NamePathResolver#getJCRName(Name)} to convert the
+     * qualified <code>Name</code> into a JCR name.
      *
-     * @see ValueConstraint#getDefinition(NamespaceResolver)
+     * @see ValueConstraint#getDefinition(NamePathResolver)
+     * @param resolver
      */
-    public String getDefinition(NamespaceResolver nsResolver) {
+    public String getDefinition(NamePathResolver resolver) {
         try {
-            return NameFormat.format(name, nsResolver);
-        } catch (NoPrefixDeclaredException npde) {
+            return resolver.getJCRName(name);
+        } catch (NamespaceException e) {
             // should never get here, return raw definition as fallback
             return getQualifiedDefinition();
         }
@@ -800,7 +809,7 @@
         }
         switch (value.getType()) {
             case PropertyType.NAME:
-                QName n = value.getQName();
+                Name n = value.getName();
                 if (!name.equals(n)) {
                     throw new ConstraintViolationException(n
                             + " does not satisfy the constraint '"
@@ -823,43 +832,50 @@
  */
 class ReferenceConstraint extends ValueConstraint {
 
-    private final QName ntName;
+    private final Name ntName;
 
     ReferenceConstraint(String qualifiedDefinition) {
         super(qualifiedDefinition);
         // format: qualified node type name
-        ntName = QName.valueOf(qualifiedDefinition);
+        // TODO improve. don't rely on a specific factory impl
+        ntName = NameFactoryImpl.getInstance().create(qualifiedDefinition);
     }
 
-    ReferenceConstraint(String definition, NamespaceResolver nsResolver) throws InvalidConstraintException {
+    ReferenceConstraint(String definition, NamePathResolver resolver) throws InvalidConstraintException {
         super(definition);
 
         // format: node type name
         try {
-            ntName = NameFormat.parse(definition, nsResolver);
-        } catch (IllegalNameException ine) {
+            ntName = resolver.getQName(definition);
+        } catch (org.apache.jackrabbit.conversion.IllegalNameException ine) {
             String msg = "invalid node type name specified as value constraint: "
                     + definition;
             log.debug(msg);
             throw new InvalidConstraintException(msg, ine);
-        } catch (UnknownPrefixException upe) {
+        } catch (NameException e) {
+            String msg = "invalid node type name specified as value constraint: "
+                    + definition;
+            log.debug(msg);
+            throw new InvalidConstraintException(msg, e);
+        } catch (NamespaceException e) {
             String msg = "invalid node type name specified as value constraint: "
                     + definition;
             log.debug(msg);
-            throw new InvalidConstraintException(msg, upe);
+            throw new InvalidConstraintException(msg, e);
         }
     }
 
     /**
-     * Uses {@link NameFormat#format(QName, NamespaceResolver)} to convert the
+     * Uses {@link NamePathResolver#getJCRName(Name)} to convert the
      * qualified nodetype name into a JCR name.
      *
-     * @see ValueConstraint#getDefinition(NamespaceResolver)
+     * @see ValueConstraint#getDefinition(NamePathResolver)
+     * @param resolver
      */
-    public String getDefinition(NamespaceResolver nsResolver) {
+    public String getDefinition(NamePathResolver resolver) {
         try {
-            return NameFormat.format(ntName, nsResolver);
-        } catch (NoPrefixDeclaredException npde) {
+            return resolver.getJCRName(ntName);
+        } catch (NamespaceException npde) {
             // should never get here, return raw definition as fallback
             return getQualifiedDefinition();
         }

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/observation/EventImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/observation/EventImpl.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/observation/EventImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/observation/EventImpl.java Thu Oct 18 11:41:45 2007
@@ -16,9 +16,7 @@
  */
 package org.apache.jackrabbit.jcr2spi.observation;
 
-import org.apache.jackrabbit.name.NoPrefixDeclaredException;
-import org.apache.jackrabbit.name.PathFormat;
-import org.apache.jackrabbit.name.NamespaceResolver;
+import org.apache.jackrabbit.conversion.NamePathResolver;
 import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
 
@@ -39,7 +37,7 @@
      * The session of the {@link javax.jcr.observation.EventListener} this
      * event will be delivered to.
      */
-    private final NamespaceResolver nsResolver;
+    private final NamePathResolver resolver;
 
     /**
      * The underlying SPI event.
@@ -55,13 +53,11 @@
      * Creates a new {@link javax.jcr.observation.Event} instance based on an
      * {@link org.apache.jackrabbit.spi.Event SPI Event}.
      *
-     * @param nsResolver <code>NamespaceResolver</code> attached to the session
-     * of the registerd <code>EventListener</code>, where this <code>Event</code>
-     * will be delivered to.
+     * @param resolver
      * @param event   the underlying SPI <code>Event</code>.
      */
-    EventImpl(NamespaceResolver nsResolver, org.apache.jackrabbit.spi.Event event) {
-        this.nsResolver = nsResolver;
+    EventImpl(NamePathResolver resolver, org.apache.jackrabbit.spi.Event event) {
+        this.resolver = resolver;
         this.event = event;
     }
 
@@ -76,13 +72,7 @@
      * {@inheritDoc}
      */
     public String getPath() throws RepositoryException {
-        try {
-            return PathFormat.format(event.getQPath(), nsResolver);
-        } catch (NoPrefixDeclaredException e) {
-            String msg = "internal error: encountered unregistered namespace in path";
-            log.debug(msg);
-            throw new RepositoryException(msg, e);
-        }
+        return resolver.getJCRPath(event.getPath());
     }
 
     /**

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/observation/FilteredEventIterator.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/observation/FilteredEventIterator.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/observation/FilteredEventIterator.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/observation/FilteredEventIterator.java Thu Oct 18 11:41:45 2007
@@ -20,7 +20,7 @@
 import org.slf4j.Logger;
 import org.apache.jackrabbit.spi.EventBundle;
 import org.apache.jackrabbit.spi.EventFilter;
-import org.apache.jackrabbit.name.NamespaceResolver;
+import org.apache.jackrabbit.conversion.NamePathResolver;
 
 import javax.jcr.observation.Event;
 import javax.jcr.observation.EventIterator;
@@ -56,7 +56,7 @@
     /**
      * The namespace resolver of the session that created this event iterator.
      */
-    private final NamespaceResolver nsResolver;
+    private final NamePathResolver resolver;
 
     /**
      * The next {@link javax.jcr.observation.Event} in this iterator
@@ -75,16 +75,15 @@
      *                   bundle.
      * @param filter     only event that pass the filter will be dispatched to
      *                   the event listener.
-     * @param nsResolver the namespace resolver of the session that created this
-     *                   <code>FilteredEventIterator</code>.
+     * @param resolver
      */
     public FilteredEventIterator(EventBundle events,
                                  EventFilter filter,
-                                 NamespaceResolver nsResolver) {
+                                 NamePathResolver resolver) {
         this.actualEvents = events.getEvents();
         this.filter = filter;
         this.isLocal = events.isLocal();
-        this.nsResolver = nsResolver;
+        this.resolver = resolver;
         fetchNext();
     }
 
@@ -162,7 +161,7 @@
         next = null;
         while (next == null && actualEvents.hasNext()) {
             event = (org.apache.jackrabbit.spi.Event) actualEvents.next();
-            next = filter.accept(event, isLocal) ? new EventImpl(nsResolver, event) : null;
+            next = filter.accept(event, isLocal) ? new EventImpl(resolver, event) : null;
         }
     }
 }

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/observation/ObservationManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/observation/ObservationManagerImpl.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/observation/ObservationManagerImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/observation/ObservationManagerImpl.java Thu Oct 18 11:41:45 2007
@@ -18,16 +18,13 @@
 
 import org.apache.jackrabbit.jcr2spi.nodetype.NodeTypeRegistry;
 import org.apache.jackrabbit.jcr2spi.WorkspaceManager;
-import org.apache.jackrabbit.name.MalformedPathException;
-import org.apache.jackrabbit.name.NameException;
-import org.apache.jackrabbit.name.NameFormat;
-import org.apache.jackrabbit.name.NamespaceResolver;
-import org.apache.jackrabbit.name.Path;
-import org.apache.jackrabbit.name.PathFormat;
-import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.spi.Path;
+import org.apache.jackrabbit.spi.Name;
 import org.apache.jackrabbit.spi.EventBundle;
 import org.apache.jackrabbit.spi.EventFilter;
 import org.apache.jackrabbit.util.IteratorHelper;
+import org.apache.jackrabbit.conversion.NamePathResolver;
+import org.apache.jackrabbit.conversion.NameException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -60,7 +57,7 @@
     /**
      * The session this observation manager belongs to.
      */
-    private final NamespaceResolver nsResolver;
+    private final NamePathResolver resolver;
 
     /**
      * The <code>NodeTypeRegistry</code> of the session.
@@ -86,13 +83,13 @@
     /**
      * Creates a new observation manager for <code>session</code>.
      * @param wspManager the WorkspaceManager.
-     * @param nsResolver NamespaceResolver to be used by this observation manager
-     * is based on.
+     * @param resolver
      * @param ntRegistry The <code>NodeTypeRegistry</code> of the session.
      */
-    public ObservationManagerImpl(WorkspaceManager wspManager, NamespaceResolver nsResolver, NodeTypeRegistry ntRegistry) {
+    public ObservationManagerImpl(WorkspaceManager wspManager, NamePathResolver resolver,
+                                  NodeTypeRegistry ntRegistry) {
         this.wspManager = wspManager;
-        this.nsResolver = nsResolver;
+        this.resolver = resolver;
         this.ntRegistry = ntRegistry;
     }
 
@@ -112,31 +109,31 @@
         }
         Path path;
         try {
-            path = PathFormat.parse(absPath, nsResolver).getCanonicalPath();
-        } catch (MalformedPathException e) {
+            path = resolver.getQPath(absPath).getCanonicalPath();
+        } catch (NameException e) {
             throw new RepositoryException("Malformed path: " + absPath);
         }
 
         // create NodeType instances from names
-        QName[] nodeTypeQNames;
+        Name[] qNodeTypeNames;
         if (nodeTypeNames == null) {
-            nodeTypeQNames = null;
+            qNodeTypeNames = null;
         } else {
             try {
-                nodeTypeQNames = new QName[nodeTypeNames.length];
+                qNodeTypeNames = new Name[nodeTypeNames.length];
                 for (int i = 0; i < nodeTypeNames.length; i++) {
-                    QName ntName = NameFormat.parse(nodeTypeNames[i], nsResolver);
+                    Name ntName = resolver.getQName(nodeTypeNames[i]);
                     if (!ntRegistry.isRegistered(ntName)) {
                         throw new RepositoryException("unknown node type: " + nodeTypeNames[i]);
                     }
-                    nodeTypeQNames[i] = ntName;
+                    qNodeTypeNames[i] = ntName;
                 }
             } catch (NameException e) {
                 throw new RepositoryException(e.getMessage());
             }
         }
 
-        EventFilter filter = wspManager.createEventFilter(eventTypes, path, isDeep, uuids, nodeTypeQNames, noLocal);
+        EventFilter filter = wspManager.createEventFilter(eventTypes, path, isDeep, uuids, qNodeTypeNames, noLocal);
         synchronized (subscriptions) {
             subscriptions.put(listener, filter);
             readOnlySubscriptions = null;
@@ -188,7 +185,7 @@
             Map.Entry entry = (Map.Entry) it.next();
             EventListener listener = (EventListener) entry.getKey();
             EventFilter filter = (EventFilter) entry.getValue();
-            FilteredEventIterator eventIter = new FilteredEventIterator(eventBundle, filter, nsResolver);
+            FilteredEventIterator eventIter = new FilteredEventIterator(eventBundle, filter, resolver);
             if (eventIter.hasNext()) {
                 try {
                     listener.onEvent(eventIter);

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/AbstractCopy.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/AbstractCopy.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/AbstractCopy.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/AbstractCopy.java Thu Oct 18 11:41:45 2007
@@ -20,8 +20,8 @@
 import org.apache.jackrabbit.jcr2spi.state.NodeState;
 import org.apache.jackrabbit.jcr2spi.ManagerProvider;
 import org.apache.jackrabbit.jcr2spi.util.LogUtil;
-import org.apache.jackrabbit.name.Path;
-import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.spi.Path;
+import org.apache.jackrabbit.spi.Name;
 import org.apache.jackrabbit.spi.NodeId;
 import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
@@ -38,7 +38,7 @@
 
     final NodeState destParentState;
     private final NodeState srcState;
-    private final QName destName;
+    private final Name destName;
     private final String srcWorkspaceName;
 
     /**
@@ -53,13 +53,13 @@
 
         ItemState srcItemState = srcMgrProvider.getHierarchyManager().getItemState(srcPath);
         if (!srcItemState.isNode()) {
-            throw new PathNotFoundException("Source path " + LogUtil.safeGetJCRPath(srcPath, srcMgrProvider.getNamespaceResolver()) + " is not a valid path.");
+            throw new PathNotFoundException("Source path " + LogUtil.safeGetJCRPath(srcPath, srcMgrProvider.getPathResolver()) + " is not a valid path.");
         }
         this.srcState = (NodeState)srcItemState;
-        this.destParentState = getNodeState(destPath.getAncestor(1), destMgrProvider.getHierarchyManager(), destMgrProvider.getNamespaceResolver());
+        this.destParentState = getNodeState(destPath.getAncestor(1), destMgrProvider.getHierarchyManager(), destMgrProvider.getNamePathResolver());
 
         // check for illegal index present in destination path
-        Path.PathElement destElement = destPath.getNameElement();
+        Path.Element destElement = destPath.getNameElement();
         int index = destElement.getIndex();
         if (index > Path.INDEX_UNDEFINED) {
             // subscript in name element
@@ -96,7 +96,7 @@
         return destParentState.getNodeId();
     }
 
-    public QName getDestinationName() {
+    public Name getDestinationName() {
         return destName;
     }
 }

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/AbstractOperation.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/AbstractOperation.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/AbstractOperation.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/AbstractOperation.java Thu Oct 18 11:41:45 2007
@@ -16,12 +16,12 @@
  */
 package org.apache.jackrabbit.jcr2spi.operation;
 
-import org.apache.jackrabbit.name.Path;
-import org.apache.jackrabbit.name.NamespaceResolver;
+import org.apache.jackrabbit.spi.Path;
 import org.apache.jackrabbit.jcr2spi.hierarchy.HierarchyManager;
 import org.apache.jackrabbit.jcr2spi.state.ItemState;
 import org.apache.jackrabbit.jcr2spi.state.NodeState;
 import org.apache.jackrabbit.jcr2spi.util.LogUtil;
+import org.apache.jackrabbit.conversion.PathResolver;
 
 import javax.jcr.PathNotFoundException;
 import javax.jcr.RepositoryException;
@@ -69,15 +69,15 @@
      * 
      * @param nodePath
      * @param hierMgr
-     * @param nsResolver
+     * @param resolver
      * @return
      * @throws PathNotFoundException
      * @throws RepositoryException
      */
-    protected static NodeState getNodeState(Path nodePath, HierarchyManager hierMgr, NamespaceResolver nsResolver) throws PathNotFoundException, RepositoryException {
+    protected static NodeState getNodeState(Path nodePath, HierarchyManager hierMgr, PathResolver resolver) throws PathNotFoundException, RepositoryException {
         ItemState itemState = hierMgr.getItemState(nodePath);
         if (!itemState.isNode()) {
-            throw new PathNotFoundException(LogUtil.safeGetJCRPath(nodePath, nsResolver));
+            throw new PathNotFoundException(LogUtil.safeGetJCRPath(nodePath, resolver));
         }
         return (NodeState) itemState;
     }

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/AddLabel.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/AddLabel.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/AddLabel.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/AddLabel.java Thu Oct 18 11:41:45 2007
@@ -18,11 +18,12 @@
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.apache.jackrabbit.name.QName;
-import org.apache.jackrabbit.name.Path;
+import org.apache.jackrabbit.spi.Name;
+import org.apache.jackrabbit.spi.Path;
 import org.apache.jackrabbit.jcr2spi.state.NodeState;
 import org.apache.jackrabbit.jcr2spi.hierarchy.NodeEntry;
 import org.apache.jackrabbit.spi.NodeId;
+import org.apache.jackrabbit.name.NameConstants;
 
 import javax.jcr.RepositoryException;
 import javax.jcr.AccessDeniedException;
@@ -41,10 +42,10 @@
 
     private final NodeState versionHistoryState;
     private final NodeState versionState;
-    private final QName label;
+    private final Name label;
     private final boolean moveLabel;
 
-    private AddLabel(NodeState versionHistoryState, NodeState versionState, QName label, boolean moveLabel) {
+    private AddLabel(NodeState versionHistoryState, NodeState versionState, Name label, boolean moveLabel) {
         this.versionHistoryState = versionHistoryState;
         this.versionState = versionState;
         this.label = label;
@@ -78,7 +79,7 @@
     public void persisted() {
         try {
             NodeEntry vhEntry = (NodeEntry) versionHistoryState.getHierarchyEntry();
-            NodeEntry lnEntry = vhEntry.getNodeEntry(QName.JCR_VERSIONLABELS, Path.INDEX_DEFAULT);
+            NodeEntry lnEntry = vhEntry.getNodeEntry(NameConstants.JCR_VERSIONLABELS, Path.INDEX_DEFAULT);
             if (lnEntry != null) {
                 lnEntry.invalidate(moveLabel);
             }
@@ -95,7 +96,7 @@
         return versionState.getNodeEntry().getWorkspaceId();
     }
 
-    public QName getLabel() {
+    public Name getLabel() {
         return label;
     }
 
@@ -112,7 +113,7 @@
      * @param moveLabel
      * @return
      */
-    public static Operation create(NodeState versionHistoryState, NodeState versionState, QName label, boolean moveLabel) {
+    public static Operation create(NodeState versionHistoryState, NodeState versionState, Name label, boolean moveLabel) {
         return new AddLabel(versionHistoryState, versionState, label, moveLabel);
     }
 }

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/AddNode.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/AddNode.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/AddNode.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/AddNode.java Thu Oct 18 11:41:45 2007
@@ -17,7 +17,7 @@
 package org.apache.jackrabbit.jcr2spi.operation;
 
 import org.apache.jackrabbit.jcr2spi.state.NodeState;
-import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.spi.Name;
 import org.apache.jackrabbit.spi.NodeId;
 import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
@@ -40,11 +40,11 @@
 
     private final NodeId parentId;
     private final NodeState parentState;
-    private final QName nodeName;
-    private final QName nodeTypeName;
+    private final Name nodeName;
+    private final Name nodeTypeName;
     private final String uuid;
 
-    private AddNode(NodeState parentState, QName nodeName, QName nodeTypeName, String uuid) {
+    private AddNode(NodeState parentState, Name nodeName, Name nodeTypeName, String uuid) {
         this.parentId = parentState.getNodeId();
         this.parentState = parentState;
         this.nodeName = nodeName;
@@ -80,11 +80,11 @@
         return parentState;
     }
 
-    public QName getNodeName() {
+    public Name getNodeName() {
         return nodeName;
     }
 
-    public QName getNodeTypeName() {
+    public Name getNodeTypeName() {
         return nodeTypeName;
     }
 
@@ -94,8 +94,8 @@
 
     //------------------------------------------------------------< Factory >---
 
-    public static Operation create(NodeState parentState, QName nodeName,
-                                   QName nodeTypeName, String uuid) {
+    public static Operation create(NodeState parentState, Name nodeName,
+                                   Name nodeTypeName, String uuid) {
         AddNode an = new AddNode(parentState, nodeName, nodeTypeName, uuid);
         return an;
     }

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/AddProperty.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/AddProperty.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/AddProperty.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/AddProperty.java Thu Oct 18 11:41:45 2007
@@ -19,7 +19,7 @@
 import org.apache.jackrabbit.spi.QPropertyDefinition;
 import org.apache.jackrabbit.spi.QValue;
 import org.apache.jackrabbit.spi.NodeId;
-import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.spi.Name;
 import org.apache.jackrabbit.jcr2spi.state.NodeState;
 
 import javax.jcr.RepositoryException;
@@ -38,13 +38,13 @@
 
     private final NodeId parentId;
     private final NodeState parentState;
-    private final QName propertyName;
+    private final Name propertyName;
     private final int propertyType;
     private final QValue[] values;
 
     private final QPropertyDefinition definition;
 
-    private AddProperty(NodeState parentState, QName propName, int propertyType, QValue[] values, QPropertyDefinition definition) {
+    private AddProperty(NodeState parentState, Name propName, int propertyType, QValue[] values, QPropertyDefinition definition) {
         this.parentId = parentState.getNodeId();
         this.parentState = parentState;
         this.propertyName = propName;
@@ -81,7 +81,7 @@
         return parentState;
     }
 
-    public QName getPropertyName() {
+    public Name getPropertyName() {
         return propertyName;
     }
 
@@ -111,7 +111,7 @@
      * @param values
      * @return
      */
-    public static Operation create(NodeState parentState, QName propName, int propertyType,
+    public static Operation create(NodeState parentState, Name propName, int propertyType,
                                    QPropertyDefinition def, QValue[] values) {
         AddProperty ap = new AddProperty(parentState, propName, propertyType, values, def);
         return ap;

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Clone.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Clone.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Clone.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Clone.java Thu Oct 18 11:41:45 2007
@@ -18,7 +18,7 @@
 
 import org.apache.jackrabbit.jcr2spi.ManagerProvider;
 import org.apache.jackrabbit.jcr2spi.hierarchy.HierarchyEntry;
-import org.apache.jackrabbit.name.Path;
+import org.apache.jackrabbit.spi.Path;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Copy.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Copy.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Copy.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Copy.java Thu Oct 18 11:41:45 2007
@@ -17,7 +17,7 @@
 package org.apache.jackrabbit.jcr2spi.operation;
 
 import org.apache.jackrabbit.jcr2spi.ManagerProvider;
-import org.apache.jackrabbit.name.Path;
+import org.apache.jackrabbit.spi.Path;
 
 import javax.jcr.RepositoryException;
 import javax.jcr.AccessDeniedException;

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Move.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Move.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Move.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Move.java Thu Oct 18 11:41:45 2007
@@ -20,11 +20,10 @@
 import org.apache.jackrabbit.jcr2spi.hierarchy.HierarchyManager;
 import org.apache.jackrabbit.jcr2spi.hierarchy.NodeEntry;
 import org.apache.jackrabbit.jcr2spi.state.NodeState;
-import org.apache.jackrabbit.name.Path;
-import org.apache.jackrabbit.name.QName;
-import org.apache.jackrabbit.name.MalformedPathException;
-import org.apache.jackrabbit.name.NamespaceResolver;
+import org.apache.jackrabbit.spi.Path;
+import org.apache.jackrabbit.spi.Name;
 import org.apache.jackrabbit.spi.NodeId;
+import org.apache.jackrabbit.conversion.PathResolver;
 import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
 
@@ -47,7 +46,7 @@
 
     private final NodeId srcId;
     private final NodeId destParentId;
-    private final QName destName;
+    private final Name destName;
 
     private final NodeState srcState;
     private final NodeState srcParentState;
@@ -55,7 +54,8 @@
 
     private final boolean sessionMove;
 
-    private Move(NodeState srcNodeState, NodeState srcParentState, NodeState destParentState, QName destName, boolean sessionMove) {
+    private Move(NodeState srcNodeState, NodeState srcParentState, NodeState destParentState, Name destName, boolean sessionMove) {
+
         this.srcId = (NodeId) srcNodeState.getId();
         this.destParentId = destParentState.getNodeId();
         this.destName = destName;
@@ -124,48 +124,42 @@
         return destParentState;
     }
 
-    public QName getDestinationName() {
+    public Name getDestinationName() {
         return destName;
     }
 
     //------------------------------------------------------------< Factory >---
     public static Operation create(Path srcPath, Path destPath,
                                    HierarchyManager hierMgr,
-                                   NamespaceResolver nsResolver,
-                                   boolean sessionMove)
+                                                    PathResolver resolver,
+                                                    boolean sessionMove)
         throws ItemExistsException, NoSuchNodeTypeException, RepositoryException {
         // src must not be ancestor of destination
-        try {
-            if (srcPath.isAncestorOf(destPath)) {
-                String msg = "Invalid destination path: cannot be descendant of source path (" + LogUtil.safeGetJCRPath(destPath, nsResolver) + "," + LogUtil.safeGetJCRPath(srcPath, nsResolver) + ")";
-                log.debug(msg);
-                throw new RepositoryException(msg);
-            }
-        } catch (MalformedPathException e) {
-            String msg = "Invalid destination path: cannot be descendant of source path (" +LogUtil.safeGetJCRPath(destPath, nsResolver) + "," + LogUtil.safeGetJCRPath(srcPath, nsResolver) + ")";
+        if (srcPath.isAncestorOf(destPath)) {
+            String msg = "Invalid destination path: cannot be descendant of source path (" + LogUtil.safeGetJCRPath(destPath, resolver) + "," + LogUtil.safeGetJCRPath(srcPath, resolver) + ")";
             log.debug(msg);
-            throw new RepositoryException(msg, e);
+            throw new RepositoryException(msg);
         }
-        Path.PathElement destElement = destPath.getNameElement();
+        Path.Element destElement = destPath.getNameElement();
         // destination must not contain an index
         int index = destElement.getIndex();
         if (index > Path.INDEX_UNDEFINED) {
             // subscript in name element
-            String msg = "Invalid destination path: subscript in name element is not allowed (" + LogUtil.safeGetJCRPath(destPath, nsResolver) + ")";
+            String msg = "Invalid destination path: subscript in name element is not allowed (" + LogUtil.safeGetJCRPath(destPath, resolver) + ")";
             log.debug(msg);
             throw new RepositoryException(msg);
         }
         // root node cannot be moved:
-        if (Path.ROOT.equals(srcPath) || Path.ROOT.equals(destPath)) {
+        if (srcPath.denotesRoot() || destPath.denotesRoot()) {
             String msg = "Cannot move the root node.";
             log.debug(msg);
             throw new RepositoryException(msg);
         }
 
-        NodeState srcState = getNodeState(srcPath, hierMgr, nsResolver);
-        NodeState srcParentState = getNodeState(srcPath.getAncestor(1), hierMgr, nsResolver);
-        NodeState destParentState = getNodeState(destPath.getAncestor(1), hierMgr, nsResolver);
-        QName destName = destElement.getName();
+        NodeState srcState = getNodeState(srcPath, hierMgr, resolver);
+        NodeState srcParentState = getNodeState(srcPath.getAncestor(1), hierMgr, resolver);
+        NodeState destParentState = getNodeState(destPath.getAncestor(1), hierMgr, resolver);
+        Name destName = destElement.getName();
 
         // for session-move perform a lazy check for existing items at destination.
         // since the hierarchy may not be complete it is possible that an conflict

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/RemoveLabel.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/RemoveLabel.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/RemoveLabel.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/RemoveLabel.java Thu Oct 18 11:41:45 2007
@@ -18,11 +18,12 @@
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.apache.jackrabbit.name.QName;
-import org.apache.jackrabbit.name.Path;
+import org.apache.jackrabbit.spi.Name;
+import org.apache.jackrabbit.spi.Path;
 import org.apache.jackrabbit.jcr2spi.state.NodeState;
 import org.apache.jackrabbit.jcr2spi.hierarchy.NodeEntry;
 import org.apache.jackrabbit.spi.NodeId;
+import org.apache.jackrabbit.name.NameConstants;
 
 import javax.jcr.RepositoryException;
 import javax.jcr.AccessDeniedException;
@@ -41,9 +42,9 @@
 
     private final NodeState versionHistoryState;
     private final NodeState versionState;
-    private final QName label;
+    private final Name label;
 
-    private RemoveLabel(NodeState versionHistoryState, NodeState versionState, QName label) {
+    private RemoveLabel(NodeState versionHistoryState, NodeState versionState, Name label) {
         this.versionHistoryState = versionHistoryState;
         this.versionState = versionState;
         this.label = label;
@@ -75,7 +76,7 @@
     public void persisted() {
         try {
             NodeEntry vhEntry = (NodeEntry) versionHistoryState.getHierarchyEntry();
-            NodeEntry lnEntry = vhEntry.getNodeEntry(QName.JCR_VERSIONLABELS, Path.INDEX_DEFAULT);
+            NodeEntry lnEntry = vhEntry.getNodeEntry(NameConstants.JCR_VERSIONLABELS, Path.INDEX_DEFAULT);
             if (lnEntry != null) {
                 lnEntry.invalidate(true);
             }
@@ -93,7 +94,7 @@
         return versionState.getNodeEntry().getWorkspaceId();
     }
 
-    public QName getLabel() {
+    public Name getLabel() {
         return label;
     }
 
@@ -105,7 +106,7 @@
      * @param label
      * @return
      */
-    public static Operation create(NodeState versionHistoryState, NodeState versionState, QName label) {
+    public static Operation create(NodeState versionHistoryState, NodeState versionState, Name label) {
         return new RemoveLabel(versionHistoryState, versionState, label);
     }
 }

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/ReorderNodes.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/ReorderNodes.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/ReorderNodes.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/ReorderNodes.java Thu Oct 18 11:41:45 2007
@@ -17,7 +17,7 @@
 package org.apache.jackrabbit.jcr2spi.operation;
 
 import org.apache.jackrabbit.jcr2spi.state.NodeState;
-import org.apache.jackrabbit.name.Path;
+import org.apache.jackrabbit.spi.Path;
 import org.apache.jackrabbit.spi.NodeId;
 
 import javax.jcr.nodetype.ConstraintViolationException;
@@ -97,8 +97,8 @@
 
     //------------------------------------------------------------< Factory >---
 
-    public static Operation create(NodeState parentState, Path.PathElement srcName,
-                                   Path.PathElement beforeName) throws ItemNotFoundException, RepositoryException {
+    public static Operation create(NodeState parentState, Path.Element srcName,
+                                   Path.Element beforeName) throws ItemNotFoundException, RepositoryException {
         NodeState insert = parentState.getChildNodeState(srcName.getName(), srcName.getNormalizedIndex());
         NodeState before = (beforeName == null) ? null : parentState.getChildNodeState(beforeName.getName(), beforeName.getNormalizedIndex());
         return new ReorderNodes(parentState, insert, before);

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Restore.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Restore.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Restore.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Restore.java Thu Oct 18 11:41:45 2007
@@ -18,7 +18,7 @@
 
 import org.apache.jackrabbit.jcr2spi.state.NodeState;
 import org.apache.jackrabbit.jcr2spi.hierarchy.NodeEntry;
-import org.apache.jackrabbit.name.Path;
+import org.apache.jackrabbit.spi.Path;
 import org.apache.jackrabbit.spi.NodeId;
 
 import javax.jcr.RepositoryException;

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/SetMixin.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/SetMixin.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/SetMixin.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/SetMixin.java Thu Oct 18 11:41:45 2007
@@ -16,9 +16,10 @@
  */
 package org.apache.jackrabbit.jcr2spi.operation;
 
-import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.spi.Name;
 import org.apache.jackrabbit.jcr2spi.state.NodeState;
 import org.apache.jackrabbit.spi.NodeId;
+import org.apache.jackrabbit.name.NameConstants;
 
 import javax.jcr.RepositoryException;
 import javax.jcr.AccessDeniedException;
@@ -33,9 +34,9 @@
 
     private final NodeId nodeId;
     private final NodeState nodeState;
-    private final QName[] mixinNames;
+    private final Name[] mixinNames;
 
-    private SetMixin(NodeState nodeState, QName[] mixinNames) {
+    private SetMixin(NodeState nodeState, Name[] mixinNames) {
         this.nodeState = nodeState;
         this.nodeId = nodeState.getNodeId();
         this.mixinNames = mixinNames;
@@ -45,7 +46,7 @@
         // add the jcr:mixinTypes property state as affected if it already exists
         // and therefore gets modified by this operation.
         try {
-            addAffectedItemState(nodeState.getPropertyState(QName.JCR_MIXINTYPES));
+            addAffectedItemState(nodeState.getPropertyState(NameConstants.JCR_MIXINTYPES));
         } catch (RepositoryException e) {
             // jcr:mixinTypes does not exist -> ignore
         }
@@ -79,13 +80,13 @@
         return nodeId;
     }
     
-    public QName[] getMixinNames() {
+    public Name[] getMixinNames() {
         return mixinNames;
     }
 
     //------------------------------------------------------------< Factory >---
 
-    public static Operation create(NodeState nodeState, QName[] mixinNames) {
+    public static Operation create(NodeState nodeState, Name[] mixinNames) {
         SetMixin sm = new SetMixin(nodeState, mixinNames);
         return sm;
     }

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryImpl.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryImpl.java Thu Oct 18 11:41:45 2007
@@ -20,13 +20,10 @@
 import org.apache.jackrabbit.jcr2spi.WorkspaceManager;
 import org.apache.jackrabbit.jcr2spi.hierarchy.HierarchyManager;
 import org.apache.jackrabbit.jcr2spi.name.LocalNamespaceMappings;
-import org.apache.jackrabbit.name.MalformedPathException;
-import org.apache.jackrabbit.name.NoPrefixDeclaredException;
-import org.apache.jackrabbit.name.Path;
-import org.apache.jackrabbit.name.PathFormat;
-import org.apache.jackrabbit.name.QName;
-import org.apache.jackrabbit.name.NameFormat;
+import org.apache.jackrabbit.spi.Path;
+import org.apache.jackrabbit.name.NameConstants;
 import org.apache.jackrabbit.spi.QueryInfo;
+import org.apache.jackrabbit.conversion.NamePathResolver;
 
 import javax.jcr.ItemExistsException;
 import javax.jcr.ItemNotFoundException;
@@ -58,6 +55,11 @@
     private final LocalNamespaceMappings nsResolver;
 
     /**
+     * Name and Path resolver
+     */
+    private final NamePathResolver resolver;
+
+    /**
      * The item manager of the session that executes this query.
      */
     private final ItemManager itemManager;
@@ -93,6 +95,7 @@
      *
      * @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.
      * @param wspManager       the workspace manager that belongs to the
@@ -101,12 +104,13 @@
      * @param language         the language of the query statement.
      * @throws InvalidQueryException if the query is invalid.
      */
-    public QueryImpl(Session session, LocalNamespaceMappings nsResolver,
+    public QueryImpl(Session session, LocalNamespaceMappings nsResolver, 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;
@@ -121,6 +125,7 @@
      *
      * @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
      * @param wspManager the workspace manager that belongs to the session.
@@ -129,32 +134,29 @@
      * @throws RepositoryException   if another error occurs while reading from
      *                               the node.
      */
-    public QueryImpl(Session session, LocalNamespaceMappings nsResolver,
+    public QueryImpl(Session session, LocalNamespaceMappings nsResolver, 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;
         this.wspManager = wspManager;
 
-        try {
-            if (!node.isNodeType(NameFormat.format(QName.NT_QUERY, nsResolver))) {
-                throw new InvalidQueryException("Node is not of type nt:query");
-            }
-            if (node.getSession() != session) {
-                throw new InvalidQueryException("Node belongs to a different session.");
-            }
-            statement = node.getProperty(NameFormat.format(QName.JCR_STATEMENT, nsResolver)).getString();
-            language = node.getProperty(NameFormat.format(QName.JCR_LANGUAGE, nsResolver)).getString();
-            this.wspManager.checkQueryStatement(statement, language,
-                    nsResolver.getLocalNamespaceMappings());
-        } catch (NoPrefixDeclaredException e) {
-            throw new RepositoryException(e.getMessage(), e);
+        if (!node.isNodeType(resolver.getJCRName(NameConstants.NT_QUERY))) {
+            throw new InvalidQueryException("Node is not of type nt:query");
         }
+        if (node.getSession() != session) {
+            throw new InvalidQueryException("Node belongs to a different session.");
+        }
+        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());
     }
 
     /**
@@ -164,7 +166,7 @@
         QueryInfo qI = wspManager.executeQuery(statement, language,
                 nsResolver.getLocalNamespaceMappings());
         return new QueryResultImpl(itemManager, hierarchyManager,
-                qI, nsResolver, session.getValueFactory());
+                qI, resolver, session.getValueFactory());
     }
 
     /**
@@ -199,25 +201,23 @@
         LockException, UnsupportedRepositoryOperationException, RepositoryException {
 
         try {
-            Path p = PathFormat.parse(absPath, nsResolver).getNormalizedPath();
+            Path p = resolver.getQPath(absPath).getNormalizedPath();
             if (!p.isAbsolute()) {
                 throw new RepositoryException(absPath + " is not an absolute path");
             }
-            String jcrParent = PathFormat.format(p.getAncestor(1), nsResolver);
+            String jcrParent = resolver.getJCRPath(p.getAncestor(1));
             if (!session.itemExists(jcrParent)) {
                 throw new PathNotFoundException(jcrParent);
             }
-            String relPath = PathFormat.format(p, nsResolver).substring(1);
-            String ntName = NameFormat.format(QName.NT_QUERY, nsResolver);
+            String relPath = resolver.getJCRPath(p).substring(1);
+            String ntName = resolver.getJCRName(NameConstants.NT_QUERY);
             Node queryNode = session.getRootNode().addNode(relPath, ntName);
             // set properties
-            queryNode.setProperty(NameFormat.format(QName.JCR_LANGUAGE, nsResolver), language);
-            queryNode.setProperty(NameFormat.format(QName.JCR_STATEMENT, nsResolver), statement);
+            queryNode.setProperty(resolver.getJCRName(NameConstants.JCR_LANGUAGE), language);
+            queryNode.setProperty(resolver.getJCRName(NameConstants.JCR_STATEMENT), statement);
             node = queryNode;
             return node;
-        } catch (MalformedPathException e) {
-            throw new RepositoryException(e.getMessage(), e);
-        } catch (NoPrefixDeclaredException e) {
+        } catch (org.apache.jackrabbit.conversion.NameException e) {
             throw new RepositoryException(e.getMessage(), e);
         }
     }

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryManagerImpl.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryManagerImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryManagerImpl.java Thu Oct 18 11:41:45 2007
@@ -20,6 +20,7 @@
 import org.apache.jackrabbit.jcr2spi.WorkspaceManager;
 import org.apache.jackrabbit.jcr2spi.hierarchy.HierarchyManager;
 import org.apache.jackrabbit.jcr2spi.name.LocalNamespaceMappings;
+import org.apache.jackrabbit.conversion.NamePathResolver;
 
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
@@ -44,6 +45,11 @@
     private final LocalNamespaceMappings nsResolver;
 
     /**
+     * Name and Path resolver
+     */
+    private final NamePathResolver resolver;
+
+    /**
      * The <code>ItemManager</code> of for item retrieval in search results
      */
     private final ItemManager itemMgr;
@@ -70,11 +76,13 @@
      */
     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;
         this.wspManager = wspManager;
@@ -86,7 +94,7 @@
     public Query createQuery(String statement, String language)
             throws InvalidQueryException, RepositoryException {
         checkIsAlive();
-        QueryImpl query = new QueryImpl(session, nsResolver, itemMgr, hierarchyManager, wspManager, statement, language);
+        QueryImpl query = new QueryImpl(session, nsResolver, resolver, itemMgr, hierarchyManager, wspManager, statement, language);
         return query;
     }
 
@@ -96,7 +104,7 @@
     public Query getQuery(Node node)
             throws InvalidQueryException, RepositoryException {
         checkIsAlive();
-        QueryImpl query = new QueryImpl(session, nsResolver, itemMgr, hierarchyManager, wspManager, node);
+        QueryImpl query = new QueryImpl(session, nsResolver, resolver, itemMgr, hierarchyManager, wspManager, node);
         return query;
     }
 

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryResultImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryResultImpl.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryResultImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryResultImpl.java Thu Oct 18 11:41:45 2007
@@ -18,11 +18,9 @@
 
 import org.apache.jackrabbit.jcr2spi.ItemManager;
 import org.apache.jackrabbit.jcr2spi.hierarchy.HierarchyManager;
-import org.apache.jackrabbit.name.NamespaceResolver;
-import org.apache.jackrabbit.name.NoPrefixDeclaredException;
-import org.apache.jackrabbit.name.QName;
-import org.apache.jackrabbit.name.NameFormat;
+import org.apache.jackrabbit.spi.Name;
 import org.apache.jackrabbit.spi.QueryInfo;
+import org.apache.jackrabbit.conversion.NamePathResolver;
 import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
 
@@ -58,9 +56,9 @@
     private final QueryInfo queryInfo;
 
     /**
-     * The namespace nsResolver of the session executing the query
+     * The namespace nameResolver of the session executing the query
      */
-    private final NamespaceResolver nsResolver;
+    private final NamePathResolver resolver;
 
     /**
      * The JCR value factory.
@@ -74,17 +72,16 @@
      * @param hierarchyMgr the HierarchyManager of the session executing the
      *                     query.
      * @param queryInfo    the spi query result.
-     * @param nsResolver   the namespace nsResolver of the session executing the
-     *                     query.
+     * @param resolver
      * @param valueFactory the JCR value factory.
      */
     QueryResultImpl(ItemManager itemMgr, HierarchyManager hierarchyMgr,
-                    QueryInfo queryInfo, NamespaceResolver nsResolver,
+                    QueryInfo queryInfo, NamePathResolver resolver,
                     ValueFactory valueFactory) {
         this.itemMgr = itemMgr;
         this.hierarchyMgr = hierarchyMgr;
         this.queryInfo = queryInfo;
-        this.nsResolver = nsResolver;
+        this.resolver = resolver;
         this.valueFactory = valueFactory;
     }
 
@@ -92,19 +89,12 @@
      * {@inheritDoc}
      */
     public String[] getColumnNames() throws RepositoryException {
-        try {
-            QName[] names = queryInfo.getColumnNames();
-            String[] propNames = new String[names.length];
-            for (int i = 0; i < names.length; i++) {
-                propNames[i] = NameFormat.format(names[i], nsResolver);
-            }
-            return propNames;
-        } catch (NoPrefixDeclaredException npde) {
-            String msg = "encountered invalid property name";
-            log.debug(msg);
-            throw new RepositoryException(msg, npde);
-
+        Name[] names = queryInfo.getColumnNames();
+        String[] propNames = new String[names.length];
+        for (int i = 0; i < names.length; i++) {
+            propNames[i] = resolver.getJCRName(names[i]);
         }
+        return propNames;
     }
 
     /**
@@ -118,7 +108,7 @@
      * {@inheritDoc}
      */
     public RowIterator getRows() throws RepositoryException {
-        return new RowIteratorImpl(queryInfo, nsResolver, valueFactory);
+        return new RowIteratorImpl(queryInfo, resolver, valueFactory);
     }
 
     /**