]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/process/NewSlcExecutionController.java
SlcExecution persistence
[gpl/argeo-slc.git] / runtime / org.argeo.slc.server / src / main / java / org / argeo / slc / web / mvc / process / NewSlcExecutionController.java
index 7b03f3b9bed0b4d7454bdd75dfae9eb659574250..d4a67b19d91ed51f1cdcb061b8bf692b73a3dd22 100644 (file)
@@ -9,15 +9,18 @@ import javax.servlet.http.HttpServletResponse;
 import org.apache.commons.logging.Log;\r
 import org.apache.commons.logging.LogFactory;\r
 import org.argeo.slc.msg.MsgConstants;\r
+import org.argeo.slc.msg.ObjectList;\r
 import org.argeo.slc.process.SlcExecution;\r
 import org.argeo.slc.process.SlcExecutionStep;\r
 import org.argeo.slc.runtime.SlcAgent;\r
 import org.argeo.slc.runtime.SlcAgentFactory;\r
 import org.argeo.slc.services.SlcExecutionService;\r
 import org.argeo.slc.web.mvc.AbstractServiceController;\r
+import org.springframework.oxm.Marshaller;\r
 import org.springframework.oxm.Unmarshaller;\r
 import org.springframework.util.Assert;\r
 import org.springframework.web.servlet.ModelAndView;\r
+import org.springframework.xml.transform.StringResult;\r
 import org.springframework.xml.transform.StringSource;\r
 \r
 /** Send a new SlcExecution. */\r
@@ -27,6 +30,7 @@ public class NewSlcExecutionController extends AbstractServiceController {
 \r
        private SlcAgentFactory agentFactory;\r
        private Unmarshaller unmarshaller;\r
+       private Marshaller marshaller;\r
        private SlcExecutionService slcExecutionService;\r
 \r
        @Override\r
@@ -71,6 +75,12 @@ public class NewSlcExecutionController extends AbstractServiceController {
                slcExecution.getSteps().add(\r
                                new SlcExecutionStep(SlcExecutionStep.TYPE_START,\r
                                                "Process started from the Web UI"));\r
+\r
+               ObjectList ol = new ObjectList(slcExecution.getRealizedFlows());\r
+               StringResult result = new StringResult();\r
+               marshaller.marshal(ol, result);\r
+               slcExecution.setRealizedFlowsXml(result.toString());\r
+\r
                slcExecutionService.newExecution(slcExecution);\r
 \r
                SlcAgent agent = agentFactory.getAgent(agentId);\r
@@ -89,4 +99,8 @@ public class NewSlcExecutionController extends AbstractServiceController {
                this.slcExecutionService = slcExecutionService;\r
        }\r
 \r
+       public void setMarshaller(Marshaller marshaller) {\r
+               this.marshaller = marshaller;\r
+       }\r
+\r
 }\r