Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: com/panacya/platform/service/bus/mdb/SimpleMessageReceiverBean.java


1   package com.panacya.platform.service.bus.mdb;
2   
3   import com.panacya.platform.service.bus.sender.SenderClient;
4   import com.panacya.platform.service.bus.sender.SenderException;
5   import org.apache.commons.logging.Log;
6   import org.apache.commons.logging.LogFactory;
7   
8   import javax.ejb.CreateException;
9   import javax.ejb.MessageDrivenBean;
10  import javax.ejb.MessageDrivenContext;
11  import javax.jms.JMSException;
12  import javax.jms.Message;
13  import javax.jms.MessageListener;
14  import javax.jms.TextMessage;
15  import javax.naming.NamingException;
16  import java.rmi.RemoteException;
17  
18  /**
19   * @author <a href="mailto:michael.gaffney@panacya.com">Michael Gaffney </a>
20   */
21  
22  public class SimpleMessageReceiverBean implements MessageDrivenBean, MessageListener {
23  
24      private static final String SENDER_NAME = "java:comp/env/ejb/Sender";
25      private Log _log = LogFactory.getLog(SimpleMessageReceiverBean.class);
26      private MessageDrivenContext context;
27  
28      public SimpleMessageReceiverBean() {
29          if (_log.isInfoEnabled()) {
30              _log.info("SimpleMessageReceiverBean.SimpleMessageReceiverBean");
31          }
32      }
33  
34      public void onMessage(Message message)  {
35          if (_log.isInfoEnabled()) {
36              _log.info("SimpleMessageReceiverBean.onMessage");
37          }
38          try {
39              handleMessage(message);
40          } catch (JMSException e) {
41              _log.error(e.toString(), e);
42          } catch (NamingException e) {
43              _log.error(e.toString(), e);
44          } catch (RemoteException e) {
45              _log.error(e.toString(), e);
46          } catch (CreateException e) {
47              _log.error(e.toString(), e);
48          } catch (SenderException e) {
49              _log.error(e.toString(), e);
50          }
51      }
52  
53      private void handleMessage(Message message) throws JMSException, NamingException, RemoteException, SenderException, CreateException {
54          if (message instanceof TextMessage) {
55              TextMessage textMessage = (TextMessage) message;
56              if (_log.isInfoEnabled()) {
57                  _log.info("Message received: " + textMessage.getText());
58              }
59              send(textMessage.getText());
60          } else {
61              if (_log.isInfoEnabled()) {
62                  _log.info("Unknown message type received: " + message.toString());
63              }
64              send("Unknown message type: " + message.toString());
65          }
66      }
67  
68      public void ejbRemove() {
69          if (_log.isInfoEnabled()) {
70              _log.info("SimpleMessageReceiverBean.ejbRemove");
71          }
72      }
73  
74      public void setMessageDrivenContext(MessageDrivenContext messageDrivenContext) {
75          if (_log.isInfoEnabled()) {
76              _log.info("SimpleMessageReceiverBean.setMessageDrivenContext");
77          }
78          context = messageDrivenContext;
79      }
80  
81      public void ejbCreate() {
82          if (_log.isInfoEnabled()) {
83              _log.info("SimpleMessageReceiverBean.ejbCreate");
84          }
85      }
86  
87      private void send(String recMessage) throws NamingException, RemoteException, CreateException, SenderException {
88          sendToEJB(recMessage);
89      }
90  
91      private void sendToEJB(String recMessage) throws NamingException, RemoteException, CreateException, SenderException {
92          SenderClient senderClient = new SenderClient(SENDER_NAME);
93          senderClient.sendMessage(recMessage);
94      }   
95  }