You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by cl...@apache.org on 2007/08/07 21:27:28 UTC

svn commit: r563632 - in /jackrabbit/trunk/contrib/jackrabbit-jcr-mapping/jcr-nodemanagement/src: main/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/ test/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/

Author: clombart
Date: Tue Aug  7 12:27:27 2007
New Revision: 563632

URL: http://svn.apache.org/viewvc?view=rev&rev=563632
Log:
Fix for issue 1054 - 2 different attributes are used in BeanDescriptor and CollectionDescriptor to store the jcr type (jcrType and jcrNodeType).

Modified:
    jackrabbit/trunk/contrib/jackrabbit-jcr-mapping/jcr-nodemanagement/src/main/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NodeTypeManagerImpl.java
    jackrabbit/trunk/contrib/jackrabbit-jcr-mapping/jcr-nodemanagement/src/test/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NodeTypeManagerImplTest.java

Modified: jackrabbit/trunk/contrib/jackrabbit-jcr-mapping/jcr-nodemanagement/src/main/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NodeTypeManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/jackrabbit-jcr-mapping/jcr-nodemanagement/src/main/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NodeTypeManagerImpl.java?view=diff&rev=563632&r1=563631&r2=563632
==============================================================================
--- jackrabbit/trunk/contrib/jackrabbit-jcr-mapping/jcr-nodemanagement/src/main/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NodeTypeManagerImpl.java (original)
+++ jackrabbit/trunk/contrib/jackrabbit-jcr-mapping/jcr-nodemanagement/src/main/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NodeTypeManagerImpl.java Tue Aug  7 12:27:27 2007
@@ -151,9 +151,9 @@
             getNamespaceHelper().setRegistry(session.getWorkspace().getNamespaceRegistry());
             ArrayList list = new ArrayList();
             
-            if (classDescriptor.getJcrNodeType() != null &&
-                    (classDescriptor.getJcrNodeType().startsWith("nt:")
-                    || classDescriptor.getJcrNodeType().startsWith("mix:")))
+            if (classDescriptor.getJcrType() != null &&
+                    (classDescriptor.getJcrType().startsWith("nt:")
+                    || classDescriptor.getJcrType().startsWith("mix:")))
             {
                 throw new NodeTypeCreationException("Namespace nt and mix are reserved namespaces. Please specify your own.");
             }
