1 package org
.argeo
.slc
.ws
.process
;
5 import org
.springframework
.ws
.server
.endpoint
.AbstractMarshallingPayloadEndpoint
;
7 import org
.apache
.commons
.logging
.Log
;
8 import org
.apache
.commons
.logging
.LogFactory
;
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
;
16 public class SlcExecutionStepsRequestEp
extends
17 AbstractMarshallingPayloadEndpoint
{
19 private Log log
= LogFactory
.getLog(getClass());
21 private final SlcExecutionDao slcExecutionDao
;
23 public SlcExecutionStepsRequestEp(SlcExecutionDao slcExecutionDao
) {
24 this.slcExecutionDao
= slcExecutionDao
;
28 protected Object
invokeInternal(Object requestObject
) throws Exception
{
31 SlcExecutionStepsRequest msg
= (SlcExecutionStepsRequest
) requestObject
;
32 uuid
= msg
.getSlcExecutionUuid();
33 SlcExecution slcExecution
= slcExecutionDao
.getSlcExecution(uuid
);
35 if (slcExecution
== null)
36 throw new SlcException("Could not find slc execution " + uuid
);
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
+")");
45 slcExecution
.getSteps().addAll(additionalSteps
);
47 slcExecutionDao
.update(slcExecution
);
48 log
.debug("Added " + msg
.getSteps().size()
49 + " steps to SlcExecution with uuid "
50 + slcExecution
.getUuid());
52 } catch (Exception e
) {
53 log
.error("Could not update SlcExecution " + uuid
54 + " with additional steps", e
);