Jukka,

how attached are you to that code?

It appears that the failures left in PredefinedNodeTypeTests may not be trivial to fix; maybe it would be better to re-use code from the jcr commons CompactNodeTypeDefReader?

Best regards, Julian

On 2012-05-03 18:43, [email protected] wrote:
Author: reschke
Date: Thu May  3 16:43:57 2012
New Revision: 1333544

URL: http://svn.apache.org/viewvc?rev=1333544&view=rev
Log:
OAK-66: fix minor CND parsing problems

Modified:
     
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeImpl.java

Modified: 
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeImpl.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeImpl.java?rev=1333544&r1=1333543&r2=1333544&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeImpl.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeImpl.java
 Thu May  3 16:43:57 2012
@@ -48,7 +48,7 @@ class NodeTypeImpl implements NodeType {

      private static final Pattern DEF_PATTERN = Pattern.compile(
              "  ([\\+\\-]) (\\S+) \\((\\S+?)\\)( = (\\S+))?"
-            + "(( (mandatory|autocreated|protected|multiple))*)"
+            + "(( (mandatory|autocreated|protected|multiple|sns))*)"
              + "( ([A-Z]+))?(.*)");

      private final NodeTypeManager manager;
@@ -85,8 +85,8 @@ class NodeTypeImpl implements NodeType {

          this.isAbstract = matcher.group(5) != null;
          this.mixin = matcher.group(4) != null;
-        this.hasOrderableChildNodes = matcher.group(7) != null;
-        this.primaryItemName = matcher.group(8);
+        this.hasOrderableChildNodes = matcher.group(6) != null;
+        this.primaryItemName = matcher.group(7);

          String supertypes = matcher.group(2);
          if (supertypes != null)  {
@@ -112,6 +112,7 @@ class NodeTypeImpl implements NodeType {
                  boolean autoCreated = matcher.group(6).contains(" 
autocreated");
                  boolean isProtected = matcher.group(6).contains(" protected");
                  boolean multiple = matcher.group(6).contains(" multiple");
+                boolean allowSNS = matcher.group(6).contains(" sns");

                  int onParentVersionAction = OnParentVersionAction.COPY;
                  if (matcher.group(10) != null) {
@@ -123,7 +124,7 @@ class NodeTypeImpl implements NodeType {
                      declaredChildNodeDefinitions.add(new NodeDefinitionImpl(
                              this, mapper, defName, autoCreated, mandatory,
                              onParentVersionAction, isProtected, manager,
-                            defType.split(", "), matcher.group(5), false));
+                            defType.split(", "), matcher.group(5), allowSNS));
                  } else if ("-".equals(matcher.group(1))) {
                      declaredPropertyDefinitions.add(new 
PropertyDefinitionImpl(
                              this, mapper, defName, autoCreated, mandatory,




Reply via email to