--- /dev/null
+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