diff options
author | wjaniszewski <wjaniszewski@13f79535-47bb-0310-9956-ffa450edef68> | 2008-08-03 20:03:45 +0000 |
---|---|---|
committer | wjaniszewski <wjaniszewski@13f79535-47bb-0310-9956-ffa450edef68> | 2008-08-03 20:03:45 +0000 |
commit | 2bf6abaee42cd687a15095274961c6c265ee9326 (patch) | |
tree | c6638c113bd037a8245d1e076cd9ba713b464af6 /java/sca/modules | |
parent | 67615a0c52a827e4efb342dd5cce6be8dd3e3e97 (diff) |
In <binding.corba> added configuration option to allow creating name server by Tuscany, new test scenario in itest/corba.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@682203 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/modules')
-rw-r--r-- | java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaServiceBindingProvider.java | 17 | ||||
-rwxr-xr-x | java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/util/SocketUtil.java (renamed from java/sca/modules/binding-sca-corba/src/main/java/org/apache/tuscany/sca/binding/sca/corba/impl/SocketUtil.java) | 2 | ||||
-rw-r--r-- | java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/CorbaBinding.java | 4 | ||||
-rw-r--r-- | java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaBindingImpl.java | 11 | ||||
-rw-r--r-- | java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaBindingProcessor.java | 10 | ||||
-rw-r--r-- | java/sca/modules/binding-sca-corba/src/main/java/org/apache/tuscany/sca/binding/sca/corba/impl/CorbaSCAServiceBindingProvider.java | 1 |
6 files changed, 42 insertions, 3 deletions
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 fe4fabc293..516605ec8f 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 @@ -24,7 +24,9 @@ import org.apache.tuscany.sca.binding.corba.impl.service.ComponentInvocationProx import org.apache.tuscany.sca.binding.corba.impl.service.DynaCorbaServant; import org.apache.tuscany.sca.binding.corba.impl.service.InvocationProxy; import org.apache.tuscany.sca.binding.corba.impl.types.util.Utils; +import org.apache.tuscany.sca.binding.corba.impl.util.SocketUtil; import org.apache.tuscany.sca.host.corba.CorbaHost; +import org.apache.tuscany.sca.host.corba.CorbanameURL; import org.apache.tuscany.sca.interfacedef.InterfaceContract; import org.apache.tuscany.sca.interfacedef.java.JavaInterface; import org.apache.tuscany.sca.provider.ServiceBindingProvider; @@ -40,11 +42,20 @@ public class CorbaServiceBindingProvider implements ServiceBindingProvider { private CorbaHost host; private RuntimeComponentService service; private DynaCorbaServant servant; + private boolean isLocalhost; + private int port; public CorbaServiceBindingProvider(CorbaBinding binding, CorbaHost host, RuntimeComponentService service) { this.binding = binding; this.host = host; this.service = service; + if (binding.isProvideNameServer()) { + CorbanameURL details = new CorbanameURL(binding.getCorbaname()); + isLocalhost = SocketUtil.isLocalhost(details.getHost()); + if (isLocalhost) { + port = details.getPort(); + } + } } /** @@ -63,6 +74,9 @@ public class CorbaServiceBindingProvider implements ServiceBindingProvider { InvocationProxy proxy = new ComponentInvocationProxy(service, service.getRuntimeWire(binding), javaClass); servant = new DynaCorbaServant(proxy, Utils.getTypeId(javaClass)); servant.setIds(new String[] {binding.getId()}); + if (binding.isProvideNameServer() && isLocalhost) { + host.createLocalNameServer(port); + } host.registerServant(binding.getCorbaname(), servant); } catch (Exception e) { throw new ServiceRuntimeException(e); @@ -75,6 +89,9 @@ public class CorbaServiceBindingProvider implements ServiceBindingProvider { */ public void stop() { try { + if (binding.isProvideNameServer() && isLocalhost) { + host.releaseLocalNameServer(port); + } host.unregisterServant(binding.getCorbaname()); } catch (Exception e) { throw new ServiceRuntimeException(e); diff --git a/java/sca/modules/binding-sca-corba/src/main/java/org/apache/tuscany/sca/binding/sca/corba/impl/SocketUtil.java b/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/util/SocketUtil.java index 6f4b4b9a9b..3541fd92cf 100755 --- a/java/sca/modules/binding-sca-corba/src/main/java/org/apache/tuscany/sca/binding/sca/corba/impl/SocketUtil.java +++ b/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/util/SocketUtil.java @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.tuscany.sca.binding.sca.corba.impl; +package org.apache.tuscany.sca.binding.corba.impl.util; import java.net.InetAddress; import java.net.NetworkInterface; diff --git a/java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/CorbaBinding.java b/java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/CorbaBinding.java index 0b79065cc3..bf3bc09461 100644 --- a/java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/CorbaBinding.java +++ b/java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/CorbaBinding.java @@ -43,4 +43,8 @@ public interface CorbaBinding extends Binding { void setId(String id); String getCorbaname(); + + boolean isProvideNameServer(); + + void setProvideNameServer(boolean provideNameServer); } diff --git a/java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaBindingImpl.java b/java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaBindingImpl.java index 6afe49717f..167fe50d7b 100644 --- a/java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaBindingImpl.java +++ b/java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaBindingImpl.java @@ -38,7 +38,8 @@ public class CorbaBindingImpl implements CorbaBinding, PolicySetAttachPoint { private String host; private int port; private String id; - + private boolean provideNameServer; + private List<Intent> requiredIntents = new ArrayList<Intent>(); private List<PolicySet> policySets = new ArrayList<PolicySet>(); private IntentAttachPointType intentAttachPointType; @@ -129,4 +130,12 @@ public class CorbaBindingImpl implements CorbaBinding, PolicySetAttachPoint { return CorbaHostUtils.isValidCorbanameURI(getURI()) ? getURI(): CorbaHostUtils.createCorbanameURI(getHost(), getPort(), getName()); } + public boolean isProvideNameServer() { + return provideNameServer; + } + + public void setProvideNameServer(boolean provideNameServer) { + this.provideNameServer = provideNameServer; + } + } diff --git a/java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaBindingProcessor.java b/java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaBindingProcessor.java index 53333bd7aa..a7be836437 100644 --- a/java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaBindingProcessor.java +++ b/java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaBindingProcessor.java @@ -80,11 +80,16 @@ public class CorbaBindingProcessor implements StAXArtifactProcessor<CorbaBinding if (uri != null) { binding.setURI(uri); } + // Read CORBA id String id = reader.getAttributeValue(null, "id"); if (id != null) { binding.setId(id); } + + // Read name server request + String provideNameServer = reader.getAttributeValue(null, "provideNameServer"); + binding.setProvideNameServer("true".equals(provideNameServer) ? true : false); return binding; } @@ -114,7 +119,10 @@ public class CorbaBindingProcessor implements StAXArtifactProcessor<CorbaBinding if (model.getId() != null) { writer.writeAttribute("id", model.getId()); } - + + if (model.isProvideNameServer()) { + writer.writeAttribute("provideNameServer", "true"); + } writer.writeEndElement(); } diff --git a/java/sca/modules/binding-sca-corba/src/main/java/org/apache/tuscany/sca/binding/sca/corba/impl/CorbaSCAServiceBindingProvider.java b/java/sca/modules/binding-sca-corba/src/main/java/org/apache/tuscany/sca/binding/sca/corba/impl/CorbaSCAServiceBindingProvider.java index 1f96327bf6..dba88434be 100644 --- a/java/sca/modules/binding-sca-corba/src/main/java/org/apache/tuscany/sca/binding/sca/corba/impl/CorbaSCAServiceBindingProvider.java +++ b/java/sca/modules/binding-sca-corba/src/main/java/org/apache/tuscany/sca/binding/sca/corba/impl/CorbaSCAServiceBindingProvider.java @@ -23,6 +23,7 @@ import org.apache.axiom.om.OMElement; import org.apache.tuscany.sca.assembly.SCABinding; import org.apache.tuscany.sca.binding.corba.impl.service.DynaCorbaServant; import org.apache.tuscany.sca.binding.corba.impl.service.InvocationProxy; +import org.apache.tuscany.sca.binding.corba.impl.util.SocketUtil; import org.apache.tuscany.sca.binding.ws.WebServiceBinding; import org.apache.tuscany.sca.binding.ws.WebServiceBindingFactory; import org.apache.tuscany.sca.binding.ws.wsdlgen.BindingWSDLGenerator; |