]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsSlcExecutionNotifier.java
256e837abf11c67897c38daf2c3976496a6eb4dc
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.activemq / src / main / java / org / argeo / slc / jms / JmsSlcExecutionNotifier.java
1 package org.argeo.slc.jms;
2
3 import java.util.List;
4
5 import javax.jms.Destination;
6
7 import org.apache.commons.logging.Log;
8 import org.apache.commons.logging.LogFactory;
9 import org.argeo.slc.UnsupportedException;
10 import org.argeo.slc.msg.process.SlcExecutionStatusRequest;
11 import org.argeo.slc.msg.process.SlcExecutionStepsRequest;
12 import org.argeo.slc.process.SlcExecution;
13 import org.argeo.slc.process.SlcExecutionNotifier;
14 import org.argeo.slc.process.SlcExecutionStep;
15 import org.springframework.jms.JmsException;
16 import org.springframework.jms.core.JmsTemplate;
17
18 public class JmsSlcExecutionNotifier implements SlcExecutionNotifier {
19 private final static Log log = LogFactory
20 .getLog(JmsSlcExecutionNotifier.class);
21
22 private JmsTemplate jmsTemplate;
23
24 private Destination executionEventDestination;
25
26 // private Destination updateStatusDestination;
27
28 public void updateStatus(SlcExecution slcExecution, String oldStatus,
29 String newStatus) {
30 SlcExecutionStatusRequest req = new SlcExecutionStatusRequest(
31 slcExecution.getUuid(), newStatus);
32 convertAndSend(req);
33 }
34
35 public void addSteps(SlcExecution slcExecution,
36 List<SlcExecutionStep> additionalSteps) {
37 SlcExecutionStepsRequest req = new SlcExecutionStepsRequest(
38 slcExecution.getUuid(), additionalSteps);
39 convertAndSend(req);
40 }
41
42 public void newExecution(SlcExecution slcExecution) {
43 throw new UnsupportedException();
44 }
45
46 public void updateExecution(SlcExecution slcExecution) {
47 throw new UnsupportedException();
48 }
49
50 public void setJmsTemplate(JmsTemplate jmsTemplate) {
51 this.jmsTemplate = jmsTemplate;
52 }
53
54 public void setExecutionEventDestination(
55 Destination executionEventDestination) {
56 this.executionEventDestination = executionEventDestination;
57 }
58
59 protected void convertAndSend(Object req) {
60 try {
61 jmsTemplate.convertAndSend(executionEventDestination, req);
62 } catch (JmsException e) {
63 log.warn("Send request " + req.getClass() + " to server: "
64 + e.getMessage());
65 if (log.isTraceEnabled())
66 log.debug("Original error.", e);
67 }
68 }
69 }