]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/services/impl/SlcExecutionServiceImpl.java
Clean up server OSGi
[gpl/argeo-slc.git] / runtime / org.argeo.slc.server / src / main / java / org / argeo / slc / services / impl / SlcExecutionServiceImpl.java
1 package org.argeo.slc.services.impl;
2
3 import org.apache.commons.logging.Log;
4 import org.apache.commons.logging.LogFactory;
5 import org.argeo.slc.SlcException;
6 import org.argeo.slc.dao.process.SlcExecutionDao;
7 import org.argeo.slc.msg.process.SlcExecutionStatusRequest;
8 import org.argeo.slc.msg.process.SlcExecutionStepsRequest;
9 import org.argeo.slc.process.SlcExecution;
10 import org.argeo.slc.process.SlcExecutionStep;
11 import org.argeo.slc.services.SlcExecutionService;
12
13 public class SlcExecutionServiceImpl implements SlcExecutionService {
14 private final Log log = LogFactory.getLog(getClass());
15
16 private final SlcExecutionDao slcExecutionDao;
17
18 public SlcExecutionServiceImpl(SlcExecutionDao slcExecutionDao) {
19 this.slcExecutionDao = slcExecutionDao;
20 }
21
22 public void newExecution(SlcExecution slcExecutionMsg) {
23 SlcExecution slcExecutionPersisted = slcExecutionDao
24 .getSlcExecution(slcExecutionMsg.getUuid());
25 if (slcExecutionPersisted == null) {
26 if (log.isTraceEnabled())
27 log.trace("Creating SLC execution #"
28 + slcExecutionMsg.getUuid());
29
30 slcExecutionDao.create(slcExecutionMsg);
31 } else {
32 throw new SlcException(
33 "There is already an SlcExecution registered with id "
34 + slcExecutionMsg.getUuid());
35 // if (log.isTraceEnabled())
36 // log.trace("Updating SLC execution #"
37 // + slcExecutionMsg.getUuid());
38 //
39 // slcExecutionDao.merge(slcExecutionMsg);
40 }
41 }
42
43 public void updateStatus(SlcExecutionStatusRequest msg) {
44 SlcExecution slcExecution = slcExecutionDao.getSlcExecution(msg
45 .getSlcExecutionUuid());
46 if (slcExecution == null)
47 throw new SlcException("Could not find SLC execution #"
48 + msg.getSlcExecutionUuid());
49
50 slcExecution.setStatus(msg.getNewStatus());
51
52 if (msg.getNewStatus().equals(SlcExecution.STATUS_FINISHED))
53 slcExecution.getSteps().add(
54 new SlcExecutionStep(SlcExecutionStep.TYPE_END,
55 "Process finished."));
56
57 if (log.isTraceEnabled())
58 log.trace("Updating status for SLC execution #"
59 + slcExecution.getUuid() + " to status "
60 + msg.getNewStatus());
61
62 slcExecutionDao.update(slcExecution);
63 }
64
65 public void addSteps(SlcExecutionStepsRequest msg) {
66 slcExecutionDao.addSteps(msg.getSlcExecutionUuid(), msg.getSteps());
67 }
68
69 }