X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.support.activemq%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fjms%2FJmsAgent.java;h=66c0718fc946c29f6a8199990123496357f3633d;hb=ab459c7e28f29c0695d159f7971337e3b5884c6e;hp=7aff0ab20ab3315f21569251d667a82d85a1d042;hpb=11a9d0e8d3e9f610d0546463cfaf07ae884cb249;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsAgent.java b/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsAgent.java index 7aff0ab20..66c0718fc 100644 --- a/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsAgent.java +++ b/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsAgent.java @@ -12,18 +12,24 @@ import javax.jms.MessageListener; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.slc.SlcException; +import org.argeo.slc.process.SlcExecution; import org.argeo.slc.runtime.SlcAgent; import org.argeo.slc.runtime.SlcAgentDescriptor; +import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; import org.springframework.jms.core.JmsTemplate; /** JMS based implementation of SLC Agent. */ -public class JmsAgent implements SlcAgent, MessageListener, InitializingBean { +public class JmsAgent implements SlcAgent, InitializingBean, DisposableBean { private final static Log log = LogFactory.getLog(JmsAgent.class); private final SlcAgentDescriptor agentDescriptor; private JmsTemplate jmsTemplate; private Destination agentRegister; + private Destination agentUnregister; + + private String agentDestinationPrefix = "agent."; + private String agentDestinationBase; public JmsAgent() { try { @@ -36,18 +42,25 @@ public class JmsAgent implements SlcAgent, MessageListener, InitializingBean { } public void afterPropertiesSet() throws Exception { + agentDestinationBase = agentDestinationPrefix + + agentDescriptor.getUuid() + "."; jmsTemplate.convertAndSend(agentRegister, agentDescriptor); log.info("Agent #" + agentDescriptor.getUuid() + " registered to " + agentRegister); } - public void onMessage(Message message) { - try { - log.info("Received message " + message.getJMSMessageID()); - } catch (JMSException e) { - e.printStackTrace(); - } + public void destroy() throws Exception { + jmsTemplate.convertAndSend(agentUnregister, agentDescriptor); + log.info("Agent #" + agentDescriptor.getUuid() + " unregistered to " + + agentRegister); + } + public String actionDestinationName(String action) { + return agentDestinationBase + action; + } + + public void newExecution(SlcExecution slcExecution) { + log.info("Would execute SlcExecution :" + slcExecution); } public void setJmsTemplate(JmsTemplate jmsTemplate) { @@ -58,4 +71,12 @@ public class JmsAgent implements SlcAgent, MessageListener, InitializingBean { this.agentRegister = agentRegister; } + public void setAgentUnregister(Destination agentUnregister) { + this.agentUnregister = agentUnregister; + } + + public void setAgentDestinationPrefix(String agentDestinationPrefix) { + this.agentDestinationPrefix = agentDestinationPrefix; + } + }