summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/binding-jms-runtime/src
diff options
context:
space:
mode:
authorantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2011-08-23 10:40:56 +0000
committerantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2011-08-23 10:40:56 +0000
commitd409ec37565759085846a1b0959d94dfe767848c (patch)
tree696147b4cdfa82fadf809846ea80e2321b7169a4 /sca-java-2.x/trunk/modules/binding-jms-runtime/src
parent111c7ec0e7af072488134e06f0506884abd716dd (diff)
Update jms wireformats to fix NPE with async services
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1160610 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/trunk/modules/binding-jms-runtime/src')
-rw-r--r--sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytes/runtime/WireFormatJMSBytesProviderFactory.java8
-rw-r--r--sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytes/runtime/WireFormatJMSBytesServiceInterceptor.java14
-rw-r--r--sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytes/runtime/WireFormatJMSBytesServiceProvider.java11
-rw-r--r--sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytesxml/runtime/WireFormatJMSBytesXMLServiceInterceptor.java14
-rw-r--r--sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstextxml/runtime/WireFormatJMSTextXMLServiceInterceptor.java12
5 files changed, 53 insertions, 6 deletions
diff --git a/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytes/runtime/WireFormatJMSBytesProviderFactory.java b/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytes/runtime/WireFormatJMSBytesProviderFactory.java
index 7675698cc7..e6ef82e55d 100644
--- a/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytes/runtime/WireFormatJMSBytesProviderFactory.java
+++ b/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytes/runtime/WireFormatJMSBytesProviderFactory.java
@@ -19,6 +19,9 @@
package org.apache.tuscany.sca.binding.jms.wireformat.jmsbytes.runtime;
+import org.apache.tuscany.sca.binding.jms.JMSBinding;
+import org.apache.tuscany.sca.binding.jms.provider.JMSResourceFactory;
+import org.apache.tuscany.sca.binding.jms.provider.JMSResourceFactoryExtensionPoint;
import org.apache.tuscany.sca.binding.jms.wireformat.WireFormatJMSBytes;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.provider.WireFormatProvider;
@@ -31,10 +34,12 @@ import org.apache.tuscany.sca.runtime.RuntimeEndpointReference;
*/
public class WireFormatJMSBytesProviderFactory implements WireFormatProviderFactory<WireFormatJMSBytes> {
private ExtensionPointRegistry registry;
+ private JMSResourceFactoryExtensionPoint jmsRFEP;
public WireFormatJMSBytesProviderFactory(ExtensionPointRegistry registry) {
super();
this.registry = registry;
+ jmsRFEP = (JMSResourceFactoryExtensionPoint)registry.getExtensionPoint(JMSResourceFactoryExtensionPoint.class);
}
/**
@@ -46,7 +51,8 @@ public class WireFormatJMSBytesProviderFactory implements WireFormatProviderFact
/**
*/
public WireFormatProvider createServiceWireFormatProvider(RuntimeEndpoint endpoint) {
- return new WireFormatJMSBytesServiceProvider(registry, endpoint);
+ JMSResourceFactory jmsRF = jmsRFEP.createJMSResourceFactory((JMSBinding)endpoint.getBinding());
+ return new WireFormatJMSBytesServiceProvider(registry, endpoint, jmsRF);
}
/**
diff --git a/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytes/runtime/WireFormatJMSBytesServiceInterceptor.java b/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytes/runtime/WireFormatJMSBytesServiceInterceptor.java
index 835734f45e..f8d88f6809 100644
--- a/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytes/runtime/WireFormatJMSBytesServiceInterceptor.java
+++ b/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytes/runtime/WireFormatJMSBytesServiceInterceptor.java
@@ -91,6 +91,12 @@ public class WireFormatJMSBytesServiceInterceptor extends InterceptorAsyncImpl {
public Message invokeResponse(Message msg) {
// 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);
+ }
+
Session session = context.getJmsResponseSession();
javax.jms.Message responseJMSMsg;
@@ -114,7 +120,13 @@ public class WireFormatJMSBytesServiceInterceptor extends InterceptorAsyncImpl {
this.next = next;
}
- public Message processRequest(Message msg) {
+ private JMSBindingContext createBindingContext() {
+ JMSBindingContext context = new JMSBindingContext();
+ context.setJmsResourceFactory(jmsResourceFactory);
+ return context;
+ }
+
+ public Message processRequest(Message msg) {
return invokeRequest(msg);
} // end method processRequest
diff --git a/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytes/runtime/WireFormatJMSBytesServiceProvider.java b/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytes/runtime/WireFormatJMSBytesServiceProvider.java
index ef3530640f..fee2ac7748 100644
--- a/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytes/runtime/WireFormatJMSBytesServiceProvider.java
+++ b/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytes/runtime/WireFormatJMSBytesServiceProvider.java
@@ -21,6 +21,7 @@ package org.apache.tuscany.sca.binding.jms.wireformat.jmsbytes.runtime;
import org.apache.tuscany.sca.binding.jms.JMSBinding;
import org.apache.tuscany.sca.binding.jms.JMSBindingConstants;
+import org.apache.tuscany.sca.binding.jms.provider.JMSResourceFactory;
import org.apache.tuscany.sca.binding.jms.wireformat.WireFormatJMSBytes;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.interfacedef.InterfaceContract;
@@ -36,13 +37,17 @@ public class WireFormatJMSBytesServiceProvider implements WireFormatProvider {
private ExtensionPointRegistry registry;
private RuntimeEndpoint endpoint;
private JMSBinding binding;
- private InterfaceContract interfaceContract;
+ private InterfaceContract interfaceContract;
+ private JMSResourceFactory jmsResourceFactory;
public WireFormatJMSBytesServiceProvider(ExtensionPointRegistry registry,
- RuntimeEndpoint endpoint) {
+ RuntimeEndpoint endpoint,
+ JMSResourceFactory jmsResourceFactory) {
super();
this.registry = registry;
this.endpoint = endpoint;
+ this.endpoint = endpoint;
+ this.jmsResourceFactory = jmsResourceFactory;
this.binding = (JMSBinding) endpoint.getBinding();
// configure the service based on this wire format
@@ -81,7 +86,7 @@ public class WireFormatJMSBytesServiceProvider implements WireFormatProvider {
/**
*/
public Interceptor createInterceptor() {
- return new WireFormatJMSBytesServiceInterceptor(registry, null, endpoint);
+ return new WireFormatJMSBytesServiceInterceptor(registry, jmsResourceFactory, endpoint);
}
/**
diff --git a/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytesxml/runtime/WireFormatJMSBytesXMLServiceInterceptor.java b/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytesxml/runtime/WireFormatJMSBytesXMLServiceInterceptor.java
index 6ff27d4660..d5bbbec369 100644
--- a/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytesxml/runtime/WireFormatJMSBytesXMLServiceInterceptor.java
+++ b/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytesxml/runtime/WireFormatJMSBytesXMLServiceInterceptor.java
@@ -85,6 +85,12 @@ public class WireFormatJMSBytesXMLServiceInterceptor extends InterceptorAsyncImp
public Message invokeResponse(Message msg) {
// 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);
+ }
+
Session session = context.getJmsResponseSession();
javax.jms.Message responseJMSMsg;
@@ -108,7 +114,13 @@ public class WireFormatJMSBytesXMLServiceInterceptor extends InterceptorAsyncImp
this.next = next;
}
- public Message processRequest(Message msg) {
+ private JMSBindingContext createBindingContext() {
+ JMSBindingContext context = new JMSBindingContext();
+ context.setJmsResourceFactory(jmsResourceFactory);
+ return context;
+ }
+
+ public Message processRequest(Message msg) {
return invokeRequest(msg);
} // end method processRequest
diff --git a/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstextxml/runtime/WireFormatJMSTextXMLServiceInterceptor.java b/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstextxml/runtime/WireFormatJMSTextXMLServiceInterceptor.java
index d914bd9e2e..7766469271 100644
--- a/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstextxml/runtime/WireFormatJMSTextXMLServiceInterceptor.java
+++ b/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstextxml/runtime/WireFormatJMSTextXMLServiceInterceptor.java
@@ -93,6 +93,12 @@ public class WireFormatJMSTextXMLServiceInterceptor extends InterceptorAsyncImpl
// 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);
+ }
+
Session session = context.getJmsResponseSession();
javax.jms.Message responseJMSMsg;
@@ -114,6 +120,12 @@ public class WireFormatJMSTextXMLServiceInterceptor extends InterceptorAsyncImpl
public void setNext(Invoker next) {
this.next = next;
}
+
+ private JMSBindingContext createBindingContext() {
+ JMSBindingContext context = new JMSBindingContext();
+ context.setJmsResourceFactory(jmsResourceFactory);
+ return context;
+ }
public Message processRequest(Message msg) {
return invokeRequest(msg);