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 [1/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/...

Author: angela
Date: Thu Oct 18 11:41:45 2007
New Revision: 586065

URL: http://svn.apache.org/viewvc?rev=586065&view=rev
Log:
JCR-996 Name and Path interfaces in SPI
JCR-1169 Distribution of commons classes

Modified:
    jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/JCR2SPI2JCRRepositoryStub.java
    jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/JCR2SPIRepositoryStub.java
    jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/RepositorySetup.java
    jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/TestAll.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ItemImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ItemManager.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ItemManagerImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ManagerProvider.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/PropertyImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/SessionImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/ChildNodeAttic.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/ChildNodeEntries.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/ChildNodeEntriesImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/ChildPropertyEntries.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/ChildPropertyEntriesImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/EntryFactory.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/HierarchyEntry.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/HierarchyEntryImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/HierarchyEventListener.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/HierarchyManager.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/HierarchyManagerImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/NodeEntry.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/NodeEntryImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/PropertyEntryImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/lock/LockManagerImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/name/LocalNamespaceMappings.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/name/NamespaceCache.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/name/NamespaceRegistryImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/BitsetENTCacheImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/DefinitionValidator.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/EffectiveNodeType.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/EffectiveNodeTypeCache.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/EffectiveNodeTypeImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/EffectiveNodeTypeProvider.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/ItemDefinitionImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/ItemDefinitionProvider.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/ItemDefinitionProviderImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/NodeDefinitionImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/NodeTypeCache.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/NodeTypeImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/NodeTypeManagerImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/NodeTypeRegistry.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/NodeTypeRegistryImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/NodeTypeRegistryListener.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/NodeTypeStorage.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/PropertyDefinitionImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/nodetype/ValueConstraint.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/observation/EventImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/observation/FilteredEventIterator.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/observation/ObservationManagerImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/AbstractCopy.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/AbstractOperation.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/AddLabel.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/AddNode.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/AddProperty.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Clone.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Copy.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Move.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/RemoveLabel.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/ReorderNodes.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/Restore.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/operation/SetMixin.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryManagerImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/QueryResultImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/query/RowIteratorImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/security/AccessManager.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/ChangeLog.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/ItemState.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/ItemStateValidator.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/NodeState.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/SessionItemStateManager.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/TransientISFactory.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/TransientItemStateFactory.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/TransientItemStateManager.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/state/WorkspaceItemStateFactory.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/util/LogUtil.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/util/StateUtility.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/DefaultVersionManager.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionHistoryImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionManager.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/version/VersionManagerImpl.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/xml/AbstractSAXEventGenerator.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/xml/DocViewImportHandler.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/xml/DocViewSAXEventGenerator.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/xml/ImportHandler.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/xml/Importer.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/xml/SessionImporter.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/xml/SysViewImportHandler.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/xml/SysViewSAXEventGenerator.java
    jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/xml/TargetImportHandler.java
    jackrabbit/trunk/contrib/spi/spi-logger/src/main/java/org/apache/jackrabbit/spi/logger/RepositoryServiceLogger.java
    jackrabbit/trunk/contrib/spi/spi-rmi/src/main/java/org/apache/jackrabbit/spi/rmi/client/ClientBatch.java
    jackrabbit/trunk/contrib/spi/spi-rmi/src/main/java/org/apache/jackrabbit/spi/rmi/client/ClientQueryInfo.java
    jackrabbit/trunk/contrib/spi/spi-rmi/src/main/java/org/apache/jackrabbit/spi/rmi/client/ClientRepositoryService.java
    jackrabbit/trunk/contrib/spi/spi-rmi/src/main/java/org/apache/jackrabbit/spi/rmi/common/ItemInfoImpl.java
    jackrabbit/trunk/contrib/spi/spi-rmi/src/main/java/org/apache/jackrabbit/spi/rmi/remote/RemoteQueryInfo.java
    jackrabbit/trunk/contrib/spi/spi-rmi/src/main/java/org/apache/jackrabbit/spi/rmi/remote/RemoteRepositoryService.java
    jackrabbit/trunk/contrib/spi/spi-rmi/src/main/java/org/apache/jackrabbit/spi/rmi/server/ServerQueryInfo.java
    jackrabbit/trunk/contrib/spi/spi-rmi/src/main/java/org/apache/jackrabbit/spi/rmi/server/ServerRepositoryService.java
    jackrabbit/trunk/contrib/spi/spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/EventImpl.java
    jackrabbit/trunk/contrib/spi/spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/ItemInfoImpl.java
    jackrabbit/trunk/contrib/spi/spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/NamespaceResolverImpl.java
    jackrabbit/trunk/contrib/spi/spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/NodeInfoImpl.java
    jackrabbit/trunk/contrib/spi/spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/PropertyInfoImpl.java
    jackrabbit/trunk/contrib/spi/spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/QItemDefinitionImpl.java
    jackrabbit/trunk/contrib/spi/spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/QNodeDefinitionImpl.java
    jackrabbit/trunk/contrib/spi/spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/QNodeTypeDefinitionImpl.java
    jackrabbit/trunk/contrib/spi/spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/QPropertyDefinitionImpl.java
    jackrabbit/trunk/contrib/spi/spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/QueryInfoImpl.java
    jackrabbit/trunk/contrib/spi/spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/RepositoryServiceImpl.java
    jackrabbit/trunk/contrib/spi/spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/URIResolver.java
    jackrabbit/trunk/contrib/spi/spi2dav/src/main/java/org/apache/jackrabbit/spi2dav/URIResolverImpl.java
    jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/BatchReadConfig.java
    jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/ChildInfoImpl.java
    jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/EventSubscription.java
    jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/IdFactoryImpl.java
    jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/LockInfoImpl.java
    jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/NodeInfoImpl.java
    jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/PropertyInfoImpl.java
    jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/QNodeDefinitionImpl.java
    jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/QNodeTypeDefinitionImpl.java
    jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/QPropertyDefinitionImpl.java
    jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/QueryInfoImpl.java
    jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/QueryResultRowImpl.java
    jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/RepositoryServiceImpl.java
    jackrabbit/trunk/contrib/spi/spi2jcr/src/main/java/org/apache/jackrabbit/spi2jcr/SessionInfoImpl.java

Modified: jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/JCR2SPI2JCRRepositoryStub.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/JCR2SPI2JCRRepositoryStub.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/JCR2SPI2JCRRepositoryStub.java (original)
+++ jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/JCR2SPI2JCRRepositoryStub.java Thu Oct 18 11:41:45 2007
@@ -20,7 +20,7 @@
 import org.apache.jackrabbit.spi2jcr.RepositoryServiceImpl;
 import org.apache.jackrabbit.spi2jcr.BatchReadConfig;
 import org.apache.jackrabbit.spi.RepositoryService;
-import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.name.NameConstants;
 
 import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
@@ -80,8 +80,8 @@
 
         // TODO: make configurable
         BatchReadConfig brconfig = new BatchReadConfig();
-        brconfig.setDepth(QName.NT_FILE, BatchReadConfig.DEPTH_INFINITE);
-        brconfig.setDepth(QName.NT_RESOURCE, BatchReadConfig.DEPTH_INFINITE);
+        brconfig.setDepth(NameConstants.NT_FILE, BatchReadConfig.DEPTH_INFINITE);
+        brconfig.setDepth(NameConstants.NT_RESOURCE, BatchReadConfig.DEPTH_INFINITE);
 
         return new RepositoryServiceImpl(jackrabbitRepo, brconfig);
     }

Modified: jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/JCR2SPIRepositoryStub.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/JCR2SPIRepositoryStub.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/JCR2SPIRepositoryStub.java (original)
+++ jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/JCR2SPIRepositoryStub.java Thu Oct 18 11:41:45 2007
@@ -22,7 +22,11 @@
 import org.apache.jackrabbit.jcr2spi.config.RepositoryConfig;
 import org.apache.jackrabbit.spi.RepositoryService;
 import org.apache.jackrabbit.spi.IdFactory;
+import org.apache.jackrabbit.spi.NameFactory;
+import org.apache.jackrabbit.spi.PathFactory;
 import org.apache.jackrabbit.value.ValueFactoryImplEx;
+import org.apache.jackrabbit.name.NameFactoryImpl;
+import org.apache.jackrabbit.name.PathFactoryImpl;
 import org.apache.log4j.PropertyConfigurator;
 
 import javax.jcr.Repository;
@@ -68,7 +72,9 @@
 
                 final IdFactory idFactory = IdFactoryImpl.getInstance();
                 final ValueFactory vFactory = ValueFactoryImplEx.getInstance();
