[jboss-svn-commits] JBL Code SVN: r14859 - in labs/jbossesb/trunk/product/samples/quickstarts/recipient_list: src/org/jboss/soa/esb/samples/quickstart/recipientList/test and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Sep 4 09:19:23 EDT 2007


Author: kevin.conner at jboss.com
Date: 2007-09-04 09:19:23 -0400 (Tue, 04 Sep 2007)
New Revision: 14859

Modified:
   labs/jbossesb/trunk/product/samples/quickstarts/recipient_list/readme.txt
   labs/jbossesb/trunk/product/samples/quickstarts/recipient_list/src/org/jboss/soa/esb/samples/quickstart/recipientList/test/ReceiveJMSMessage.java
Log:
Fixed ReceiveJMSMessage and readme: JBESB-975

Modified: labs/jbossesb/trunk/product/samples/quickstarts/recipient_list/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/recipient_list/readme.txt	2007-09-04 12:34:45 UTC (rev 14858)
+++ labs/jbossesb/trunk/product/samples/quickstarts/recipient_list/readme.txt	2007-09-04 13:19:23 UTC (rev 14859)
@@ -40,7 +40,7 @@
   4. In a command terminal window in this folder ("Window4"), type
      'ant receive-destination2'.
   5. Open another command terminal window in this folder ("Window5"), type
-     'ant runtest'.
+     'ant runtest-cbr'.
   6. Switch back to Application Server and receiver consoles to see the output
      from the ESB
   7. When finished, interrupt the receivers using Ctrl-C and, in folder

Modified: labs/jbossesb/trunk/product/samples/quickstarts/recipient_list/src/org/jboss/soa/esb/samples/quickstart/recipientList/test/ReceiveJMSMessage.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/recipient_list/src/org/jboss/soa/esb/samples/quickstart/recipientList/test/ReceiveJMSMessage.java	2007-09-04 12:34:45 UTC (rev 14858)
+++ labs/jbossesb/trunk/product/samples/quickstarts/recipient_list/src/org/jboss/soa/esb/samples/quickstart/recipientList/test/ReceiveJMSMessage.java	2007-09-04 13:19:23 UTC (rev 14859)
@@ -28,9 +28,6 @@
 import javax.jms.TextMessage;
 import javax.naming.InitialContext;
 
-import javax.jms.MessageListener;
-import javax.jms.Message;
-
 public class ReceiveJMSMessage {
            QueueConnection conn = null;    
            QueueSession receiverSession = null;    
@@ -39,54 +36,86 @@
            InitialContext iniCtx = null;
            QueueConnectionFactory qcf = null;
            String receiveQueueName = "queue/D"; // Default to queue/D
+           private boolean initialised ;
 
-           // Ref:  http://docs.jboss.org/jbossas/jboss4guide/r5/html/ch6.chapt.html#d0e12917
-           public static class ExListener implements MessageListener
-           {
-              public void onMessage(Message msg)
-              {
-                  TextMessage tm = (TextMessage) msg;
-                  try {
-                      System.out.println("onMessage, recv text=" + tm.getText());
-                  } catch(Throwable t) {
-                    t.printStackTrace();
-                  }
-              }
-           }
-           
            public ReceiveJMSMessage() {
                    
            }
            public void receiveOne() {
+               if (!initialised) {
+                   initialise() ;
+               }
+               
+               if (receiverQueue != null) {
+                  try {
+                      TextMessage msg = (TextMessage) queueReceiver.receive();
+                      if (msg != null) {
+	    		  System.out.println("*********************************************************");
+	    		  System.out.println(msg.getText());
+	    		  System.out.println("*********************************************************");
+                      }
+                  } catch (final Exception ex) {
+                      cleanup() ;
+                      System.out.println(ex.getMessage()) ;
+                  }
+               }
+               
+               if (!initialised) {
+                   System.out.println("Pausing before reinitialising") ;
                    try {
-                   if (iniCtx == null) iniCtx = new InitialContext();
+                       Thread.sleep(5000) ;
+                   } catch (final InterruptedException ie) {
+                       // do nothing
+                   }
+               }
+           }
+
+           private void initialise()
+           {
+               try {
+                  if (iniCtx == null) iniCtx = new InitialContext();
                   if (qcf == null) qcf = (QueueConnectionFactory) iniCtx.lookup("ConnectionFactory");
                   if (conn == null) {
                       conn = qcf.createQueueConnection();
                       conn.start();
-                  }    
-                  
+                  }             
                   receiverQueue = (Queue) iniCtx.lookup(receiveQueueName);
                   receiverSession = conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
-                  queueReceiver = receiverSession.createReceiver(receiverQueue);              
-                  TextMessage msg = (TextMessage) queueReceiver.receive(2000);
-                  System.out.println(msg.getText());
-                 
-                  // Ref:  http://docs.jboss.org/jbossas/jboss4guide/r5/html/ch6.chapt.html#d0e12917
-                  queueReceiver.setMessageListener(new ExListener());
-
-                   } catch (Exception e) {
-                           e.printStackTrace();
-                   }
+                  queueReceiver = receiverSession.createReceiver(receiverQueue);
+                  initialised = true ;
+                  System.out.println("Initialised") ;
+               } catch (final Exception ex) {
+                   cleanup() ;
+               }
            }
-
+           
+           public void cleanup() {
+               queueReceiver = null ;
+               receiverSession = null ;
+               receiverQueue = null ;
+               try {
+                   conn.stop() ;
+               } catch (final Exception ex) {
+                   // Do nothing ;
+               }
+               conn = null ;
+               qcf = null ;
+               iniCtx = null ;
+               initialised = false ;
+           }
+           
            public static void main(String[] args) {
-                      ReceiveJMSMessage receiver = new ReceiveJMSMessage();
+		      final ReceiveJMSMessage receiver = new ReceiveJMSMessage();
                       
-                      if(args[0] != null) {
+		      if ((args.length > 0) && (args[0] != null)) {
                           receiver.receiveQueueName = args[0];
                           System.out.println("Receiving on: " + receiver.receiveQueueName );                     
                       }                   
+                      Runtime.getRuntime().addShutdownHook(new Thread() {
+                          public void run() {
+                              receiver.cleanup() ;
+                          }
+                      }) ;
                       while (true) { // loop until I'm killed
                           receiver.receiveOne();
                       }




More information about the jboss-svn-commits mailing list