[jboss-svn-commits] JBL Code SVN: r7517 - labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Nov 9 14:21:51 EST 2006


Author: estebanschifman
Date: 2006-11-09 14:21:50 -0500 (Thu, 09 Nov 2006)
New Revision: 7517

Modified:
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/CbrProxyAction.java
Log:
Replace JmsQueueReplyListener wih two way courier

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/CbrProxyAction.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/CbrProxyAction.java	2006-11-09 19:03:53 UTC (rev 7516)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/CbrProxyAction.java	2006-11-09 19:21:50 UTC (rev 7517)
@@ -26,6 +26,7 @@
 import java.net.URISyntaxException;
 import java.util.Collection;
 import java.util.Iterator;
+import java.util.UUID;
 
 import org.apache.log4j.Logger;
 import org.apache.log4j.Priority;
@@ -35,9 +36,9 @@
 import org.jboss.soa.esb.couriers.Courier;
 import org.jboss.soa.esb.couriers.CourierException;
 import org.jboss.soa.esb.couriers.CourierFactory;
+import org.jboss.soa.esb.couriers.CourierTimeoutException;
 import org.jboss.soa.esb.helpers.ConfigTree;
 import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.message.JmsQueueReplyListener;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.notification.NotificationList;
 import org.jboss.soa.esb.services.registry.Registry;
@@ -115,7 +116,6 @@
     {
     	message.getProperties().setProperty(MessageRouter.DELIVER_MESSAGES, Boolean.FALSE);
     	Message replyMessage=null;
-    	JmsQueueReplyListener jmsQueueReplyListener = new JmsQueueReplyListener();
     	try {
     		
 			for (Iterator<EPR> eprIterator=_eprs.iterator();eprIterator.hasNext();){
@@ -130,15 +130,18 @@
 						JMSEpr jpr = (JMSEpr)epr;
 						JMSEpr replyEpr =  new JMSEpr(jpr.getDestinationType()  ,jpr.getDestinationName()
 							                         ,jpr.getConnectionFactory(),jpr.getJndiType()
-							                         ,jpr.getJndiURL()          ,jmsQueueReplyListener.getReplySelector());
+							                         ,jpr.getJndiURL()          ,getReplySelector());
 						if (message.getHeader().getCall()==null) {
 							Call call = new Call();
 							message.getHeader().setCall(call);
 						}
 						message.getHeader().getCall().setReplyTo(replyEpr);
 						//Send the message and wait for the reply.
-						if (courier.deliver(message)) {
-							replyMessage = jmsQueueReplyListener.listen(replyEpr, _replyListenerTimeout);
+						if (courier.deliver(message)) 
+						{
+							courier.setReplyToEpr(replyEpr);
+							try { replyMessage = courier.pickup(_replyListenerTimeout); }
+							catch (CourierTimeoutException e) {}
 							break;
 						} else {
 							_logger.warn("Could not deliver the message, maybe there is another JMS-EPR we can use.");
@@ -227,4 +230,20 @@
 		// TODO Auto-generated method stub
 		return null;
 	}  
+	public static final String CORRELATION_ID_TAG = "messageCorrelationId";
+    /**
+     * We will be listening the same queue, but with a 'temporary' message selector
+     * based of a UUID.
+     * 
+     * @param message to which we ill add the CORRELATION_ID_TAG.
+     * @return the generated unique reply selector.
+     */
+	public static String getReplySelector()
+	{
+    	String uuId = UUID.randomUUID().toString();
+    	String uniqueReplySelector = new StringBuilder()
+		.append(CORRELATION_ID_TAG).append("='")
+		.append(uuId).append("'").toString();
+    	return uniqueReplySelector;
+	}
 } 
\ No newline at end of file




More information about the jboss-svn-commits mailing list