You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by mr...@apache.org on 2012/10/24 11:07:29 UTC

svn commit: r1401591 - in /jackrabbit/oak/trunk: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/ oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/ oak-jcr/src/test/resources/org/apache/jackrabbit/oak/jcr/

Author: mreutegg
Date: Wed Oct 24 09:07:28 2012
New Revision: 1401591

URL: http://svn.apache.org/viewvc?rev=1401591&view=rev
Log:
OAK-169: Support orderable nodes
- additional test
- TypeValidator must ignore hidden properties

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeValidator.java
    jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OrderableNodesTest.java
    jackrabbit/oak/trunk/oak-jcr/src/test/resources/org/apache/jackrabbit/oak/jcr/test_nodetypes.cnd

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeValidator.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeValidator.java?rev=1401591&r1=1401590&r2=1401591&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeValidator.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeValidator.java Wed Oct 24 09:07:28 2012
@@ -38,6 +38,7 @@ import org.apache.jackrabbit.oak.namepat
 import org.apache.jackrabbit.oak.spi.commit.Validator;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.apache.jackrabbit.oak.plugins.value.ValueFactoryImpl;
+import org.apache.jackrabbit.oak.spi.state.NodeStateUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -83,6 +84,9 @@ class TypeValidator implements Validator
 
     @Override
     public void propertyAdded(PropertyState after) throws CommitFailedException {
+        if (isHidden(after)) {
+            return;
+        }
         try {
             checkType(after);
             getParentType().checkSetProperty(after);
@@ -99,6 +103,9 @@ class TypeValidator implements Validator
 
     @Override
     public void propertyChanged(PropertyState before, PropertyState after) throws CommitFailedException {
+        if (isHidden(after)) {
+            return;
+        }
         try {
             checkType(after);
             getParentType().checkSetProperty(after);
@@ -115,6 +122,9 @@ class TypeValidator implements Validator
 
     @Override
     public void propertyDeleted(PropertyState before) throws CommitFailedException {
+        if (isHidden(before)) {
+            return;
+        }
         try {
             getParentType().checkRemoveProperty(before);
         }
@@ -346,4 +356,7 @@ class TypeValidator implements Validator
 
     }
 
+    private boolean isHidden(PropertyState state) {
+        return NodeStateUtils.isHidden(state.getName());
+    }
 }

Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OrderableNodesTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OrderableNodesTest.java?rev=1401591&r1=1401590&r2=1401591&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OrderableNodesTest.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OrderableNodesTest.java Wed Oct 24 09:07:28 2012
@@ -30,8 +30,19 @@ public class OrderableNodesTest extends 
 
     @Test
     public void testSimpleOrdering() throws RepositoryException {
+        doTest("nt:unstructured");
+    }
+
+    @Test
+    public void orderableFolder() throws Exception {
+        // check ordering with node type without a residual properties definition
+        new TestContentLoader().loadTestContent(getAdminSession());
+        doTest("test:orderableFolder");
+    }
+
+    private void doTest(String nodeType) throws RepositoryException {
         Session session = getAdminSession();
-        Node root = session.getRootNode().addNode("test");
+        Node root = session.getRootNode().addNode("test", nodeType);
 
         root.addNode("a");
         root.addNode("b");
@@ -60,6 +71,7 @@ public class OrderableNodesTest extends 
         assertEquals("c", iterator.nextNode().getName());
         assertEquals("a", iterator.nextNode().getName());
         assertFalse(iterator.hasNext());
-    }
 
+        session.save();
+    }
 }

Modified: jackrabbit/oak/trunk/oak-jcr/src/test/resources/org/apache/jackrabbit/oak/jcr/test_nodetypes.cnd
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/resources/org/apache/jackrabbit/oak/jcr/test_nodetypes.cnd?rev=1401591&r1=1401590&r2=1401591&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/resources/org/apache/jackrabbit/oak/jcr/test_nodetypes.cnd (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/resources/org/apache/jackrabbit/oak/jcr/test_nodetypes.cnd Wed Oct 24 09:07:28 2012
@@ -89,3 +89,6 @@
   + test:ignoreOnParentVersion (nt:base) = nt:unstructured ignore
   + test:abortOnParentVersion (nt:base) = nt:unstructured abort
   + test:copyOnParentVersion (nt:base) = nt:unstructured
+
+[test:orderableFolder] > nt:folder orderable
+  + * (nt:base) = test:orderableFolder