summaryrefslogtreecommitdiffstats
path: root/java/sca/modules/binding-corba-runtime
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2008-07-07 23:51:06 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2008-07-07 23:51:06 +0000
commitdd12ee8541124f96a3b28868b65c6b2711300c1f (patch)
treefcb6c7d7c4cfd90b9815385901aa5e4be7e16315 /java/sca/modules/binding-corba-runtime
parent27b4bbd53cac91a2797de96685912fbf788ad967 (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')
-rw-r--r--java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaReferenceBindingProvider.java16
-rw-r--r--java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaServiceBindingProvider.java16
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);
}