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/30 11:02:57 UTC

svn commit: r590014 [3/11] - in /jackrabbit/trunk: jackrabbit-core/ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/cluster/ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/jou...

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/AbstractRecord.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/AbstractRecord.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/AbstractRecord.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/AbstractRecord.java Tue Oct 30 03:02:41 2007
@@ -16,29 +16,28 @@
  */
 package org.apache.jackrabbit.core.journal;
 
-import org.apache.jackrabbit.name.NamespaceResolver;
-import org.apache.jackrabbit.name.QName;
-import org.apache.jackrabbit.name.NameFormat;
-import org.apache.jackrabbit.name.NoPrefixDeclaredException;
-import org.apache.jackrabbit.name.Path;
-import org.apache.jackrabbit.name.PathFormat;
-import org.apache.jackrabbit.name.UnknownPrefixException;
-import org.apache.jackrabbit.name.IllegalNameException;
-import org.apache.jackrabbit.name.MalformedPathException;
+import org.apache.jackrabbit.conversion.MalformedPathException;
+import org.apache.jackrabbit.conversion.NameException;
+import org.apache.jackrabbit.conversion.NamePathResolver;
 import org.apache.jackrabbit.core.NodeId;
 import org.apache.jackrabbit.core.PropertyId;
 import org.apache.jackrabbit.core.nodetype.NodeTypeDef;
-import org.apache.jackrabbit.core.nodetype.compact.CompactNodeTypeDefWriter;
 import org.apache.jackrabbit.core.nodetype.compact.CompactNodeTypeDefReader;
+import org.apache.jackrabbit.core.nodetype.compact.CompactNodeTypeDefWriter;
 import org.apache.jackrabbit.core.nodetype.compact.ParseException;
+import org.apache.jackrabbit.name.PathFactoryImpl;
+import org.apache.jackrabbit.namespace.NamespaceResolver;
+import org.apache.jackrabbit.spi.Name;
+import org.apache.jackrabbit.spi.Path;
 import org.apache.jackrabbit.uuid.Constants;
 import org.apache.jackrabbit.uuid.UUID;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.io.StringWriter;
+import javax.jcr.NamespaceException;
 import java.io.IOException;
 import java.io.StringReader;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * Base implementation for a record.
@@ -63,22 +62,28 @@
     /**
      * Namespace resolver.
      */
-    protected final NamespaceResolver resolver;
+    protected final NamespaceResolver nsResolver;
+
+    /**
+     * Name and Path resolver.
+     */
+    protected final NamePathResolver resolver;
 
     /**
      * Create a new instance of this class.
      */
