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 2008/09/20 18:46:09 UTC

svn commit: r697391 - in /jackrabbit/trunk/jackrabbit-ocm/src: main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/ main/java/org/apache/jackrabbit/ocm/mapper/impl/annotation/ main/java/org/apache/jackrabbit/ocm/mapper/model/ test/java...

Author: clombart
Date: Sat Sep 20 09:46:09 2008
New Revision: 697391

URL: http://svn.apache.org/viewvc?rev=697391&view=rev
Log:
Apply patch for JCR-1721 : make collection element names configureable provided by Oliver Lietz

Modified:
    jackrabbit/trunk/jackrabbit-ocm/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/DefaultCollectionConverterImpl.java
    jackrabbit/trunk/jackrabbit-ocm/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/NTCollectionConverterImpl.java
    jackrabbit/trunk/jackrabbit-ocm/src/main/java/org/apache/jackrabbit/ocm/mapper/impl/annotation/AnnotationDescriptorReader.java
    jackrabbit/trunk/jackrabbit-ocm/src/main/java/org/apache/jackrabbit/ocm/mapper/impl/annotation/Collection.java
    jackrabbit/trunk/jackrabbit-ocm/src/main/java/org/apache/jackrabbit/ocm/mapper/model/CollectionDescriptor.java
    jackrabbit/trunk/jackrabbit-ocm/src/test/java/org/apache/jackrabbit/ocm/manager/beanconverter/AnnotationBeanDescriptorTest.java
    jackrabbit/trunk/jackrabbit-ocm/src/test/java/org/apache/jackrabbit/ocm/manager/beanconverter/DigesterBeanDescriptorTest.java
    jackrabbit/trunk/jackrabbit-ocm/src/test/java/org/apache/jackrabbit/ocm/testmodel/Page.java
    jackrabbit/trunk/jackrabbit-ocm/src/test/test-config/jcrmapping-sibling.xml
    jackrabbit/trunk/jackrabbit-ocm/src/test/test-config/jcrmapping.xml

