Author: reschke
Date: Wed May  2 16:37:48 2012
New Revision: 1333103

URL: http://svn.apache.org/viewvc?rev=1333103&view=rev
Log:
OAK-66: add a few naive node type checks to mixion related Node methods, update 
test exclusions

Modified:
    jackrabbit/oak/trunk/oak-it/jcr/pom.xml
    
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java

Modified: jackrabbit/oak/trunk/oak-it/jcr/pom.xml
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-it/jcr/pom.xml?rev=1333103&r1=1333102&r2=1333103&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-it/jcr/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-it/jcr/pom.xml Wed May  2 16:37:48 2012
@@ -70,12 +70,7 @@ org.apache.jackrabbit.test.api.SetProper
 
org.apache.jackrabbit.test.api.SetPropertyValueTest#testSetSingleValueArrayValueFormatExceptionWithPropertyType
 org.apache.jackrabbit.test.api.SetPropertyConstraintViolationExceptionTest
 org.apache.jackrabbit.test.api.SetPropertyAssumeTypeTest
-org.apache.jackrabbit.test.api.NodeAddMixinTest#testAddNonExisting
 org.apache.jackrabbit.test.api.NodeAddMixinTest#testAddInheritedMixin
-org.apache.jackrabbit.test.api.NodeCanAddMixinTest#testNonExisting
-org.apache.jackrabbit.test.api.NodeSetPrimaryTypeTest#testAddNonExisting
-org.apache.jackrabbit.test.api.NodeSetPrimaryTypeTest#testSetMixinAsPrimaryType
-org.apache.jackrabbit.test.api.NodeSetPrimaryTypeTest#testSetAbstractAsPrimaryType
 org.apache.jackrabbit.test.api.WorkspaceCloneReferenceableTest
 org.apache.jackrabbit.test.api.WorkspaceCloneSameNameSibsTest
 org.apache.jackrabbit.test.api.WorkspaceCloneTest

Modified: 
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java?rev=1333103&r1=1333102&r2=1333103&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
 Wed May  2 16:37:48 2012
@@ -622,6 +622,14 @@ public class NodeImpl extends ItemImpl i
     public void setPrimaryType(String nodeTypeName) throws RepositoryException 
{
         checkStatus();
 
+        // TODO: figure out the right place for this check
+        NodeTypeManager ntm = sessionContext.getNodeTypeManager();
+        NodeType nt = ntm.getNodeType(nodeTypeName); // throws on not found
+        if (nt.isAbstract() || nt.isMixin()) {
+            throw new ConstraintViolationException();
+        }
+        // TODO: END
+
         CoreValue cv = ValueConverter.toCoreValue(nodeTypeName, 
PropertyType.NAME, sessionContext);
         dlg.setProperty(toOakPath(Property.JCR_PRIMARY_TYPE), cv);
     }
@@ -629,6 +637,10 @@ public class NodeImpl extends ItemImpl i
     @Override
     public void addMixin(String mixinName) throws RepositoryException {
         checkStatus();
+        // TODO: figure out the right place for this check
+        NodeTypeManager ntm = sessionContext.getNodeTypeManager();
+        ntm.getNodeType(mixinName); // throws on not found
+        // TODO: END
 
         // todo implement addMixin
     }
@@ -642,7 +654,11 @@ public class NodeImpl extends ItemImpl i
 
     @Override
     public boolean canAddMixin(String mixinName) throws RepositoryException {
-        // TODO
+        // TODO: figure out the right place for this check
+        NodeTypeManager ntm = sessionContext.getNodeTypeManager();
+        ntm.getNodeType(mixinName); // throws on not found
+        // TODO: END
+
         return false;
     }
 


Reply via email to