]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.support.activemq/src/main/java/org/argeo/slc/jms/AgentListenerContainer.java
Introduce remote launching of agents
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.activemq / src / main / java / org / argeo / slc / jms / AgentListenerContainer.java
1 package org.argeo.slc.jms;
2
3 import org.apache.commons.logging.Log;
4 import org.apache.commons.logging.LogFactory;
5 import org.springframework.beans.factory.InitializingBean;
6 import org.springframework.jms.listener.DefaultMessageListenerContainer;
7 import org.springframework.jms.listener.adapter.MessageListenerAdapter;
8 import org.springframework.jms.support.converter.MessageConverter;
9
10 public class AgentListenerContainer extends DefaultMessageListenerContainer
11 implements InitializingBean {
12 private final static Log log = LogFactory.getLog(AgentListenerContainer.class);
13
14 private JmsAgent jmsAgent;
15 private String action;
16 private MessageConverter messageConverter;
17
18 @Override
19 public void afterPropertiesSet() {
20 MessageListenerAdapter messageListenerAdapter = new MessageListenerAdapter(
21 jmsAgent);
22 messageListenerAdapter.setDefaultListenerMethod(action);
23 messageListenerAdapter.setMessageConverter(messageConverter);
24 setMessageListener(messageListenerAdapter);
25 setDestinationName(jmsAgent.actionDestinationName(action));
26 super.afterPropertiesSet();
27
28 log.info("Listening to "+getDestinationName());
29 }
30
31 public void setJmsAgent(JmsAgent jmsAgent) {
32 this.jmsAgent = jmsAgent;
33 }
34
35 public void setAction(String action) {
36 this.action = action;
37 }
38
39 public void setMessageConverter(MessageConverter messageConverter) {
40 this.messageConverter = messageConverter;
41 }
42
43 }