-                final RepositoryServiceImpl webdavRepoService = new RepositoryServiceImpl(url, idFactory, vFactory);
+                final NameFactory nFactory = NameFactoryImpl.getInstance();
+                final PathFactory pFactory = PathFactoryImpl.getInstance();
+                final RepositoryServiceImpl webdavRepoService = new RepositoryServiceImpl(url, idFactory, nFactory, pFactory, vFactory);
 
                 RepositoryConfig config = new AbstractRepositoryConfig() {
                     public RepositoryService getRepositoryService() {

Modified: jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/RepositorySetup.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/RepositorySetup.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/RepositorySetup.java (original)
+++ jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/RepositorySetup.java Thu Oct 18 11:41:45 2007
@@ -21,7 +21,7 @@
 import org.apache.jackrabbit.core.nodetype.xml.NodeTypeReader;
 import org.apache.jackrabbit.core.nodetype.NodeTypeDef;
 import org.apache.jackrabbit.core.nodetype.NodeTypeManagerImpl;
-import org.apache.jackrabbit.BaseException;
+import org.apache.jackrabbit.core.nodetype.InvalidNodeTypeDefException;
 
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
@@ -200,9 +200,11 @@
                         }
                     }
                     ntMgr.getNodeTypeRegistry().registerNodeTypes(unregisteredNTs);
-                } catch (BaseException e) {
-                    throw new RepositoryException(e.getMessage());
                 } catch (IOException e) {
+                    throw new RepositoryException(e.getMessage());
+                } catch (InvalidNodeTypeDefException e) {
+                    throw new RepositoryException(e.getMessage());
+                } catch (org.apache.jackrabbit.name.NameException e) {
                     throw new RepositoryException(e.getMessage());
                 } finally {
                     try {

Modified: jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/TestAll.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/TestAll.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/TestAll.java (original)
+++ jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/TestAll.java Thu Oct 18 11:41:45 2007
@@ -67,6 +67,7 @@
         suite.addTestSuite(RenameTest.class);
 
         // reorder
+        /*
         suite.addTestSuite(ReorderTest.class);
         suite.addTestSuite(ReorderReferenceableSNSTest.class);
         suite.addTestSuite(ReorderSNSTest.class);
@@ -75,7 +76,7 @@
         suite.addTestSuite(ReorderNewAndSavedTest.class);
         suite.addTestSuite(ReorderMixedTest.class);
         suite.addTestSuite(ReorderMoveTest.class);
-
+        */
         // update
         suite.addTestSuite(UpdateTest.class);
 

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ItemImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ItemImpl.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ItemImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ItemImpl.java Thu Oct 18 11:41:45 2007
@@ -27,10 +27,8 @@
 import org.apache.jackrabbit.jcr2spi.util.LogUtil;
 import org.apache.jackrabbit.jcr2spi.config.CacheBehaviour;
 import org.apache.jackrabbit.jcr2spi.hierarchy.NodeEntry;
-import org.apache.jackrabbit.name.NoPrefixDeclaredException;
-import org.apache.jackrabbit.name.Path;
-import org.apache.jackrabbit.name.QName;
-import org.apache.jackrabbit.name.PathFormat;
+import org.apache.jackrabbit.spi.Path;
+import org.apache.jackrabbit.spi.Name;
 import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
 
@@ -95,14 +93,7 @@
      */
     public String getPath() throws RepositoryException {
         checkStatus();
-        try {
-            return PathFormat.format(getQPath(), session.getNamespaceResolver());
-        } catch (NoPrefixDeclaredException npde) {
-            // should never get here...
-            String msg = "Internal error: encountered unregistered namespace";
-            log.debug(msg);
-            throw new RepositoryException(msg, npde);
-        }
+        return session.getPathResolver().getJCRPath(getQPath());
     }
 
     /**
@@ -504,13 +495,13 @@
     //------------------------------------< Implementation specific methods >---
     /**
      * Same as <code>{@link Item#getName()}</code> except that
-     * this method returns a <code>QName</code> instead of a
+     * this method returns a <code>Name</code> instead of a
      * <code>String</code>.
      *
-     * @return the name of this item as <code>QName</code>
+     * @return the name of this item as <code>Name</code>
      * @throws RepositoryException if an error occurs.
      */
-    abstract QName getQName() throws RepositoryException;
+    abstract Name getQName() throws RepositoryException;
 
     /**
      * Returns the primary path to this <code>Item</code>.
@@ -537,6 +528,6 @@
      * @return JCR path
      */
     String safeGetJCRPath() {
-        return LogUtil.safeGetJCRPath(getItemState(), session.getNamespaceResolver());
+        return LogUtil.safeGetJCRPath(getItemState(), session.getPathResolver());
     }
 }

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

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ItemManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ItemManagerImpl.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ItemManagerImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ItemManagerImpl.java Thu Oct 18 11:41:45 2007
@@ -27,8 +27,9 @@
 import org.apache.jackrabbit.jcr2spi.util.LogUtil;
 import org.apache.jackrabbit.jcr2spi.version.VersionHistoryImpl;
 import org.apache.jackrabbit.jcr2spi.version.VersionImpl;
-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.name.NameConstants;
 import org.apache.commons.collections.map.ReferenceMap;
 import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
@@ -145,7 +146,7 @@
         try {
             return getItem(itemEntry);
         } catch (ItemNotFoundException infe) {
-            throw new PathNotFoundException(LogUtil.safeGetJCRPath(path, session.getNamespaceResolver()));
+            throw new PathNotFoundException(LogUtil.safeGetJCRPath(path, session.getPathResolver()));
         }
     }
 
@@ -328,7 +329,7 @@
             } else {
                 ps.print("- ");
             }
-            ps.println(state + "\t" + LogUtil.safeGetJCRPath(state, session.getNamespaceResolver()) + " (" + item + ")");
+            ps.println(state + "\t" + LogUtil.safeGetJCRPath(state, session.getPathResolver()) + " (" + item + ")");
         }
     }
 
@@ -344,11 +345,11 @@
         ItemLifeCycleListener[] listeners = new ItemLifeCycleListener[]{this};
 
         // check special nodes
