]> 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
Clean up server OSGi
[gpl/argeo-slc.git] / runtime / org.argeo.slc.server / src / main / java / org / argeo / slc / web / mvc / process / NewSlcExecutionController.java
index 2e19764e6bb1f38f9c5410c697f19f95fd89e8c2..7b03f3b9bed0b4d7454bdd75dfae9eb659574250 100644 (file)
@@ -1,6 +1,7 @@
 package org.argeo.slc.web.mvc.process;\r
 \r
 import java.io.BufferedReader;\r
+import java.util.UUID;\r
 \r
 import javax.servlet.http.HttpServletRequest;\r
 import javax.servlet.http.HttpServletResponse;\r
@@ -9,11 +10,13 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;\r
 import org.argeo.slc.msg.MsgConstants;\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.process.SlcExecutionService;\r
+import org.argeo.slc.services.SlcExecutionService;\r
 import org.argeo.slc.web.mvc.AbstractServiceController;\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.StringSource;\r
 \r
@@ -38,6 +41,7 @@ public class NewSlcExecutionController extends AbstractServiceController {
 \r
                String agentId = request\r
                                .getParameter(MsgConstants.PROPERTY_SLC_AGENT_ID);\r
+               Assert.notNull(agentId, "agent id");\r
 \r
                String answer = request.getParameter("body");\r
                if (answer == null) {\r
@@ -58,7 +62,15 @@ public class NewSlcExecutionController extends AbstractServiceController {
                SlcExecution slcExecution = (SlcExecution) unmarshaller\r
                                .unmarshal(source);\r
 \r
+               // Workaround for https://www.argeo.org/bugzilla/show_bug.cgi?id=86\r
+               if (slcExecution.getUuid() == null\r
+                               || slcExecution.getUuid().length() < 8)\r
+                       slcExecution.setUuid(UUID.randomUUID().toString());\r
+\r
                slcExecution.setStatus(SlcExecution.STATUS_SCHEDULED);\r
+               slcExecution.getSteps().add(\r
+                               new SlcExecutionStep(SlcExecutionStep.TYPE_START,\r
+                                               "Process started from the Web UI"));\r
                slcExecutionService.newExecution(slcExecution);\r
 \r
                SlcAgent agent = agentFactory.getAgent(agentId);\r