summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultServiceInterceptor.java
diff options
context:
space:
mode:
authoredwardsmj <edwardsmj@13f79535-47bb-0310-9956-ffa450edef68>2010-12-20 19:36:27 +0000
committeredwardsmj <edwardsmj@13f79535-47bb-0310-9956-ffa450edef68>2010-12-20 19:36:27 +0000
commit1f91615143cc34ad7eeffc7d91b6ffec9d7d0271 (patch)
tree1b32deaa200d9c9d1ede5d5451c9ed33d3d74a20 /sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultServiceInterceptor.java
parentd7ebda787739f6e362f958250887961946a92f02 (diff)
Extending binding-jms-runtime to provide native async service invocation with separate forward request messages and back response messages - as described in TUSCANY-3809
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1051255 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r--sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultServiceInterceptor.java29
1 files changed, 21 insertions, 8 deletions
diff --git a/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultServiceInterceptor.java b/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultServiceInterceptor.java
index da6f283ff9..b66dd0154f 100644
--- a/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultServiceInterceptor.java
+++ b/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultServiceInterceptor.java
@@ -33,6 +33,7 @@ import org.apache.tuscany.sca.binding.jms.provider.DefaultMessageProcessor;
import org.apache.tuscany.sca.binding.jms.provider.JMSResourceFactory;
import org.apache.tuscany.sca.binding.jms.wireformat.WireFormatJMSDefault;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.invocation.InterceptorAsyncImpl;
import org.apache.tuscany.sca.interfacedef.DataType;
import org.apache.tuscany.sca.interfacedef.Operation;
import org.apache.tuscany.sca.invocation.Interceptor;
@@ -46,8 +47,7 @@ import org.w3c.dom.Node;
*
* @version $Rev$ $Date$
*/
-public class WireFormatJMSDefaultServiceInterceptor implements Interceptor {
- private Invoker next;
+public class WireFormatJMSDefaultServiceInterceptor extends InterceptorAsyncImpl {
private RuntimeEndpoint endpoint;
private JMSResourceFactory jmsResourceFactory;
private JMSBinding jmsBinding;
@@ -137,6 +137,11 @@ public class WireFormatJMSDefaultServiceInterceptor implements Interceptor {
// get the jms context
JMSBindingContext context = msg.getBindingContext();
+ // The Binding Context may be null on an asynchronous response - in which case, create a new one
+ if(context == null) {
+ context = createBindingContext();
+ msg.setBindingContext(context);
+ } // end if
Session session = context.getJmsResponseSession();
javax.jms.Message responseJMSMsg;
@@ -177,11 +182,19 @@ public class WireFormatJMSDefaultServiceInterceptor implements Interceptor {
return msg;
}
- public Invoker getNext() {
- return next;
- }
+ private JMSBindingContext createBindingContext() {
+ JMSBindingContext context = new JMSBindingContext();
+ context.setJmsResourceFactory(jmsResourceFactory);
- public void setNext(Invoker next) {
- this.next = next;
- }
+ return context;
+ } // end method createBindingContext
+
+ public Message processRequest(Message msg) {
+ return invokeRequest( msg );
+ } // end method processRequest
+
+ public Message processResponse(Message msg) {
+ return invokeResponse( msg );
+ } // end method processResponse
+
}