Modified: jackrabbit/trunk/jackrabbit-ocm/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/DefaultCollectionConverterImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-ocm/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/DefaultCollectionConverterImpl.java?rev=697391&r1=697390&r2=697391&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-ocm/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/DefaultCollectionConverterImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-ocm/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/DefaultCollectionConverterImpl.java Sat Sep 20 09:46:09 2008
@@ -78,7 +78,7 @@
  */
 public class DefaultCollectionConverterImpl extends AbstractCollectionConverterImpl {
 
-    private static final String COLLECTION_ELEMENT_NAME = "collection-element";
+    protected static final String COLLECTION_ELEMENT_NAME = "collection-element";
 
     /**
      * Constructor
@@ -116,7 +116,7 @@
         ClassDescriptor elementClassDescriptor = mapper.getClassDescriptorByClass( ReflectionUtils.forName(collectionDescriptor.getElementClassName()));
 
         if (objects instanceof ManageableCollection)
-           insertManageableCollection(session, objects, collectionNode, elementClassDescriptor);
+           insertManageableCollection(session, objects, collectionNode, elementClassDescriptor, collectionDescriptor);
         else 
            insertManageableMap(session, objects, collectionNode);
         	
@@ -124,7 +124,8 @@
 
 	private void insertManageableCollection(Session session,
 			ManageableObjects objects, Node collectionNode,
-			ClassDescriptor elementClassDescriptor) {
+			ClassDescriptor elementClassDescriptor,
+            CollectionDescriptor collectionDescriptor) {
 		Iterator collectionIterator = objects.getIterator();
         while (collectionIterator.hasNext()) {
             Object item = collectionIterator.next();
@@ -137,7 +138,10 @@
                 elementJcrName = ReflectionUtils.getNestedProperty(item, idFieldName).toString();
             }
             else {
-                elementJcrName = COLLECTION_ELEMENT_NAME;
+                elementJcrName = collectionDescriptor.getJcrElementName();
+                if (elementJcrName == null) { // use PathFormat.checkFormat() here?
+                    elementJcrName = COLLECTION_ELEMENT_NAME;
+                }
             }
 
             objectConverter.insert(session, collectionNode, elementJcrName, item);
@@ -232,7 +236,10 @@
                 updatedItems.put(elementJcrName, item);
             }
             else {
-                elementJcrName = COLLECTION_ELEMENT_NAME ;
+                elementJcrName = collectionDescriptor.getJcrElementName();
+                if (elementJcrName == null) { // use PathFormat.checkFormat() here?
+                    elementJcrName = COLLECTION_ELEMENT_NAME;
+                }
                 objectConverter.insert(session, collectionNode, elementJcrName, item);
             }
         }

Modified: jackrabbit/trunk/jackrabbit-ocm/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/NTCollectionConverterImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-ocm/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/NTCollectionConverterImpl.java?rev=697391&r1=697390&r2=697391&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-ocm/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/NTCollectionConverterImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-ocm/src/main/java/org/apache/jackrabbit/ocm/manager/collectionconverter/impl/NTCollectionConverterImpl.java Sat Sep 20 09:46:09 2008
@@ -90,7 +90,7 @@
 
     private final static Log log = LogFactory.getLog(NTCollectionConverterImpl.class);
 
-    private static final String COLLECTION_ELEMENT_NAME = "collection-element";
+    protected static final String COLLECTION_ELEMENT_NAME = "collection-element";
 
     /**
      * Constructor
@@ -129,7 +129,10 @@
                 elementJcrName = ReflectionUtils.getNestedProperty(item, idFieldName).toString();
             }
             else {
-                elementJcrName = COLLECTION_ELEMENT_NAME;
+                elementJcrName = collectionDescriptor.getJcrElementName();
+                if (elementJcrName == null) { // use PathFormat.checkFormat() here?
+                    elementJcrName = COLLECTION_ELEMENT_NAME;
+                }
             }
 
             objectConverter.insert(session, parentNode, elementJcrName, item);
@@ -181,7 +184,10 @@
                 updatedItems.put(elementJcrName, item);
             }
             else {
-                elementJcrName = COLLECTION_ELEMENT_NAME;
+                elementJcrName = collectionDescriptor.getJcrElementName();
+                if (elementJcrName == null) { // use PathFormat.checkFormat() here?
+                    elementJcrName = COLLECTION_ELEMENT_NAME;
+                }
                 objectConverter.insert(session, parentNode, elementJcrName, item);
             }
         }

Modified: jackrabbit/trunk/jackrabbit-ocm/src/main/java/org/apache/jackrabbit/ocm/mapper/impl/annotation/AnnotationDescriptorReader.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-ocm/src/main/java/org/apache/jackrabbit/ocm/mapper/impl/annotation/AnnotationDescriptorReader.java?rev=697391&r1=697390&r2=697391&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-ocm/src/main/java/org/apache/jackrabbit/ocm/mapper/impl/annotation/AnnotationDescriptorReader.java (original)
+++ jackrabbit/trunk/jackrabbit-ocm/src/main/java/org/apache/jackrabbit/ocm/mapper/impl/annotation/AnnotationDescriptorReader.java Sat Sep 20 09:46:09 2008
@@ -240,6 +240,8 @@
 			setElementClassName(collectionDescriptor, field.getGenericType());
 		}
 
+		collectionDescriptor.setJcrElementName(collectionAnnotation.jcrElementName());
+
 		if (! collectionAnnotation.collectionClassName().equals(Object.class))
 		{
 			collectionDescriptor.setCollectionClassName(collectionAnnotation.collectionClassName().getName());

Modified: jackrabbit/trunk/jackrabbit-ocm/src/main/java/org/apache/jackrabbit/ocm/mapper/impl/annotation/Collection.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-ocm/src/main/java/org/apache/jackrabbit/ocm/mapper/impl/annotation/Collection.java?rev=697391&r1=697390&r2=697391&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-ocm/src/main/java/org/apache/jackrabbit/ocm/mapper/impl/annotation/Collection.java (original)
+++ jackrabbit/trunk/jackrabbit-ocm/src/main/java/org/apache/jackrabbit/ocm/mapper/impl/annotation/Collection.java Sat Sep 20 09:46:09 2008
@@ -47,6 +47,8 @@
     // because it is not possible to have a default null value in annotation field
     Class elementClassName() default Object.class;
 
+    String jcrElementName() default "collection-element";
+
 	Class collectionConverter() default DefaultCollectionConverterImpl.class;
 
 	// Use Object.class as default value

Modified: jackrabbit/trunk/jackrabbit-ocm/src/main/java/org/apache/jackrabbit/ocm/mapper/model/CollectionDescriptor.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-ocm/src/main/java/org/apache/jackrabbit/ocm/mapper/model/CollectionDescriptor.java?rev=697391&r1=697390&r2=697391&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-ocm/src/main/java/org/apache/jackrabbit/ocm/mapper/model/CollectionDescriptor.java (original)
+++ jackrabbit/trunk/jackrabbit-ocm/src/main/java/org/apache/jackrabbit/ocm/mapper/model/CollectionDescriptor.java Sat Sep 20 09:46:09 2008
@@ -30,6 +30,7 @@
      private String fieldName;
      private String jcrName;
      private String elementClassName;
+     private String jcrElementName;
      private String collectionConverterClassName;
      private String collectionClassName;
      private boolean proxy;
@@ -94,6 +95,23 @@
     }
 
     /**
+     * @return Returns the elementName.
+     */
+    public String getJcrElementName()
+    {
+        return jcrElementName;
+    }
+
+    /**
+     * @param jcrElementName The collection element name to set.
+     *
+     */
+    public void setJcrElementName(String jcrElementName)
+    {
+        this.jcrElementName = jcrElementName;
+    }
+
+    /**
      * @return Returns the proxy.
      */
     public boolean isProxy()

Modified: jackrabbit/trunk/jackrabbit-ocm/src/test/java/org/apache/jackrabbit/ocm/manager/beanconverter/AnnotationBeanDescriptorTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-ocm/src/test/java/org/apache/jackrabbit/ocm/manager/beanconverter/AnnotationBeanDescriptorTest.java?rev=697391&r1=697390&r2=697391&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-ocm/src/test/java/org/apache/jackrabbit/ocm/manager/beanconverter/AnnotationBeanDescriptorTest.java (original)
+++ jackrabbit/trunk/jackrabbit-ocm/src/test/java/org/apache/jackrabbit/ocm/manager/beanconverter/AnnotationBeanDescriptorTest.java Sat Sep 20 09:46:09 2008
@@ -246,7 +246,7 @@
             page.setPath("/test");
             page.setTitle("Page Title");
 
-            Collection paragraphs = new ArrayList();
+            List<Paragraph> paragraphs = new ArrayList<Paragraph>();
 
             paragraphs.add(new Paragraph("Para 1"));
             paragraphs.add(new Paragraph("Para 2"));
@@ -261,11 +261,10 @@
             // --------------------------------------------------------------------------------
             page = (Page) ocm.getObject("/test");
             paragraphs = page.getParagraphs();
-            for (Iterator iter = paragraphs.iterator(); iter.hasNext();) {
-				Paragraph paragraph = (Paragraph) iter.next();
+            for (Paragraph paragraph : paragraphs) {
 				System.out.println("Paragraph path : " + paragraph.getPath());				
 			}
-            Paragraph p1 = (Paragraph) ocm.getObject("/test/collection-element[2]");
+            Paragraph p1 = (Paragraph) ocm.getObject("/test/paragraph[2]");
             Page paraPage = p1.getPage();
             assertNotNull("Parent page is null", paraPage);
             assertTrue("Invalid parent page", paraPage.getPath().equals("/test"));

Modified: jackrabbit/trunk/jackrabbit-ocm/src/test/java/org/apache/jackrabbit/ocm/manager/beanconverter/DigesterBeanDescriptorTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-ocm/src/test/java/org/apache/jackrabbit/ocm/manager/beanconverter/DigesterBeanDescriptorTest.java?rev=697391&r1=697390&r2=697391&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-ocm/src/test/java/org/apache/jackrabbit/ocm/manager/beanconverter/DigesterBeanDescriptorTest.java (original)
+++ jackrabbit/trunk/jackrabbit-ocm/src/test/java/org/apache/jackrabbit/ocm/manager/beanconverter/DigesterBeanDescriptorTest.java Sat Sep 20 09:46:09 2008
@@ -247,7 +247,7 @@
             page.setPath("/test");
             page.setTitle("Page Title");
 
-            Collection paragraphs = new ArrayList();
+            List<Paragraph> paragraphs = new ArrayList<Paragraph>();
 
             paragraphs.add(new Paragraph("Para 1"));
             paragraphs.add(new Paragraph("Para 2"));
@@ -262,11 +262,10 @@
             // --------------------------------------------------------------------------------
             page = (Page) ocm.getObject("/test");
             paragraphs = page.getParagraphs();
-            for (Iterator iter = paragraphs.iterator(); iter.hasNext();) {
-				Paragraph paragraph = (Paragraph) iter.next();
+            for (Paragraph paragraph : paragraphs) {
 				System.out.println("Paragraph path : " + paragraph.getPath());				
 			}
-            Paragraph p1 = (Paragraph) ocm.getObject("/test/collection-element[2]");
+            Paragraph p1 = (Paragraph) ocm.getObject("/test/paragraph[2]");
             Page paraPage = p1.getPage();
             assertNotNull("Parent page is null", paraPage);
             assertTrue("Invalid parent page", paraPage.getPath().equals("/test"));

Modified: jackrabbit/trunk/jackrabbit-ocm/src/test/java/org/apache/jackrabbit/ocm/testmodel/Page.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-ocm/src/test/java/org/apache/jackrabbit/ocm/testmodel/Page.java?rev=697391&r1=697390&r2=697391&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-ocm/src/test/java/org/apache/jackrabbit/ocm/testmodel/Page.java (original)
+++ jackrabbit/trunk/jackrabbit-ocm/src/test/java/org/apache/jackrabbit/ocm/testmodel/Page.java Sat Sep 20 09:46:09 2008
@@ -17,6 +17,7 @@
 package org.apache.jackrabbit.ocm.testmodel;
 
 import java.util.ArrayList;
+import java.util.List;
 
 
 import org.apache.jackrabbit.ocm.manager.collectionconverter.impl.NTCollectionConverterImpl;
@@ -35,8 +36,8 @@
 	@Field(path=true) String path;
     @Field(jcrName="ocm:title") String title;
 
-    @Collection(elementClassName=Paragraph.class, collectionConverter=NTCollectionConverterImpl.class)
-    java.util.Collection paragraphs;
+    @Collection(collectionConverter=NTCollectionConverterImpl.class, jcrElementName="paragraph")
+    List<Paragraph> paragraphs;
 
     public String getPath()
     {
@@ -49,14 +50,14 @@
 	/**
      * @return Returns the paragraphs.
      */
-    public java.util.Collection getParagraphs()
+    public List<Paragraph> getParagraphs()
     {
         return paragraphs;
     }
     /**
      * @param paragraphs The paragraphs to set.
      */
-    public void setParagraphs(java.util.Collection paragraphs)
+    public void setParagraphs(List<Paragraph> paragraphs)
     {
         this.paragraphs = paragraphs;
     }
@@ -79,7 +80,7 @@
     {
     	if (paragraphs == null)
     	{
-    		paragraphs = new ArrayList();
+    		paragraphs = new ArrayList<Paragraph>();
     	}
     	
     	paragraphs.add(paragraph);

Modified: jackrabbit/trunk/jackrabbit-ocm/src/test/test-config/jcrmapping-sibling.xml
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-ocm/src/test/test-config/jcrmapping-sibling.xml?rev=697391&r1=697390&r2=697391&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-ocm/src/test/test-config/jcrmapping-sibling.xml (original)
+++ jackrabbit/trunk/jackrabbit-ocm/src/test/test-config/jcrmapping-sibling.xml Sat Sep 20 09:46:09 2008
@@ -1,36 +1,37 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-  -->
-
-<jackrabbit-ocm>
-
-	<class-descriptor className="org.apache.jackrabbit.ocm.testmodel.Page" jcrType="ocm:pagewithoutsibling" discriminator="false" >
-		<field-descriptor fieldName="path" path="true" />
-		<field-descriptor fieldName="title" jcrName="ocm:title" />
-		<collection-descriptor fieldName="paragraphs" proxy="false" 
-		                       elementClassName="org.apache.jackrabbit.ocm.testmodel.Paragraph" 
-		                       collectionConverter="org.apache.jackrabbit.ocm.manager.collectionconverter.impl.NTCollectionConverterImpl" />
-	</class-descriptor>
-
-	<class-descriptor className="org.apache.jackrabbit.ocm.testmodel.Paragraph" jcrType="ocm:paragraph" discriminator="false" >
-		<field-descriptor fieldName="path" path="true" />
-		<field-descriptor fieldName="text" jcrName="ocm:text"/>
-	</class-descriptor>
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+  -->
+
+<jackrabbit-ocm>
+
+	<class-descriptor className="org.apache.jackrabbit.ocm.testmodel.Page" jcrType="ocm:pagewithoutsibling" discriminator="false" >
+		<field-descriptor fieldName="path" path="true" />
+		<field-descriptor fieldName="title" jcrName="ocm:title" />
+		<collection-descriptor fieldName="paragraphs" proxy="false" 
+		                       elementClassName="org.apache.jackrabbit.ocm.testmodel.Paragraph"
+                           jcrElementName="paragraph"
+		                       collectionConverter="org.apache.jackrabbit.ocm.manager.collectionconverter.impl.NTCollectionConverterImpl" />
+	</class-descriptor>
+
+	<class-descriptor className="org.apache.jackrabbit.ocm.testmodel.Paragraph" jcrType="ocm:paragraph" discriminator="false" >
+		<field-descriptor fieldName="path" path="true" />
+		<field-descriptor fieldName="text" jcrName="ocm:text"/>
+	</class-descriptor>
 
 <class-descriptor
 		className="org.apache.jackrabbit.ocm.testmodel.Atomic" jcrType="nt:unstructured" discriminator="true" >
@@ -47,7 +48,7 @@
 		<field-descriptor fieldName="doublePrimitive" jcrName="doublePrimitive" />
 		<field-descriptor fieldName="inputStream" jcrName="inputStream" />
 		<field-descriptor fieldName="timestamp" jcrName="timestamp" />
-	</class-descriptor>
-
-</jackrabbit-ocm>
+	</class-descriptor>
+
+</jackrabbit-ocm>
  

Modified: jackrabbit/trunk/jackrabbit-ocm/src/test/test-config/jcrmapping.xml
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-ocm/src/test/test-config/jcrmapping.xml?rev=697391&r1=697390&r2=697391&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-ocm/src/test/test-config/jcrmapping.xml (original)
+++ jackrabbit/trunk/jackrabbit-ocm/src/test/test-config/jcrmapping.xml Sat Sep 20 09:46:09 2008
@@ -1,21 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-  -->
+
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+  -->
 
 <jackrabbit-ocm>
 
@@ -88,6 +88,7 @@
 		<field-descriptor fieldName="title" jcrName="ocm:title" />
 		<collection-descriptor fieldName="paragraphs" proxy="false"
 		                       elementClassName="org.apache.jackrabbit.ocm.testmodel.Paragraph"
+                           jcrElementName="paragraph"
 		                       collectionConverter="org.apache.jackrabbit.ocm.manager.collectionconverter.impl.NTCollectionConverterImpl" />
 	</class-descriptor>
 
@@ -109,9 +110,9 @@
 
 		<collection-descriptor fieldName="arrayListElement" jcrName="arrayListElement" proxy="false"
 			elementClassName="org.apache.jackrabbit.ocm.testmodel.collection.Element"
-			collectionClassName="org.apache.jackrabbit.ocm.testmodel.collection.ArrayListElement" />
-
-		<collection-descriptor fieldName="list" jcrName="list" proxy="false"
+			collectionClassName="org.apache.jackrabbit.ocm.testmodel.collection.ArrayListElement" />
+
+		<collection-descriptor fieldName="list" jcrName="list" proxy="false"
 		    elementClassName="org.apache.jackrabbit.ocm.testmodel.collection.Element" />
 
 	</class-descriptor>