-    public AbstractRecord(NamespaceResolver resolver) {
+    public AbstractRecord(NamespaceResolver nsResolver, NamePathResolver resolver) {
+        this.nsResolver = nsResolver;
         this.resolver = resolver;
     }
 
     /**
      * {@inheritDoc}
      */
-    public void writeQName(QName name) throws JournalException {
+    public void writeQName(Name name) throws JournalException {
         try {
-            writeString(NameFormat.format(name, resolver));
-        } catch (NoPrefixDeclaredException e) {
+            writeString(resolver.getJCRName(name));
+        } catch (NamespaceException e) {
             String msg = "Undeclared prefix error while writing name.";
             throw new JournalException(msg, e);
         }
@@ -87,7 +92,7 @@
     /**
      * {@inheritDoc}
      */
-    public void writePathElement(Path.PathElement element) throws JournalException {
+    public void writePathElement(Path.Element element) throws JournalException {
         writeQName(element.getName());
         writeInt(element.getIndex());
     }
@@ -97,8 +102,8 @@
      */
     public void writePath(Path path) throws JournalException {
         try {
-            writeString(PathFormat.format(path, resolver));
-        } catch (NoPrefixDeclaredException e) {
+            writeString(resolver.getJCRPath(path));
+        } catch (NamespaceException e) {
             String msg = "Undeclared prefix error while writing path.";
             throw new JournalException(msg, e);
         }
@@ -137,7 +142,7 @@
     public void writeNodeTypeDef(NodeTypeDef ntd) throws JournalException {
         try {
             StringWriter sw = new StringWriter();
-            CompactNodeTypeDefWriter writer = new CompactNodeTypeDefWriter(sw, resolver, true);
+            CompactNodeTypeDefWriter writer = new CompactNodeTypeDefWriter(sw, nsResolver, resolver, true);
             writer.write(ntd);
             writer.close();
 
@@ -151,13 +156,13 @@
     /**
      * {@inheritDoc}
      */
-    public QName readQName() throws JournalException {
+    public Name readQName() throws JournalException {
         try {
-            return NameFormat.parse(readString(), resolver);
-        } catch (UnknownPrefixException e) {
+            return resolver.getQName(readString());
+        } catch (NameException e) {
             String msg = "Unknown prefix error while reading name.";
             throw new JournalException(msg, e);
-        } catch (IllegalNameException e) {
+        } catch (NamespaceException e) {
             String msg = "Illegal name error while reading name.";
             throw new JournalException(msg, e);
         }
@@ -166,19 +171,19 @@
     /**
      * {@inheritDoc}
      */
-    public Path.PathElement readPathElement() throws JournalException {
+    public Path.Element readPathElement() throws JournalException {
         try {
-            QName name = NameFormat.parse(readString(), resolver);
+            Name name = resolver.getQName(readString());
             int index = readInt();
             if (index != 0) {
-                return Path.PathElement.create(name, index);
+                return PathFactoryImpl.getInstance().createElement(name, index);
             } else {
-                return Path.PathElement.create(name);
+                return PathFactoryImpl.getInstance().createElement(name);
             }
-        } catch (UnknownPrefixException e) {
+        } catch (NameException e) {
             String msg = "Unknown prefix error while reading path element.";
             throw new JournalException(msg, e);
-        } catch (IllegalNameException e) {
+        } catch (NamespaceException e) {
             String msg = "Illegal name error while reading path element.";
             throw new JournalException(msg, e);
         }
@@ -189,8 +194,14 @@
      */
     public Path readPath() throws JournalException {
         try {
-            return PathFormat.parse(readString(), resolver);
+            return resolver.getQPath(readString());
         } catch (MalformedPathException e) {
+            String msg = "Malformed path error while reading path.";
+            throw new JournalException(msg, e);
+        } catch (NamespaceException e) {
+            String msg = "Malformed path error while reading path.";
+            throw new JournalException(msg, e);
+        } catch (NameException e) {
             String msg = "Malformed path error while reading path.";
             throw new JournalException(msg, e);
         }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/AppendRecord.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/AppendRecord.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/AppendRecord.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/AppendRecord.java Tue Oct 30 03:02:41 2007
@@ -16,8 +16,8 @@
  */
 package org.apache.jackrabbit.core.journal;
 
-import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -26,8 +26,8 @@
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
-import java.io.InputStream;
 import java.io.IOException;
+import java.io.InputStream;
 
 /**
  * Default temporary record used for appending to some journal.
@@ -106,7 +106,7 @@
      * @param producerId producer identifier
      */
     public AppendRecord(AbstractJournal journal, String producerId) {
-        super(journal.getResolver());
+        super(journal.getResolver(), journal.getNamePathResolver());
 
         this.journal = journal;
         this.producerId = producerId;

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/DatabaseJournal.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/DatabaseJournal.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/DatabaseJournal.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/DatabaseJournal.java Tue Oct 30 03:02:41 2007
@@ -16,21 +16,21 @@
  */
 package org.apache.jackrabbit.core.journal;
 
-import org.apache.jackrabbit.name.NamespaceResolver;
+import org.apache.jackrabbit.namespace.NamespaceResolver;
 import org.apache.jackrabbit.util.Text;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.BufferedReader;
 import java.io.InputStreamReader;
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.DriverManager;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.DatabaseMetaData;
 import java.sql.Statement;
 
 /**
@@ -292,7 +292,7 @@
             selectRevisionsStmt.execute();
 
             return new DatabaseRecordIterator(
-                    selectRevisionsStmt.getResultSet(), getResolver());
+                    selectRevisionsStmt.getResultSet(), getResolver(), getNamePathResolver());
         } catch (SQLException e) {
             close(true);
 

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/DatabaseRecordIterator.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/DatabaseRecordIterator.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/DatabaseRecordIterator.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/DatabaseRecordIterator.java Tue Oct 30 03:02:41 2007
@@ -16,15 +16,16 @@
  */
 package org.apache.jackrabbit.core.journal;
 
+import org.apache.jackrabbit.conversion.NamePathResolver;
+import org.apache.jackrabbit.namespace.NamespaceResolver;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.apache.jackrabbit.name.NamespaceResolver;
 
-import java.util.NoSuchElementException;
-import java.sql.ResultSet;
-import java.sql.SQLException;
 import java.io.DataInputStream;
 import java.io.IOException;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.NoSuchElementException;
 
 /**
  * RecordIterator interface.
@@ -47,6 +48,11 @@
     private final NamespaceResolver resolver;
 
     /**
+     * Name and Path resolver.
+     */
+    private final NamePathResolver npResolver;
+
+    /**
      * Current record.
      */
     private ReadRecord record;
@@ -64,9 +70,10 @@
     /**
      * Create a new instance of this class.
      */
-    public DatabaseRecordIterator(ResultSet rs, NamespaceResolver resolver) {
+    public DatabaseRecordIterator(ResultSet rs, NamespaceResolver resolver, NamePathResolver npResolver) {
         this.rs = rs;
         this.resolver = resolver;
+        this.npResolver = npResolver;
     }
 
     /**
@@ -131,7 +138,7 @@
             String journalId = rs.getString(2);
             String producerId = rs.getString(3);
             DataInputStream dataIn = new DataInputStream(rs.getBinaryStream(4));
-            record = new ReadRecord(journalId, producerId, revision, dataIn, 0, resolver);
+            record = new ReadRecord(journalId, producerId, revision, dataIn, 0, resolver, npResolver);
         } else {
             isEOF = true;
         }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileJournal.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileJournal.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileJournal.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileJournal.java Tue Oct 30 03:02:41 2007
@@ -16,16 +16,16 @@
  */
 package org.apache.jackrabbit.core.journal;
 
+import org.apache.jackrabbit.namespace.NamespaceResolver;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.apache.jackrabbit.name.NamespaceResolver;
 
-import java.util.Arrays;
-import java.util.Comparator;
 import java.io.File;
 import java.io.FilenameFilter;
-import java.io.InputStream;
 import java.io.IOException;
+import java.io.InputStream;
+import java.util.Arrays;
+import java.util.Comparator;
 
 /**
  * File-based journal implementation that appends journal records to a single
@@ -156,7 +156,7 @@
                 }
             });
         }
-        return new FileRecordIterator(logFiles, startRevision, stopRevision, getResolver());
+        return new FileRecordIterator(logFiles, startRevision, stopRevision, getResolver(), getNamePathResolver());
     }
 
     /**

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRecordIterator.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRecordIterator.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRecordIterator.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRecordIterator.java Tue Oct 30 03:02:41 2007
@@ -16,7 +16,8 @@
  */
 package org.apache.jackrabbit.core.journal;
 
-import org.apache.jackrabbit.name.NamespaceResolver;
+import org.apache.jackrabbit.conversion.NamePathResolver;
+import org.apache.jackrabbit.namespace.NamespaceResolver;
 
 import java.io.File;
 import java.io.IOException;
@@ -49,6 +50,11 @@
     private NamespaceResolver resolver;
 
     /**
+     * Name and Path resolver.
+     */
+    private NamePathResolver npResolver;
+
+    /**
      * Current record log, containing file records.
      */
     private FileRecordLog recordLog;
@@ -66,11 +72,12 @@
      * @param stopRevision stop point (inclusive)
      */
     public FileRecordIterator(File[] logFiles, long startRevision, long stopRevision,
-                              NamespaceResolver resolver) {
+                              NamespaceResolver resolver, NamePathResolver npResolver) {
         this.logFiles = logFiles;
         this.revision = startRevision;
         this.stopRevision = stopRevision;
         this.resolver = resolver;
+        this.npResolver = npResolver;
     }
 
 
@@ -117,7 +124,7 @@
         }
 
         try {
-            record = recordLog.read(resolver);
+            record = recordLog.read(resolver, npResolver);
             revision = record.getRevision();
             return record;
         } catch (IOException e) {

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRecordLog.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRecordLog.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRecordLog.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRecordLog.java Tue Oct 30 03:02:41 2007
@@ -16,17 +16,18 @@
  */
 package org.apache.jackrabbit.core.journal;
 
+import org.apache.jackrabbit.conversion.NamePathResolver;
+import org.apache.jackrabbit.namespace.NamespaceResolver;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.apache.jackrabbit.name.NamespaceResolver;
 
-import java.io.File;
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.io.FileInputStream;
 import java.io.BufferedInputStream;
+import java.io.DataInputStream;
 import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
 import java.io.FileOutputStream;
+import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 
@@ -223,7 +224,7 @@
      * @return file record
      * @throws java.io.IOException if an I/O error occurs
      */
-    public ReadRecord read(NamespaceResolver resolver) throws IOException {
+    public ReadRecord read(NamespaceResolver resolver, NamePathResolver npResolver) throws IOException {
         String journalId = in.readUTF();
         String producerId = in.readUTF();
         int length = in.readInt();
@@ -233,7 +234,7 @@
                 4 + length;
 
         long revision = previousRevision + position;
-        return new ReadRecord(journalId, producerId, revision, in, length, resolver);
+        return new ReadRecord(journalId, producerId, revision, in, length, resolver, npResolver);
     }
 
     /**

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRevision.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRevision.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRevision.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/FileRevision.java Tue Oct 30 03:02:41 2007
@@ -16,8 +16,8 @@
  */
 package org.apache.jackrabbit.core.journal;
 
-import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.IOException;

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/Journal.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/Journal.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/Journal.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/Journal.java Tue Oct 30 03:02:41 2007
@@ -16,7 +16,7 @@
  */
 package org.apache.jackrabbit.core.journal;
 
-import org.apache.jackrabbit.name.NamespaceResolver;
+import org.apache.jackrabbit.namespace.NamespaceResolver;
 
 /**
  * Generic journal interface.

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/LockableFileRevision.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/LockableFileRevision.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/LockableFileRevision.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/LockableFileRevision.java Tue Oct 30 03:02:41 2007
@@ -16,8 +16,8 @@
  */
 package org.apache.jackrabbit.core.journal;
 
-import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.IOException;

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/ReadRecord.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/ReadRecord.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/ReadRecord.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/ReadRecord.java Tue Oct 30 03:02:41 2007
@@ -16,11 +16,12 @@
  */
 package org.apache.jackrabbit.core.journal;
 
-import org.apache.jackrabbit.name.QName;
-import org.apache.jackrabbit.name.NamespaceResolver;
+import org.apache.jackrabbit.conversion.NamePathResolver;
+import org.apache.jackrabbit.namespace.NamespaceResolver;
+import org.apache.jackrabbit.spi.Name;
 
-import java.io.IOException;
 import java.io.DataInputStream;
+import java.io.IOException;
 
 /**
  * Record used for reading.
@@ -62,9 +63,9 @@
      */
     public ReadRecord(String journalId, String producerId,
                       long revision, DataInputStream dataIn, int length,
-                      NamespaceResolver resolver) {
+                      NamespaceResolver resolver, NamePathResolver npResolver) {
 
-        super(resolver);
+        super(resolver, npResolver);
 
         this.journalId = journalId;
         this.producerId = producerId;
@@ -244,7 +245,7 @@
         throw unsupported();
     }
 
-    public void writeQName(QName name) throws JournalException {
+    public void writeQName(Name name) throws JournalException {
         throw unsupported();
     }
 

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/Record.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/Record.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/Record.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/journal/Record.java Tue Oct 30 03:02:41 2007
@@ -19,8 +19,8 @@
 import org.apache.jackrabbit.core.NodeId;
 import org.apache.jackrabbit.core.PropertyId;
 import org.apache.jackrabbit.core.nodetype.NodeTypeDef;
-import org.apache.jackrabbit.name.QName;
-import org.apache.jackrabbit.name.Path;
+import org.apache.jackrabbit.spi.Name;
+import org.apache.jackrabbit.spi.Path;
 
 /**
  * Record interface.
@@ -97,20 +97,20 @@
     public void readFully(byte[] b) throws JournalException;
 
     /**
-     * Read a <code>QName</code> frmo the underlying stream.
+     * Read a <code>Name</code> frmo the underlying stream.
      *
      * @return name name
      * @throws JournalException if an error occurs
      */
-    public QName readQName() throws JournalException;
+    public Name readQName() throws JournalException;
 
     /**
-     * Read a <code>Path.PathElement</code> from the underlying stream.
+     * Read a <code>Path.Element</code> from the underlying stream.
      *
      * @return path element
      * @throws JournalException if an error occurs
      */
-    public Path.PathElement readPathElement() throws JournalException;
+    public Path.Element readPathElement() throws JournalException;
 
     /**
      * Read a <code>Path</code> from the underlying stream.
@@ -193,20 +193,20 @@
     public void write(byte[] b) throws JournalException;
 
     /**
-     * Write a <code>QName</code> to the underlying stream.
+     * Write a <code>Name</code> to the underlying stream.
      *
      * @param name name
      * @throws JournalException if an error occurs
      */
-    public void writeQName(QName name) throws JournalException;
+    public void writeQName(Name name) throws JournalException;
 
     /**
-     * Write a <code>Path.PathElement</code> to the underlying stream.
+     * Write a <code>Path.Element</code> to the underlying stream.
      *
      * @param element path element
      * @throws JournalException if an error occurs
      */
-    public void writePathElement(Path.PathElement element) throws JournalException;
+    public void writePathElement(Path.Element element) throws JournalException;
 
     /**
      * Write a <code>Path</code> to the underlying stream.

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManager.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManager.java Tue Oct 30 03:02:41 2007
@@ -18,7 +18,7 @@
 
 import org.apache.jackrabbit.core.NodeImpl;
 import org.apache.jackrabbit.core.SessionImpl;
-import org.apache.jackrabbit.name.Path;
+import org.apache.jackrabbit.spi.Path;
 
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/LockManagerImpl.java Tue Oct 30 03:02:41 2007
@@ -18,26 +18,25 @@
 
 import EDU.oswego.cs.dl.util.concurrent.ReentrantLock;
 import org.apache.commons.collections.map.LinkedMap;
+import org.apache.jackrabbit.conversion.MalformedPathException;
+import org.apache.jackrabbit.conversion.NamePathResolver;
 import org.apache.jackrabbit.core.ItemId;
 import org.apache.jackrabbit.core.NodeId;
 import org.apache.jackrabbit.core.NodeImpl;
-import org.apache.jackrabbit.util.PathMap;
 import org.apache.jackrabbit.core.SessionImpl;
 import org.apache.jackrabbit.core.SessionListener;
-import org.apache.jackrabbit.core.util.Dumpable;
+import org.apache.jackrabbit.core.cluster.ClusterOperation;
 import org.apache.jackrabbit.core.cluster.LockEventChannel;
 import org.apache.jackrabbit.core.cluster.LockEventListener;
-import org.apache.jackrabbit.core.cluster.ClusterOperation;
 import org.apache.jackrabbit.core.fs.FileSystem;
 import org.apache.jackrabbit.core.fs.FileSystemException;
 import org.apache.jackrabbit.core.fs.FileSystemResource;
 import org.apache.jackrabbit.core.observation.EventImpl;
 import org.apache.jackrabbit.core.observation.SynchronousEventListener;
-import org.apache.jackrabbit.name.MalformedPathException;
-import org.apache.jackrabbit.name.NamespaceResolver;
-import org.apache.jackrabbit.name.Path;
-import org.apache.jackrabbit.name.QName;
-import org.apache.jackrabbit.name.PathFormat;
+import org.apache.jackrabbit.core.util.Dumpable;
+import org.apache.jackrabbit.name.NameConstants;
+import org.apache.jackrabbit.name.PathMap;
+import org.apache.jackrabbit.spi.Path;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -101,9 +100,9 @@
     private boolean savingDisabled;
 
     /**
-     * Namespace resolver
+     * Name and Path resolver
      */
-    private final NamespaceResolver nsResolver;
+    private final NamePathResolver resolver;
 
     /**
      * Lock event channel.
@@ -121,7 +120,7 @@
             throws RepositoryException {
 
         this.session = session;
-        this.nsResolver = session.getNamespaceResolver();
+        this.resolver = session.getNamePathResolver();
         this.locksFile = new FileSystemResource(fs, FileSystem.SEPARATOR + LOCKS_FILE);
 
         session.getWorkspace().getObservationManager().
@@ -185,8 +184,8 @@
             Path path = getPath(lockToken.id);
 
             LockInfo info = new LockInfo(lockToken, false,
-                    node.getProperty(QName.JCR_LOCKISDEEP).getBoolean(),
-                    node.getProperty(QName.JCR_LOCKOWNER).getString());
+                    node.getProperty(NameConstants.JCR_LOCKISDEEP).getBoolean(),
+                    node.getProperty(NameConstants.JCR_LOCKOWNER).getString());
             info.setLive(true);
             lockMap.put(path, info);
         } catch (RepositoryException e) {
@@ -826,7 +825,7 @@
 
             try {
                 he = new HierarchyEvent(event.getChildId(),
-                        PathFormat.parse(event.getPath(), nsResolver).getNormalizedPath(),
+                        resolver.getQPath(event.getPath()).getNormalizedPath(),
                         event.getType());
             } catch (MalformedPathException e) {
                 log.info("Unable to get event's path: " + e.getMessage());
@@ -954,7 +953,7 @@
 
     /**
      * Contains information about a lock and gets placed inside the child
-     * information of a {@link org.apache.jackrabbit.util.PathMap}.
+     * information of a {@link org.apache.jackrabbit.name.PathMap}.
      */
     class LockInfo extends AbstractLockInfo implements SessionListener {
 

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/XALockManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/XALockManager.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/XALockManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/lock/XALockManager.java Tue Oct 30 03:02:41 2007
@@ -21,7 +21,7 @@
 import org.apache.jackrabbit.core.SessionImpl;
 import org.apache.jackrabbit.core.TransactionContext;
 import org.apache.jackrabbit.core.TransactionException;
-import org.apache.jackrabbit.name.Path;
+import org.apache.jackrabbit.spi.Path;
 
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/BitsetENTCacheImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/BitsetENTCacheImpl.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/BitsetENTCacheImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/BitsetENTCacheImpl.java Tue Oct 30 03:02:41 2007
@@ -16,7 +16,7 @@
  */
 package org.apache.jackrabbit.core.nodetype;
 
-import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.spi.Name;
 
 import java.util.TreeSet;
 import java.util.HashMap;
@@ -69,7 +69,7 @@
     /**
      * The reverse lookup table for bit numbers to names
      */
-    private QName[] names = new QName[1024];
+    private Name[] names = new Name[1024];
 
     /**
      * Creates a new bitset effective node type cache
@@ -82,7 +82,7 @@
     /**
      * {@inheritDoc}
      */
-    public Key getKey(QName[] ntNames) {
+    public Key getKey(Name[] ntNames) {
         return new BitsetKey(ntNames, nameIndex.size() + ntNames.length);
     }
 
@@ -122,7 +122,7 @@
     /**
      * {@inheritDoc}
      */
-    public void invalidate(QName name) {
+    public void invalidate(Name name) {
         /**
          * remove all affected effective node types from aggregates cache
          * (copy keys first to prevent ConcurrentModificationException)
@@ -158,7 +158,7 @@
      * @param name the name to lookup
      * @return the bit number for the given name
      */
-    private int getBitNumber(QName name) {
+    private int getBitNumber(Name name) {
         Integer i = (Integer) nameIndex.get(name);
         if (i == null) {
             synchronized (nameIndex) {
@@ -168,7 +168,7 @@
                     i = new Integer(idx);
                     nameIndex.put(name, i);
                     if (idx >= names.length) {
-                        QName[] newNames = new QName[names.length*2];
+                        Name[] newNames = new Name[names.length*2];
                         System.arraycopy(names, 0, newNames, 0, names.length);
                         names = newNames;
                     }
@@ -184,7 +184,7 @@
      * @param n the bit number to lookup
      * @return the node type name
      */
-    private QName getName(int n) {
+    private Name getName(int n) {
         return names[n];
     }
 
@@ -213,7 +213,7 @@
         BitsetENTCacheImpl clone = new BitsetENTCacheImpl();
         clone.sortedKeys.addAll(sortedKeys);
         clone.aggregates.putAll(aggregates);
-        clone.names = new QName[names.length];
+        clone.names = new Name[names.length];
         System.arraycopy(names, 0, clone.names, 0, names.length);
         clone.nameIndex.putAll(nameIndex);
         return clone;
@@ -246,7 +246,7 @@
         /**
          * The names of the node types that form this key.
          */
-        private final QName[] names;
+        private final Name[] names;
 
         /**
          * The array of longs that hold the bit information.
@@ -263,7 +263,7 @@
          * @param names the node type names
          * @param maxBit the approximative number of the geatest bit
          */
-        public BitsetKey(QName[] names, int maxBit) {
+        public BitsetKey(Name[] names, int maxBit) {
             this.names = names;
             bits = new long[maxBit/BPW+1];
 
@@ -281,7 +281,7 @@
          */
         private BitsetKey(long[] bits, int numBits) {
             this.bits = bits;
-            names = new QName[numBits];
+            names = new Name[numBits];
             int i = nextSetBit(0);
             int j=0;
             while (i >= 0) {
@@ -294,7 +294,7 @@
         /**
          * {@inheritDoc}
          */
-        public QName[] getNames() {
+        public Name[] getNames() {
             return names;
         }
 

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/EffectiveNodeType.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/EffectiveNodeType.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/EffectiveNodeType.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/EffectiveNodeType.java Tue Oct 30 03:02:41 2007
@@ -17,7 +17,7 @@
 package org.apache.jackrabbit.core.nodetype;
 
 import org.apache.jackrabbit.core.value.InternalValue;
-import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.spi.Name;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -88,7 +88,7 @@
             throws NodeTypeConflictException, NoSuchNodeTypeException {
         // create empty effective node type instance
         EffectiveNodeType ent = new EffectiveNodeType();
-        QName ntName = ntd.getName();
+        Name ntName = ntd.getName();
 
         // prepare new instance
         ent.mergedNodeTypes.add(ntName);
@@ -122,7 +122,7 @@
                 ent.unnamedItemDefs.add(cnda[i]);
             } else {
                 // named node definition
-                QName name = cnda[i].getName();
+                Name name = cnda[i].getName();
                 List defs = (List) ent.namedItemDefs.get(name);
                 if (defs == null) {
                     defs = new ArrayList();
@@ -170,7 +170,7 @@
                 ent.unnamedItemDefs.add(pda[i]);
             } else {
                 // named property definition
-                QName name = pda[i].getName();
+                Name name = pda[i].getName();
                 List defs = (List) ent.namedItemDefs.get(name);
                 if (defs == null) {
                     defs = new ArrayList();
@@ -197,7 +197,7 @@
         }
 
         // resolve supertypes recursively
-        QName[] supertypes = ntd.getSupertypes();
+        Name[] supertypes = ntd.getSupertypes();
         if (supertypes.length > 0) {
             EffectiveNodeType base =
                     NodeTypeRegistry.getEffectiveNodeType(supertypes, entCache, ntdCache);
@@ -218,16 +218,16 @@
         return new EffectiveNodeType();
     }
 
-    public QName[] getMergedNodeTypes() {
-        return (QName[]) mergedNodeTypes.toArray(new QName[mergedNodeTypes.size()]);
+    public Name[] getMergedNodeTypes() {
+        return (Name[]) mergedNodeTypes.toArray(new Name[mergedNodeTypes.size()]);
     }
 
-    public QName[] getInheritedNodeTypes() {
-        return (QName[]) inheritedNodeTypes.toArray(new QName[inheritedNodeTypes.size()]);
+    public Name[] getInheritedNodeTypes() {
+        return (Name[]) inheritedNodeTypes.toArray(new Name[inheritedNodeTypes.size()]);
     }
 
-    public QName[] getAllNodeTypes() {
-        return (QName[]) allNodeTypes.toArray(new QName[allNodeTypes.size()]);
+    public Name[] getAllNodeTypes() {
+        return (Name[]) allNodeTypes.toArray(new Name[allNodeTypes.size()]);
     }
 
     public ItemDef[] getAllItemDefs() {
@@ -268,11 +268,11 @@
         return (ItemDef[]) unnamedItemDefs.toArray(new ItemDef[unnamedItemDefs.size()]);
     }
 
-    public boolean hasNamedItemDef(QName name) {
+    public boolean hasNamedItemDef(Name name) {
         return namedItemDefs.containsKey(name);
     }
 
-    public ItemDef[] getNamedItemDefs(QName name) {
+    public ItemDef[] getNamedItemDefs(Name name) {
         List defs = (List) namedItemDefs.get(name);
         if (defs == null || defs.size() == 0) {
             return ItemDef.EMPTY_ARRAY;
@@ -331,7 +331,7 @@
         return (NodeDef[]) defs.toArray(new NodeDef[defs.size()]);
     }
 
-    public NodeDef[] getNamedNodeDefs(QName name) {
+    public NodeDef[] getNamedNodeDefs(Name name) {
         List list = (List) namedItemDefs.get(name);
         if (list == null || list.size() == 0) {
             return NodeDef.EMPTY_ARRAY;
@@ -443,7 +443,7 @@
         return (PropDef[]) defs.toArray(new PropDef[defs.size()]);
     }
 
-    public PropDef[] getNamedPropDefs(QName name) {
+    public PropDef[] getNamedPropDefs(Name name) {
         List list = (List) namedItemDefs.get(name);
         if (list == null || list.size() == 0) {
             return PropDef.EMPTY_ARRAY;
@@ -560,7 +560,7 @@
      * @return <code>true</code> if the given node type is included, otherwise
      *         <code>false</code>
      */
-    public boolean includesNodeType(QName nodeTypeName) {
+    public boolean includesNodeType(Name nodeTypeName) {
         return allNodeTypes.contains(nodeTypeName);
     }
 
@@ -572,7 +572,7 @@
      * @return <code>true</code> if all of the given node types are included,
      *         otherwise <code>false</code>
      */
-    public boolean includesNodeTypes(QName[] nodeTypeNames) {
+    public boolean includesNodeTypes(Name[] nodeTypeNames) {
         return allNodeTypes.containsAll(Arrays.asList(nodeTypeNames));
     }
 
@@ -631,7 +631,7 @@
      * @param name
      * @throws ConstraintViolationException
      */
-    public void checkAddNodeConstraints(QName name)
+    public void checkAddNodeConstraints(Name name)
             throws ConstraintViolationException {
         try {
             getApplicableChildNodeDef(name, null, null);
@@ -649,7 +649,7 @@
      * @throws ConstraintViolationException
      * @throws NoSuchNodeTypeException
      */
-    public void checkAddNodeConstraints(QName name, QName nodeTypeName,
+    public void checkAddNodeConstraints(Name name, Name nodeTypeName,
                                         NodeTypeRegistry ntReg)
             throws ConstraintViolationException, NoSuchNodeTypeException {
         NodeDef nd = getApplicableChildNodeDef(name, nodeTypeName, ntReg);
@@ -674,7 +674,7 @@
      * @throws ConstraintViolationException if no applicable child node definition
      *                                      could be found
      */
-    public NodeDef getApplicableChildNodeDef(QName name, QName nodeTypeName,
+    public NodeDef getApplicableChildNodeDef(Name name, Name nodeTypeName,
                                              NodeTypeRegistry ntReg)
             throws NoSuchNodeTypeException, ConstraintViolationException {
         EffectiveNodeType entTarget;
@@ -752,7 +752,7 @@
      * @throws ConstraintViolationException if no applicable property definition
      *                                      could be found
      */
-    public PropDef getApplicablePropertyDef(QName name, int type,
+    public PropDef getApplicablePropertyDef(Name name, int type,
                                             boolean multiValued)
             throws ConstraintViolationException {
         // try named property definitions first
@@ -777,7 +777,7 @@
      * Returns the applicable property definition for a property with the
      * specified name and type. The multiValued flag is not taken into account
      * in the selection algorithm. Other than
-     * <code>{@link #getApplicablePropertyDef(QName, int, boolean)}</code>
+     * <code>{@link #getApplicablePropertyDef(Name, int, boolean)}</code>
      * this method does not take the multiValued flag into account in the
      * selection algorithm. If there more than one applicable definitions then
      * the following rules are applied:
@@ -794,7 +794,7 @@
      * @throws ConstraintViolationException if no applicable property definition
      *                                      could be found
      */
-    public PropDef getApplicablePropertyDef(QName name, int type)
+    public PropDef getApplicablePropertyDef(Name name, int type)
             throws ConstraintViolationException {
         // try named property definitions first
         PropDef match = getMatchingPropDef(getNamedPropDefs(name), type);
@@ -886,7 +886,7 @@
      * @param name
      * @throws ConstraintViolationException
      */
-    public void checkRemoveItemConstraints(QName name) throws ConstraintViolationException {
+    public void checkRemoveItemConstraints(Name name) throws ConstraintViolationException {
         /**
          * as there might be multiple definitions with the same name and we
          * don't know which one is applicable, we check all of them
@@ -908,7 +908,7 @@
      * @param name
      * @throws ConstraintViolationException
      */
-    public void checkRemoveNodeConstraints(QName name) throws ConstraintViolationException {
+    public void checkRemoveNodeConstraints(Name name) throws ConstraintViolationException {
         /**
          * as there might be multiple definitions with the same name and we
          * don't know which one is applicable, we check all of them
@@ -930,7 +930,7 @@
      * @param name
      * @throws ConstraintViolationException
      */
-    public void checkRemovePropertyConstraints(QName name) throws ConstraintViolationException {
+    public void checkRemovePropertyConstraints(Name name) throws ConstraintViolationException {
         /**
          * as there might be multiple definitions with the same name and we
          * don't know which one is applicable, we check all of them
@@ -982,7 +982,7 @@
      */
     private synchronized void internalMerge(EffectiveNodeType other, boolean supertype)
             throws NodeTypeConflictException {
-        QName[] nta = other.getAllNodeTypes();
+        Name[] nta = other.getAllNodeTypes();
         int includedCount = 0;
         for (int i = 0; i < nta.length; i++) {
             if (includesNodeType(nta[i])) {
@@ -1004,7 +1004,7 @@
                 // ignore redundant definitions
                 continue;
             }
-            QName name = def.getName();
+            Name name = def.getName();
             List existingDefs = (List) namedItemDefs.get(name);
             if (existingDefs != null) {
                 if (existingDefs.size() > 0) {

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/EffectiveNodeTypeCache.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/EffectiveNodeTypeCache.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/EffectiveNodeTypeCache.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/EffectiveNodeTypeCache.java Tue Oct 30 03:02:41 2007
@@ -17,7 +17,7 @@
 package org.apache.jackrabbit.core.nodetype;
 
 import org.apache.jackrabbit.core.util.Dumpable;
-import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.spi.Name;
 
 /**
  * <code>EffectiveNodeTypeCache</code> defines the interface for a cache for
@@ -61,14 +61,14 @@
      * @param ntNames the array of node type names for the effective node type
      * @return the key to an effective node type.
      */
-    Key getKey(QName[] ntNames);
+    Key getKey(Name[] ntNames);
 
     /**
      * Removes all effective node types that are aggregated with the node type
      * of the given name.
      * @param name the name of the node type.
      */
-    void invalidate(QName name);
+    void invalidate(Name name);
 
     /**
      * {@inheritDoc}
@@ -96,7 +96,7 @@
          * Returns the node type names of this key.
          * @return the node type names of this key.
          */
-        QName[] getNames();
+        Name[] getNames();
 
         /**
          * Checks if the <code>otherKey</code> is contained in this one. I.e. if

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/EffectiveNodeTypeCacheImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/EffectiveNodeTypeCacheImpl.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/EffectiveNodeTypeCacheImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/EffectiveNodeTypeCacheImpl.java Tue Oct 30 03:02:41 2007
@@ -16,7 +16,7 @@
  */
 package org.apache.jackrabbit.core.nodetype;
 
-import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.spi.Name;
 
 import java.io.PrintStream;
 import java.util.Arrays;
@@ -55,7 +55,7 @@
     /**
      * {@inheritDoc}
      */
-    public Key getKey(QName[] ntNames) {
+    public Key getKey(Name[] ntNames) {
         return new WeightedKey(ntNames);
     }
 
@@ -124,7 +124,7 @@
     /**
      * {@inheritDoc}
      */
-    public void invalidate(QName name) {
+    public void invalidate(Name name) {
         // remove all affected effective node types from aggregates cache
         // (copy keys first to prevent ConcurrentModificationException)
         ArrayList keys = new ArrayList(sortedKeys);
@@ -220,7 +220,7 @@
         /**
          * array of node type names, sorted in ascending order
          */
-        private final QName[] names;
+        private final Name[] names;
 
         /**
          * the weight of this key
@@ -230,7 +230,7 @@
         /**
          * @param ntNames
          */
-        WeightedKey(QName[] ntNames) {
+        WeightedKey(Name[] ntNames) {
             this(ntNames, ntNames.length);
         }
 
@@ -238,9 +238,9 @@
          * @param ntNames
          * @param weight
          */
-        WeightedKey(QName[] ntNames, int weight) {
+        WeightedKey(Name[] ntNames, int weight) {
             this.weight = weight;
-            names = new QName[ntNames.length];
+            names = new Name[ntNames.length];
             System.arraycopy(ntNames, 0, names, 0, names.length);
             Arrays.sort(names);
         }
@@ -257,13 +257,13 @@
          * @param weight
          */
         WeightedKey(Collection ntNames, int weight) {
-            this((QName[]) ntNames.toArray(new QName[ntNames.size()]), weight);
+            this((Name[]) ntNames.toArray(new Name[ntNames.size()]), weight);
         }
 
         /**
          * @return the node type names of this key
          */
-        public QName[] getNames() {
+        public Name[] getNames() {
             return names;
         }
 
@@ -316,8 +316,8 @@
             int len = Math.min(len1, len2);
 
             for (int i = 0; i < len; i++) {
-                QName name1 = names[i];
-                QName name2 = other.names[i];
+                Name name1 = names[i];
+                Name name2 = other.names[i];
                 int result = name1.compareTo(name2);
                 if (result != 0) {
                     return result;

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/ItemDef.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/ItemDef.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/ItemDef.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/ItemDef.java Tue Oct 30 03:02:41 2007
@@ -16,11 +16,12 @@
  */
 package org.apache.jackrabbit.core.nodetype;
 
-import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.spi.Name;
+import org.apache.jackrabbit.name.NameConstants;
 
 /**
  * <code>ItemDef</code> is the internal representation of
- * an item definition. It refers to <code>QName</code>s only
+ * an item definition. It refers to <code>Name</code>s only
  * and is thus isolated from session-specific namespace mappings.
  *
  * @see javax.jcr.nodetype.ItemDefinition
@@ -32,21 +33,21 @@
     /**
      * The special wildcard name used as the name of residual item definitions.
      */
-    QName ANY_NAME = new QName("", "*");
+    Name ANY_NAME = NameConstants.ANY_NAME;
 
     /**
      * Gets the name of the child item.
      *
      * @return the name of the child item.
      */
-    QName getName();
+    Name getName();
 
     /**
      * Gets the name of the declaring node type.
      *
      * @return the name of the declaring node type.
      */
-    QName getDeclaringNodeType();
+    Name getDeclaringNodeType();
 
     /**
      * Determines whether the item is 'autoCreated'.

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/ItemDefImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/ItemDefImpl.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/ItemDefImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/ItemDefImpl.java Tue Oct 30 03:02:41 2007
@@ -16,7 +16,7 @@
  */
 package org.apache.jackrabbit.core.nodetype;
 
-import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.spi.Name;
 
 import javax.jcr.version.OnParentVersionAction;
 
@@ -30,12 +30,12 @@
     /**
      * The name of the child item.
      */
-    private QName name = ItemDef.ANY_NAME;
+    private Name name = ItemDef.ANY_NAME;
 
     /**
      * The name of the declaring node type.
      */
-    protected QName declaringNodeType = null;
+    protected Name declaringNodeType = null;
 
     /**
      * The 'autoCreated' flag.
@@ -69,7 +69,7 @@
      * @param declaringNodeType name of the declaring node type (must not be
      *                          <code>null</code>)
      */
-    public void setDeclaringNodeType(QName declaringNodeType) {
+    public void setDeclaringNodeType(Name declaringNodeType) {
         if (declaringNodeType == null) {
             throw new IllegalArgumentException("declaringNodeType can not be null");
         }
@@ -81,7 +81,7 @@
      *
      * @param name name of child item (must not be  <code>null</code>)
      */
-    public void setName(QName name) {
+    public void setName(Name name) {
         if (name == null) {
             throw new IllegalArgumentException("name can not be null");
         }
@@ -136,14 +136,14 @@
     /**
      * {@inheritDoc}
      */
-    public QName getDeclaringNodeType() {
+    public Name getDeclaringNodeType() {
         return declaringNodeType;
     }
 
     /**
      * {@inheritDoc}
      */
-    public QName getName() {
+    public Name getName() {
         return name;
     }
 

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/ItemDefinitionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/ItemDefinitionImpl.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/ItemDefinitionImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/ItemDefinitionImpl.java Tue Oct 30 03:02:41 2007
@@ -16,21 +16,20 @@
  */
 package org.apache.jackrabbit.core.nodetype;
 
-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.conversion.NamePathResolver;
+import org.apache.jackrabbit.spi.Name;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import javax.jcr.nodetype.ItemDefinition;
 import javax.jcr.nodetype.NoSuchNodeTypeException;
 import javax.jcr.nodetype.NodeType;
+import javax.jcr.NamespaceException;
 
 /**
  * This class implements the <code>ItemDefinition</code> interface.
  * All method calls are delegated to the wrapped {@link ItemDef},
- * 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.
  */
 abstract class ItemDefinitionImpl implements ItemDefinition {
@@ -51,9 +50,9 @@
     protected final NodeTypeManagerImpl ntMgr;
 
     /**
-     * The namespace resolver used to translate qualified names to JCR names.
+     * The name/path resolver used to translate qualified names to JCR names.
      */
-    protected final NamespaceResolver nsResolver;
+    protected final NamePathResolver resolver;
 
     /**
      * The wrapped item definition.
@@ -65,13 +64,13 @@
      *
      * @param itemDef    item definition
      * @param ntMgr      node type manager
-     * @param nsResolver namespace resolver
+     * @param resolver
      */
     ItemDefinitionImpl(ItemDef itemDef, NodeTypeManagerImpl ntMgr,
-                       NamespaceResolver nsResolver) {
+                       NamePathResolver resolver) {
         this.itemDef = itemDef;
         this.ntMgr = ntMgr;
-        this.nsResolver = nsResolver;
+        this.resolver = resolver;
     }
 
     /**
@@ -84,13 +83,13 @@
     }
 
     /**
-     * Gets the <code>QName</code> of the child item. It is an error to
+     * Gets the <code>Name</code> of the child item. It is an error to
      * call this method if this is a residual item definition.
      *
-     * @return the <code>QName</code> of the child item.
+     * @return the <code>Name</code> of the child item.
      * @see #getName()
      */
-    public QName getQName() {
+    public Name getQName() {
         return itemDef.getName();
     }
 
@@ -116,11 +115,11 @@
             return ANY_NAME;
         } else {
             try {
-                return NameFormat.format(itemDef.getName(), nsResolver);
-            } catch (NoPrefixDeclaredException npde) {
+                return resolver.getJCRName(itemDef.getName());
+            } catch (NamespaceException e) {
                 // should never get here
                 log.error("encountered unregistered namespace in item name",
-                        npde);
+                        e);
                 // not correct, but an acceptable fallback
                 return itemDef.getName().toString();
             }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeDef.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeDef.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeDef.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeDef.java Tue Oct 30 03:02:41 2007
@@ -16,11 +16,11 @@
  */
 package org.apache.jackrabbit.core.nodetype;
 
-import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.spi.Name;
 
 /**
  * <code>NodeDef</code> is the internal representation of
- * a node definition. It refers to <code>QName</code>s only
+ * a node definition. It refers to <code>Name</code>s only
  * and is thus isolated from session-specific namespace mappings.
  *
  * @see javax.jcr.nodetype.NodeDefinition
@@ -41,14 +41,14 @@
      *
      * @return the name of the default primary type.
      */
-    QName getDefaultPrimaryType();
+    Name getDefaultPrimaryType();
 
     /**
      * Returns the array of names of the required primary types.
      *
      * @return the array of names of the required primary types.
      */
-    QName[] getRequiredPrimaryTypes();
+    Name[] getRequiredPrimaryTypes();
 
     /**
      * Reports whether this node can have same-name siblings.

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeDefId.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeDefId.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeDefId.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeDefId.java Tue Oct 30 03:02:41 2007
@@ -16,7 +16,7 @@
  */
 package org.apache.jackrabbit.core.nodetype;
 
-import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.spi.Name;
 
 import java.io.Serializable;
 import java.util.Arrays;
@@ -63,7 +63,7 @@
 
         // required node type names, sorted in ascending order
         // format: "[name1, name2, name3]", see AbstractCollection#toString()
-        QName[] names = def.getRequiredPrimaryTypes();
+        Name[] names = def.getRequiredPrimaryTypes();
         Arrays.sort(names);
         sb.append('[');
         for (int i = 0; i < names.length; i++) {

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeDefImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeDefImpl.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeDefImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeDefImpl.java Tue Oct 30 03:02:41 2007
@@ -16,7 +16,8 @@
  */
 package org.apache.jackrabbit.core.nodetype;
 
-import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.spi.Name;
+import org.apache.jackrabbit.name.NameConstants;
 
 import java.util.Arrays;
 import java.util.HashSet;
@@ -30,7 +31,7 @@
     /**
      * The name of the default primary type.
      */
-    private QName defaultPrimaryType;
+    private Name defaultPrimaryType;
 
     /**
      * The names of the required primary types.
@@ -55,7 +56,7 @@
     public NodeDefImpl() {
         defaultPrimaryType = null;
         requiredPrimaryTypes = new HashSet();
-        requiredPrimaryTypes.add(QName.NT_BASE);
+        requiredPrimaryTypes.add(NameConstants.NT_BASE);
         allowsSameNameSiblings = false;
         id = null;
     }
@@ -65,7 +66,7 @@
      *
      * @param defaultNodeType
      */
-    public void setDefaultPrimaryType(QName defaultNodeType) {
+    public void setDefaultPrimaryType(Name defaultNodeType) {
         // reset id field in order to force lazy recomputation of identifier
         id = null;
         this.defaultPrimaryType = defaultNodeType;
@@ -76,7 +77,7 @@
      *
      * @param requiredPrimaryTypes
      */
-    public void setRequiredPrimaryTypes(QName[] requiredPrimaryTypes) {
+    public void setRequiredPrimaryTypes(Name[] requiredPrimaryTypes) {
         if (requiredPrimaryTypes == null) {
             throw new IllegalArgumentException("requiredPrimaryTypes can not be null");
         }
@@ -101,7 +102,7 @@
     /**
      * {@inheritDoc}
      */
-    public void setDeclaringNodeType(QName declaringNodeType) {
+    public void setDeclaringNodeType(Name declaringNodeType) {
         // reset id field in order to force lazy recomputation of identifier
         id = null;
         super.setDeclaringNodeType(declaringNodeType);
@@ -110,7 +111,7 @@
     /**
      * {@inheritDoc}
      */
-    public void setName(QName name) {
+    public void setName(Name name) {
         // reset id field in order to force lazy recomputation of identifier
         id = null;
         super.setName(name);
@@ -171,19 +172,19 @@
     /**
      * {@inheritDoc}
      */
-    public QName getDefaultPrimaryType() {
+    public Name getDefaultPrimaryType() {
         return defaultPrimaryType;
     }
 
     /**
      * {@inheritDoc}
      */
-    public QName[] getRequiredPrimaryTypes() {
+    public Name[] getRequiredPrimaryTypes() {
         if (requiredPrimaryTypes.isEmpty()) {
-            return QName.EMPTY_ARRAY;
+            return Name.EMPTY_ARRAY;
         }
-        return (QName[]) requiredPrimaryTypes.toArray(
-                new QName[requiredPrimaryTypes.size()]);
+        return (Name[]) requiredPrimaryTypes.toArray(
+                new Name[requiredPrimaryTypes.size()]);
     }
 
     /**

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeDefinitionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeDefinitionImpl.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeDefinitionImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeDefinitionImpl.java Tue Oct 30 03:02:41 2007
@@ -16,21 +16,21 @@
  */
 package org.apache.jackrabbit.core.nodetype;
 
-import org.apache.jackrabbit.name.NamespaceResolver;
-import org.apache.jackrabbit.name.QName;
-import org.apache.jackrabbit.name.NameFormat;
-import org.apache.jackrabbit.name.NoPrefixDeclaredException;
+import org.apache.jackrabbit.spi.Name;
+import org.apache.jackrabbit.name.NameConstants;
+import org.apache.jackrabbit.conversion.NamePathResolver;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import javax.jcr.nodetype.NoSuchNodeTypeException;
 import javax.jcr.nodetype.NodeDefinition;
 import javax.jcr.nodetype.NodeType;
+import javax.jcr.NamespaceException;
 
 /**
  * This class implements the <code>NodeDefinition</code> interface.
  * All method calls are delegated to the wrapped {@link NodeDef},
- * 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 NodeDefinitionImpl extends ItemDefinitionImpl implements NodeDefinition {
@@ -45,11 +45,11 @@
      *
      * @param nodeDef    child node definition
      * @param ntMgr      node type manager
-     * @param nsResolver namespace resolver
+     * @param resolver
      */
     NodeDefinitionImpl(NodeDef nodeDef, NodeTypeManagerImpl ntMgr,
-                NamespaceResolver nsResolver) {
-        super(nodeDef, ntMgr, nsResolver);
+                       NamePathResolver resolver) {
+        super(nodeDef, ntMgr, resolver);
     }
 
     /**
@@ -66,7 +66,7 @@
      * {@inheritDoc}
      */
     public NodeType getDefaultPrimaryType() {
-        QName ntName = ((NodeDef) itemDef).getDefaultPrimaryType();
+        Name ntName = ((NodeDef) itemDef).getDefaultPrimaryType();
         if (ntName == null) {
             return null;
         }
@@ -83,11 +83,11 @@
      * {@inheritDoc}
      */
     public NodeType[] getRequiredPrimaryTypes() {
-        QName[] ntNames = ((NodeDef) itemDef).getRequiredPrimaryTypes();
+        Name[] ntNames = ((NodeDef) itemDef).getRequiredPrimaryTypes();
         try {
             if (ntNames == null || ntNames.length == 0) {
                 // return "nt:base"
-                return new NodeType[] {ntMgr.getNodeType(QName.NT_BASE)};
+                return new NodeType[] {ntMgr.getNodeType(NameConstants.NT_BASE)};
             } else {
                 NodeType[] nodeTypes = new NodeType[ntNames.length];
                 for (int i = 0; i < ntNames.length; i++) {
@@ -128,19 +128,19 @@
      * @since JCR 2.0
      */
     public String[] getRequiredPrimaryTypeNames() {
-        QName[] ntNames = ((NodeDef) itemDef).getRequiredPrimaryTypes();
+        Name[] ntNames = ((NodeDef) itemDef).getRequiredPrimaryTypes();
         try {
             if (ntNames == null || ntNames.length == 0) {
                 // return "nt:base"
-                return new String[] {NameFormat.format(QName.NT_BASE, nsResolver)};
+                return new String[] {resolver.getJCRName(NameConstants.NT_BASE)};
             } else {
                 String[] names = new String[ntNames.length];
                 for (int i = 0; i < ntNames.length; i++) {
-                    names[i] = NameFormat.format(ntNames[i], nsResolver);
+                    names[i] = resolver.getJCRName(ntNames[i]);
                 }
                 return names;
             }
-        } catch (NoPrefixDeclaredException npde) {
+        } catch (NamespaceException npde) {
             // should never get here
             log.error("encountered unregistered namespace in node type name",
                     npde);
@@ -165,14 +165,14 @@
      * @since JCR 2.0
      */
     public String getDefaultPrimaryTypeName() {
-        QName ntName = ((NodeDef) itemDef).getDefaultPrimaryType();
+        Name ntName = ((NodeDef) itemDef).getDefaultPrimaryType();
         if (ntName == null) {
             return null;
         }
 
         try {
-            return NameFormat.format(ntName, nsResolver);
-        } catch (NoPrefixDeclaredException npde) {
+            return resolver.getJCRName(ntName);
+        } catch (NamespaceException npde) {
             // should never get here
             log.error("encountered unregistered namespace in node type name",
                     npde);

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeDef.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeDef.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeDef.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeDef.java Tue Oct 30 03:02:41 2007
@@ -16,7 +16,8 @@
  */
 package org.apache.jackrabbit.core.nodetype;
 
-import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.spi.Name;
+import org.apache.jackrabbit.name.NameConstants;
 
 import javax.jcr.PropertyType;
 import java.util.Arrays;
@@ -32,18 +33,20 @@
  */
 public class NodeTypeDef implements Cloneable {
 
-    private QName name;
+    private Name name;
 
     /**
      * Ordered array of supertype names. Empty if no supertypes have been
      * specified. Never <code>null</code>.
      */
-    private QName[] supertypes;
+    private Name[] supertypes;
 
     private boolean mixin;
     private boolean orderableChildNodes;
+    
     private boolean abstractStatus;
-    private QName primaryItemName;
+    private Name primaryItemName;
+
     private HashSet propDefs;
     private HashSet nodeDefs;
     private Set dependencies;
@@ -57,14 +60,14 @@
         primaryItemName = null;
         nodeDefs = new HashSet();
         propDefs = new HashSet();
-        supertypes = QName.EMPTY_ARRAY;
+        supertypes = Name.EMPTY_ARRAY;
         mixin = false;
         orderableChildNodes = false;
         abstractStatus = false;
     }
 
     /**
-     * Returns a collection of node type <code>QName</code>s that are being
+     * Returns a collection of node type <code>Name</code>s that are being
      * referenced by <i>this</i> node type definition (e.g. as supertypes, as
      * required/default primary types in child node definitions, as REFERENCE
      * value constraints in property definitions).
@@ -73,7 +76,7 @@
      * the declaring node type as the default primary type) are not considered
      * dependencies.
      *
-     * @return a collection of node type <code>QName</code>s
+     * @return a collection of node type <code>Name</code>s
      */
     public Collection getDependencies() {
         if (dependencies == null) {
@@ -84,12 +87,12 @@
             for (Iterator iter = nodeDefs.iterator(); iter.hasNext();) {
                 NodeDef nd = (NodeDef) iter.next();
                 // default primary type
-                QName ntName = nd.getDefaultPrimaryType();
+                Name ntName = nd.getDefaultPrimaryType();
                 if (ntName != null && !name.equals(ntName)) {
                     dependencies.add(ntName);
                 }
                 // required primary type
-                QName[] ntNames = nd.getRequiredPrimaryTypes();
+                Name[] ntNames = nd.getRequiredPrimaryTypes();
                 for (int j = 0; j < ntNames.length; j++) {
                     if (ntNames[j] != null && !name.equals(ntNames[j])) {
                         dependencies.add(ntNames[j]);
@@ -126,7 +129,7 @@
      *
      * @param name The name of the node type.
      */
-    public void setName(QName name) {
+    public void setName(Name name) {
         this.name = name;
     }
 
@@ -135,18 +138,18 @@
      *
      * @param names the names of the supertypes.
      */
-    public void setSupertypes(QName[] names) {
+    public void setSupertypes(Name[] names) {
         resetDependencies();
         // Optimize common cases (zero or one supertypes)
         if (names.length == 0) {
-            supertypes = QName.EMPTY_ARRAY;
+            supertypes = Name.EMPTY_ARRAY;
         } else if (names.length == 1) {
-            supertypes = new QName[] { names[0] };
+            supertypes = new Name[] { names[0] };
         } else {
             // Sort and remove duplicates
             SortedSet types = new TreeSet();
             types.addAll(Arrays.asList(names));
-            supertypes = (QName[]) types.toArray(new QName[types.size()]);
+            supertypes = (Name[]) types.toArray(new Name[types.size()]);
         }
     }
 
@@ -183,7 +186,7 @@
      *
      * @param primaryItemName The name of the primary item.
      */
-    public void setPrimaryItemName(QName primaryItemName) {
+    public void setPrimaryItemName(Name primaryItemName) {
         this.primaryItemName = primaryItemName;
     }
 
@@ -215,7 +218,7 @@
      *
      * @return the name of the node type or <code>null</code> if not set.
      */
-    public QName getName() {
+    public Name getName() {
         return name;
     }
 
@@ -229,12 +232,12 @@
      *
      * @return a sorted array of supertype names
      */
-    public QName[] getSupertypes() {
+    public Name[] getSupertypes() {
         if (supertypes.length > 0
-                || isMixin() || QName.NT_BASE.equals(getName())) {
+                || isMixin() || NameConstants.NT_BASE.equals(getName())) {
             return supertypes;
         } else {
-            return new QName[] { QName.NT_BASE };
+            return new Name[] { NameConstants.NT_BASE };
         }
     }
 
@@ -271,7 +274,7 @@
      *
      * @return the name of the primary item or <code>null</code> if not set.
      */
-    public QName getPrimaryItemName() {
+    public Name getPrimaryItemName() {
         return primaryItemName;
     }
 

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeDefStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeDefStore.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeDefStore.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeDefStore.java Tue Oct 30 03:02:41 2007
@@ -18,7 +18,7 @@
 
 import org.apache.jackrabbit.core.nodetype.xml.NodeTypeReader;
 import org.apache.jackrabbit.core.nodetype.xml.NodeTypeWriter;
-import org.apache.jackrabbit.name.QName;
+import org.apache.jackrabbit.spi.Name;
 
 import javax.jcr.NamespaceRegistry;
 import javax.jcr.RepositoryException;
@@ -82,7 +82,7 @@
      * @param name
      * @return
      */
-    public boolean remove(QName name) {
+    public boolean remove(Name name) {
         return (ntDefs.remove(name) != null);
     }
 
@@ -97,7 +97,7 @@
      * @param name
      * @return
      */
-    public boolean contains(QName name) {
+    public boolean contains(Name name) {
         return ntDefs.containsKey(name);
     }
 
@@ -105,7 +105,7 @@
      * @param name
      * @return
      */
-    public NodeTypeDef get(QName name) {
+    public NodeTypeDef get(Name name) {
         return (NodeTypeDef) ntDefs.get(name);
     }
 

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeImpl.java?rev=590014&r1=590013&r2=590014&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/nodetype/NodeTypeImpl.java Tue Oct 30 03:02:41 2007
@@ -18,11 +18,9 @@
 
 import org.apache.jackrabbit.core.data.DataStore;
 import org.apache.jackrabbit.core.value.InternalValue;
-import org.apache.jackrabbit.name.NameException;
-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.conversion.NameException;
+import org.apache.jackrabbit.conversion.NamePathResolver;
+import org.apache.jackrabbit.spi.Name;
 import org.apache.jackrabbit.value.ValueHelper;
 import org.apache.jackrabbit.value.ValueFactoryImpl;
 import org.slf4j.Logger;
@@ -31,6 +29,7 @@
 import javax.jcr.PropertyType;
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
+import javax.jcr.NamespaceException;
 import javax.jcr.nodetype.ConstraintViolationException;
 import javax.jcr.nodetype.NoSuchNodeTypeException;
 import javax.jcr.nodetype.NodeDefinition;
@@ -49,8 +48,8 @@
     private final NodeTypeDef ntd;
     private final EffectiveNodeType ent;
     private final NodeTypeManagerImpl ntMgr;
-    // namespace resolver used to translate qualified names to JCR names
-    private final NamespaceResolver nsResolver;
+    // resolver used to translate qualified names to JCR names
+    private final NamePathResolver resolver;
     private final DataStore store;    
 
     /**
@@ -63,13 +62,13 @@
      * @param ent        the effective (i.e. merged and resolved) node type representation
      * @param ntd        the definition of this node type
      * @param ntMgr      the node type manager associated with this node type
-     * @param nsResolver namespace resolver
+     * @param resolver
      */
     NodeTypeImpl(EffectiveNodeType ent, NodeTypeDef ntd,
-                 NodeTypeManagerImpl ntMgr, NamespaceResolver nsResolver, DataStore store) {
+                 NodeTypeManagerImpl ntMgr, NamePathResolver resolver, DataStore store) {
         this.ent = ent;
         this.ntMgr = ntMgr;
-        this.nsResolver = nsResolver;
+        this.resolver = resolver;
         this.ntd = ntd;
         this.store = store;
     }
@@ -82,7 +81,7 @@
      * @return true if this node type is directly or indirectly derived from the
      *         specified node type, otherwise false.
      */
-    public boolean isDerivedFrom(QName nodeTypeName) {
+    public boolean isDerivedFrom(Name nodeTypeName) {
         return !nodeTypeName.equals(ntd.getName()) && ent.includesNodeType(nodeTypeName);
     }
 
@@ -173,7 +172,7 @@
      *
      * @return the qualified name
      */
-    public QName getQName() {
+    public Name getQName() {
         return ntd.getName();
     }
 
@@ -186,7 +185,7 @@
      */
     public NodeType[] getInheritedSupertypes() {
         // declared supertypes
-        QName[] ntNames = ntd.getSupertypes();
+        Name[] ntNames = ntd.getSupertypes();
         HashSet declared = new HashSet();
         for (int i = 0; i < ntNames.length; i++) {
             declared.add(ntNames[i]);
@@ -217,10 +216,10 @@
      */
     public String getName() {
         try {
-            return NameFormat.format(ntd.getName(), nsResolver);
-        } catch (NoPrefixDeclaredException npde) {
+            return resolver.getJCRName(ntd.getName());
+        } catch (NamespaceException e) {
             // should never get here
-            log.error("encountered unregistered namespace in node type name", npde);
+            log.error("encountered unregistered namespace in node type name", e);
             return ntd.getName().toString();
         }
     }
@@ -230,15 +229,15 @@
      */
     public String getPrimaryItemName() {
         try {
-            QName piName = ntd.getPrimaryItemName();
+            Name piName = ntd.getPrimaryItemName();
             if (piName != null) {
-                return NameFormat.format(piName, nsResolver);
+                return resolver.getJCRName(piName);
             } else {
                 return null;
             }
-        } catch (NoPrefixDeclaredException npde) {
+        } catch (NamespaceException e) {
             // should never get here
-            log.error("encountered unregistered namespace in name of primary item", npde);
+            log.error("encountered unregistered namespace in name of primary item", e);
             return ntd.getName().toString();
         }
     }
@@ -254,9 +253,12 @@
      * {@inheritDoc}
      */
     public boolean isNodeType(String nodeTypeName) {
-        QName ntName;
+        Name ntName;
         try {
-            ntName = NameFormat.parse(nodeTypeName, nsResolver);
+            ntName = resolver.getQName(nodeTypeName);
+        } catch (NamespaceException e) {
+            log.warn("invalid node type name: " + nodeTypeName, e);
+            return false;
         } catch (NameException e) {
             log.warn("invalid node type name: " + nodeTypeName, e);
             return false;
@@ -275,7 +277,7 @@
      * {@inheritDoc}
      */
     public NodeType[] getSupertypes() {
-        QName[] ntNames = ent.getInheritedNodeTypes();
+        Name[] ntNames = ent.getInheritedNodeTypes();
         NodeType[] supertypes = new NodeType[ntNames.length];
         for (int i = 0; i < ntNames.length; i++) {
             try {
@@ -317,7 +319,7 @@
      * {@inheritDoc}
      */
     public NodeType[] getDeclaredSupertypes() {
-        QName[] ntNames = ntd.getSupertypes();
+        Name[] ntNames = ntd.getSupertypes();
         NodeType[] supertypes = new NodeType[ntNames.length];
         for (int i = 0; i < ntNames.length; i++) {
             try {
@@ -352,7 +354,7 @@
             return canRemoveItem(propertyName);
         }
         try {
-            QName name = NameFormat.parse(propertyName, nsResolver);
+            Name name = resolver.getQName(propertyName);
             PropDef def;
             try {
                 // try to get definition that matches the given value type
@@ -384,10 +386,10 @@
                 Value targetVal = ValueHelper.convert(
                         value, targetType,
                         ValueFactoryImpl.getInstance());
-                internalValue = InternalValue.create(targetVal, nsResolver, store);
+                internalValue = InternalValue.create(targetVal, resolver, store);
             } else {
                 // no type conversion required
-                internalValue = InternalValue.create(value, nsResolver, store);
+                internalValue = InternalValue.create(value, resolver, store);
             }
             EffectiveNodeType.checkSetPropertyValueConstraints(
                     def, new InternalValue[]{internalValue});
@@ -409,7 +411,7 @@
             return canRemoveItem(propertyName);
         }
         try {
-            QName name = NameFormat.parse(propertyName, nsResolver);
+            Name name = resolver.getQName(propertyName);
             // determine type of values
             int type = PropertyType.UNDEFINED;
             for (int i = 0; i < values.length; i++) {
@@ -462,10 +464,10 @@
                         Value targetVal = ValueHelper.convert(
                                 values[i], targetType,
                                 ValueFactoryImpl.getInstance());
-                        internalValue = InternalValue.create(targetVal, nsResolver, store);
+                        internalValue = InternalValue.create(targetVal, resolver, store);
                     } else {
                         // no type conversion required
-                        internalValue = InternalValue.create(values[i], nsResolver, store);
+                        internalValue = InternalValue.create(values[i], resolver, store);
                     }
                     list.add(internalValue);
                 }
@@ -487,7 +489,7 @@
      */
     public boolean canAddChildNode(String childNodeName) {
         try {
-            ent.checkAddNodeConstraints(NameFormat.parse(childNodeName, nsResolver));
+            ent.checkAddNodeConstraints(resolver.getQName(childNodeName));
             return true;
         } catch (NameException be) {
             // implementation specific exception, fall through
@@ -503,8 +505,8 @@
     public boolean canAddChildNode(String childNodeName, String nodeTypeName) {
         try {
             ent.checkAddNodeConstraints(
-                    NameFormat.parse(childNodeName, nsResolver),
-                    NameFormat.parse(nodeTypeName, nsResolver),
+                    resolver.getQName(childNodeName),
+                    resolver.getQName(nodeTypeName),
                     ntMgr.getNodeTypeRegistry());
             return true;
         } catch (NameException be) {
@@ -520,7 +522,7 @@
      */
     public boolean canRemoveItem(String itemName) {
         try {
-            ent.checkRemoveItemConstraints(NameFormat.parse(itemName, nsResolver));
+            ent.checkRemoveItemConstraints(resolver.getQName(itemName));
             return true;
         } catch (NameException be) {
             // implementation specific exception, fall through
@@ -554,7 +556,7 @@
      */
     public boolean canRemoveNode(String nodeName) {
         try {
-            ent.checkRemoveNodeConstraints(NameFormat.parse(nodeName, nsResolver));
+            ent.checkRemoveNodeConstraints(resolver.getQName(nodeName));
             return true;
         } catch (NameException be) {
             // implementation specific exception, fall through
@@ -575,7 +577,7 @@
      */
     public boolean canRemoveProperty(String propertyName) {
         try {
-            ent.checkRemovePropertyConstraints(NameFormat.parse(propertyName, nsResolver));
+            ent.checkRemovePropertyConstraints(resolver.getQName(propertyName));
             return true;
         } catch (NameException be) {
             // implementation specific exception, fall through