diff options
Diffstat (limited to 'sca-java-2.x/trunk/modules/node-impl')
2 files changed, 31 insertions, 0 deletions
diff --git a/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java b/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java index 62f18f08e0..51073acfd1 100644 --- a/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java +++ b/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java @@ -366,4 +366,25 @@ public class NodeImpl implements Node, Client { return result; } + + public List<String> getServiceNames() { + List<String> serviceNames = new ArrayList<String>(); + ExtensionPointRegistry extensionsRegistry = getExtensionPoints(); + UtilityExtensionPoint utilities = extensionsRegistry.getExtensionPoint(UtilityExtensionPoint.class); + DomainRegistryFactory domainRegistryFactory = utilities.getUtility(DomainRegistryFactory.class); + EndpointRegistry endpointRegistry = domainRegistryFactory.getEndpointRegistry(configuration.getDomainRegistryURI(), configuration.getDomainName()); + for (Endpoint endpoint : endpointRegistry.getEndpoints()) { + // Would be nice if Endpoint.getURI() returned this: + String name = endpoint.getComponent().getName() + "/" + endpoint.getService().getName(); + if (endpoint.getBinding() != null) { + // TODO: shouldn't the binding name be null if its not explicitly specified? + // For now don't include it if the same as the default + if (!endpoint.getService().getName().equals(endpoint.getBinding().getName())) { + name += "/" + endpoint.getBinding().getName(); + } + } + serviceNames.add(name); + } + return serviceNames; + } } diff --git a/sca-java-2.x/trunk/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeUtilTestCase.java b/sca-java-2.x/trunk/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeUtilTestCase.java index 5a47465702..70ccf2ab19 100644 --- a/sca-java-2.x/trunk/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeUtilTestCase.java +++ b/sca-java-2.x/trunk/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeUtilTestCase.java @@ -19,6 +19,8 @@ package org.apache.tuscany.sca.node.impl; +import java.net.URI; + import org.apache.tuscany.sca.common.java.io.IOHelper; import org.junit.Assert; import org.junit.Test; @@ -36,4 +38,12 @@ public class NodeUtilTestCase { Assert.assertEquals("file:/a%20b", IOHelper.createURI("file:/a b").toString()); Assert.assertEquals("file:/a%20b", IOHelper.createURI("file:/a%20b").toString()); } + + @Test + public void testDomainURI() { + Assert.assertEquals("foo", NodeFactoryImpl.getDomainName(URI.create("tuscany:foo"))); + Assert.assertEquals("foo", NodeFactoryImpl.getDomainName(URI.create("tuscany:vm:foo"))); + Assert.assertEquals("foo", NodeFactoryImpl.getDomainName(URI.create("vm:foo"))); + Assert.assertEquals("foo", NodeFactoryImpl.getDomainName(URI.create("bla://foo"))); + } } |