Author: antelder
Date: Thu May 28 07:29:03 2009
New Revision: 779462

URL: http://svn.apache.org/viewvc?rev=779462&view=rev
Log:
Start of a way to get at the endpoints in a Node

Modified:
    
tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
    
tuscany/java/sca/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeImplTestCase.java

Modified: 
tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java?rev=779462&r1=779461&r2=779462&view=diff
==============================================================================
--- 
tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
 (original)
+++ 
tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
 Thu May 28 07:29:03 2009
@@ -19,6 +19,7 @@
 
 package org.apache.tuscany.sca.node.impl;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
@@ -27,10 +28,13 @@
 import org.apache.tuscany.sca.assembly.ComponentService;
 import org.apache.tuscany.sca.assembly.Composite;
 import org.apache.tuscany.sca.assembly.CompositeService;
+import org.apache.tuscany.sca.assembly.Endpoint2;
+import org.apache.tuscany.sca.assembly.Service;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.UtilityExtensionPoint;
 import org.apache.tuscany.sca.core.assembly.ActivationException;
 import org.apache.tuscany.sca.core.assembly.CompositeActivator;
+import org.apache.tuscany.sca.core.assembly.impl.RuntimeComponentServiceImpl;
 import org.apache.tuscany.sca.core.invocation.ProxyFactory;
 import org.apache.tuscany.sca.node.Client;
 import org.apache.tuscany.sca.node.Node;
@@ -200,5 +204,29 @@
     public ExtensionPointRegistry getExtensionPoints() {
         return manager.getExtensionPoints();
     }
+    
+    /**
+     * Get the service endpoints in this Node
+     * TODO: needs review, works for the very simple testcase but i expect 
there are
+     *    other endpoints to be included
+     */
+    public List<Endpoint2> getServiceEndpoints() {
+        List<Endpoint2> endpoints = new ArrayList<Endpoint2>();
+        if (compositeActivator != null) {
+            Composite domainComposite = 
compositeActivator.getDomainComposite();
+            if (domainComposite != null) {
+                for (Composite composite : domainComposite.getIncludes()) {
+                    for (Component component : composite.getComponents()) {
+                        for (Service service : component.getServices()) {
+                            if (service instanceof 
RuntimeComponentServiceImpl) {
+                                
endpoints.addAll(((RuntimeComponentServiceImpl)service).getEndpoints());
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        return endpoints;
+    }
 
 }

Modified: 
tuscany/java/sca/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeImplTestCase.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeImplTestCase.java?rev=779462&r1=779461&r2=779462&view=diff
==============================================================================
--- 
tuscany/java/sca/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeImplTestCase.java
 (original)
+++ 
tuscany/java/sca/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeImplTestCase.java
 Thu May 28 07:29:03 2009
@@ -23,7 +23,9 @@
 
 import java.io.File;
 import java.io.StringReader;
+import java.util.List;
 
+import org.apache.tuscany.sca.assembly.Endpoint2;
 import org.apache.tuscany.sca.node.Contribution;
 import org.apache.tuscany.sca.node.Node;
 import org.apache.tuscany.sca.node.NodeFactory;
@@ -75,6 +77,17 @@
         testNode(new NodeFactoryImpl().createNode());
     }
 
+    @Test
+    public void testGetServiceEndpoints() {
+        NodeFactory factory = new NodeFactoryImpl();
+        Contribution contribution = new Contribution("c1", new 
File("target/test-classes").toURI().toString());
+        NodeImpl node = (NodeImpl)factory.createNode(new 
StringReader(composite), contribution);
+        node.start();
+        List<Endpoint2> endpoints = node.getServiceEndpoints();
+        Assert.assertEquals(1, endpoints.size());
+        Assert.assertEquals("/HelloWorld2", 
endpoints.get(0).getBinding().getURI());
+    }
+
     private void testNode(Node node) {
         node.start();
         HelloWorld hw = node.getService(HelloWorld.class, "HelloWorld");


Reply via email to