@@ -161,7 +161,7 @@
             if (checkSuperTypes(session.getWorkspace().getNodeTypeManager(),
                     classDescriptor.getJcrSuperTypes()))
             {
-                NodeTypeDef nodeTypeDef = getNodeTypeDef(classDescriptor.getJcrNodeType(),
+                NodeTypeDef nodeTypeDef = getNodeTypeDef(classDescriptor.getJcrType(),
                         classDescriptor.getJcrSuperTypes(),
                         classDescriptor.getClassName());
 
@@ -183,7 +183,7 @@
                     Iterator beanIterator = classDescriptor.getBeanDescriptors().iterator();
                     while (beanIterator.hasNext()) {
                         BeanDescriptor field = (BeanDescriptor) beanIterator.next();
-                        if (field.getJcrType() != null) {
+                        if (this.isPropertyType(field.getJcrType())) {
                             propDefs.add(getPropertyDefinition(field.getFieldName(), field, nodeTypeDef.getName()));
                         } else {
                             nodeDefs.add(getNodeDefinition(field.getFieldName(), field, nodeTypeDef.getName()));
@@ -195,7 +195,7 @@
                     Iterator collectionIterator = classDescriptor.getCollectionDescriptors().iterator();
                     while (collectionIterator.hasNext()) {
                         CollectionDescriptor field = (CollectionDescriptor) collectionIterator.next();
-                        if (field.getJcrType() != null) {
+                        if (this.isPropertyType(field.getJcrType())) {
                             propDefs.add(getPropertyDefinition(field.getFieldName(), field, nodeTypeDef.getName()));
                         } else {
                             nodeDefs.add(getNodeDefinition(field.getFieldName(), field, nodeTypeDef.getName()));
@@ -348,8 +348,8 @@
             node.setName(getNamespaceHelper().getQName("*"));
         }
 
-        if (field.getJcrNodeType() != null) {
-            node.setRequiredPrimaryTypes(getJcrSuperTypes(field.getJcrNodeType()));
+        if (field.getJcrType() != null) {
+            node.setRequiredPrimaryTypes(getJcrSuperTypes(field.getJcrType()));
         }
 
         node.setDeclaringNodeType(declaringNodeType);
@@ -588,5 +588,19 @@
     public void setNamespaceHelper(NamespaceHelper object)
     {
         this.namespaceHelper = object;
+    }
+    
+
+    private boolean isPropertyType(String type)
+    {
+    	return (type.equals(PropertyType.TYPENAME_BINARY) ||
+    	        type.equals(PropertyType.TYPENAME_BOOLEAN) ||
+    	        type.equals(PropertyType.TYPENAME_DATE) ||
+    	        type.equals(PropertyType.TYPENAME_DOUBLE) ||
+    	        type.equals(PropertyType.TYPENAME_LONG) ||
+    	        type.equals(PropertyType.TYPENAME_NAME) ||
+    	        type.equals(PropertyType.TYPENAME_PATH) ||
+    	        type.equals(PropertyType.TYPENAME_REFERENCE) ||
+    	        type.equals(PropertyType.TYPENAME_STRING));    	       
     }
 }

Modified: jackrabbit/trunk/contrib/jackrabbit-jcr-mapping/jcr-nodemanagement/src/test/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NodeTypeManagerImplTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/jackrabbit-jcr-mapping/jcr-nodemanagement/src/test/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NodeTypeManagerImplTest.java?view=diff&rev=563632&r1=563631&r2=563632
==============================================================================
--- jackrabbit/trunk/contrib/jackrabbit-jcr-mapping/jcr-nodemanagement/src/test/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NodeTypeManagerImplTest.java (original)
+++ jackrabbit/trunk/contrib/jackrabbit-jcr-mapping/jcr-nodemanagement/src/test/java/org/apache/jackrabbit/ocm/nodemanagement/impl/jackrabbit/NodeTypeManagerImplTest.java Tue Aug  7 12:27:27 2007
@@ -97,7 +97,7 @@
     {
         ClassDescriptor classDescriptor = new ClassDescriptor();
         classDescriptor.setClassName("test.TestClass");
-        classDescriptor.setJcrNodeType("ocm:test2");
+        classDescriptor.setJcrType("ocm:test2");
         classDescriptor.setJcrSuperTypes("nt:base");
         
         FieldDescriptor field1 = new FieldDescriptor();
@@ -148,7 +148,7 @@
     {
         ClassDescriptor classDescriptor = new ClassDescriptor();
         classDescriptor.setClassName("test.Test3Class");
-        classDescriptor.setJcrNodeType("test3");
+        classDescriptor.setJcrType("test3");
         classDescriptor.setJcrSuperTypes("nt:base");
 
         FieldDescriptor field1 = new FieldDescriptor();
@@ -193,7 +193,7 @@
     {
         ClassDescriptor classDescriptor = new ClassDescriptor();
         classDescriptor.setClassName("test.Test5Class");
-        classDescriptor.setJcrNodeType("ocm:test5");
+        classDescriptor.setJcrType("ocm:test5");
         classDescriptor.setJcrSuperTypes("ocm:test2");
         
         FieldDescriptor field1 = new FieldDescriptor();
@@ -217,7 +217,7 @@
     {
         ClassDescriptor classDescriptor = new ClassDescriptor();
         classDescriptor.setClassName("test.Test6Class");
-        classDescriptor.setJcrNodeType("nt:test3");
+        classDescriptor.setJcrType("nt:test3");
         classDescriptor.setJcrSuperTypes("nt:base");
 
         FieldDescriptor field1 = new FieldDescriptor();
@@ -245,13 +245,14 @@
     {
         ClassDescriptor classDescriptor = new ClassDescriptor();
         classDescriptor.setClassName("test.Test9Class");
-        classDescriptor.setJcrNodeType("ocm:test9");
+        classDescriptor.setJcrType("ocm:test9");
         classDescriptor.setJcrSuperTypes("nt:base");
         
         CollectionDescriptor collection1 = new CollectionDescriptor();
         collection1.setFieldName("a");
         collection1.setJcrName("a");
         collection1.setJcrType("String");
+        
         classDescriptor.addCollectionDescriptor(collection1);
         
         getJackrabbitNodeTypeManagerImpl().createSingleNodeType(session, classDescriptor);
@@ -270,7 +271,7 @@
     {
         ClassDescriptor classDescriptor = new ClassDescriptor();
         classDescriptor.setClassName("test.Test10Class");
-        classDescriptor.setJcrNodeType("ocm:test10");
+        classDescriptor.setJcrType("ocm:test10");
         classDescriptor.setJcrSuperTypes("nt:base");
         
         BeanDescriptor bean1 = new BeanDescriptor();
@@ -296,14 +297,13 @@
     {
         ClassDescriptor classDescriptor = new ClassDescriptor();
         classDescriptor.setClassName("test.Test13Class");
-        classDescriptor.setJcrNodeType("ocm:test13");
+        classDescriptor.setJcrType("ocm:test13");
         classDescriptor.setJcrSuperTypes("nt:base");
 
         CollectionDescriptor collection1 = new CollectionDescriptor();
         collection1.setFieldName("a");
         collection1.setJcrName("a");
-        collection1.setJcrType("String");      // should overwrite setJcrNodeType
-        collection1.setJcrNodeType("nt:base"); // should be ignored
+        collection1.setJcrType("String");            
         classDescriptor.addCollectionDescriptor(collection1);
 
         getJackrabbitNodeTypeManagerImpl().createSingleNodeType(session, classDescriptor);
@@ -322,14 +322,13 @@
     {
         ClassDescriptor classDescriptor = new ClassDescriptor();
         classDescriptor.setClassName("test.Test14Class");
-        classDescriptor.setJcrNodeType("ocm:test14");
+        classDescriptor.setJcrType("ocm:test14");
         classDescriptor.setJcrSuperTypes("nt:base");
 
         BeanDescriptor bean1 = new BeanDescriptor();
         bean1.setFieldName("a");
         bean1.setJcrName("a");
-        bean1.setJcrType("String");      // should overwrite setJcrNodeType
-        bean1.setJcrNodeType("nt:base"); // should be ignored
+        bean1.setJcrType("String");         
         classDescriptor.addBeanDescriptor(bean1);
 
         getJackrabbitNodeTypeManagerImpl().createSingleNodeType(session, classDescriptor);
@@ -349,13 +348,13 @@
     {
         ClassDescriptor classDescriptor = new ClassDescriptor();
         classDescriptor.setClassName("test.Test11Class");
-        classDescriptor.setJcrNodeType("ocm:test11");
+        classDescriptor.setJcrType("ocm:test11");
         classDescriptor.setJcrSuperTypes("nt:base");
 
         CollectionDescriptor collection1 = new CollectionDescriptor();
         collection1.setFieldName("a");
         collection1.setJcrName("b");
-        collection1.setJcrNodeType("nt:unstructured");
+        collection1.setJcrType("nt:unstructured");
         classDescriptor.addCollectionDescriptor(collection1);
 
         getJackrabbitNodeTypeManagerImpl().createSingleNodeType(session, classDescriptor);
@@ -376,13 +375,13 @@
     {
         ClassDescriptor classDescriptor = new ClassDescriptor();
         classDescriptor.setClassName("test.Test12Class");
-        classDescriptor.setJcrNodeType("ocm:test12");
+        classDescriptor.setJcrType("ocm:test12");
         classDescriptor.setJcrSuperTypes("nt:base");
 
         BeanDescriptor bean1 = new BeanDescriptor();
         bean1.setFieldName("a");
         bean1.setJcrName("b");
-        bean1.setJcrNodeType("nt:unstructured");
+        bean1.setJcrType("nt:unstructured");
         classDescriptor.addBeanDescriptor(bean1);
 
         getJackrabbitNodeTypeManagerImpl().createSingleNodeType(session, classDescriptor);
@@ -394,7 +393,6 @@
         // assert property definition a
         NodeDefinition nodeDef = getChildNodeDefinition(test12.getChildNodeDefinitions(), "b");
         assertNotNull(nodeDef);
-        assertNotNull(nodeDef);
         assertNotNull(nodeDef.getRequiredPrimaryTypes());
         assertEquals(nodeDef.getRequiredPrimaryTypes().length, 1);
         assertEquals(nodeDef.getRequiredPrimaryTypes()[0].getName(), "nt:unstructured");
@@ -404,7 +402,7 @@
     {
         ClassDescriptor classDescriptor = new ClassDescriptor();
         classDescriptor.setClassName("test.Test6Class");
-        classDescriptor.setJcrNodeType("ocm:test6");
+        classDescriptor.setJcrType("ocm:test6");
         classDescriptor.setJcrSuperTypes("nt:base");
         
         FieldDescriptor field1 = new FieldDescriptor();
@@ -421,7 +419,7 @@
         
         ClassDescriptor classDescriptor2 = new ClassDescriptor();
         classDescriptor2.setClassName("test.Test7Class");
-        classDescriptor2.setJcrNodeType("ocm:test7");
+        classDescriptor2.setJcrType("ocm:test7");
         classDescriptor2.setJcrSuperTypes("nt:base");
         
         FieldDescriptor field3 = new FieldDescriptor();
@@ -453,7 +451,7 @@
     {
         ClassDescriptor classDescriptor = new ClassDescriptor();
         classDescriptor.setClassName("test.Test8Class");
-        classDescriptor.setJcrNodeType("ocm:test8");
+        classDescriptor.setJcrType("ocm:test8");
         classDescriptor.setJcrSuperTypes("nt:base");
 
         FieldDescriptor field1 = new FieldDescriptor();