X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=runtime%2Forg.argeo.slc.server%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fweb%2Fmvc%2Fprocess%2FNewSlcExecutionController.java;h=2e19764e6bb1f38f9c5410c697f19f95fd89e8c2;hb=7a3b9a150bbd8f6e7110b61fd85594e1a3fb9c53;hp=236e8fb10019fa2d9cfa17b358d9b8b9d2d0ce97;hpb=76b4edd11cf585097682234558fbaff7304bdbee;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 236e8fb10..2e19764e6 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 @@ -11,6 +11,7 @@ import org.argeo.slc.msg.MsgConstants; import org.argeo.slc.process.SlcExecution; 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.web.servlet.ModelAndView; @@ -23,38 +24,43 @@ 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.isTraceEnabled()) { + log.debug("Content-Type: " + request.getContentType()); + log.debug("Content-Length: " + request.getContentLength()); + } + String agentId = request .getParameter(MsgConstants.PROPERTY_SLC_AGENT_ID); String answer = request.getParameter("body"); - if (answer == null && "text/xml".equals(request.getContentType())) { + if (answer == null) { // lets read the message body instead BufferedReader reader = request.getReader(); StringBuffer buffer = new StringBuffer(); - while (true) { - String line = reader.readLine(); - if (line == null) { - break; - } + String line = 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); + slcExecutionService.newExecution(slcExecution); + SlcAgent agent = agentFactory.getAgent(agentId); agent.runSlcExecution(slcExecution); } @@ -67,4 +73,8 @@ public class NewSlcExecutionController extends AbstractServiceController { this.agentFactory = agentFactory; } + public void setSlcExecutionService(SlcExecutionService slcExecutionService) { + this.slcExecutionService = slcExecutionService; + } + }