Author: antelder
Date: Wed Jan 13 15:43:49 2010
New Revision: 898806
URL: http://svn.apache.org/viewvc?rev=898806&view=rev
Log:
Add methods to Node to replicate whats in DomainNode so i can get rid of that.
(We still need to do the refactoring of Node as we started discussing on the
ML, i'll start that again next week, just want to get the domain changes a bit
more done so adding these here for now)
Modified:
tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Node.java
tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java
tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
tuscany/sca-java-2.x/trunk/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeUtilTestCase.java
Modified:
tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Node.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Node.java?rev=898806&r1=898805&r2=898806&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Node.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Node.java
Wed Jan 13 15:43:49 2010
@@ -19,6 +19,8 @@
package org.apache.tuscany.sca.node;
+import java.util.List;
+
import org.apache.tuscany.sca.node.configuration.NodeConfiguration;
@@ -49,4 +51,5 @@
*/
void destroy();
+ public List<String> getServiceNames();
}
Modified:
tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java?rev=898806&r1=898805&r2=898806&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java
Wed Jan 13 15:43:49 2010
@@ -150,6 +150,15 @@
}
}
+ public List<String> getServiceNames() {
+ try {
+ return
(List<String>)node.getClass().getMethod("getServiceNames").invoke(node);
+ } catch (Throwable e) {
+ handleException(e);
+ return null;
+ }
+ }
+
}
/**
@@ -297,6 +306,28 @@
return createNode(configuration);
}
+ public final Node createNode(URI configURI, String... locations) {
+ Contribution[] contributions =
getContributions(Arrays.asList(locations));
+ NodeConfiguration configuration = createConfiguration(contributions);
+ configuration.setDomainRegistryURI(configURI.toString());
+ configuration.setDomainURI(getDomainName(configURI));
+ return createNode(configuration);
+ }
+
+ public static String getDomainName(URI configURI) {
+ // no idea if this is needed, do it anyway for now till the Node
refactor is done
+ String s = configURI.getHost();
+ if (s == null) {
+ s = configURI.getSchemeSpecificPart();
+ if (s != null) {
+ if (s.indexOf(':') > -1) {
+ s = s.substring(s.indexOf(':')+1);
+ }
+ }
+ }
+ return s;
+ }
+
/**
* The following methods are used by the node launcher
*/
Modified:
tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java?rev=898806&r1=898805&r2=898806&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
Wed Jan 13 15:43:49 2010
@@ -366,4 +366,25 @@
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;
+ }
}
Modified:
tuscany/sca-java-2.x/trunk/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeUtilTestCase.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeUtilTestCase.java?rev=898806&r1=898805&r2=898806&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeUtilTestCase.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeUtilTestCase.java
Wed Jan 13 15:43:49 2010
@@ -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 @@
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")));
+ }
}