1 package org
.argeo
.slc
.ws
.test
.tree
;
3 import org
.springframework
.ws
.server
.endpoint
.AbstractMarshallingPayloadEndpoint
;
5 import org
.apache
.commons
.logging
.Log
;
6 import org
.apache
.commons
.logging
.LogFactory
;
8 import org
.argeo
.slc
.core
.SlcException
;
9 import org
.argeo
.slc
.core
.test
.TestRunDescriptor
;
10 import org
.argeo
.slc
.core
.test
.tree
.PartSubList
;
11 import org
.argeo
.slc
.core
.test
.tree
.TreeTestResult
;
12 import org
.argeo
.slc
.dao
.test
.TestRunDescriptorDao
;
13 import org
.argeo
.slc
.dao
.test
.tree
.TreeTestResultDao
;
14 import org
.argeo
.slc
.msg
.test
.tree
.ResultPartRequest
;
16 public class ResultPartRequestEp
extends AbstractMarshallingPayloadEndpoint
{
18 private Log log
= LogFactory
.getLog(getClass());
20 private final TreeTestResultDao treeTestResultDao
;
21 private final TestRunDescriptorDao testRunDescriptorDao
;
23 public ResultPartRequestEp(TreeTestResultDao treeTestResultDao
,
24 TestRunDescriptorDao testRunDescriptorDao
) {
25 this.treeTestResultDao
= treeTestResultDao
;
26 this.testRunDescriptorDao
= testRunDescriptorDao
;
30 protected Object
invokeInternal(Object requestObject
) throws Exception
{
31 ResultPartRequest msg
= (ResultPartRequest
) requestObject
;
33 TestRunDescriptor testRunDescriptor
= msg
.getTestRunDescriptor();
34 if (testRunDescriptor
!= null) {
35 if (log
.isDebugEnabled())
36 log
.debug("Updating test run descriptor with id "
37 + testRunDescriptor
.getTestRunUuid());
39 testRunDescriptorDao
.saveOrUpdate(testRunDescriptor
);
42 TreeTestResult treeTestResult
= treeTestResultDao
.getTestResult(msg
44 if (treeTestResult
== null) {
45 throw new SlcException("No result with id " + msg
.getResultUuid());
48 PartSubList lst
= treeTestResult
.getResultParts().get(msg
.getPath());
50 lst
= new PartSubList();
51 treeTestResult
.getResultParts().put(msg
.getPath(), lst
);
53 lst
.getParts().add(msg
.getResultPart());
54 treeTestResult
.getElements().putAll(msg
.getRelatedElements());
56 if (log
.isDebugEnabled())
57 log
.debug("Updating result with id " + treeTestResult
.getUuid());
59 treeTestResultDao
.update(treeTestResult
);