]> git.argeo.org Git - gpl/argeo-slc.git/commitdiff
Fix issue with object lists in Castor
authorMathieu Baudier <mbaudier@argeo.org>
Sun, 7 Jun 2009 10:18:33 +0000 (10:18 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Sun, 7 Jun 2009 10:18:33 +0000 (10:18 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@2509 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/execution/ExecutionModuleDescriptor.java
runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/process/SlcExecution.java
runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/runtime/SlcAgentDescriptor.java
runtime/org.argeo.slc.support.castor/src/main/resources/org/argeo/slc/castor/msg.xml
runtime/org.argeo.slc.support.castor/src/test/java/org/argeo/slc/castor/ObjectListCastorTest.java [new file with mode: 0644]
runtime/org.argeo.slc.support.castor/src/test/java/org/argeo/slc/castor/SlcAgentDescriptorCastorTest.java
runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/msg/ObjectList.java

index e87a14e4ac3198ffd342d599713475fec2716252..62f6682b16d49eb682bed856f63f83a155774ec7 100644 (file)
@@ -1,9 +1,11 @@
 package org.argeo.slc.execution;
 
+import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 
-public class ExecutionModuleDescriptor {
+public class ExecutionModuleDescriptor implements Serializable {
+       private static final long serialVersionUID = 1L;
        private String name;
        private String version;
        private List<ExecutionSpec> executionSpecs = new ArrayList<ExecutionSpec>();
index cfef480336f4975ea2c8c82741f75cb6c64a0e5e..5e745a2f0d619a1ac8099516112abbd463d49480 100644 (file)
@@ -1,11 +1,13 @@
 package org.argeo.slc.process;\r
 \r
+import java.io.Serializable;\r
 import java.util.ArrayList;\r
 import java.util.List;\r
 import java.util.Map;\r
 import java.util.TreeMap;\r
 \r
-public class SlcExecution {\r
+public class SlcExecution implements Serializable {\r
+       private static final long serialVersionUID = 1L;\r
        public final static String STATUS_SCHEDULED = "SCHEDULED";\r
        public final static String STATUS_RUNNING = "RUNNING";\r
        public final static String STATUS_FINISHED = "FINISHED";\r
index 1e29a95edbaed336ecec7f909cc0b8eb353547b2..9fac366e77e46ccdf8e1b56655d1c8b2b05c53c3 100644 (file)
@@ -1,11 +1,13 @@
 package org.argeo.slc.runtime;
 
+import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 
 import org.argeo.slc.execution.ExecutionModuleDescriptor;
 
-public class SlcAgentDescriptor implements Cloneable {
+public class SlcAgentDescriptor implements Cloneable, Serializable {
+       private static final long serialVersionUID = 1L;
        private String uuid;
        private String host;
        private List<ExecutionModuleDescriptor> moduleDescriptors = new ArrayList<ExecutionModuleDescriptor>();
index 0ba1fdeed971e43b19a86821acdb0e2b52d8e847..b295a610f0dd00e615eb05a879b0ab5189315c96 100644 (file)
@@ -24,7 +24,7 @@
        <class name="org.argeo.slc.msg.ObjectList">
                <map-to ns-uri="http://argeo.org/projects/slc/schemas"
                        ns-prefix="slc" />
-               <field name="objects" collection="arraylist" type="java.lang.Object">
+               <field name="objects" collection="arraylist" type="java.io.Serializable">
                        <bind-xml auto-naming="deriveByClass" />
                </field>
        </class>
diff --git a/runtime/org.argeo.slc.support.castor/src/test/java/org/argeo/slc/castor/ObjectListCastorTest.java b/runtime/org.argeo.slc.support.castor/src/test/java/org/argeo/slc/castor/ObjectListCastorTest.java
new file mode 100644 (file)
index 0000000..12ba6a7
--- /dev/null
@@ -0,0 +1,16 @@
+package org.argeo.slc.castor;
+
+import org.argeo.slc.msg.ObjectList;
+import org.argeo.slc.runtime.SlcAgentDescriptor;
+
+public class ObjectListCastorTest extends AbstractCastorTestCase {
+
+       public void testAgentDescriptorList() throws Exception {
+               SlcAgentDescriptor agentDescriptor = SlcAgentDescriptorCastorTest
+                               .createMiniAgentDescriptor();
+               ObjectList lst = new ObjectList();
+               lst.getObjects().add(agentDescriptor);
+               ObjectList lstUnm = (ObjectList) marshUnmarsh(lst, false);
+               assertEquals(1, lstUnm.getObjects().size());
+       }
+}
index 2e5e3afe2f051b755334acf6e1e2a94be4b95310..bfe211ce670a6f4aa084dab53475ffb061c5142d 100644 (file)
@@ -3,17 +3,15 @@ package org.argeo.slc.castor;
 import java.util.ArrayList;\r
 import java.util.List;\r
 \r
-import org.argeo.slc.execution.ExecutionFlowDescriptor;\r
 import org.argeo.slc.execution.ExecutionModuleDescriptor;\r
-import org.argeo.slc.execution.ExecutionSpec;\r
-import org.argeo.slc.msg.ObjectList;\r
 import org.argeo.slc.runtime.SlcAgentDescriptor;\r
-import org.argeo.slc.unit.execution.ExecutionFlowDescriptorTestUtils;\r
 \r
 public class SlcAgentDescriptorCastorTest extends AbstractCastorTestCase {\r
        public void testMarshUnmarshMini() throws Exception {\r
                SlcAgentDescriptor agentDescriptor = createMiniAgentDescriptor();\r
-               marshUnmarsh(agentDescriptor, false);\r
+               SlcAgentDescriptor agentDescriptorUnm = marshUnmarsh(agentDescriptor,\r
+                               false);\r
+               assertSlcAgentDescriptor(agentDescriptor, agentDescriptorUnm);\r
        }\r
 \r
        public void testMarshUnmarshWithModuleDescriptor() throws Exception {\r
@@ -26,13 +24,24 @@ public class SlcAgentDescriptorCastorTest extends AbstractCastorTestCase {
                lst.add(moduleDescriptor);\r
                agentDescriptor.setModuleDescriptors(lst);\r
 \r
-               marshUnmarsh(agentDescriptor, false);\r
+               SlcAgentDescriptor agentDescriptorUnm = marshUnmarsh(agentDescriptor,\r
+                               false);\r
+               assertSlcAgentDescriptor(agentDescriptor, agentDescriptorUnm);\r
        }\r
-       \r
-       protected static SlcAgentDescriptor createMiniAgentDescriptor(){\r
+\r
+       protected static SlcAgentDescriptor createMiniAgentDescriptor() {\r
                SlcAgentDescriptor agentDescriptor = new SlcAgentDescriptor();\r
                agentDescriptor.setHost("localhost");\r
                agentDescriptor.setUuid("555");\r
                return agentDescriptor;\r
        }\r
+\r
+       protected static void assertSlcAgentDescriptor(SlcAgentDescriptor expected,\r
+                       SlcAgentDescriptor reached) {\r
+               assertNotNull(reached);\r
+               assertEquals(expected.getHost(), reached.getHost());\r
+               assertEquals(expected.getUuid(), expected.getUuid());\r
+               assertEquals(expected.getModuleDescriptors().size(), reached\r
+                               .getModuleDescriptors().size());\r
+       }\r
 }\r
index 9f057cc1f264fdb4e1557bad909c0447df219b8e..886f47a32aaeae22e965ef7519a530fe2ee49662 100644 (file)
@@ -1,23 +1,24 @@
 package org.argeo.slc.msg;
 
+import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 
 public class ObjectList {
-       private List<?> objects = new ArrayList<Object>();
+       private List<Serializable> objects = new ArrayList<Serializable>();
 
        public ObjectList() {
        }
 
-       public ObjectList(List<?> objects) {
-               this.objects = objects;
+       public ObjectList(List<? extends Serializable> objects) {
+               this.objects.addAll(objects);
        }
 
-       public List<?> getObjects() {
+       public List<Serializable> getObjects() {
                return objects;
        }
 
-       public void setObjects(List<?> objects) {
+       public void setObjects(List<Serializable> objects) {
                this.objects = objects;
        }