summaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2009-11-03 11:26:33 +0000
committerantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2009-11-03 11:26:33 +0000
commit95d8fbabf48b6cf93a8450dbca4b11809874f8d4 (patch)
tree04139ce370a531bbfd5b9b3918fb6eb88eb31b7b /java
parent75558fef044008f76c928637fc59f1516cc3faf0 (diff)
Fix the RMI binding to find the service wire when its being used as the SCA binding. This is copied from the way the Axis2 binding also works and Ive added a TODO comment as it would be good to have a better way to do this.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@832396 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java')
-rw-r--r--java/sca/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java15
1 files changed, 15 insertions, 0 deletions
diff --git a/java/sca/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java b/java/sca/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
index c572b4e19b..d185780ed8 100644
--- a/java/sca/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
+++ b/java/sca/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
@@ -33,6 +33,7 @@ import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;
import org.apache.tuscany.sca.assembly.Endpoint;
+import org.apache.tuscany.sca.assembly.SCABinding;
import org.apache.tuscany.sca.binding.rmi.RMIBinding;
import org.apache.tuscany.sca.common.java.classloader.ClassLoaderDelegate;
import org.apache.tuscany.sca.host.rmi.RMIHost;
@@ -74,6 +75,20 @@ public class RMIServiceBindingProvider implements ServiceBindingProvider {
// binding.setURI(uri.toString());
wire = service.getRuntimeWire(binding);
+
+ // TODO - must be a better way to do this, which is copied from the Axis2ServiceProvider
+ // TODO - EPR - if there is no wire then find the wire for the SCA binding
+ // because this WS endpoint is providing remote support for the
+ // SCA binding
+ if (wire == null){
+ for(RuntimeWire tmpWire : service.getRuntimeWires()){
+ if (tmpWire.getEndpoint().getBinding() instanceof SCABinding){
+ wire = tmpWire;
+ break;
+ }
+ }
+ }
+
Interface serviceInterface = service.getInterfaceContract().getInterface();
rmiProxy = createRmiService(serviceInterface);