You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by km...@apache.org on 2007/03/19 04:30:25 UTC

svn commit: r519815 - in /cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src: cayenne/java/org/apache/cayenne/xml/ tests/java/org/apache/cayenne/xml/ tests/resources/xmlcoding/

Author: kmenard
Date: Sun Mar 18 20:30:24 2007
New Revision: 519815

URL: http://svn.apache.org/viewvc?view=rev&rev=519815
Log:
CAY-597: XML Encoder with Mapping outputs incorrect XML.
Added the analogous fix for encoded collections.  This should handle all the problem cases reported in CAY-597 now.

Modified:
    cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/cayenne/java/org/apache/cayenne/xml/SerializableEntity.java
    cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/tests/java/org/apache/cayenne/xml/XMLDecoderTst.java
    cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/tests/java/org/apache/cayenne/xml/XMLEncoderTst.java
    cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/tests/resources/xmlcoding/collection-mapped.xml
    cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/tests/resources/xmlcoding/collection-mapping.xml

Modified: cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/cayenne/java/org/apache/cayenne/xml/SerializableEntity.java
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/cayenne/java/org/apache/cayenne/xml/SerializableEntity.java?view=diff&rev=519815&r1=519814&r2=519815
==============================================================================
--- cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/cayenne/java/org/apache/cayenne/xml/SerializableEntity.java (original)
+++ cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/cayenne/java/org/apache/cayenne/xml/SerializableEntity.java Sun Mar 18 20:30:24 2007
@@ -68,6 +68,9 @@
                 while (it.hasNext()) {
                     encodeObject(encoder, it.next(), false);
                 }
+                
+                // Make sure we pop the node we just pushed -- needed for fix to CAY-597.
+                encoder.pop();
             }
         }
         else {

Modified: cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/tests/java/org/apache/cayenne/xml/XMLDecoderTst.java
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/tests/java/org/apache/cayenne/xml/XMLDecoderTst.java?view=diff&rev=519815&r1=519814&r2=519815
==============================================================================
--- cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/tests/java/org/apache/cayenne/xml/XMLDecoderTst.java (original)
+++ cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/tests/java/org/apache/cayenne/xml/XMLDecoderTst.java Sun Mar 18 20:30:24 2007
@@ -123,6 +123,7 @@
         TestObject decoded = (TestObject) object;
 
         TestObject george = new TestObject();
+        george.setAge(76);
         george.setName("George");
         assertEquals(decoded, george);
 
@@ -130,10 +131,12 @@
         assertEquals(children.size(), 2);
 
         TestObject bill = new TestObject();
+        bill.setAge(34);
         bill.setName("Bill");
         assertEquals(children.get(0), bill);
 
         TestObject sue = new TestObject();
+        sue.setAge(31);
         sue.setName("Sue");
         assertEquals(children.get(1), sue);
 

Modified: cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/tests/java/org/apache/cayenne/xml/XMLEncoderTst.java
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/tests/java/org/apache/cayenne/xml/XMLEncoderTst.java?view=diff&rev=519815&r1=519814&r2=519815
==============================================================================
--- cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/tests/java/org/apache/cayenne/xml/XMLEncoderTst.java (original)
+++ cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/tests/java/org/apache/cayenne/xml/XMLEncoderTst.java Sun Mar 18 20:30:24 2007
@@ -184,6 +184,7 @@
         XMLEncoder encoder = new XMLEncoder(CayenneTestResources.getResourceURL(
                 XML_DATA_DIR + "collection-mapping.xml").toExternalForm());
         TestObject george = new TestObject();
+        george.setAge(76);
         george.setName("George");
         george.addChild(new TestObject("Bill", 34, true));
 

Modified: cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/tests/resources/xmlcoding/collection-mapped.xml
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/tests/resources/xmlcoding/collection-mapped.xml?view=diff&rev=519815&r1=519814&r2=519815
==============================================================================
--- cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/tests/resources/xmlcoding/collection-mapped.xml (original)
+++ cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/tests/resources/xmlcoding/collection-mapped.xml Sun Mar 18 20:30:24 2007
@@ -2,6 +2,7 @@
 <Name>George</Name>
 <Child>
 <Name>Bill</Name>
+<Age>34</Age>
 </Child>
 <Child>
 <Name>Sue</Name>
@@ -9,5 +10,7 @@
 <Name>Mike</Name>
 <Age>3</Age>
 </Grandchild>
+<Age>31</Age>
 </Child>
+<Age>76</Age>
 </Family>

Modified: cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/tests/resources/xmlcoding/collection-mapping.xml
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/tests/resources/xmlcoding/collection-mapping.xml?view=diff&rev=519815&r1=519814&r2=519815
==============================================================================
--- cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/tests/resources/xmlcoding/collection-mapping.xml (original)
+++ cayenne/main/branches/STABLE-2.0/cayenne/cayenne-java/src/tests/resources/xmlcoding/collection-mapping.xml Sun Mar 18 20:30:24 2007
@@ -1,12 +1,19 @@
+<!--
+Make sure that "simple" properties surround aggregate ones
+in order to fully test nested element problems found in CAY-597.
+-->
+
 <model>
     <entity name="org.apache.cayenne.xml.TestObject" xmlTag="Family">
-        <property name="name" xmlTag="Name"/>
+    	<property name="name" xmlTag="Name"/>
         <property name="children" xmlTag="Child"/>
+        <property name="age" xmlTag="Age"/>
     </entity>
 	
 	<entity name="org.apache.cayenne.xml.TestObject" xmlTag="Child">
 		<property name="name" xmlTag="Name"/>
 		<property name="children" xmlTag="Grandchild"/>
+		<property name="age" xmlTag="Age"/>
 	</entity>
 	
 	<entity name="org.apache.cayenne.xml.TestObject" xmlTag="Grandchild">