]> git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc.server/src/main/java/org/argeo/slc/ws/process/SlcExecutionStepsRequestEp.java
INtroduce tree test result web service (not working yet)
[gpl/argeo-slc.git] / org.argeo.slc.server / src / main / java / org / argeo / slc / ws / process / SlcExecutionStepsRequestEp.java
1 package org.argeo.slc.ws.process;
2
3 import java.util.List;
4
5 import org.springframework.ws.server.endpoint.AbstractMarshallingPayloadEndpoint;
6
7 import org.apache.commons.logging.Log;
8 import org.apache.commons.logging.LogFactory;
9
10 import org.argeo.slc.core.SlcException;
11 import org.argeo.slc.core.process.SlcExecution;
12 import org.argeo.slc.core.process.SlcExecutionStep;
13 import org.argeo.slc.dao.process.SlcExecutionDao;
14 import org.argeo.slc.msg.process.SlcExecutionStepsRequest;
15
16 public class SlcExecutionStepsRequestEp extends
17 AbstractMarshallingPayloadEndpoint {
18
19 private Log log = LogFactory.getLog(getClass());
20
21 private final SlcExecutionDao slcExecutionDao;
22
23 public SlcExecutionStepsRequestEp(SlcExecutionDao slcExecutionDao) {
24 this.slcExecutionDao = slcExecutionDao;
25 }
26
27 @Override
28 protected Object invokeInternal(Object requestObject) throws Exception {
29 String uuid = null;
30 try {
31 SlcExecutionStepsRequest msg = (SlcExecutionStepsRequest) requestObject;
32 uuid = msg.getSlcExecutionUuid();
33 SlcExecution slcExecution = slcExecutionDao.getSlcExecution(uuid);
34
35 if (slcExecution == null)
36 throw new SlcException("Could not find slc execution " + uuid);
37
38 List<SlcExecutionStep> additionalSteps = msg.getSteps();
39 if(log.isTraceEnabled()){
40 log.trace("Trying to add additional steps to slc execution "+uuid+":");
41 for(SlcExecutionStep step: additionalSteps){
42 log.trace("Step "+step.getUuid()+" (in slc execution "+uuid+")");
43 }
44 }
45 slcExecution.getSteps().addAll(additionalSteps);
46
47 slcExecutionDao.update(slcExecution);
48 log.debug("Added " + msg.getSteps().size()
49 + " steps to SlcExecution with uuid "
50 + slcExecution.getUuid());
51 return null;
52 } catch (Exception e) {
53 log.error("Could not update SlcExecution " + uuid
54 + " with additional steps", e);
55 throw e;
56 }
57 }
58
59 }