You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by tr...@apache.org on 2009/06/19 23:53:42 UTC

svn commit: r786680 - in /jackrabbit/trunk/jackrabbit-spi-commons/src: main/java/org/apache/jackrabbit/spi/commons/nodetype/compact/CompactNodeTypeDefReader.java test/resources/cnd-reader-test-input.cnd

Author: tripod
Date: Fri Jun 19 21:53:42 2009
New Revision: 786680

URL: http://svn.apache.org/viewvc?rev=786680&view=rev
Log:
JCR-2167 CompactNodeTypeDefReader could auto-provide default namespace mappings if omitted

Modified:
    jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/nodetype/compact/CompactNodeTypeDefReader.java
    jackrabbit/trunk/jackrabbit-spi-commons/src/test/resources/cnd-reader-test-input.cnd

Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/nodetype/compact/CompactNodeTypeDefReader.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/nodetype/compact/CompactNodeTypeDefReader.java?rev=786680&r1=786679&r2=786680&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/nodetype/compact/CompactNodeTypeDefReader.java (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/nodetype/compact/CompactNodeTypeDefReader.java Fri Jun 19 21:53:42 2009
@@ -124,6 +124,23 @@
 public class CompactNodeTypeDefReader {
 
     /**
+     * Default namespace mappings
+     */
+    public static final NamespaceMapping NS_DEFAULTS;
+    static {
+        try {
+            NS_DEFAULTS = new NamespaceMapping();
+            NS_DEFAULTS.setMapping(Name.NS_EMPTY_PREFIX, Name.NS_DEFAULT_URI);
+            NS_DEFAULTS.setMapping(Name.NS_JCR_PREFIX, Name.NS_JCR_URI);
+            NS_DEFAULTS.setMapping(Name.NS_MIX_PREFIX, Name.NS_MIX_URI);
+            NS_DEFAULTS.setMapping(Name.NS_NT_PREFIX, Name.NS_NT_URI);
+            NS_DEFAULTS.setMapping(Name.NS_REP_PREFIX, Name.NS_REP_URI);
+        } catch (NamespaceException e) {
+            throw new InternalError(e.toString());
+        }
+    }
+    
+    /**
      * the list of parsed QNodeTypeDefinition
      */
     private final List<QNodeTypeDefinition> nodeTypeDefs
@@ -199,7 +216,7 @@
      */
     public CompactNodeTypeDefReader(Reader r, String systemId)
             throws ParseException {
-        this(r, systemId, new NamespaceMapping(), null);
+        this(r, systemId, null, null);
     }
 
     /**
@@ -215,7 +232,7 @@
     public CompactNodeTypeDefReader(Reader r, String systemId,
                                     QNodeTypeDefinitionsBuilder builder)
             throws ParseException {
-        this(r, systemId, new NamespaceMapping(), builder);
+        this(r, systemId, null, builder);
     }
 
     /**
@@ -249,7 +266,9 @@
                 ? new QNodeTypeDefinitionsBuilderImpl()
                 : builder;
         lexer = new Lexer(r, systemId);
-        this.nsMapping = mapping;
+        this.nsMapping = mapping == null
+                ? new NamespaceMapping(NS_DEFAULTS)
+                : mapping;
         this.resolver = new DefaultNamePathResolver(nsMapping);
         nextToken();
         parse();

Modified: jackrabbit/trunk/jackrabbit-spi-commons/src/test/resources/cnd-reader-test-input.cnd
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi-commons/src/test/resources/cnd-reader-test-input.cnd?rev=786680&r1=786679&r2=786680&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi-commons/src/test/resources/cnd-reader-test-input.cnd (original)
+++ jackrabbit/trunk/jackrabbit-spi-commons/src/test/resources/cnd-reader-test-input.cnd Fri Jun 19 21:53:42 2009
@@ -15,10 +15,14 @@
  * limitations under the License.
  */
 <ex = "http://example.org/jackrabbit/example">
-<rep='internal'>
 <jcr='http://www.jcp.org/jcr/1.0'>
 <nt='http://www.jcp.org/jcr/nt/1.0'>
-<mix='http://www.jcp.org/jcr/mix/1.0'>
+
+// test remapping
+<REP='internal'>
+
+// omit this namespace to test auto-registering
+// <mix='http://www.jcp.org/jcr/mix/1.0'>
 
 //------------------------------------------------------------------------------
 // E X A M P L E  T Y P E S
@@ -35,6 +39,8 @@
   
 [ex:Empty]
 
+[NoPrefix]
+
 [ex:Reference]
   - ex:ref (reference) mandatory protected < 'ex:ref'
   
@@ -206,19 +212,19 @@
 // J A C K R A B B I T   I N T E R N A L S
 //------------------------------------------------------------------------------
 
-[rep:nodeTypes]
+[REP:nodeTypes]
   + * (nt:nodeType) = nt:nodeType protected abort
 
-[rep:root] > nt:unstructured
+[REP:root] > nt:unstructured
   orderable
-  + jcr:system (rep:system) = rep:system mandatory ignore
+  + jcr:system (REP:system) = REP:system mandatory ignore
 
-[rep:system]
+[REP:system]
   orderable
-  + jcr:versionStorage (rep:versionStorage) = rep:versionStorage mandatory protected abort
-  + jcr:nodeTypes (rep:nodeTypes) = rep:nodeTypes mandatory protected abort
+  + jcr:versionStorage (REP:versionStorage) = REP:versionStorage mandatory protected abort
+  + jcr:nodeTypes (REP:nodeTypes) = REP:nodeTypes mandatory protected abort
   + * (nt:base) = nt:unstructured multiple ignore
 
-[rep:versionStorage]
+[REP:versionStorage]
   + * (nt:versionHistory) = nt:versionHistory protected multiple abort
-  + * (rep:versionStorage) = rep:versionStorage protected multiple abort
+  + * (REP:versionStorage) = REP:versionStorage protected multiple abort