QueueRequestor.java |
/* * JBoss, the OpenSource EJB server * * Distributable under LGPL license. * See terms of license at gnu.org. */ package javax.jms; /** * A queue requestor * * @author Chris Kimpton (chris@kimptoc.net) * @author Adrian Brock (adrian@jboss.com) * @version $Revision: 1.7 $ */ public class QueueRequestor { // Constants ----------------------------------------------------- // Attributes ---------------------------------------------------- private QueueSession queueSession = null; private Queue queue = null; private QueueSender requestSender = null; private QueueReceiver replyReceiver = null; private TemporaryQueue replyQueue = null; // Static -------------------------------------------------------- // Constructors -------------------------------------------------- public QueueRequestor(QueueSession session, Queue queue) throws JMSException { queueSession = session; this.queue = queue; requestSender = queueSession.createSender(queue); replyQueue = queueSession.createTemporaryQueue(); replyReceiver = queueSession.createReceiver(replyQueue); } // Public -------------------------------------------------------- public Message request(Message message) throws JMSException { message.setJMSReplyTo(replyQueue); message.setJMSDeliveryMode(DeliveryMode.NON_PERSISTENT); requestSender.send(message); return replyReceiver.receive(); } public void close() throws JMSException { replyReceiver.close(); replyQueue.delete(); queueSession.close(); } // Package protected --------------------------------------------- // Protected ----------------------------------------------------- // Private ------------------------------------------------------- // Inner classes ------------------------------------------------- // PUBLIC METHODS ------------------------------------------ // INSTANCE VARIABLES ---------------------------------------- }
QueueRequestor.java |