X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.support.activemq%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fjms%2FJmsAgentProxyFactory.java;h=abe854112ea9d58e0785693b21ddba1483d3e3d6;hb=e1384618cb6d1c06ec570d7798b783fa04a3d807;hp=1f625e13fb3e0a292a8af21204ddccd8f297b8c8;hpb=cebfbf8efbf6a6b99a543bd309d2976478123989;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsAgentProxyFactory.java b/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsAgentProxyFactory.java index 1f625e13f..abe854112 100644 --- a/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsAgentProxyFactory.java +++ b/runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/JmsAgentProxyFactory.java @@ -1,21 +1,43 @@ package org.argeo.slc.jms; +import java.util.List; +import java.util.UUID; + import javax.jms.Destination; +import javax.jms.JMSException; +import javax.jms.Message; +import org.argeo.slc.msg.ReferenceList; import org.argeo.slc.runtime.SlcAgent; import org.argeo.slc.runtime.SlcAgentFactory; import org.springframework.jms.core.JmsTemplate; -import org.springframework.jms.support.converter.MessageConverter; +import org.springframework.jms.core.MessagePostProcessor; public class JmsAgentProxyFactory implements SlcAgentFactory { private Destination requestDestination; private Destination responseDestination; + private Destination pingAllDestination; private JmsTemplate jmsTemplate; - private MessageConverter messageConverter; public SlcAgent getAgent(String uuid) { return new JmsAgentProxy(uuid, requestDestination, responseDestination, - jmsTemplate, messageConverter); + jmsTemplate); + } + + public void pingAll(List activeAgentIds) { + ReferenceList referenceList = new ReferenceList(activeAgentIds); + jmsTemplate.convertAndSend(pingAllDestination, referenceList, + new MessagePostProcessor() { + + public Message postProcessMessage(Message message) + throws JMSException { + message.setJMSCorrelationID(UUID.randomUUID() + .toString()); + message.setStringProperty(JmsAgent.PROPERTY_QUERY, + JmsAgent.QUERY_PING_ALL); + return message; + } + }); } public void setRequestDestination(Destination requestDestination) { @@ -30,8 +52,8 @@ public class JmsAgentProxyFactory implements SlcAgentFactory { this.jmsTemplate = jmsTemplate; } - public void setMessageConverter(MessageConverter messageConverter) { - this.messageConverter = messageConverter; + public void setPingAllDestination(Destination pingAllDestination) { + this.pingAllDestination = pingAllDestination; } }