001 /*
002 * Copyright (C) The Apache Software Foundation. All rights reserved.
003 *
004 * This software is published under the terms of the Apache Software License
005 * version 1.1, a copy of which has been included with this distribution in
006 * the LICENSE file.
007 *
008 * $Id: MessengerMDO.java 155459 2005-02-26 13:24:44Z dirkv $
009 */
010
011 package org.apache.commons.messagelet;
012
013 import javax.jms.JMSException;
014
015 import org.apache.commons.messenger.Messenger;
016 import org.apache.commons.messenger.MessengerListener;
017 import org.apache.commons.messenger.MessengerManager;
018
019 /** <p><code>MessengerMDO</code> is an abstract base
020 * class for Messenger based MDO implementations.
021 * It provides access to the Messenger that was used to receive messages
022 * so that responses can be sent to the originating Messenger object
023 * and so reuse the same JMS Session and Connection for responses.</p>
024 *
025 * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
026 * @version $Revision: 155459 $
027 */
028
029 public abstract class MessengerMDO
030 extends MessageDrivenObjectSupport
031 implements MessengerListener {
032
033 /** the Messenger with which this MDO is associated */
034 private Messenger messenger;
035
036 /** the MessengerManager which manages the Messenger */
037 private MessengerManager messengerManager;
038
039 public MessengerMDO() {
040
041 }
042
043 /**
044 * Provides access to the current Messenger which was used to generate the current
045 * Message. This allows replies to be sent directly to the originating Messenger
046 * (and so the same JMS Session and Connection) which received the message
047 */
048 public Messenger getMessenger() {
049 return messenger;
050 }
051
052 public void setMessenger(Messenger messenger) {
053 this.messenger = messenger;
054 }
055
056 /**
057 * Provides access to the current MessengerManager which
058 * manages the Messenger
059 */
060 public MessengerManager getMessengerManager() throws JMSException {
061 if ( messengerManager == null ) {
062 messengerManager = MessengerManager.getInstance();
063 }
064 return messengerManager;
065 }
066
067 public void setMessengerManager(MessengerManager messengerManager) {
068 this.messengerManager = messengerManager;
069 }
070
071 }