From 507b7bcb79834f9227f247ceed3ede9d3587a881 Mon Sep 17 00:00:00 2001 From: bdaniel Date: Fri, 29 Oct 2010 21:52:01 +0000 Subject: TUSCANY-3720 Check for a valid domain on remote nodes git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1028921 13f79535-47bb-0310-9956-ffa450edef68 --- .../tuscany/sca/client/impl/SCAClientHandler.java | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientHandler.java') diff --git a/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientHandler.java b/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientHandler.java index b8cb5732fc..59d90bb3cd 100644 --- a/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientHandler.java +++ b/sca-java-2.x/trunk/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientHandler.java @@ -71,6 +71,42 @@ public class SCAClientHandler implements InvocationHandler { this.serviceInterface = serviceInterface; } + public void checkDomain() throws NoSuchDomainException { + NodeFactoryImpl nodeFactory = (NodeFactoryImpl)NodeFactory.newInstance(domainURI); + try { + nodeFactory.init(); + + ExtensionPointRegistry extensionsRegistry = nodeFactory.getExtensionPointRegistry(); + Properties props = extensionsRegistry.getExtensionPoint(UtilityExtensionPoint.class).getUtility(RuntimeProperties.class).getProperties(); + props.setProperty("client", "true"); + DomainRegistryFactory domainRegistryFactory = ExtensibleDomainRegistryFactory.getInstance(extensionsRegistry); + + String registryURI = domainURI; + + // TODO: theres better ways to do this but this gets things working for now + if (registryURI.indexOf(":") == -1) { + registryURI = "tuscanyclient:" + registryURI; + } + if (registryURI.startsWith("uri:")) { + registryURI = "tuscanyclient:" + registryURI.substring(4); + } + if (registryURI.startsWith("tuscany:")) { + registryURI = "tuscanyclient:" + registryURI.substring(8); + } + + + try { + domainRegistryFactory.getEndpointRegistry(registryURI, domainURI); + } catch (Exception e) { + throw new NoSuchDomainException(domainURI, e); + } + } finally { + nodeFactory.destroy(); + } + } + + + public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { NodeFactoryImpl nodeFactory = (NodeFactoryImpl)NodeFactory.newInstance(domainURI); try { -- cgit v1.2.3