1 package org
.argeo
.slc
.jms
;
3 import javax
.jms
.Destination
;
5 import org
.apache
.commons
.logging
.Log
;
6 import org
.apache
.commons
.logging
.LogFactory
;
7 import org
.argeo
.slc
.SlcException
;
8 import org
.argeo
.slc
.core
.test
.tree
.TreeTestResult
;
9 import org
.argeo
.slc
.msg
.test
.tree
.CloseTreeTestResultRequest
;
10 import org
.argeo
.slc
.msg
.test
.tree
.CreateTreeTestResultRequest
;
11 import org
.argeo
.slc
.msg
.test
.tree
.ResultPartRequest
;
12 import org
.argeo
.slc
.test
.TestResultListener
;
13 import org
.argeo
.slc
.test
.TestResultPart
;
14 import org
.springframework
.jms
.core
.JmsTemplate
;
16 public class JmsTreeTestResultListener
implements
17 TestResultListener
<TreeTestResult
> {
18 private final Log log
= LogFactory
.getLog(getClass());
20 private Boolean onlyOnClose
= false;
21 private JmsTemplate jmsTemplate
;
23 private Destination executionEventDestination
;
24 // private Destination createDestination;
25 // private Destination addResultPartDestination;
26 // private Destination closeDestination;
28 public void resultPartAdded(TreeTestResult testResult
,
29 TestResultPart testResultPart
) {
34 if (testResult
.getResultParts().size() == 1
35 && testResult
.getResultParts().values().iterator().next()
36 .getParts().size() == 1) {
37 CreateTreeTestResultRequest req
= new CreateTreeTestResultRequest(
40 if (log
.isDebugEnabled())
41 log
.debug("Send create result request for result "
42 + testResult
.getUuid());
44 jmsTemplate
.convertAndSend(executionEventDestination
, req
);
46 ResultPartRequest req
= new ResultPartRequest(testResult
);
48 if (log
.isDebugEnabled())
49 log
.debug("Send result parts for result "
50 + testResult
.getUuid());
52 jmsTemplate
.convertAndSend(executionEventDestination
, req
);
54 } catch (Exception e
) {
55 throw new SlcException("Could not notify to JMS", e
);
59 public void close(TreeTestResult testResult
) {
62 CreateTreeTestResultRequest req
= new CreateTreeTestResultRequest(
65 if (log
.isDebugEnabled())
66 log
.debug("Send create result request for result "
67 + testResult
.getUuid());
69 jmsTemplate
.convertAndSend(executionEventDestination
, req
);
71 CloseTreeTestResultRequest req
= new CloseTreeTestResultRequest(
74 if (log
.isDebugEnabled())
75 log
.debug("Send close result request for result "
76 + testResult
.getUuid());
78 jmsTemplate
.convertAndSend(executionEventDestination
, req
);
81 } catch (Exception e
) {
82 throw new SlcException("Could not notify to JMS", e
);
86 public void setOnlyOnClose(Boolean onlyOnClose
) {
87 this.onlyOnClose
= onlyOnClose
;
90 public void setJmsTemplate(JmsTemplate jmsTemplate
) {
91 this.jmsTemplate
= jmsTemplate
;
94 public void setExecutionEventDestination(Destination executionEventDestination
) {
95 this.executionEventDestination
= executionEventDestination
;
100 // public void setCreateDestination(Destination createDestination) {
101 // this.createDestination = createDestination;
104 // public void setAddResultPartDestination(Destination addResultPartDestination) {
105 // this.addResultPartDestination = addResultPartDestination;
108 // public void setCloseDestination(Destination closeDestination) {
109 // this.closeDestination = closeDestination;