/**
* Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.transport.jms;
import javax.jms.Connection;
import javax.jms.JMSException;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.Session;
import javax.jms.TemporaryQueue;
import org.springframework.jms.support.JmsUtils;
import com.opengamma.util.jms.JmsConnector;
/**
* Hosts a temporary queue through which messages will be received.
*/
public class JmsTemporaryQueueHost {
/**
* The message consumer.
*/
private final MessageConsumer _consumer;
/**
* The session.
*/
private final Session _session;
/**
* The connection.
*/
private final Connection _connection;
/**
* The temporary queue
*/
private final TemporaryQueue _queue;
public JmsTemporaryQueueHost(JmsConnector jmsConnector, MessageListener listener) throws JMSException {
_connection = jmsConnector.getConnectionFactory().createConnection();
_session = _connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
_queue = _session.createTemporaryQueue();
_consumer = _session.createConsumer(_queue);
_consumer.setMessageListener(listener);
_connection.start();
}
public String getQueueName() throws JMSException {
return _queue.getQueueName();
}
public void close() throws JMSException {
JmsUtils.closeMessageConsumer(_consumer);
JmsUtils.closeSession(_session);
_connection.close();
}
}