X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.server%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fws%2Fprocess%2FSlcExecutionRequestEp.java;h=f92dbc68e6782e0c758f7d8ca5f32bd98faf1348;hb=b2cf21e88b831c137803a47585115352de2a1b41;hp=65b520a26476fb3e2308d8e60e283d5f8c64cb25;hpb=b3991f6eea5fa7301459307b08158028b97c2eb3;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.server/src/main/java/org/argeo/slc/ws/process/SlcExecutionRequestEp.java b/org.argeo.slc.server/src/main/java/org/argeo/slc/ws/process/SlcExecutionRequestEp.java index 65b520a26..f92dbc68e 100644 --- a/org.argeo.slc.server/src/main/java/org/argeo/slc/ws/process/SlcExecutionRequestEp.java +++ b/org.argeo.slc.server/src/main/java/org/argeo/slc/ws/process/SlcExecutionRequestEp.java @@ -2,9 +2,13 @@ package org.argeo.slc.ws.process; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; + +import org.argeo.slc.core.SlcException; import org.argeo.slc.core.process.SlcExecution; import org.argeo.slc.dao.process.SlcExecutionDao; import org.argeo.slc.msg.process.SlcExecutionRequest; +import org.argeo.slc.msg.process.SlcExecutionStatusRequest; + import org.springframework.ws.server.endpoint.AbstractMarshallingPayloadEndpoint; public class SlcExecutionRequestEp extends AbstractMarshallingPayloadEndpoint { @@ -19,19 +23,37 @@ public class SlcExecutionRequestEp extends AbstractMarshallingPayloadEndpoint { @Override protected Object invokeInternal(Object requestObject) throws Exception { - SlcExecutionRequest msg = (SlcExecutionRequest) requestObject; - SlcExecution slcExecution = msg.getSlcExecution(); - - if (slcExecutionDao.getSlcExecution(slcExecution.getUuid()) == null) { - slcExecutionDao.create(slcExecution); - log.debug("Created SlcExecution with uuid " - + slcExecution.getUuid()); - } else { + if (requestObject instanceof SlcExecutionRequest) { + + SlcExecutionRequest msg = (SlcExecutionRequest) requestObject; + SlcExecution slcExecution = msg.getSlcExecution(); + + if (slcExecutionDao.getSlcExecution(slcExecution.getUuid()) == null) { + if (log.isDebugEnabled()) + log.debug("Creating SlcExecution with uuid " + + slcExecution.getUuid()); + + slcExecutionDao.create(slcExecution); + } else { + if (log.isDebugEnabled()) + log.debug("Updating SlcExecution with uuid " + + slcExecution.getUuid()); + + slcExecutionDao.update(slcExecution); + } + return null; + + } else if (requestObject instanceof SlcExecutionStatusRequest) { + SlcExecutionStatusRequest msg = (SlcExecutionStatusRequest) requestObject; + SlcExecution slcExecution = slcExecutionDao.getSlcExecution(msg + .getSlcExecutionUuid()); + slcExecution.setStatus(msg.getNewStatus()); slcExecutionDao.update(slcExecution); - log.debug("Updated SlcExecution with uuid " - + slcExecution.getUuid()); + return null; + } else { + throw new SlcException("Unrecognized request format: " + + requestObject.getClass()); } - return null; } }