package com.destinationradiodenver.mobileStreaming.messages;
import javax.annotation.Resource;
import javax.ejb.Stateless;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.ObjectMessage;
import javax.jms.Session;
import javax.jms.Topic;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import org.jboss.logging.Logger;
public class StatusMessageDispatcher {
private static final Logger log = Logger.getLogger(StatusMessageDispatcher.class);
private String jmsTopicLookup;
public void sendObjectMessage(StatusMessage statusMessage, String destination) throws JMSException {
// create JMS message
try {
InitialContext context = new InitialContext();
ConnectionFactory connectionFactory = (ConnectionFactory) context.lookup("java:/ConnectionFactory");
Topic topic = (Topic) context.lookup(getJmsTopicLookup());
Connection connection = connectionFactory.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer producer = session.createProducer(topic);
connection.start();
ObjectMessage jmsMessage = session.createObjectMessage(statusMessage);
try{
producer.send(jmsMessage);
}catch (JMSException ex){
log.error("JMS Exception in StatusMessageDispatcher");
ex.printStackTrace();
}finally{
log.info("Closing JMS connection");
connection.close();
}
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String getJmsTopicLookup() {
return jmsTopicLookup;
}
public void setJmsTopicLookup(String jmsTopicLookup) {
this.jmsTopicLookup = jmsTopicLookup;
}
}