summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x
diff options
context:
space:
mode:
authorantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2010-08-24 16:46:34 +0000
committerantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2010-08-24 16:46:34 +0000
commitff4d81926aabbecdf5e97c4cb0d43dd23bec056b (patch)
tree7d152abb18cfce6330f6caf9cfb38366ae854e40 /sca-java-2.x
parent61ed6b103cdea7af530950851857643a0b3efd45 (diff)
For callbacks with a oneway MEP set the JMSReplyTo with the callback destination
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@988619 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x')
-rw-r--r--sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderReferenceInterceptor.java12
1 files changed, 10 insertions, 2 deletions
diff --git a/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderReferenceInterceptor.java b/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderReferenceInterceptor.java
index b067b6ed12..9afce4243d 100644
--- a/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderReferenceInterceptor.java
+++ b/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/headers/HeaderReferenceInterceptor.java
@@ -24,7 +24,9 @@ package org.apache.tuscany.sca.binding.jms.headers;
import java.util.Map;
import javax.jms.DeliveryMode;
+import javax.jms.Destination;
import javax.jms.JMSException;
+import javax.naming.NamingException;
import org.apache.tuscany.sca.assembly.WireFormat;
import org.apache.tuscany.sca.binding.jms.JMSBinding;
@@ -114,7 +116,11 @@ public class HeaderReferenceInterceptor implements Interceptor {
String callbackDestName = getCallbackDestinationName(reference);
if (callbackDestName != null) {
- jmsMsg.setStringProperty(JMSBindingConstants.CALLBACK_Q_PROPERTY, callbackDestName);
+ jmsMsg.setStringProperty(JMSBindingConstants.CALLBACK_Q_PROPERTY, "jms:jndi:" + callbackDestName);
+ if (operation.isNonBlocking()) {
+ Destination dest = context.getJmsResourceFactory().lookupDestination(callbackDestName);
+ jmsMsg.setJMSReplyTo(dest);
+ }
}
}
@@ -140,7 +146,9 @@ public class HeaderReferenceInterceptor implements Interceptor {
return tuscanyMsg;
} catch (JMSException e) {
throw new JMSBindingException(e);
- }
+ } catch (NamingException e) {
+ throw new JMSBindingException(e);
+ }
}