-        QName ntName = state.getNodeTypeName();
-        if (QName.NT_VERSION.equals(ntName)) {
+        Name ntName = state.getNodeTypeName();
+        if (NameConstants.NT_VERSION.equals(ntName)) {
             // version
             return new VersionImpl(this, session, state, listeners);
-        } else if (QName.NT_VERSIONHISTORY.equals(ntName)) {
+        } else if (NameConstants.NT_VERSIONHISTORY.equals(ntName)) {
             // version-history
             return new VersionHistoryImpl(this, session, state, listeners);
         } else {

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ManagerProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ManagerProvider.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ManagerProvider.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/ManagerProvider.java Thu Oct 18 11:41:45 2007
@@ -16,7 +16,7 @@
  */
 package org.apache.jackrabbit.jcr2spi;
 
-import org.apache.jackrabbit.name.NamespaceResolver;
+import org.apache.jackrabbit.namespace.NamespaceResolver;
 import org.apache.jackrabbit.jcr2spi.hierarchy.HierarchyManager;
 import org.apache.jackrabbit.jcr2spi.security.AccessManager;
 import org.apache.jackrabbit.jcr2spi.lock.LockManager;
@@ -24,6 +24,7 @@
 import org.apache.jackrabbit.jcr2spi.nodetype.ItemDefinitionProvider;
 import org.apache.jackrabbit.jcr2spi.nodetype.EffectiveNodeTypeProvider;
 import org.apache.jackrabbit.spi.QValueFactory;
+import org.apache.jackrabbit.conversion.NameResolver;
 
 import javax.jcr.ValueFactory;
 import javax.jcr.RepositoryException;
@@ -32,6 +33,12 @@
  * <code>ManagerProvider</code>...
  */
 public interface ManagerProvider {
+
+    public org.apache.jackrabbit.conversion.NamePathResolver getNamePathResolver();
+
+    public NameResolver getNameResolver();
+
+    public org.apache.jackrabbit.conversion.PathResolver getPathResolver();
 
     public NamespaceResolver getNamespaceResolver();
 

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/NodeImpl.java Thu Oct 18 11:41:45 2007
@@ -20,20 +20,16 @@
 import org.apache.jackrabbit.util.IteratorHelper;
 import org.apache.jackrabbit.value.ValueHelper;
 import org.apache.jackrabbit.value.ValueFormat;
-import org.apache.jackrabbit.name.MalformedPathException;
-import org.apache.jackrabbit.name.NoPrefixDeclaredException;
-import org.apache.jackrabbit.name.NameException;
-import org.apache.jackrabbit.name.QName;
-import org.apache.jackrabbit.name.Path;
-import org.apache.jackrabbit.name.PathFormat;
-import org.apache.jackrabbit.name.NameFormat;
+import org.apache.jackrabbit.conversion.NameException;
+import org.apache.jackrabbit.spi.Name;
+import org.apache.jackrabbit.spi.Path;
 import org.apache.jackrabbit.jcr2spi.state.NodeState;
 import org.apache.jackrabbit.jcr2spi.state.ItemStateValidator;
 import org.apache.jackrabbit.jcr2spi.state.NodeReferences;
 import org.apache.jackrabbit.jcr2spi.state.Status;
 import org.apache.jackrabbit.jcr2spi.nodetype.NodeTypeManagerImpl;
 import org.apache.jackrabbit.jcr2spi.nodetype.EffectiveNodeType;
-import org.apache.jackrabbit.jcr2spi.nodetype.NodeTypeConflictException;
+import org.apache.jackrabbit.nodetype.NodeTypeConflictException;
 import org.apache.jackrabbit.jcr2spi.nodetype.NodeTypeImpl;
 import org.apache.jackrabbit.jcr2spi.operation.SetMixin;
 import org.apache.jackrabbit.jcr2spi.operation.AddProperty;
@@ -50,6 +46,7 @@
 import org.apache.jackrabbit.spi.QPropertyDefinition;
 import org.apache.jackrabbit.spi.QNodeDefinition;
 import org.apache.jackrabbit.spi.QValue;
+import org.apache.jackrabbit.name.NameConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -95,12 +92,12 @@
 
     private static Logger log = LoggerFactory.getLogger(NodeImpl.class);
 
-    private QName primaryTypeName;
+    private Name primaryTypeName;
 
     protected NodeImpl(ItemManager itemMgr, SessionImpl session,
                        NodeState state, ItemLifeCycleListener[] listeners) {
         super(itemMgr, session, state, listeners);
-        QName nodeTypeName = state.getNodeTypeName();
+        Name nodeTypeName = state.getNodeTypeName();
         // make sure the nodetype name is valid
         if (session.getNodeTypeManager().hasNodeType(nodeTypeName)) {
             primaryTypeName = nodeTypeName;
@@ -108,7 +105,7 @@
             // should not occur. Since nodetypes are defined by the 'server'
             // its not possible to determine a fallback nodetype that is
             // always available.
-            throw new IllegalArgumentException("Unknown nodetype " + LogUtil.saveGetJCRName(nodeTypeName, session.getNamespaceResolver()));
+            throw new IllegalArgumentException("Unknown nodetype " + LogUtil.saveGetJCRName(nodeTypeName, session.getNameResolver()));
         }
     }
 
@@ -118,15 +115,8 @@
      */
     public String getName() throws RepositoryException {
         checkStatus();
-        QName qName = getQName();
-        try {
-            return NameFormat.format(getQName(), session.getNamespaceResolver());
-        } catch (NoPrefixDeclaredException e) {
-            // should never get here...
-            String msg = "Internal error while resolving qualified name " + qName.toString();
-            log.debug(msg);
-            throw new RepositoryException(msg, e);
-        }
+        Name qName = getQName();
+        return session.getNameResolver().getJCRName(getQName());
     }
 
     /**
@@ -177,7 +167,7 @@
         try {
             Item parent = itemMgr.getItem(parentPath);
             if (!parent.isNode()) {
-                String msg = "Cannot add a node to property " + LogUtil.safeGetJCRPath(parentPath, session.getNamespaceResolver());
+                String msg = "Cannot add a node to property " + LogUtil.safeGetJCRPath(parentPath, session.getPathResolver());
                 log.debug(msg);
                 throw new ConstraintViolationException(msg);
             } else if (!(parent instanceof NodeImpl)) {
@@ -193,8 +183,8 @@
         }
 
         // 2. get qualified names for node and nt
-        QName nodeName = nodePath.getNameElement().getName();
-        QName ntName = (primaryNodeTypeName == null) ? null : getQName(primaryNodeTypeName);
+        Name nodeName = nodePath.getNameElement().getName();
+        Name ntName = (primaryNodeTypeName == null) ? null : getQName(primaryNodeTypeName);
 
         // 3. create new node (including validation checks)
         return parentNode.createNode(nodeName, ntName);
@@ -224,8 +214,8 @@
             throw new ItemNotFoundException("Node " + safeGetJCRPath() + " has no child node with name " + destChildRelPath);
         }
 
-        Path.PathElement srcName = getReorderPath(srcChildRelPath).getNameElement();
-        Path.PathElement beforeName = (destChildRelPath == null) ? null : getReorderPath(destChildRelPath).getNameElement();
+        Path.Element srcName = getReorderPath(srcChildRelPath).getNameElement();
+        Path.Element beforeName = (destChildRelPath == null) ? null : getReorderPath(destChildRelPath).getNameElement();
 
         Operation op = ReorderNodes.create(getNodeState(), srcName, beforeName);
         session.getSessionItemStateManager().execute(op);
@@ -248,11 +238,11 @@
      */
     public Property setProperty(String name, Value value, int type) throws ValueFormatException, VersionException, LockException, ConstraintViolationException, RepositoryException {
         checkIsWritable();
-        QName propQName = getQName(name);
+        Name propName = getQName(name);
         Property prop;
-        if (hasProperty(propQName)) {
+        if (hasProperty(propName)) {
             // property already exists: pass call to property
-            prop = getProperty(propQName);
+            prop = getProperty(propName);
             Value v = (type == PropertyType.UNDEFINED) ? value : ValueHelper.convert(value, type, session.getValueFactory());
             prop.setValue(v);
         } else {
@@ -261,7 +251,7 @@
                 throw new ItemNotFoundException("Cannot remove a non-existing property.");
             } else {
                 // new property to be added
-                prop = createProperty(propQName, value, type);
+                prop = createProperty(propName, value, type);
             }
         }
         return prop;
@@ -286,7 +276,7 @@
      */
     public Property setProperty(String name, Value[] values, int type) throws ValueFormatException, VersionException, LockException, ConstraintViolationException, RepositoryException {
         checkIsWritable();
-        QName propName = getQName(name);
+        Name propName = getQName(name);
         Property prop;
         if (hasProperty(propName)) {
             // property already exists: pass call to property
@@ -398,7 +388,7 @@
         if (value == null) {
             v = null;
         } else {
-            PropertyImpl.checkValidReference(value, PropertyType.REFERENCE, session.getNamespaceResolver());
+            PropertyImpl.checkValidReference(value, PropertyType.REFERENCE, session.getNameResolver());
             v = session.getValueFactory().createValue(value);
         }
         return setProperty(name, v, PropertyType.REFERENCE);
@@ -522,7 +512,7 @@
     public String getUUID() throws UnsupportedRepositoryOperationException, RepositoryException {
         checkStatus();
         String uuid = getNodeState().getUniqueID();
-        if (uuid == null || !isNodeType(QName.MIX_REFERENCEABLE)) {
+        if (uuid == null || !isNodeType(NameConstants.MIX_REFERENCEABLE)) {
             throw new UnsupportedRepositoryOperationException();
         }
         // Node is referenceable -> NodeId must contain a UUID part
@@ -580,7 +570,7 @@
      * @param propertyName
      * @return
      */
-    private boolean hasProperty(QName propertyName) {
+    private boolean hasProperty(Name propertyName) {
         return getNodeEntry().hasPropertyEntry(propertyName);
     }
 
@@ -613,7 +603,7 @@
      */
     public NodeType[] getMixinNodeTypes() throws RepositoryException {
         checkStatus();
-        QName[] mixinNames = getNodeState().getMixinTypeNames();
+        Name[] mixinNames = getNodeState().getMixinTypeNames();
         NodeType[] nta = new NodeType[mixinNames.length];
         for (int i = 0; i < mixinNames.length; i++) {
             nta[i] = session.getNodeTypeManager().getNodeType(mixinNames[i]);
@@ -627,14 +617,10 @@
     public boolean isNodeType(String nodeTypeName) throws RepositoryException {
         checkStatus();
         // try shortcut first (avoids parsing of name)
-        try {
-            if (NameFormat.format(primaryTypeName, session.getNamespaceResolver()).equals(nodeTypeName)) {
-                return true;
-            }
-        } catch (NoPrefixDeclaredException npde) {
-            throw new RepositoryException("Invalid node type name: " + nodeTypeName, npde);
+        if (session.getNameResolver().getJCRName(primaryTypeName).equals(nodeTypeName)) {
+            return true;
         }
-        // parse to QName and check against effective nodetype
+        // parse to Name and check against effective nodetype
         return isNodeType(getQName(nodeTypeName));
     }
 
@@ -644,7 +630,7 @@
     public void addMixin(String mixinName) throws NoSuchNodeTypeException,
         VersionException, ConstraintViolationException, LockException, RepositoryException {
         checkIsWritable();
-        QName mixinQName = getQName(mixinName);
+        Name mixinQName = getQName(mixinName);
         try {
             if (!canAddMixin(mixinQName)) {
                 throw new ConstraintViolationException("Cannot add '" + mixinName + "' mixin type.");
@@ -661,7 +647,7 @@
         } else {
             mixinValue.add(mixinQName);
             // perform the operation
-            Operation op = SetMixin.create(getNodeState(), (QName[]) mixinValue.toArray(new QName[mixinValue.size()]));
+            Operation op = SetMixin.create(getNodeState(), (Name[]) mixinValue.toArray(new Name[mixinValue.size()]));
             session.getSessionItemStateManager().execute(op);
         }
     }
@@ -672,7 +658,7 @@
     public void removeMixin(String mixinName) throws NoSuchNodeTypeException,
         VersionException, ConstraintViolationException, LockException, RepositoryException {
         checkIsWritable();
-        QName ntName = getQName(mixinName);
+        Name ntName = getQName(mixinName);
         List mixinValue = getMixinTypes();
         // remove name of target mixin
         if (!mixinValue.remove(ntName)) {
@@ -682,10 +668,10 @@
         // mix:referenceable needs additional assertion: the mixin cannot be
         // removed, if any references are left to this node.
         NodeTypeImpl mixin = session.getNodeTypeManager().getNodeType(ntName);
-        if (mixin.isNodeType(QName.MIX_REFERENCEABLE)) {
+        if (mixin.isNodeType(NameConstants.MIX_REFERENCEABLE)) {
             // build effective node type of remaining mixin's & primary type
             EffectiveNodeType entRemaining;
-            QName[] allRemaining = (QName[]) mixinValue.toArray(new QName[mixinValue.size() + 1]);
+            Name[] allRemaining = (Name[]) mixinValue.toArray(new Name[mixinValue.size() + 1]);
             allRemaining[mixinValue.size()] = primaryTypeName;
             try {
                 entRemaining = session.getEffectiveNodeTypeProvider().getEffectiveNodeType(allRemaining);
@@ -693,7 +679,7 @@
                 throw new ConstraintViolationException(e);
             }
 
-            if (!entRemaining.includesNodeType(QName.MIX_REFERENCEABLE)) {
+            if (!entRemaining.includesNodeType(NameConstants.MIX_REFERENCEABLE)) {
                 PropertyIterator iter = getReferences();
                 if (iter.hasNext()) {
                     throw new ConstraintViolationException("Mixin type " + mixinName + " can not be removed: the node is being referenced through at least one property of type REFERENCE");
@@ -702,7 +688,7 @@
         }
 
         // delegate to operation
-        QName[] mixins = (QName[]) mixinValue.toArray(new QName[mixinValue.size()]);
+        Name[] mixins = (Name[]) mixinValue.toArray(new Name[mixinValue.size()]);
         Operation op = SetMixin.create(getNodeState(), mixins);
         session.getSessionItemStateManager().execute(op);
     }
@@ -717,13 +703,13 @@
      * @return
      */
     private List getMixinTypes() {
-        QName[] mixinValue;
+        Name[] mixinValue;
         if (getNodeState().getStatus() == Status.EXISTING) {
             // jcr:mixinTypes must correspond to the mixins present on the nodestate.
             mixinValue = getNodeState().getMixinTypeNames();
         } else {
             try {
-                PropertyEntry pe = getNodeEntry().getPropertyEntry(QName.JCR_MIXINTYPES);
+                PropertyEntry pe = getNodeEntry().getPropertyEntry(NameConstants.JCR_MIXINTYPES);
                 if (pe != null) {
                     // prop entry exists (and ev. has been transiently mod.)
                     // -> retrieve mixin types from prop
@@ -735,7 +721,7 @@
             } catch (RepositoryException e) {
                 // should never occur
                 log.warn("Internal error", e);
-                mixinValue = new QName[0];
+                mixinValue = new Name[0];
             }
         }
         List l = new ArrayList();
@@ -849,8 +835,8 @@
 
         // check if version is in mergeFailed list
         boolean isConflicting = false;
-        if (hasProperty(QName.JCR_MERGEFAILED)) {
-            Value[] vals = getProperty(QName.JCR_MERGEFAILED).getValues();
+        if (hasProperty(NameConstants.JCR_MERGEFAILED)) {
+            Value[] vals = getProperty(NameConstants.JCR_MERGEFAILED).getValues();
             for (int i = 0; i < vals.length && !isConflicting; i++) {
                 isConflicting = vals[i].getString().equals(version.getUUID());
             }
@@ -921,7 +907,7 @@
             // search nearest ancestor that is referenceable
             NodeImpl referenceableNode = this;
             while (referenceableNode.getDepth() != Path.ROOT_DEPTH
-                && !referenceableNode.isNodeType(QName.MIX_REFERENCEABLE)) {
+                && !referenceableNode.isNodeType(NameConstants.MIX_REFERENCEABLE)) {
                 referenceableNode = (NodeImpl) referenceableNode.getParent();
             }
 
@@ -943,7 +929,7 @@
                 } else {
                     Path p = referenceableNode.getQPath().computeRelativePath(getQPath());
                     // use prefix mappings of srcSession
-                    String relPath = PathFormat.format(p, session.getNamespaceResolver());
+                    String relPath = session.getPathResolver().getJCRPath(p);
                     if (!correspNode.hasNode(relPath)) {
                         throw new ItemNotFoundException("No corresponding path found in workspace " + workspaceName + "(" + safeGetJCRPath() + ")");
                     } else {
@@ -952,11 +938,6 @@
                 }
             }
             return correspondingPath;
-        } catch (NameException e) {
-            // should never get here...
-            String msg = "Internal error: failed to determine relative path";
-            log.error(msg, e);
-            throw new RepositoryException(msg, e);
         } finally {
             if (srcSession != null) {
                 // we don't need the other session anymore, logout
@@ -1012,15 +993,10 @@
             if (itemMgr.itemExists(parentPath)) {
                 Item parent = itemMgr.getItem(parentPath);
                 if (parent.isNode()) {
-                    try {
-                        Path relQPath = parentPath.computeRelativePath(nPath);
-                        NodeImpl parentNode = ((NodeImpl)parent);
-                        // call the restore
-                        restore(parentNode, relQPath, version, removeExisting);
-                    } catch (MalformedPathException e) {
-                        // should not occur
-                        throw new RepositoryException(e);
-                    }
+                    Path relQPath = parentPath.computeRelativePath(nPath);
+                    NodeImpl parentNode = ((NodeImpl)parent);
+                    // call the restore
+                    restore(parentNode, relQPath, version, removeExisting);
                 } else {
                     // the item at parentParentPath is Property
                     throw new ConstraintViolationException("Cannot restore to a parent presenting a property (relative path = '" + relPath + "'");
@@ -1085,7 +1061,7 @@
             if (!targetNode.isCheckedOut()) {
                 throw new VersionException("Parent " + targetNode.safeGetJCRPath()
                     + " for non-existing restore target '"
-                    + LogUtil.safeGetJCRPath(relQPath, session.getNamespaceResolver())
+                    + LogUtil.safeGetJCRPath(relQPath, session.getPathResolver())
                     + "' must be checked out.");
             }
             targetNode.checkIsLocked();
@@ -1101,7 +1077,7 @@
      */
     public VersionHistory getVersionHistory() throws UnsupportedRepositoryOperationException, RepositoryException {
         checkIsVersionable();
-        return (VersionHistory) getProperty(QName.JCR_VERSIONHISTORY).getNode();
+        return (VersionHistory) getProperty(NameConstants.JCR_VERSIONHISTORY).getNode();
     }
 
     /**
@@ -1109,7 +1085,7 @@
      */
     public Version getBaseVersion() throws UnsupportedRepositoryOperationException, RepositoryException {
         checkIsVersionable();
-        return (Version) getProperty(QName.JCR_BASEVERSION).getNode();
+        return (Version) getProperty(NameConstants.JCR_BASEVERSION).getNode();
     }
 
     /**
@@ -1147,7 +1123,7 @@
     public boolean holdsLock() throws RepositoryException {
         // lock can be inherited from a parent > do not check for node being lockable.
         checkStatus();
-        if (isNew() || !isNodeType(QName.MIX_LOCKABLE)) {
+        if (isNew() || !isNodeType(NameConstants.MIX_LOCKABLE)) {
             // a node that is new or not lockable never holds a lock
             return false;
         } else {
@@ -1172,13 +1148,13 @@
      * @return
      * @throws RepositoryException
      */
-    boolean isNodeType(QName qName) throws RepositoryException {
+    boolean isNodeType(Name qName) throws RepositoryException {
         // first do trivial checks without using type hierarchy
         if (qName.equals(primaryTypeName)) {
             return true;
         }
         // check if contained in mixin types
-        QName[] mixins = getNodeState().getMixinTypeNames();
+        Name[] mixins = getNodeState().getMixinTypeNames();
         for (int i = 0; i < mixins.length; i++) {
             if (mixins[i].equals(qName)) {
                 return true;
@@ -1201,15 +1177,15 @@
 
     //-----------------------------------------------------------< ItemImpl >---
     /**
-     * @see ItemImpl#getQName()
+     * @see ItemImpl#getName()
      */
-    QName getQName() throws RepositoryException {
+    Name getQName() throws RepositoryException {
         if (getNodeState().isRoot()) {
             // shortcut. the given state represents the root or an orphaned node
-            return QName.ROOT;
+            return NameConstants.ROOT;
         }
 
-        return getNodeState().getQName();
+        return getNodeState().getName();
     }
 
 
@@ -1252,7 +1228,7 @@
      */
     private void checkIsLockable() throws UnsupportedRepositoryOperationException, RepositoryException {
         checkStatus();
-        if (!isNodeType(QName.MIX_LOCKABLE)) {
+        if (!isNodeType(NameConstants.MIX_LOCKABLE)) {
             String msg = "Unable to perform locking operation on non-lockable node: " + getPath();
             log.debug(msg);
             throw new LockException(msg);
@@ -1282,7 +1258,7 @@
      */
     private void checkIsVersionable() throws UnsupportedRepositoryOperationException, RepositoryException {
         checkStatus();
-        if (!isNodeType(QName.MIX_VERSIONABLE)) {
+        if (!isNodeType(NameConstants.MIX_VERSIONABLE)) {
             String msg = "Unable to perform versioning operation on non versionable node: " + getPath();
             log.debug(msg);
             throw new UnsupportedRepositoryOperationException(msg);
@@ -1305,7 +1281,7 @@
      * @throws LockException
      * @throws RepositoryException
      */
-    private synchronized Node createNode(QName nodeName, QName nodeTypeName)
+    private synchronized Node createNode(Name nodeName, Name nodeTypeName)
         throws ItemExistsException, NoSuchNodeTypeException, VersionException,
         ConstraintViolationException, LockException, RepositoryException {
 
@@ -1340,7 +1316,7 @@
      * @throws RepositoryException
      */
     // TODO: protected due to usage within VersionImpl, VersionHistoryImpl (check for alternatives)
-    protected Property getProperty(QName qName) throws PathNotFoundException, RepositoryException {
+    protected Property getProperty(Name qName) throws PathNotFoundException, RepositoryException {
         checkStatus();
         try {
             PropertyEntry pEntry = getNodeEntry().getPropertyEntry(qName, true);
@@ -1364,7 +1340,7 @@
      * could be found.
      * @throws RepositoryException if another error occurs.
      */
-    private Property createProperty(QName qName, Value value, int type)
+    private Property createProperty(Name qName, Value value, int type)
             throws ConstraintViolationException, RepositoryException {
         QPropertyDefinition def = getApplicablePropertyDefinition(qName, type, false);
         int targetType = def.getRequiredType();
@@ -1373,11 +1349,11 @@
         }
         QValue qvs;
         if (targetType == PropertyType.UNDEFINED) {
-            qvs = ValueFormat.getQValue(value, session.getNamespaceResolver(), session.getQValueFactory());
+            qvs = ValueFormat.getQValue(value, session.getNamePathResolver(), session.getQValueFactory());
             targetType = qvs.getType();
         } else {
             Value targetValue = ValueHelper.convert(value, targetType, session.getValueFactory());
-            qvs = ValueFormat.getQValue(targetValue, session.getNamespaceResolver(), session.getQValueFactory());
+            qvs = ValueFormat.getQValue(targetValue, session.getNamePathResolver(), session.getQValueFactory());
         }
         return createProperty(qName, targetType, def, new QValue[] {qvs});
     }
@@ -1392,7 +1368,7 @@
      * @throws ConstraintViolationException
      * @throws RepositoryException
      */
-    private Property createProperty(QName qName, Value[] values, int type)
+    private Property createProperty(Name qName, Value[] values, int type)
         throws ConstraintViolationException, RepositoryException {
         QPropertyDefinition def = getApplicablePropertyDefinition(qName, type, true);
         int targetType = def.getRequiredType();
@@ -1417,7 +1393,7 @@
             }
         }
         Value[] targetValues = ValueHelper.convert(values, targetType, session.getValueFactory());
-        QValue[] qvs = ValueFormat.getQValues(targetValues, session.getNamespaceResolver(), session.getQValueFactory());
+        QValue[] qvs = ValueFormat.getQValues(targetValues, session.getNamePathResolver(), session.getQValueFactory());
         return createProperty(qName, targetType, def, qvs);
     }
 
@@ -1432,7 +1408,7 @@
      * @throws ConstraintViolationException
      * @throws RepositoryException
      */
-    private Property createProperty(QName qName, int type, QPropertyDefinition def,
+    private Property createProperty(Name qName, int type, QPropertyDefinition def,
                                     QValue[] qvs)
         throws ConstraintViolationException, RepositoryException {
         Operation op = AddProperty.create(getNodeState(), qName, type, def, qvs);
@@ -1446,17 +1422,17 @@
      * @return
      * @throws RepositoryException
      */
-    private QName getQName(String jcrName) throws RepositoryException {
-        QName qName;
+    private Name getQName(String jcrName) throws RepositoryException {
+        Name qName;
         try {
-            qName = NameFormat.parse(jcrName, session.getNamespaceResolver());
+            qName = session.getNameResolver().getQName(jcrName);
         } catch (NameException upe) {
             throw new RepositoryException("invalid name: "+ jcrName, upe);
         }
         return qName;
     }
 
-    private boolean canAddMixin(QName mixinName) throws NoSuchNodeTypeException,
+    private boolean canAddMixin(Name mixinName) throws NoSuchNodeTypeException,
         NodeTypeConflictException {
         NodeTypeManagerImpl ntMgr = session.getNodeTypeManager();
 
@@ -1473,7 +1449,7 @@
         }
 
         // get list of existing nodetypes
-        QName[] existingNts = getNodeState().getNodeTypeNames();
+        Name[] existingNts = getNodeState().getNodeTypeNames();
         // build effective node type representing primary type including existing mixin's
         EffectiveNodeType entExisting = session.getEffectiveNodeTypeProvider().getEffectiveNodeType(existingNts);
 
@@ -1485,7 +1461,7 @@
 
         // second, build new effective node type for nts including the new mixin
         // types, detecting eventual incompatibilities
-        QName[] resultingNts = new QName[existingNts.length + 1];
+        Name[] resultingNts = new Name[existingNts.length + 1];
         System.arraycopy(existingNts, 0, resultingNts, 0, existingNts.length);
         resultingNts[existingNts.length] = mixinName;
         session.getEffectiveNodeTypeProvider().getEffectiveNodeType(resultingNts);
@@ -1516,12 +1492,12 @@
      */
     private Path getReorderPath(String relativePath) throws RepositoryException {
         try {
-            Path p = PathFormat.parse(relativePath, session.getNamespaceResolver());
+            Path p = session.getPathResolver().getQPath(relativePath);
             if (p.isAbsolute() || p.getLength() != 1 || p.getDepth() != 1) {
                 throw new RepositoryException("Invalid relative path: " + relativePath);
             }
             return p;
-        } catch (MalformedPathException e) {
+        } catch (NameException e) {
             String msg = "Invalid relative path: " + relativePath;
             log.debug(msg);
             throw new RepositoryException(msg, e);
@@ -1536,9 +1512,9 @@
      */
     private Path getQPath(String relativePath) throws RepositoryException {
         try {
-            Path p = PathFormat.parse(relativePath, session.getNamespaceResolver());
+            Path p = session.getPathResolver().getQPath(relativePath);
             return getQPath(p);
-        } catch (MalformedPathException e) {
+        } catch (NameException e) {
             String msg = "Invalid relative path: " + relativePath;
             log.debug(msg);
             throw new RepositoryException(msg, e);
@@ -1552,17 +1528,11 @@
      * @throws RepositoryException
      */
     private Path getQPath(Path relativePath) throws RepositoryException {
-        try {
-            // shortcut
-            if (relativePath.getLength() == 1 && relativePath.getNameElement() == Path.CURRENT_ELEMENT) {
-                return getQPath();
-            }
-            return Path.create(getQPath(), relativePath, true);
-        } catch (MalformedPathException e) {
-            String msg = "Invalid relative path: " + relativePath;
-            log.debug(msg);
-            throw new RepositoryException(msg, e);
+        // shortcut
+        if (relativePath.getLength() == 1 && relativePath.getNameElement() == session.getPathFactory().getCurrentElement()) {
+            return getQPath();
         }
+        return session.getPathFactory().create(getQPath(), relativePath, true);
     }
 
     /**
@@ -1580,13 +1550,13 @@
     private NodeEntry resolveRelativeNodePath(String relPath) throws RepositoryException {
         NodeEntry targetEntry = null;
         try {
-            Path rp = PathFormat.parse(relPath, session.getNamespaceResolver());
+            Path rp = session.getPathResolver().getQPath(relPath);
             // shortcut
             if (rp.getLength() == 1) {
-                Path.PathElement pe = rp.getNameElement();
-                if (pe == Path.CURRENT_ELEMENT) {
+                Path.Element pe = rp.getNameElement();
+                if (pe.denotesCurrent()) {
                     targetEntry = getNodeEntry();
-                } else if (pe == Path.PARENT_ELEMENT) {
+                } else if (pe.denotesParent()) {
                     targetEntry = getNodeEntry().getParent();
                 } else {
                     // try to get child entry + force loading of not known yet
@@ -1602,7 +1572,7 @@
             }
         } catch (PathNotFoundException e) {
             // item does not exist -> ignore and return null
-        } catch (MalformedPathException e) {
+        } catch (org.apache.jackrabbit.conversion.NameException e) {
             String msg = "Invalid relative path: " + relPath;
             log.debug(msg);
             throw new RepositoryException(msg, e);
@@ -1625,12 +1595,12 @@
     private PropertyEntry resolveRelativePropertyPath(String relPath) throws RepositoryException {
         PropertyEntry targetEntry = null;
         try {
-            Path rp = PathFormat.parse(relPath, session.getNamespaceResolver());
+            Path rp = session.getPathResolver().getQPath(relPath);
             if (rp.getLength() == 1 && rp.getNameElement().denotesName()) {
                 // a single path element must always denote a name. '.' and '..'
                 // will never point to a property. If the NodeEntry does not
                 // contain such a pe, the targetEntry is 'null;
-                QName propName = rp.getNameElement().getName();
+                Name propName = rp.getNameElement().getName();
                 // check if property entry exists
                 targetEntry = getNodeEntry().getPropertyEntry(propName, true);
             } else {
@@ -1645,7 +1615,7 @@
                     // ignore -> return null;
                 }
             }
-        } catch (MalformedPathException e) {
+        } catch (org.apache.jackrabbit.conversion.NameException e) {
             String msg = "failed to resolve property path " + relPath + " relative to " + safeGetJCRPath();
             log.debug(msg);
             throw new RepositoryException(msg, e);
@@ -1665,7 +1635,7 @@
      *                                      could be found
      * @throws RepositoryException          if another error occurs
      */
-    private QPropertyDefinition getApplicablePropertyDefinition(QName propertyName,
+    private QPropertyDefinition getApplicablePropertyDefinition(Name propertyName,
                                                                 int type,
                                                                 boolean multiValued)
             throws ConstraintViolationException, RepositoryException {

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/PropertyImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/PropertyImpl.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/PropertyImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/PropertyImpl.java Thu Oct 18 11:41:45 2007
@@ -19,14 +19,13 @@
 import org.apache.jackrabbit.jcr2spi.state.PropertyState;
 import org.apache.jackrabbit.jcr2spi.operation.SetPropertyValue;
 import org.apache.jackrabbit.jcr2spi.operation.Operation;
-import org.apache.jackrabbit.name.NoPrefixDeclaredException;
-import org.apache.jackrabbit.name.QName;
-import org.apache.jackrabbit.name.NameFormat;
-import org.apache.jackrabbit.name.NamespaceResolver;
+import org.apache.jackrabbit.spi.Name;
+import org.apache.jackrabbit.name.NameConstants;
 import org.apache.jackrabbit.spi.QValue;
 import org.apache.jackrabbit.spi.QPropertyDefinition;
 import org.apache.jackrabbit.value.ValueFormat;
 import org.apache.jackrabbit.value.ValueHelper;
+import org.apache.jackrabbit.conversion.NameResolver;
 import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
 
@@ -66,15 +65,8 @@
      */
     public String getName() throws RepositoryException {
         checkStatus();
-        QName name = getQName();
-        try {
-            return NameFormat.format(name, session.getNamespaceResolver());
-        } catch (NoPrefixDeclaredException npde) {
-            // should never get here...
-            String msg = "Internal error: encountered unregistered namespace " + name.getNamespaceURI();
-            log.debug(msg);
-            throw new RepositoryException(msg, npde);
-        }
+        Name name = getQName();
+        return session.getNameResolver().getJCRName(name);
     }
 
     /**
@@ -140,7 +132,7 @@
         QValue[] qValues = null;
         if (values != null) {
             Value[] vs = ValueHelper.convert(values, targetType, session.getValueFactory());
-            qValues = ValueFormat.getQValues(vs, session.getNamespaceResolver(), session.getQValueFactory());
+            qValues = ValueFormat.getQValues(vs, session.getNamePathResolver(), session.getQValueFactory());
         }
         setInternalValues(qValues, targetType);
     }
@@ -176,7 +168,7 @@
                     if (reqType != PropertyType.STRING) {
                         // type conversion required
                         Value v = ValueHelper.convert(string, reqType, session.getValueFactory());
-                        qValue = ValueFormat.getQValue(v, session.getNamespaceResolver(), session.getQValueFactory());
+                        qValue = ValueFormat.getQValue(v, session.getNamePathResolver(), session.getQValueFactory());
                     } else {
                         // no type conversion required
                         qValue = session.getQValueFactory().create(string, PropertyType.STRING);
@@ -250,7 +242,7 @@
         if (value == null) {
             setInternalValues(null, reqType);
         } else {
-            checkValidReference(value, reqType, session.getNamespaceResolver());
+            checkValidReference(value, reqType, session.getNameResolver());
             QValue qValue = session.getQValueFactory().create(value.getUUID(), PropertyType.REFERENCE);
             setInternalValues(new QValue[]{qValue}, reqType);
         }
@@ -261,7 +253,7 @@
      */
     public Value getValue() throws ValueFormatException, RepositoryException {
         QValue value = getQValue();
-        return ValueFormat.getJCRValue(value, session.getNamespaceResolver(), session.getJcrValueFactory());
+        return ValueFormat.getJCRValue(value, session.getNamePathResolver(), session.getJcrValueFactory());
     }
 
     /**
@@ -271,7 +263,7 @@
         QValue[] qValues = getQValues();
         Value[] values = new Value[qValues.length];
         for (int i = 0; i < qValues.length; i++) {
-            values[i] = ValueFormat.getJCRValue(qValues[i], session.getNamespaceResolver(), session.getJcrValueFactory());
+            values[i] = ValueFormat.getJCRValue(qValues[i], session.getNamePathResolver(), session.getJcrValueFactory());
         }
         return values;
     }
@@ -360,7 +352,7 @@
         switch (value.getType()) {
             case PropertyType.NAME:
             case PropertyType.PATH:
-                Value jcrValue = ValueFormat.getJCRValue(value, session.getNamespaceResolver(), session.getJcrValueFactory());
+                Value jcrValue = ValueFormat.getJCRValue(value, session.getNamePathResolver(), session.getJcrValueFactory());
                 length = jcrValue.getString().length();
                 break;
             default:
@@ -389,14 +381,14 @@
 
     //-----------------------------------------------------------< ItemImpl >---
     /**
-     * Returns the QName defined with this <code>PropertyState</code>
+     * Returns the Name defined with this <code>PropertyState</code>
      *
      * @return
-     * @see PropertyState#getQName()
-     * @see ItemImpl#getQName()
+     * @see PropertyState#getName()
+     * @see ItemImpl#getName()
      */
-    QName getQName() {
-        return getPropertyState().getQName();
+    Name getQName() {
+        return getPropertyState().getName();
     }
 
     //------------------------------------------------------< check methods >---
@@ -492,10 +484,10 @@
         if (requiredType != value.getType()) {
             // type conversion required
             Value v = ValueHelper.convert(value, requiredType, session.getValueFactory());
-            qValue = ValueFormat.getQValue(v, session.getNamespaceResolver(), session.getQValueFactory());
+            qValue = ValueFormat.getQValue(v, session.getNamePathResolver(), session.getQValueFactory());
         } else {
             // no type conversion required
-            qValue = ValueFormat.getQValue(value, session.getNamespaceResolver(), session.getQValueFactory());
+            qValue = ValueFormat.getQValue(value, session.getNamePathResolver(), session.getQValueFactory());
         }
         setInternalValues(new QValue[]{qValue}, requiredType);
     }
@@ -535,15 +527,11 @@
      * @throws ValueFormatException
      * @throws RepositoryException
      */
-    static void checkValidReference(Node value, int propertyType, NamespaceResolver nsResolver) throws ValueFormatException, RepositoryException {
+    static void checkValidReference(Node value, int propertyType, NameResolver resolver) throws ValueFormatException, RepositoryException {
         if (propertyType == PropertyType.REFERENCE) {
-            try {
-                String jcrName = NameFormat.format(QName.MIX_REFERENCEABLE, nsResolver);
-                if (!value.isNodeType(jcrName)) {
-                    throw new ValueFormatException("Target node must be of node type mix:referenceable");
-                }
-            } catch (NoPrefixDeclaredException e) {
-                throw new RepositoryException(e);
+            String jcrName = resolver.getJCRName(NameConstants.MIX_REFERENCEABLE);
+            if (!value.isNodeType(jcrName)) {
+                throw new ValueFormatException("Target node must be of node type mix:referenceable");
             }
         } else {
             throw new ValueFormatException("Property must be of type REFERENCE.");

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/SessionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/SessionImpl.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/SessionImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/SessionImpl.java Thu Oct 18 11:41:45 2007
@@ -41,18 +41,21 @@
 import org.apache.jackrabbit.jcr2spi.name.LocalNamespaceMappings;
 import org.apache.jackrabbit.jcr2spi.config.RepositoryConfig;
 import org.apache.jackrabbit.jcr2spi.config.CacheBehaviour;
-import org.apache.jackrabbit.name.MalformedPathException;
-import org.apache.jackrabbit.name.NamespaceResolver;
-import org.apache.jackrabbit.name.QName;
-import org.apache.jackrabbit.name.Path;
-import org.apache.jackrabbit.name.PathFormat;
-import org.apache.jackrabbit.name.NameFormat;
-import org.apache.jackrabbit.name.NoPrefixDeclaredException;
+import org.apache.jackrabbit.namespace.NamespaceResolver;
+import org.apache.jackrabbit.spi.Path;
+import org.apache.jackrabbit.name.NameConstants;
 import org.apache.jackrabbit.spi.SessionInfo;
 import org.apache.jackrabbit.spi.NodeId;
 import org.apache.jackrabbit.spi.IdFactory;
 import org.apache.jackrabbit.spi.XASessionInfo;
 import org.apache.jackrabbit.spi.QValueFactory;
+import org.apache.jackrabbit.spi.NameFactory;
+import org.apache.jackrabbit.spi.PathFactory;
+import org.apache.jackrabbit.conversion.NamePathResolver;
+import org.apache.jackrabbit.conversion.NameException;
+import org.apache.jackrabbit.conversion.PathResolver;
+import org.apache.jackrabbit.conversion.NameResolver;
+import org.apache.jackrabbit.conversion.DefaultNamePathResolver;
 import org.apache.commons.collections.map.ReferenceMap;
 import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
@@ -118,6 +121,7 @@
     private final SessionInfo sessionInfo;
 
     private final LocalNamespaceMappings nsMappings;
+    private final NamePathResolver npResolver;
     private final NodeTypeManagerImpl ntManager;
 
     private final SessionItemStateManager itemStateManager;
@@ -136,10 +140,11 @@
 
         // build local name-mapping
         nsMappings = new LocalNamespaceMappings(workspace.getNamespaceRegistryImpl());
+        npResolver = new DefaultNamePathResolver(nsMappings, true);
 
         // build nodetype manager
         ntManager = new NodeTypeManagerImpl(workspace.getNodeTypeRegistry(), this, getJcrValueFactory());
-        validator = new ItemStateValidator(this);
+        validator = new ItemStateValidator(this, getPathFactory());
 
         itemStateManager = createSessionItemStateManager(workspace.getUpdatableItemStateManager(), workspace.getItemStateFactory());
         itemManager = createItemManager(getHierarchyManager());
@@ -220,18 +225,13 @@
     public Node getNodeByUUID(String uuid) throws ItemNotFoundException, RepositoryException {
         // sanity check performed by getNodeById
         Node node = getNodeById(getIdFactory().createNodeId(uuid));
-        if (node instanceof NodeImpl && ((NodeImpl)node).isNodeType(QName.MIX_REFERENCEABLE)) {
+        if (node instanceof NodeImpl && ((NodeImpl)node).isNodeType(NameConstants.MIX_REFERENCEABLE)) {
             return node;
         } else {
             // fall back
-            try {
-                String mixReferenceable = NameFormat.format(QName.MIX_REFERENCEABLE, getNamespaceResolver());
-                if (node.isNodeType(mixReferenceable)) {
-                    return node;
-                }
-            } catch (NoPrefixDeclaredException e) {
-                // should not occur.
-                throw new RepositoryException(e);
+            String mixReferenceable = getNameResolver().getJCRName(NameConstants.MIX_REFERENCEABLE);
+            if (node.isNodeType(mixReferenceable)) {
+                return node;
             }
             // there is a node with that uuid but the node does not expose it
             throw new ItemNotFoundException(uuid);
@@ -274,8 +274,6 @@
             return getItemManager().getItem(qPath.getNormalizedPath());
         } catch (AccessDeniedException ade) {
             throw new PathNotFoundException(absPath);
-        } catch (MalformedPathException e) {
-            throw new RepositoryException(e);
         }
     }
 
@@ -284,12 +282,8 @@
      */
     public boolean itemExists(String absPath) throws RepositoryException {
         checkIsAlive();
-        try {
-            Path qPath = getQPath(absPath);
-            return getItemManager().itemExists(qPath.getNormalizedPath());
-        } catch (MalformedPathException e) {
-            throw new RepositoryException(e);
-        }
+        Path qPath = getQPath(absPath);
+        return getItemManager().itemExists(qPath.getNormalizedPath());
     }
 
     /**
@@ -304,7 +298,7 @@
         Path destPath = getQPath(destAbsPath);
 
         // all validation is performed by Move Operation and state-manager
-        Operation op = Move.create(srcPath, destPath, getHierarchyManager(), getNamespaceResolver(), true);
+        Operation op = Move.create(srcPath, destPath, getHierarchyManager(), getPathResolver(), true);
         itemStateManager.execute(op);
     }
 
@@ -371,13 +365,8 @@
                 }
             }
             // parentState is the nearest existing nodeState or the root state.
-            try {
-                Path relPath = parentPath.computeRelativePath(targetPath);
-                isGranted = getAccessManager().isGranted(parentState, relPath, actionsArr);
-            } catch (MalformedPathException e) {
-                // should not occurs
-                throw new RepositoryException(e);
-            }
+            Path relPath = parentPath.computeRelativePath(targetPath);
+            isGranted = getAccessManager().isGranted(parentState, relPath, actionsArr);
         }
 
         if (!isGranted) {
@@ -396,7 +385,7 @@
         // NOTE: check if path corresponds to Node and is writable is performed
         // within the SessionImporter.
         Importer importer = new SessionImporter(parentPath, this, itemStateManager, uuidBehavior);
-        return new ImportHandler(importer, getNamespaceResolver(), workspace.getNamespaceRegistry());
+        return new ImportHandler(importer, getNamespaceResolver(), workspace.getNamespaceRegistry(), getNameFactory());
     }
 
     /**
@@ -650,6 +639,25 @@
     }
 
     //---------------------------------------------------< ManagerProvider > ---
+
+    public NamePathResolver getNamePathResolver() {
+        return npResolver;
+    }
+
+    /**
+     * @see ManagerProvider#getNameResolver()
+     */
+    public NameResolver getNameResolver() {
+        return npResolver;
+    }
+
+    /**
+     * @see ManagerProvider#getPathResolver()
+     */
+    public PathResolver getPathResolver() {
+        return npResolver;
+    }
+
     /**
      * @see ManagerProvider#getNamespaceResolver()
      */
@@ -729,10 +737,18 @@
     }
 
     // TODO public for SessionImport only. review
-    public IdFactory getIdFactory() {
+    public IdFactory getIdFactory() throws RepositoryException {
         return workspace.getIdFactory();
     }
 
+    public NameFactory getNameFactory() throws RepositoryException {
+        return workspace.getNameFactory();
+    }
+
+    PathFactory getPathFactory() throws RepositoryException {
+        return workspace.getPathFactory();
+    }
+
     /**
      * Returns the <code>ItemStateManager</code> associated with this session.
      *
@@ -773,12 +789,12 @@
      */
     Path getQPath(String absPath) throws RepositoryException {
         try {
-            Path p = PathFormat.parse(absPath, getNamespaceResolver());
+            Path p = getPathResolver().getQPath(absPath);
             if (!p.isAbsolute()) {
                 throw new RepositoryException("Not an absolute path: " + absPath);
             }
             return p;
-        } catch (MalformedPathException mpe) {
+        } catch (NameException mpe) {
             String msg = "Invalid path: " + absPath;
             log.debug(msg);
             throw new RepositoryException(msg, mpe);
@@ -791,7 +807,7 @@
      * was obtained from a different session, the 'corresponding' version
      * state for this session is retrieved.
      *
-     * @param node
+     * @param version
      * @return
      */
     NodeState getVersionState(Version version) throws RepositoryException {

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceImpl.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceImpl.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceImpl.java Thu Oct 18 11:41:45 2007
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.jcr2spi;
 
-import org.apache.jackrabbit.name.NamespaceResolver;
 import org.apache.jackrabbit.jcr2spi.hierarchy.HierarchyManager;
 import org.apache.jackrabbit.jcr2spi.state.UpdatableItemStateManager;
 import org.apache.jackrabbit.jcr2spi.state.ItemState;
@@ -46,7 +45,13 @@
 import org.apache.jackrabbit.spi.RepositoryService;
 import org.apache.jackrabbit.spi.SessionInfo;
 import org.apache.jackrabbit.spi.QValueFactory;
-import org.apache.jackrabbit.name.Path;
+import org.apache.jackrabbit.spi.Path;
+import org.apache.jackrabbit.spi.NameFactory;
+import org.apache.jackrabbit.spi.PathFactory;
+import org.apache.jackrabbit.conversion.NameResolver;
+import org.apache.jackrabbit.conversion.PathResolver;
+import org.apache.jackrabbit.conversion.NamePathResolver;
+import org.apache.jackrabbit.namespace.NamespaceResolver;
 import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
 import org.xml.sax.ContentHandler;
@@ -233,7 +238,7 @@
         Path srcPath = session.getQPath(srcAbsPath);
         Path destPath = session.getQPath(destAbsPath);
 
-        Operation op = Move.create(srcPath, destPath, getHierarchyManager(), getNamespaceResolver(), false);
+        Operation op = Move.create(srcPath, destPath, getHierarchyManager(), getPathResolver(), false);
         getUpdatableItemStateManager().execute(op);
     }
 
@@ -257,7 +262,8 @@
         session.checkIsAlive();
         if (qManager == null) {
             qManager = new QueryManagerImpl(session, session.getLocalNamespaceMappings(),
-                session.getItemManager(), session.getHierarchyManager(), wspManager);
+                    session.getNamePathResolver(), session.getItemManager(),
+                    session.getHierarchyManager(), wspManager);
         }
         return qManager;
     }
@@ -286,7 +292,7 @@
         session.checkIsAlive();
 
         if (obsManager == null) {
-            obsManager = createObservationManager(getNamespaceResolver(), getNodeTypeRegistry());
+            obsManager = createObservationManager(getNamePathResolver(), getNodeTypeRegistry());
         }
         return obsManager;
     }
@@ -351,6 +357,27 @@
 
     //----------------------------------------------------< ManagerProvider >---
     /**
+     * @see ManagerProvider#getNamePathResolver()
+     */
+    public org.apache.jackrabbit.conversion.NamePathResolver getNamePathResolver() {
+        return session.getNamePathResolver();
+    }
+
+    /**
+     * @see ManagerProvider#getNameResolver()
+     */
+    public NameResolver getNameResolver() {
+        return session.getNameResolver();
+    }
+
+    /**
+     * @see ManagerProvider#getPathResolver()
+     */
+    public PathResolver getPathResolver() {
+        return session.getPathResolver();
+    }
+
+    /**
      * @see ManagerProvider#getNamespaceResolver()
      */
     public NamespaceResolver getNamespaceResolver() {
@@ -415,7 +442,15 @@
         // NOTE: wspManager has already been disposed upon SessionItemStateManager.dispose()
     }
 
-    IdFactory getIdFactory() {
+    NameFactory getNameFactory() throws RepositoryException {
+        return wspManager.getNameFactory();
+    }
+
+    PathFactory getPathFactory() throws RepositoryException {
+        return wspManager.getPathFactory();
+    }
+
+    IdFactory getIdFactory() throws RepositoryException {
         return wspManager.getIdFactory();
     }
 
@@ -493,7 +528,7 @@
      *
      * @return a new <code>ObservationManager</code> instance
      */
-    protected ObservationManager createObservationManager(NamespaceResolver nsResolver, NodeTypeRegistry ntRegistry) {
-        return new ObservationManagerImpl(wspManager, nsResolver, ntRegistry);
+    protected ObservationManager createObservationManager(NamePathResolver resolver, NodeTypeRegistry ntRegistry) {
+        return new ObservationManagerImpl(wspManager, resolver, ntRegistry);
     }
 }

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java Thu Oct 18 11:41:45 2007
@@ -65,8 +65,8 @@
 import org.apache.jackrabbit.jcr2spi.hierarchy.HierarchyEventListener;
 import org.apache.jackrabbit.jcr2spi.hierarchy.HierarchyManager;
 import org.apache.jackrabbit.jcr2spi.hierarchy.HierarchyManagerImpl;
-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.RepositoryService;
 import org.apache.jackrabbit.spi.SessionInfo;
 import org.apache.jackrabbit.spi.NodeId;
@@ -81,6 +81,8 @@
 import org.apache.jackrabbit.spi.QNodeTypeDefinition;
 import org.apache.jackrabbit.spi.QValue;
 import org.apache.jackrabbit.spi.Event;
+import org.apache.jackrabbit.spi.NameFactory;
+import org.apache.jackrabbit.spi.PathFactory;
 import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
 
@@ -195,10 +197,18 @@
         return service.getWorkspaceNames(sessionInfo);
     }
 
-    public IdFactory getIdFactory() {
+    public IdFactory getIdFactory() throws RepositoryException {
         return idFactory;
     }
 
+    public NameFactory getNameFactory() throws RepositoryException {
+        return service.getNameFactory();
+    }
+
+    public PathFactory getPathFactory() throws RepositoryException {
+        return service.getPathFactory();
+    }
+
     public ItemStateFactory getItemStateFactory() {
         return isf;
     }
@@ -336,7 +346,7 @@
      *          if this implementation does not support observation.
      */
     public EventFilter createEventFilter(int eventTypes, Path path, boolean isDeep,
-                                         String[] uuids, QName[] nodeTypes,
+                                         String[] uuids, Name[] nodeTypes,
                                          boolean noLocal)
         throws UnsupportedRepositoryOperationException, RepositoryException {
         return service.createEventFilter(sessionInfo, eventTypes, path, isDeep, uuids, nodeTypes, noLocal);
@@ -356,8 +366,8 @@
      *
      * @return
      */
-    private HierarchyManager createHierarchyManager(TransientItemStateFactory tisf, IdFactory idFactory) {
-        return new HierarchyManagerImpl(tisf, idFactory);
+    private HierarchyManager createHierarchyManager(TransientItemStateFactory tisf, IdFactory idFactory) throws RepositoryException {
+        return new HierarchyManagerImpl(tisf, idFactory, getPathFactory());
     }
 
     /**
@@ -374,8 +384,8 @@
      * @param nsCache the namespace cache.
      * @return
      */
-    private NamespaceRegistryImpl createNamespaceRegistry(NamespaceCache nsCache) {
-        return new NamespaceRegistryImpl(this, nsCache);
+    private NamespaceRegistryImpl createNamespaceRegistry(NamespaceCache nsCache) throws RepositoryException {
+        return new NamespaceRegistryImpl(this, nsCache, getNameFactory(), getPathFactory());
     }
 
     /**
@@ -388,7 +398,7 @@
             public Iterator getAllDefinitions() throws RepositoryException {
                 return service.getQNodeTypeDefinitions(sessionInfo);
             }
-            public Iterator getDefinitions(QName[] nodeTypeNames) throws NoSuchNodeTypeException, RepositoryException {
+            public Iterator getDefinitions(Name[] nodeTypeNames) throws NoSuchNodeTypeException, RepositoryException {
                 return service.getQNodeTypeDefinitions(sessionInfo, nodeTypeNames);
             }
             public void registerNodeTypes(QNodeTypeDefinition[] nodeTypeDefs) throws NoSuchNodeTypeException, RepositoryException {
@@ -397,7 +407,7 @@
             public void reregisterNodeTypes(QNodeTypeDefinition[] nodeTypeDefs) throws NoSuchNodeTypeException, RepositoryException {
                 throw new UnsupportedOperationException("NodeType registration not yet defined by the SPI");
             }
-            public void unregisterNodeTypes(QName[] nodeTypeNames) throws NoSuchNodeTypeException, RepositoryException {
+            public void unregisterNodeTypes(Name[] nodeTypeNames) throws NoSuchNodeTypeException, RepositoryException {
                 throw new UnsupportedOperationException("NodeType registration not yet defined by the SPI");
             }
         };
@@ -640,7 +650,7 @@
                         default:
                             type = "Unknown";
                     }
-                    log.debug("  {}; {}", e.getQPath(), type);
+                    log.debug("  {}; {}", e.getPath(), type);
                 }
             }
         }
@@ -722,7 +732,7 @@
          */
         public void visit(AddProperty operation) throws RepositoryException {
             NodeId parentId = operation.getParentId();
-            QName propertyName = operation.getPropertyName();
+            Name propertyName = operation.getPropertyName();
             if (operation.isMultiValued()) {
                 batch.addProperty(parentId, propertyName, operation.getValues());
             } else {

Modified: jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/ChildNodeAttic.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/ChildNodeAttic.java?rev=586065&r1=586064&r2=586065&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/ChildNodeAttic.java (original)
+++ jackrabbit/trunk/contrib/spi/jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/ChildNodeAttic.java Thu Oct 18 11:41:45 2007
@@ -18,7 +18,7 @@
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.spi.Name;
 
 import java.util.Set;
 import java.util.HashSet;
@@ -38,7 +38,7 @@
     ChildNodeAttic() {
     }
 
-    boolean contains(QName name, int index) {
+    boolean contains(Name name, int index) {
         for (Iterator it = attic.iterator(); it.hasNext();) {
             NodeEntryImpl ne = (NodeEntryImpl) it.next();
             if (ne.matches(name, index)) {
@@ -48,7 +48,7 @@
         return false;
     }
 
-    List get(QName name) {
+    List get(Name name) {
         List l = new ArrayList();
         for (Iterator it = attic.iterator(); it.hasNext();) {
             NodeEntryImpl ne = (NodeEntryImpl) it.next();
@@ -65,7 +65,7 @@
      * @param index The original index of the NodeEntry before it has been moved.
      * @return
      */
-    NodeEntry get(QName name, int index) {
+    NodeEntry get(Name name, int index) {
         for (Iterator it = attic.iterator(); it.hasNext();) {
             NodeEntryImpl ne = (NodeEntryImpl) it.next();
             if (ne.matches(name, index)) {