[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