]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/services/impl/test/TestManagerServiceImpl.java
Compilation error with JDK 1.5
[gpl/argeo-slc.git] / runtime / org.argeo.slc.server / src / main / java / org / argeo / slc / services / impl / test / TestManagerServiceImpl.java
1 package org.argeo.slc.services.impl.test;
2
3 import org.apache.commons.logging.Log;
4 import org.apache.commons.logging.LogFactory;
5 import org.argeo.slc.core.test.tree.TreeTestResult;
6 import org.argeo.slc.core.test.tree.TreeTestResultCollection;
7 import org.argeo.slc.dao.process.SlcExecutionDao;
8 import org.argeo.slc.dao.test.TestRunDescriptorDao;
9 import org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao;
10 import org.argeo.slc.dao.test.tree.TreeTestResultDao;
11 import org.argeo.slc.msg.test.tree.AddTreeTestResultAttachmentRequest;
12 import org.argeo.slc.msg.test.tree.CloseTreeTestResultRequest;
13 import org.argeo.slc.msg.test.tree.CreateTreeTestResultRequest;
14 import org.argeo.slc.msg.test.tree.ResultPartRequest;
15 import org.argeo.slc.process.SlcExecution;
16 import org.argeo.slc.services.test.TestManagerService;
17 import org.argeo.slc.test.TestRunDescriptor;
18
19 /** Implementation of complex operations impacting the underlying data. */
20 public class TestManagerServiceImpl implements TestManagerService {
21 private Log log = LogFactory.getLog(getClass());
22
23 private final TreeTestResultDao treeTestResultDao;
24 private final TestRunDescriptorDao testRunDescriptorDao;
25 private final SlcExecutionDao slcExecutionDao;
26 private final TreeTestResultCollectionDao treeTestResultCollectionDao;
27
28 public TestManagerServiceImpl(TreeTestResultDao treeTestResultDao,
29 TestRunDescriptorDao testRunDescriptorDao,
30 SlcExecutionDao slcExecutionDao,
31 TreeTestResultCollectionDao treeTestResultCollectionDao) {
32 this.treeTestResultDao = treeTestResultDao;
33 this.testRunDescriptorDao = testRunDescriptorDao;
34 this.slcExecutionDao = slcExecutionDao;
35 this.treeTestResultCollectionDao = treeTestResultCollectionDao;
36 }
37
38 public void registerTestRunDescriptor(TestRunDescriptor testRunDescriptor) {
39 if (testRunDescriptor != null) {
40 if (log.isTraceEnabled())
41 log.trace("Registering test run descriptor #"
42 + testRunDescriptor.getTestRunUuid());
43 testRunDescriptorDao.saveOrUpdate(testRunDescriptor);
44
45 // Update tree test result collection
46 // TODO: optimize
47
48 if (testRunDescriptor.getSlcExecutionUuid() != null) {
49 SlcExecution slcExecution = slcExecutionDao
50 .getSlcExecution(testRunDescriptor
51 .getSlcExecutionUuid());
52 if (slcExecution != null) {
53 String collectionId = slcExecution.getUser() != null ? slcExecution
54 .getUser()
55 : "default";
56 addResultToCollection(collectionId, testRunDescriptor
57 .getTestResultUuid());
58 }
59 } else {
60 log
61 .trace("ResultUUID="
62 + testRunDescriptor.getTestResultUuid());
63 addResultToCollection("default", testRunDescriptor
64 .getTestResultUuid());
65 }
66 }
67 }
68
69 public void addResultToCollection(String collectionId, String resultUuid) {
70 TreeTestResultCollection ttrc = treeTestResultCollectionDao
71 .getTestResultCollection(collectionId);
72 if (ttrc == null) {
73 ttrc = new TreeTestResultCollection(collectionId);
74 treeTestResultCollectionDao.create(ttrc);
75 }
76 treeTestResultCollectionDao.addResultToCollection(ttrc, resultUuid);
77 }
78
79 public void removeResultFromCollection(String collectionId,
80 String resultUuid) {
81 TreeTestResultCollection ttrc = treeTestResultCollectionDao
82 .getTestResultCollection(collectionId);
83 if (ttrc != null) {
84 treeTestResultCollectionDao.removeResultFromCollection(ttrc,
85 resultUuid);
86 }
87
88 // Delete collection if empty
89 // see https://www.argeo.org/bugzilla/show_bug.cgi?id=74
90 if (ttrc.getResults().size() == 0) {
91 treeTestResultCollectionDao.delete(ttrc);
92 }
93 }
94
95 public void createTreeTestResult(CreateTreeTestResultRequest msg) {
96 TreeTestResult treeTestResult = msg.getTreeTestResult();
97
98 if (log.isTraceEnabled())
99 log.trace("Creating result #" + treeTestResult.getUuid());
100 treeTestResultDao.create(treeTestResult);
101
102 registerTestRunDescriptor(msg.getTestRunDescriptor());
103 }
104
105 public void addResultPart(ResultPartRequest msg) {
106 // registerTestRunDescriptor(msg.getTestRunDescriptor());
107
108 if (log.isTraceEnabled())
109 log.trace("Adding result part to test result #"
110 + msg.getResultUuid());
111
112 treeTestResultDao.addResultPart(msg.getResultUuid(), msg.getPath(), msg
113 .getResultPart(), msg.getRelatedElements());
114 // treeTestResultDao.updateAttributes(msg.getResultUuid(), msg
115 // .getAttributes());
116 }
117
118 public void closeTreeTestResult(CloseTreeTestResultRequest msg) {
119 if (log.isTraceEnabled())
120 log.trace("Closing result #" + msg.getResultUuid() + " at date "
121 + msg.getCloseDate());
122
123 treeTestResultDao.close(msg.getResultUuid(), msg.getCloseDate());
124 }
125
126 public void addAttachment(AddTreeTestResultAttachmentRequest msg) {
127 if (log.isTraceEnabled())
128 log.trace("Adding attachment " + msg.getAttachment()
129 + " to result #" + msg.getResultUuid());
130 treeTestResultDao.addAttachment(msg.getResultUuid(), msg
131 .getAttachment());
132
133 }
134
135 }