]> 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 related events
[gpl/argeo-slc.git] / runtime / org.argeo.slc.server / src / main / java / org / argeo / slc / web / mvc / process / NewSlcExecutionController.java
diff --git a/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/process/NewSlcExecutionController.java b/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/process/NewSlcExecutionController.java
new file mode 100644 (file)
index 0000000..c551005
--- /dev/null
@@ -0,0 +1,44 @@
+package org.argeo.slc.web.mvc.process;\r
+\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+import javax.xml.transform.stream.StreamSource;\r
+\r
+import org.argeo.slc.msg.MsgConstants;\r
+import org.argeo.slc.process.SlcExecution;\r
+import org.argeo.slc.runtime.SlcAgent;\r
+import org.argeo.slc.runtime.SlcAgentFactory;\r
+import org.argeo.slc.web.mvc.AbstractServiceController;\r
+import org.springframework.oxm.Unmarshaller;\r
+import org.springframework.web.servlet.ModelAndView;\r
+\r
+/** Send a new SlcExecution. */\r
+public class NewSlcExecutionController extends AbstractServiceController {\r
+       private SlcAgentFactory agentFactory;\r
+       private Unmarshaller unmarshaller;\r
+\r
+       @Override\r
+       protected void handleServiceRequest(HttpServletRequest request,\r
+                       HttpServletResponse response, ModelAndView modelAndView)\r
+                       throws Exception {\r
+\r
+               String agentId = request\r
+                               .getParameter(MsgConstants.PROPERTY_SLC_AGENT_ID);\r
+\r
+               StreamSource source = new StreamSource(request.getInputStream());\r
+               SlcExecution slcExecution = (SlcExecution) unmarshaller\r
+                               .unmarshal(source);\r
+\r
+               SlcAgent agent = agentFactory.getAgent(agentId);\r
+               agent.runSlcExecution(slcExecution);\r
+       }\r
+\r
+       public void setUnmarshaller(Unmarshaller unmarshaller) {\r
+               this.unmarshaller = unmarshaller;\r
+       }\r
+\r
+       public void setAgentFactory(SlcAgentFactory agentFactory) {\r
+               this.agentFactory = agentFactory;\r
+       }\r
+\r
+}\r