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")));
+    }
 }


Reply via email to