1 package at.ac.tuwien.sbc.valesriegler.jms.nac;
3 import javax.jms.Connection;
4 import javax.jms.DeliveryMode;
5 import javax.jms.JMSException;
6 import javax.jms.MessageConsumer;
7 import javax.jms.MessageProducer;
8 import javax.jms.Session;
10 import org.apache.activemq.ActiveMQConnectionFactory;
11 import org.slf4j.Logger;
12 import org.slf4j.LoggerFactory;
14 import at.ac.tuwien.sbc.valesriegler.jms.nac.actions.AbstractNACMsg;
17 * JMS "Naming And Control". This class registers the listener and initializes the Broker connection.
23 private static final Logger log = LoggerFactory.getLogger(JMSNAC.class);
24 public static final String JMS_NAC_SERVICE = "tcp://localhost:61610?jms.prefetchPolicy.all=1";
25 public static final String JMS_NAC_TOPIC = "NAC";
26 private Connection connection;
28 public JMSNAC(AbstractJMSNACMsgListener listener) {
29 log.info("Initialising Naming and control module.");
30 listener.setJmsnac(this);
33 ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(JMS_NAC_SERVICE);
34 connection = connectionFactory.createConnection();
37 Session sessWantToSit = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
38 MessageConsumer consWantToSit = sessWantToSit.createConsumer(sessWantToSit.createTopic(JMS_NAC_TOPIC));
39 consWantToSit.setMessageListener(listener);
40 } catch (JMSException e) {
41 log.error("EXCEPTION!", e);
44 public void sendNACMsg(AbstractNACMsg msg) throws JMSException {
45 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
46 MessageProducer prod = session.createProducer(session.createTopic(JMS_NAC_TOPIC));
47 prod.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
48 prod.send(session.createObjectMessage(msg));