]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.server/src/main/java/org/argeo/slc/ws/test/tree/ResultPartRequestEp.java
Adapt web services to lazy loading
[gpl/argeo-slc.git] / org.argeo.slc.server / src / main / java / org / argeo / slc / ws / test / tree / ResultPartRequestEp.java
index 9fe4ccd6764e0142d2802004548cc3fdbc4a02c4..cdf77f592814756e94735d144b9c046f8a60fc30 100644 (file)
@@ -1,29 +1,59 @@
 package org.argeo.slc.ws.test.tree;
 
-import org.springframework.ws.server.endpoint.AbstractMarshallingPayloadEndpoint;
-
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-
 import org.argeo.slc.core.SlcException;
 import org.argeo.slc.core.test.tree.PartSubList;
 import org.argeo.slc.core.test.tree.TreeTestResult;
 import org.argeo.slc.dao.test.tree.TreeTestResultDao;
 import org.argeo.slc.msg.test.tree.ResultPartRequest;
+import org.argeo.slc.services.test.TestManagerService;
+import org.springframework.ws.server.endpoint.AbstractMarshallingPayloadEndpoint;
 
 public class ResultPartRequestEp extends AbstractMarshallingPayloadEndpoint {
 
        private Log log = LogFactory.getLog(getClass());
 
        private final TreeTestResultDao treeTestResultDao;
+       private final TestManagerService testManagerService;
 
-       public ResultPartRequestEp(TreeTestResultDao treeTestResultDao) {
+       public ResultPartRequestEp(TreeTestResultDao treeTestResultDao,
+                       TestManagerService testManagerService) {
                this.treeTestResultDao = treeTestResultDao;
+               this.testManagerService = testManagerService;
        }
 
        @Override
        protected Object invokeInternal(Object requestObject) throws Exception {
                ResultPartRequest msg = (ResultPartRequest) requestObject;
+
+               testManagerService
+                               .registerTestRunDescriptor(msg.getTestRunDescriptor());
+               // if (testRunDescriptor != null) {
+               // if (log.isDebugEnabled())
+               // log.debug("Updating test run descriptor with id "
+               // + testRunDescriptor.getTestRunUuid());
+               //
+               // testRunDescriptorDao.saveOrUpdate(testRunDescriptor);
+               //
+               // // Update tree test result collection
+               // // TODO: put it in dedicated service and optimize
+               // SlcExecution slcExecution = slcExecutionDao
+               // .getSlcExecution(testRunDescriptor.getSlcExecutionUuid());
+               // if (slcExecution != null) {
+               // TreeTestResultCollection ttrc = treeTestResultCollectionDao
+               // .getTestResultCollection(slcExecution.getUser());
+               // if (ttrc == null) {
+               // ttrc = new TreeTestResultCollection(slcExecution.getUser());
+               // treeTestResultCollectionDao.create(ttrc);
+               // }
+               // TreeTestResult ttr = treeTestResultDao
+               // .getTestResult(testRunDescriptor.getTestResultUuid());
+               // ttrc.getResults().add(ttr);
+               // treeTestResultCollectionDao.update(ttrc);
+               // }
+               // }
+
                TreeTestResult treeTestResult = treeTestResultDao.getTestResult(msg
                                .getResultUuid());
                if (treeTestResult == null) {
@@ -38,10 +68,11 @@ public class ResultPartRequestEp extends AbstractMarshallingPayloadEndpoint {
                lst.getParts().add(msg.getResultPart());
                treeTestResult.getElements().putAll(msg.getRelatedElements());
 
+               if (log.isDebugEnabled())
+                       log.debug("Updating result with id " + treeTestResult.getUuid());
+
                treeTestResultDao.update(treeTestResult);
 
-               if (log.isDebugEnabled())
-                       log.debug("Update result with id " + treeTestResult.getUuid());
                return null;
        }