[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