package com.nvarghese.beowulf.common.jms; import java.util.concurrent.atomic.AtomicBoolean; import javax.jms.ConnectionFactory; import javax.jms.JMSException; import javax.jms.MessageListener; import javax.jms.Queue; import javax.jms.QueueConnection; import javax.jms.QueueReceiver; import javax.jms.QueueSession; import javax.jms.Session; public class JmsQueueReceiver { private QueueConnection qConnect = null; private QueueSession qSession = null; private Queue queue = null; private QueueReceiver consumer = null; private AtomicBoolean initialized = new AtomicBoolean(false); public JmsQueueReceiver(Queue queue) { this.queue = queue; } void initialize(ConnectionFactory cf, MessageListener jmsMessageListener) throws JMSException { qConnect = (QueueConnection) cf.createConnection(); qSession = (QueueSession) qConnect.createSession(false, Session.AUTO_ACKNOWLEDGE); consumer = (QueueReceiver) qSession.createConsumer(queue); consumer.setMessageListener(jmsMessageListener); initialized.set(true); } void initialize(ConnectionFactory cf, MessageListener jmsMessageListener, String userName, String password) throws JMSException { qConnect = (QueueConnection) cf.createConnection(userName, password); qSession = (QueueSession) qConnect.createSession(false, Session.AUTO_ACKNOWLEDGE); consumer = (QueueReceiver) qSession.createConsumer(queue); consumer.setMessageListener(jmsMessageListener); initialized.set(true); } public void startConnection() throws JMSException { qConnect.start(); } public void shutdownAll() throws JMSException { consumer.close(); qSession.close(); qConnect.close(); } }