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=82cf1bac927cd76e0b012d3328dcb84dcaba079b;hb=1fdb1b4e7b1d2b0cabb6483238301b857a6392fa;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..82cf1bac9 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,59 @@ +/* + * Copyright (C) 2010 Mathieu Baudier + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + 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 +68,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; } }