X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.server%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fweb%2Fmvc%2Fprocess%2FNewSlcExecutionController.java;h=aaa94a9e1f145026b746c2294f2f61b5187f681c;hb=719f374a748e531ae706115252978e06ad72c308;hp=682c2b906d0a7b8148223ad6fbf476a37b0b3105;hpb=ebb7b195cb6c4df387b69310ac2955188bdb6dcd;p=gpl%2Fargeo-slc.git 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 index 682c2b906..aaa94a9e1 100644 --- 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 @@ -9,10 +9,13 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.slc.msg.MsgConstants; import org.argeo.slc.process.SlcExecution; +import org.argeo.slc.process.SlcExecutionStep; import org.argeo.slc.runtime.SlcAgent; import org.argeo.slc.runtime.SlcAgentFactory; +import org.argeo.slc.services.process.SlcExecutionService; import org.argeo.slc.web.mvc.AbstractServiceController; import org.springframework.oxm.Unmarshaller; +import org.springframework.util.Assert; import org.springframework.web.servlet.ModelAndView; import org.springframework.xml.transform.StringSource; @@ -23,19 +26,21 @@ public class NewSlcExecutionController extends AbstractServiceController { private SlcAgentFactory agentFactory; private Unmarshaller unmarshaller; + private SlcExecutionService slcExecutionService; @Override protected void handleServiceRequest(HttpServletRequest request, HttpServletResponse response, ModelAndView modelAndView) throws Exception { - - if(log.isDebugEnabled()){ - log.debug("Content-Type: "+request.getContentType()); - log.debug("Content-Length: "+request.getContentLength()); + + if (log.isTraceEnabled()) { + log.debug("Content-Type: " + request.getContentType()); + log.debug("Content-Length: " + request.getContentLength()); } String agentId = request .getParameter(MsgConstants.PROPERTY_SLC_AGENT_ID); + Assert.notNull(agentId, "agent id"); String answer = request.getParameter("body"); if (answer == null) { @@ -43,20 +48,25 @@ public class NewSlcExecutionController extends AbstractServiceController { BufferedReader reader = request.getReader(); StringBuffer buffer = new StringBuffer(); String line = null; - while (((line = reader.readLine())!=null)) { + while (((line = reader.readLine()) != null)) { buffer.append(line); - buffer.append("\n"); } answer = buffer.toString(); } - if (log.isDebugEnabled()) + if (log.isTraceEnabled()) log.debug("Received message:\n" + answer); StringSource source = new StringSource(answer); SlcExecution slcExecution = (SlcExecution) unmarshaller .unmarshal(source); + slcExecution.setStatus(SlcExecution.STATUS_SCHEDULED); + slcExecution.getSteps().add( + new SlcExecutionStep(SlcExecutionStep.TYPE_START, + "Process started from the Web UI")); + slcExecutionService.newExecution(slcExecution); + SlcAgent agent = agentFactory.getAgent(agentId); agent.runSlcExecution(slcExecution); } @@ -69,4 +79,8 @@ public class NewSlcExecutionController extends AbstractServiceController { this.agentFactory = agentFactory; } + public void setSlcExecutionService(SlcExecutionService slcExecutionService) { + this.slcExecutionService = slcExecutionService; + } + }