View Javadoc

1   /*
2    * Copyright (C) The Apache Software Foundation. All rights reserved.
3    *
4    * This software is published under the terms of the Apache Software License
5    * version 1.1, a copy of which has been included with this distribution in
6    * the LICENSE file.
7    * 
8    * $Id: MessengerMDO.java 155459 2005-02-26 13:24:44Z dirkv $
9    */
10  
11  package org.apache.commons.messagelet;
12  
13  import javax.jms.JMSException;
14  
15  import org.apache.commons.messenger.Messenger;
16  import org.apache.commons.messenger.MessengerListener;
17  import org.apache.commons.messenger.MessengerManager;
18  
19  /** <p><code>MessengerMDO</code> is an abstract base
20    * class for Messenger based MDO implementations. 
21    * It provides access to the Messenger that was used to receive messages
22    * so that responses can be sent to the originating Messenger object
23    * and so reuse the same JMS Session and Connection for responses.</p>
24    *
25    * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
26    * @version $Revision: 155459 $
27    */
28  
29  public abstract class MessengerMDO
30      extends MessageDrivenObjectSupport
31      implements MessengerListener {
32  
33      /** the Messenger with which this MDO is associated */
34      private Messenger messenger;
35  
36      /** the MessengerManager which manages the Messenger */
37      private MessengerManager messengerManager;
38  
39      public MessengerMDO() {
40  
41      }
42  
43      /** 
44       * Provides access to the current Messenger which was used to generate the current
45       * Message. This allows replies to be sent directly to the originating Messenger
46       * (and so the same JMS Session and Connection) which received the message
47       */
48      public Messenger getMessenger() {
49          return messenger;
50      }
51  
52      public void setMessenger(Messenger messenger) {
53          this.messenger = messenger;
54      }
55  
56      /** 
57       * Provides access to the current MessengerManager which
58       * manages the Messenger
59       */
60      public MessengerManager getMessengerManager() throws JMSException {
61          if ( messengerManager == null ) {
62              messengerManager = MessengerManager.getInstance();
63          }
64          return messengerManager;
65      }
66  
67      public void setMessengerManager(MessengerManager messengerManager) {
68          this.messengerManager = messengerManager;
69      }
70  
71  }