--- /dev/null
+<?xml version="1.0"?>\r
+\r
+<mapping>\r
+ <description>TreeTestResult objects XML mapping</description>\r
+\r
+ <class name="org.argeo.slc.core.test.tree.TreeTestResult"\r
+ auto-complete="false">\r
+ <field name="numericResultId"\r
+ type="org.argeo.slc.core.test.NumericTRId" />\r
+ <field name="closeDate" />\r
+ <field name="resultParts" collection="map">\r
+ <bind-xml name="result-part" location="result-parts">\r
+ <class name="org.exolab.castor.mapping.MapItem">\r
+ <field name="key"\r
+ type="org.argeo.slc.core.structure.tree.TreeSPath">\r
+ <bind-xml name="path" node="attribute" />\r
+ </field>\r
+ <field name="value"\r
+ type="org.argeo.slc.core.test.tree.PartSubList">\r
+ <bind-xml name="part-sub-list" />\r
+ </field>\r
+ </class>\r
+ </bind-xml>\r
+ </field>\r
+ <field name="pathNames" collection="map">\r
+ <bind-xml name="path-name" location="path-names">\r
+ <class name="org.exolab.castor.mapping.MapItem">\r
+ <field name="key"\r
+ type="org.argeo.slc.core.structure.tree.TreeSPath">\r
+ <bind-xml name="path" node="attribute" />\r
+ </field>\r
+ <field name="value" type="string">\r
+ <bind-xml name="name" />\r
+ </field>\r
+ </class>\r
+ </bind-xml>\r
+ </field>\r
+ </class>\r
+\r
+ <class name="org.argeo.slc.core.test.tree.PartSubList"\r
+ auto-complete="false">\r
+ <field name="slcExecutionUuid" type="string" />\r
+ <field name="slcExecutionStepUuid" type="string" />\r
+ <field name="parts" collection="vector"\r
+ type="org.argeo.slc.core.test.SimpleResultPart">\r
+ <bind-xml auto-naming="deriveByClass" location="parts" />\r
+ </field>\r
+ </class>\r
+\r
+ <class name="org.argeo.slc.core.structure.tree.TreeSPath"\r
+ auto-complete="false">\r
+ <field name="asUniqueString" type="string" />\r
+ </class>\r
+\r
+ <class name="java.lang.StackTraceElement" auto-complete="false"\r
+ verify-constructable="false">\r
+ <field name="declaringClass" type="string" set-method="%1"\r
+ get-method="getClassName">\r
+ <bind-xml node="attribute" />\r
+ </field>\r
+ <field name="methodName" type="string" set-method="%2"\r
+ get-method="getMethodName">\r
+ <bind-xml node="attribute" />\r
+ </field>\r
+ <field name="fileName" type="string" set-method="%3"\r
+ get-method="getFileName">\r
+ <bind-xml node="attribute" />\r
+ </field>\r
+ <field name="lineNumber" type="integer" set-method="%4"\r
+ get-method="getLineNumber">\r
+ <bind-xml node="attribute" />\r
+ </field>\r
+ </class>\r
+</mapping>
\ No newline at end of file
--- /dev/null
+package org.argeo.slc.core.test.tree;\r
+\r
+import org.springframework.oxm.Marshaller;\r
+import org.springframework.oxm.Unmarshaller;\r
+import org.springframework.xml.transform.StringResult;\r
+import org.springframework.xml.transform.StringSource;\r
+\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+\r
+import static org.argeo.slc.core.test.tree.TreeTestResultTestUtils.createCompleteTreeTestResult;\r
+\r
+import org.argeo.slc.unit.AbstractSpringTestCase;\r
+import org.argeo.slc.unit.test.tree.UnitTestTreeUtil;\r
+\r
+public class TreeTestResultCastorTest extends AbstractSpringTestCase {\r
+ private Log log = LogFactory.getLog(getClass());\r
+\r
+ public void testMarshUnmarsh() throws Exception {\r
+ Marshaller marshaller = getBean("marshaller");\r
+ Unmarshaller unmarshaller = getBean("marshaller");\r
+\r
+ TreeTestResult ttr = createCompleteTreeTestResult();\r
+\r
+ StringResult xml = new StringResult();\r
+ marshaller.marshal(ttr, xml);\r
+\r
+ log.info("Marshalled TreeTestResult: " + xml);\r
+\r
+ TreeTestResult ttrUnm = (TreeTestResult) unmarshaller\r
+ .unmarshal(new StringSource(xml.toString()));\r
+\r
+ UnitTestTreeUtil.assertTreeTestResult(ttr, ttrUnm);\r
+\r
+ }\r
+}\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<beans xmlns="http://www.springframework.org/schema/beans"\r
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">\r
+\r
+ <bean id="marshaller"\r
+ class="org.springframework.oxm.castor.CastorMarshaller">\r
+ <property name="mappingLocation"\r
+ value="classpath:org/argeo/slc/castor/test/tree/mapping.xml" />\r
+ </bean>\r
+</beans>
\ No newline at end of file