X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.server%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fservices%2Fimpl%2Fprocess%2FSlcExecutionServiceImpl.java;h=1cb71070f9f28cbcb5ab90f192167d9f96c894dc;hb=719f374a748e531ae706115252978e06ad72c308;hp=b3c6f71fc52944962d4ac640631107a4d396f4ea;hpb=8328dc992e509741b6b9a5036cc7c10089c116f2;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/services/impl/process/SlcExecutionServiceImpl.java b/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/services/impl/process/SlcExecutionServiceImpl.java index b3c6f71fc..1cb71070f 100644 --- a/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/services/impl/process/SlcExecutionServiceImpl.java +++ b/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/services/impl/process/SlcExecutionServiceImpl.java @@ -5,7 +5,9 @@ import org.apache.commons.logging.LogFactory; import org.argeo.slc.SlcException; import org.argeo.slc.dao.process.SlcExecutionDao; import org.argeo.slc.msg.process.SlcExecutionStatusRequest; +import org.argeo.slc.msg.process.SlcExecutionStepsRequest; import org.argeo.slc.process.SlcExecution; +import org.argeo.slc.process.SlcExecutionStep; import org.argeo.slc.services.process.SlcExecutionService; public class SlcExecutionServiceImpl implements SlcExecutionService { @@ -27,11 +29,14 @@ public class SlcExecutionServiceImpl implements SlcExecutionService { slcExecutionDao.create(slcExecutionMsg); } else { - if (log.isTraceEnabled()) - log.trace("Updating SLC execution #" - + slcExecutionMsg.getUuid()); - - slcExecutionDao.merge(slcExecutionMsg); + throw new SlcException( + "There is already an SlcExecution registered with id " + + slcExecutionMsg.getUuid()); + // if (log.isTraceEnabled()) + // log.trace("Updating SLC execution #" + // + slcExecutionMsg.getUuid()); + // + // slcExecutionDao.merge(slcExecutionMsg); } } @@ -44,10 +49,21 @@ public class SlcExecutionServiceImpl implements SlcExecutionService { slcExecution.setStatus(msg.getNewStatus()); + if (msg.getNewStatus().equals(SlcExecution.STATUS_FINISHED)) + slcExecution.getSteps().add( + new SlcExecutionStep(SlcExecutionStep.TYPE_END, + "Process finished.")); + if (log.isTraceEnabled()) log.trace("Updating status for SLC execution #" - + slcExecution.getUuid()); + + slcExecution.getUuid() + " to status " + + msg.getNewStatus()); slcExecutionDao.update(slcExecution); } + + public void addSteps(SlcExecutionStepsRequest msg) { + slcExecutionDao.addSteps(msg.getSlcExecutionUuid(), msg.getSteps()); + } + }