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) {