You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by bd...@apache.org on 2010/09/14 08:37:31 UTC

svn commit: r996765 - /tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wire/CallbackDestinationInterceptor.java

Author: bdaniel
Date: Tue Sep 14 06:37:31 2010
New Revision: 996765

URL: http://svn.apache.org/viewvc?rev=996765&view=rev
Log:
Use JMS ReplyTo as callback desitnation when scaCallbackDestination property is not set

Modified:
    tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wire/CallbackDestinationInterceptor.java

Modified: tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wire/CallbackDestinationInterceptor.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wire/CallbackDestinationInterceptor.java?rev=996765&r1=996764&r2=996765&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wire/CallbackDestinationInterceptor.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wire/CallbackDestinationInterceptor.java Tue Sep 14 06:37:31 2010
@@ -20,7 +20,10 @@ package org.apache.tuscany.sca.binding.j
 
 import java.util.List;
 
+import javax.jms.Destination;
 import javax.jms.JMSException;
+import javax.jms.Queue;
+import javax.jms.Topic;
 
 import org.apache.tuscany.sca.assembly.EndpointReference;
 import org.apache.tuscany.sca.binding.jms.JMSBinding;
@@ -62,10 +65,17 @@ public class CallbackDestinationIntercep
             JMSBindingContext context = msg.getBindingContext();
             javax.jms.Message jmsMsg = context.getJmsMsg();             
          
+           
             if (service.getInterfaceContract().getCallbackInterface() != null) {
 
                 String callbackdestName = jmsMsg.getStringProperty(JMSBindingConstants.CALLBACK_Q_PROPERTY);
-
+                if (( callbackdestName == null) && ( jmsMsg.getJMSReplyTo() != null ) ) {
+                	Destination replyTo = jmsMsg.getJMSReplyTo();
+                	if (replyTo != null) {
+                		callbackdestName = (replyTo instanceof Queue) ? ((Queue) replyTo).getQueueName() : ((Topic) replyTo).getTopicName();
+               	   	}
+                }
+                
                 if (callbackdestName != null) {
                 	List<EndpointReference> refs = endpoint.getCallbackEndpointReferences();
                 	for (EndpointReference ref : refs ) {
@@ -74,7 +84,7 @@ public class CallbackDestinationIntercep
                 			callbackBinding.setDestinationName(callbackdestName);
                 		}
                 	}
-                }
+               }  
 
                 String callbackID = jmsMsg.getStringProperty(JMSBindingConstants.CALLBACK_ID_PROPERTY);
                 if (callbackID != null) {