diff options
author | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2008-07-07 23:51:06 +0000 |
---|---|---|
committer | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2008-07-07 23:51:06 +0000 |
commit | dd12ee8541124f96a3b28868b65c6b2711300c1f (patch) | |
tree | fcb6c7d7c4cfd90b9815385901aa5e4be7e16315 /java/sca/modules/binding-corba-runtime/src | |
parent | 27b4bbd53cac91a2797de96685912fbf788ad967 (diff) |
Apply the patApply the patch from Wojtek for TUSCANY-2397. Thanks. (corbaname.patch)
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@674676 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/modules/binding-corba-runtime/src')
2 files changed, 19 insertions, 13 deletions
diff --git a/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaReferenceBindingProvider.java b/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaReferenceBindingProvider.java index 50247de0db..cc78cacdbb 100644 --- a/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaReferenceBindingProvider.java +++ b/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaReferenceBindingProvider.java @@ -21,15 +21,13 @@ package org.apache.tuscany.sca.binding.corba.impl; import org.apache.tuscany.sca.binding.corba.CorbaBinding; import org.apache.tuscany.sca.host.corba.CorbaHost; -import org.apache.tuscany.sca.host.corba.CorbaHostException; +import org.apache.tuscany.sca.host.corba.CorbaHostUtils; import org.apache.tuscany.sca.interfacedef.InterfaceContract; import org.apache.tuscany.sca.interfacedef.Operation; import org.apache.tuscany.sca.invocation.Invoker; import org.apache.tuscany.sca.provider.ReferenceBindingProvider; import org.apache.tuscany.sca.runtime.RuntimeComponentReference; -import org.omg.CORBA.ORB; import org.omg.CORBA.Object; -import org.osoa.sca.ServiceRuntimeException; /** * @version $Rev$ $Date$ @@ -40,17 +38,11 @@ public class CorbaReferenceBindingProvider implements ReferenceBindingProvider { private CorbaHost host; private RuntimeComponentReference reference; private Object remoteObject; - private ORB orb; public CorbaReferenceBindingProvider(CorbaBinding binding, CorbaHost host, RuntimeComponentReference reference) { this.binding = binding; this.host = host; this.reference = reference; - try { - this.orb = host.createORB(binding.getHost(), binding.getPort(), false); - } catch (CorbaHostException e) { - throw new ServiceRuntimeException(e); - } } /** @@ -59,7 +51,11 @@ public class CorbaReferenceBindingProvider implements ReferenceBindingProvider { public Invoker createInvoker(Operation operation) { try { if (remoteObject == null) { - remoteObject = host.lookup(orb, binding.getName()); + if (CorbaHostUtils.isValidCorbanameURI(binding.getURI())) { + remoteObject = host.lookup(binding.getURI()); + } else { + remoteObject = host.lookup(binding.getName(), binding.getHost(), binding.getPort()); + } } return new CorbaInvoker(remoteObject); } catch (Exception e) { diff --git a/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaServiceBindingProvider.java b/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaServiceBindingProvider.java index ec752a1638..1d21fe1e25 100644 --- a/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaServiceBindingProvider.java +++ b/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaServiceBindingProvider.java @@ -22,6 +22,7 @@ package org.apache.tuscany.sca.binding.corba.impl; import org.apache.tuscany.sca.binding.corba.CorbaBinding; import org.apache.tuscany.sca.binding.corba.impl.service.DynaCorbaServant; import org.apache.tuscany.sca.host.corba.CorbaHost; +import org.apache.tuscany.sca.host.corba.CorbaHostUtils; import org.apache.tuscany.sca.interfacedef.InterfaceContract; import org.apache.tuscany.sca.provider.ServiceBindingProvider; import org.apache.tuscany.sca.runtime.RuntimeComponentService; @@ -57,10 +58,15 @@ public class CorbaServiceBindingProvider implements ServiceBindingProvider { */ public void start() { try { - this.orb = host.createORB(binding.getHost(), binding.getPort(), false); + servant = new DynaCorbaServant(service, binding); servant.setIds(new String[] {binding.getId()}); - host.registerServant(orb, binding.getName(), servant); + if (CorbaHostUtils.isValidCorbanameURI(binding.getURI())) { + host.registerServant(binding.getURI(), servant); + } else { + orb = host.createORB(binding.getHost(), binding.getPort(), false); + host.registerServant(orb, binding.getName(), servant); + } } catch (Exception e) { throw new ServiceRuntimeException(e); } @@ -72,7 +78,11 @@ public class CorbaServiceBindingProvider implements ServiceBindingProvider { */ public void stop() { try { - host.unregisterServant(orb, binding.getName()); + if (CorbaHostUtils.isValidCorbanameURI(binding.getURI())) { + host.unregisterServant(binding.getURI()); + } else if (orb != null) { + host.unregisterServant(orb, binding.getName()); + } } catch (Exception e) { throw new ServiceRuntimeException(e); } |