]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.server/src/main/java/org/argeo/slc/ws/process/SlcExecutionRequestEp.java
Fix bugs with slc execution notifications
[gpl/argeo-slc.git] / org.argeo.slc.server / src / main / java / org / argeo / slc / ws / process / SlcExecutionRequestEp.java
index 477e59678453a70be8009f4f364192b5478fafd1..65b520a26476fb3e2308d8e60e283d5f8c64cb25 100644 (file)
@@ -3,20 +3,34 @@ package org.argeo.slc.ws.process;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.argeo.slc.core.process.SlcExecution;
+import org.argeo.slc.dao.process.SlcExecutionDao;
 import org.argeo.slc.msg.process.SlcExecutionRequest;
 import org.springframework.ws.server.endpoint.AbstractMarshallingPayloadEndpoint;
 
-public class SlcExecutionRequestEp extends
-               AbstractMarshallingPayloadEndpoint {
+public class SlcExecutionRequestEp extends AbstractMarshallingPayloadEndpoint {
 
        private Log log = LogFactory.getLog(getClass());
 
+       private final SlcExecutionDao slcExecutionDao;
+
+       public SlcExecutionRequestEp(SlcExecutionDao slcExecutionDao) {
+               this.slcExecutionDao = slcExecutionDao;
+       }
+
        @Override
        protected Object invokeInternal(Object requestObject) throws Exception {
                SlcExecutionRequest msg = (SlcExecutionRequest) requestObject;
                SlcExecution slcExecution = msg.getSlcExecution();
-               log.info("Received save or update request fro SlcExecution "
-                               + slcExecution.getUuid());
+
+               if (slcExecutionDao.getSlcExecution(slcExecution.getUuid()) == null) {
+                       slcExecutionDao.create(slcExecution);
+                       log.debug("Created SlcExecution with uuid "
+                                       + slcExecution.getUuid());
+               } else {
+                       slcExecutionDao.update(slcExecution);
+                       log.debug("Updated SlcExecution with uuid "
+                                       + slcExecution.getUuid());
+               }
                return null;
        }