package server.jms; import java.util.Collection; import java.util.Enumeration; import java.util.TreeSet; import java.util.logging.Level; import java.util.logging.Logger; import javax.jms.Connection; import javax.jms.JMSException; import javax.jms.MessageProducer; import javax.jms.Queue; import javax.jms.QueueBrowser; import javax.jms.Session; import javax.jms.TextMessage; import javax.jms.Topic; import org.apache.activemq.ActiveMQConnectionFactory; /** * * @author Mark */ public class JmsConnection { private Connection connection; private Session session; public JmsConnection() { try { connection = new ActiveMQConnectionFactory().createConnection(); connection.start(); session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); } catch (JMSException ex) { Logger.getLogger(JmsConnection.class.getName()).log(Level.SEVERE, null, ex); } } public Collection<String> peekAll(String queueName) { Collection<String> messages = new TreeSet<String>(); try { QueueBrowser serverBrowser = session.createBrowser(session.createQueue(queueName)); Enumeration enumeration = serverBrowser.getEnumeration(); while(enumeration.hasMoreElements()) { String server = ((TextMessage)enumeration.nextElement()).getText(); messages.add(server); } } catch (JMSException ex) { Logger.getLogger(JmsConnection.class.getName()).log(Level.SEVERE, null, ex); } return messages; } public void sendMessageToTopic(String topicName, String message) { try { Topic topic = session.createTopic(topicName); TextMessage textMessage = session.createTextMessage(message); MessageProducer producer = session.createProducer(topic); producer.send(textMessage); } catch (JMSException ex) { Logger.getLogger(JmsConnection.class.getName()).log(Level.SEVERE, null, ex); } } public void sendMessageToQueue(String queueName, String message) { try { Queue queue = session.createQueue(message); TextMessage textMessage = session.createTextMessage(message); MessageProducer producer = session.createProducer(queue); producer.send(textMessage); } catch (JMSException ex) { Logger.getLogger(JmsConnection.class.getName()).log(Level.SEVERE, null, ex); } } }