You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2008/10/09 08:34:01 UTC

svn commit: r703068 [6/7] - in /tuscany/branches/sca-equinox: itest/callablereferences/src/test/java/org/apache/tuscany/sca/itest/callableref/ itest/conversations-ws/src/test/java/org/apache/tuscany/sca/itest/conversational/ itest/databindings/jaxb-top...

Modified: tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/test/java/org/apache/tuscany/sca/binding/rmi/BindingTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/test/java/org/apache/tuscany/sca/binding/rmi/BindingTestCase.java?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/test/java/org/apache/tuscany/sca/binding/rmi/BindingTestCase.java (original)
+++ tuscany/branches/sca-equinox/modules/binding-rmi-runtime/src/test/java/org/apache/tuscany/sca/binding/rmi/BindingTestCase.java Wed Oct  8 23:33:54 2008
@@ -22,7 +22,10 @@
 import helloworld.HelloWorldRmiService;
 import junit.framework.Assert;
 
-import org.apache.tuscany.sca.host.embedded.SCADomain;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.ContributionLocationHelper;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -34,7 +37,7 @@
  */
 public class BindingTestCase {
     private static HelloWorldRmiService helloWorldRmiService;
-    private static SCADomain domain;
+    private static Node node;
 
     @Test
     public void testRmiService() {
@@ -60,8 +63,10 @@
     @BeforeClass
     public static void init() throws Exception {
         try {
-            domain = SCADomain.newInstance("RMIBindingTest.composite");
-            helloWorldRmiService = domain.getService(HelloWorldRmiService.class, "HelloWorldRmiServiceComponent");
+            String contribution = ContributionLocationHelper.getContributionLocation(BindingTestCase.class);
+            node = NodeFactory.newInstance().createNode("RMIBindingTest.composite", new Contribution("test", contribution));
+            node.start();
+            helloWorldRmiService = node.getService(HelloWorldRmiService.class, "HelloWorldRmiServiceComponent");
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -69,7 +74,8 @@
 
     @AfterClass
     public static void destroy() throws Exception {
-        domain.close();
+        node.stop();
+        node.destroy();
     }
 
 }

Modified: tuscany/branches/sca-equinox/modules/binding-rss-rome/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/binding-rss-rome/pom.xml?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/binding-rss-rome/pom.xml (original)
+++ tuscany/branches/sca-equinox/modules/binding-rss-rome/pom.xml Wed Oct  8 23:33:54 2008
@@ -106,7 +106,7 @@
 
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-host-embedded</artifactId>
+            <artifactId>tuscany-node-impl</artifactId>
             <version>1.4-SNAPSHOT</version>
             <scope>test</scope>
         </dependency>

Modified: tuscany/branches/sca-equinox/modules/binding-rss-rome/src/test/java/org/apache/tuscany/sca/binding/rss/Consumer.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/binding-rss-rome/src/test/java/org/apache/tuscany/sca/binding/rss/Consumer.java?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/binding-rss-rome/src/test/java/org/apache/tuscany/sca/binding/rss/Consumer.java (original)
+++ tuscany/branches/sca-equinox/modules/binding-rss-rome/src/test/java/org/apache/tuscany/sca/binding/rss/Consumer.java Wed Oct  8 23:33:54 2008
@@ -19,17 +19,23 @@
 
 package org.apache.tuscany.sca.binding.rss;
 
-import org.apache.tuscany.sca.host.embedded.SCADomain;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.ContributionLocationHelper;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
 
 public class Consumer {
 
     public static void main(String[] args) throws Exception {
 
-        SCADomain scaDomain = SCADomain.newInstance("org/apache/tuscany/sca/binding/feed/Consumer.composite");
+        String contribution = ContributionLocationHelper.getContributionLocation(Consumer.class);
+        Node node = NodeFactory.newInstance().createNode("org/apache/tuscany/sca/binding/feed/Consumer.composite", new Contribution("test", contribution));
+        node.start();
 
-        CustomerClient testService = scaDomain.getService(CustomerClient.class, "CustomerClient");
+        CustomerClient testService = node.getService(CustomerClient.class, "CustomerClient");
         testService.testCustomerCollection();
 
-        scaDomain.close();
+        node.stop();
+        node.destroy();
     }
 }

Modified: tuscany/branches/sca-equinox/modules/binding-rss-rome/src/test/java/org/apache/tuscany/sca/binding/rss/Provider.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/binding-rss-rome/src/test/java/org/apache/tuscany/sca/binding/rss/Provider.java?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/binding-rss-rome/src/test/java/org/apache/tuscany/sca/binding/rss/Provider.java (original)
+++ tuscany/branches/sca-equinox/modules/binding-rss-rome/src/test/java/org/apache/tuscany/sca/binding/rss/Provider.java Wed Oct  8 23:33:54 2008
@@ -21,13 +21,18 @@
 
 import java.io.IOException;
 
-import org.apache.tuscany.sca.host.embedded.SCADomain;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.ContributionLocationHelper;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
 
 public class Provider {
 
     public static void main(String[] args) {
 
-        SCADomain scaDomain = SCADomain.newInstance("org/apache/tuscany/sca/binding/feed/Provider.composite");
+        String contribution = ContributionLocationHelper.getContributionLocation(Consumer.class);
+        Node node = NodeFactory.newInstance().createNode("org/apache/tuscany/sca/binding/feed/Provider.composite", new Contribution("test", contribution));
+        node.start();
         System.out.println("Provider.composite ready...");
 
         try {
@@ -36,6 +41,7 @@
             e.printStackTrace();
         }
 
-        scaDomain.close();
+        node.stop();
+        node.destroy();
     }
 }

Modified: tuscany/branches/sca-equinox/modules/binding-rss/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/binding-rss/pom.xml?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/binding-rss/pom.xml (original)
+++ tuscany/branches/sca-equinox/modules/binding-rss/pom.xml Wed Oct  8 23:33:54 2008
@@ -63,7 +63,7 @@
 
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-host-embedded</artifactId>
+            <artifactId>tuscany-node-impl</artifactId>
             <version>1.4-SNAPSHOT</version>
             <scope>test</scope>
         </dependency>

Modified: tuscany/branches/sca-equinox/modules/binding-sca-axis2/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/binding-sca-axis2/pom.xml?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/binding-sca-axis2/pom.xml (original)
+++ tuscany/branches/sca-equinox/modules/binding-sca-axis2/pom.xml Wed Oct  8 23:33:54 2008
@@ -59,9 +59,9 @@
 
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-host-embedded</artifactId>
+            <artifactId>tuscany-node-impl</artifactId>
             <version>1.4-SNAPSHOT</version>
-            <scope>test</scope>            
+            <scope>test</scope>
         </dependency>
 
         <dependency>

Modified: tuscany/branches/sca-equinox/modules/binding-ws-axis2/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/binding-ws-axis2/pom.xml?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/binding-ws-axis2/pom.xml (original)
+++ tuscany/branches/sca-equinox/modules/binding-ws-axis2/pom.xml Wed Oct  8 23:33:54 2008
@@ -277,7 +277,7 @@
 
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-host-embedded</artifactId>
+            <artifactId>tuscany-node-impl</artifactId>
             <version>1.4-SNAPSHOT</version>
             <scope>test</scope>
         </dependency>

Modified: tuscany/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/launcher/DomainManagerLauncherBootstrap.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/launcher/DomainManagerLauncherBootstrap.java?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/launcher/DomainManagerLauncherBootstrap.java (original)
+++ tuscany/branches/sca-equinox/modules/domain-manager/src/main/java/org/apache/tuscany/sca/domain/manager/launcher/DomainManagerLauncherBootstrap.java Wed Oct  8 23:33:54 2008
@@ -20,9 +20,12 @@
 package org.apache.tuscany.sca.domain.manager.launcher;
 
 import org.apache.tuscany.sca.domain.manager.impl.DomainManagerConfiguration;
-import org.apache.tuscany.sca.node.SCAClient;
-import org.apache.tuscany.sca.node.SCANode;
-import org.apache.tuscany.sca.node.SCANodeFactory;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.ContributionLocationHelper;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.osoa.sca.CallableReference;
+import org.osoa.sca.ServiceReference;
 
 /**
  * Bootstrap class for the SCA domain manager.
@@ -30,15 +33,15 @@
  * @version $Rev$ $Date$
  */
 public class DomainManagerLauncherBootstrap {
-    private SCANode node;
+    private Node node;
 
     /**
      * A node wrappering an instance of a domain manager.
      */
-    public static class NodeFacade implements SCANode {
+    public static class NodeFacade implements Node {
         private ClassLoader threadContextClassLoader;
         private ClassLoader runtimeClassLoader;
-        private SCANode node;
+        private Node node;
         private String rootDirectory;
         
         private NodeFacade(String rootDirectory) {
@@ -51,12 +54,13 @@
             boolean started = false;
             try {
                 Thread.currentThread().setContextClassLoader(runtimeClassLoader);
-                SCANodeFactory factory = SCANodeFactory.newInstance();
-                node = factory.createSCANodeFromClassLoader("DomainManager.composite", getClass().getClassLoader());
+                NodeFactory factory = NodeFactory.newInstance();
+                String contribution = ContributionLocationHelper.getContributionLocation(getClass());
+                node = factory.createNode("DomainManager.composite", new Contribution("domain-manager", contribution));
                 node.start();
 
                 // Set the domain manager's root directory
-                DomainManagerConfiguration domainManagerConfiguration = ((SCAClient) node).getService(DomainManagerConfiguration.class, "DomainManagerConfigurationComponent");
+                DomainManagerConfiguration domainManagerConfiguration = node.getService(DomainManagerConfiguration.class, "DomainManagerConfigurationComponent");
                 domainManagerConfiguration.setRootDirectory(rootDirectory);
                 
                 started = true;
@@ -75,6 +79,28 @@
                 Thread.currentThread().setContextClassLoader(threadContextClassLoader);
             }
         }
+        
+        public void destroy() {
+            try {
+                Thread.currentThread().setContextClassLoader(runtimeClassLoader);
+                node.destroy();
+            } finally {
+                Thread.currentThread().setContextClassLoader(threadContextClassLoader);
+            }
+        }
+
+        public <B, R extends CallableReference<B>> R cast(B target) throws IllegalArgumentException {
+            throw new UnsupportedOperationException();
+        }
+
+        public <B> B getService(Class<B> businessInterface, String serviceName) {
+            throw new UnsupportedOperationException();
+        }
+
+        public <B> ServiceReference<B> getServiceReference(Class<B> businessInterface, String serviceName) {
+            throw new UnsupportedOperationException();
+        }
+
     }
     
     /**
@@ -88,7 +114,7 @@
      * Returns the node representing the domain manager.
      * @return
      */
-    public SCANode getNode() {
+    public Node getNode() {
         return node;
     }
 

Modified: tuscany/branches/sca-equinox/modules/host-webapp/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/host-webapp/pom.xml?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/host-webapp/pom.xml (original)
+++ tuscany/branches/sca-equinox/modules/host-webapp/pom.xml Wed Oct  8 23:33:54 2008
@@ -44,8 +44,9 @@
         
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-host-embedded</artifactId>
-	        <version>1.4-SNAPSHOT</version>
+            <artifactId>tuscany-node-impl</artifactId>
+            <version>1.4-SNAPSHOT</version>
+            <scope>test</scope>
         </dependency>
 
         <dependency>

Modified: tuscany/branches/sca-equinox/modules/implementation-bpel-ode/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-bpel-ode/pom.xml?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/implementation-bpel-ode/pom.xml (original)
+++ tuscany/branches/sca-equinox/modules/implementation-bpel-ode/pom.xml Wed Oct  8 23:33:54 2008
@@ -78,11 +78,11 @@
 			<artifactId>tuscany-implementation-java-runtime</artifactId>
 			<version>1.4-SNAPSHOT</version>
 		</dependency>
-		<dependency>
-			<groupId>org.apache.tuscany.sca</groupId>
-			<artifactId>tuscany-host-embedded</artifactId>
-			<version>1.4-SNAPSHOT</version>
-		</dependency>
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-node-impl</artifactId>
+            <version>1.4-SNAPSHOT</version>
+        </dependency>
 		<dependency>
 			<groupId>org.apache.tuscany.sca</groupId>
 			<artifactId>tuscany-interface-wsdl</artifactId>

Modified: tuscany/branches/sca-equinox/modules/implementation-ejb/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-ejb/pom.xml?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/implementation-ejb/pom.xml (original)
+++ tuscany/branches/sca-equinox/modules/implementation-ejb/pom.xml Wed Oct  8 23:33:54 2008
@@ -45,9 +45,9 @@
  
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-host-embedded</artifactId>
+            <artifactId>tuscany-node-impl</artifactId>
             <version>1.4-SNAPSHOT</version>
-            <scope>test</scope> 
+            <scope>test</scope>
         </dependency>
 
         <dependency>

Modified: tuscany/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationDaemonBootstrap.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationDaemonBootstrap.java?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationDaemonBootstrap.java (original)
+++ tuscany/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationDaemonBootstrap.java Wed Oct  8 23:33:54 2008
@@ -19,8 +19,12 @@
 
 package org.apache.tuscany.sca.implementation.node.launcher;
 
-import org.apache.tuscany.sca.node.SCANode;
-import org.apache.tuscany.sca.node.SCANodeFactory;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.ContributionLocationHelper;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.osoa.sca.CallableReference;
+import org.osoa.sca.ServiceReference;
 
 /**
  * Bootstrap class for the SCA node daemon.
@@ -28,15 +32,15 @@
  * @version $Rev$ $Date$
  */
 public class NodeImplementationDaemonBootstrap {
-    private SCANode node;
+    private Node node;
 
     /**
      * A node wrappering an instance of a node daemon.
      */
-    public static class NodeFacade implements SCANode {
+    public static class NodeFacade implements Node {
         private ClassLoader threadContextClassLoader;
         private ClassLoader runtimeClassLoader;
-        private SCANode daemon;
+        private Node daemon;
         
         private NodeFacade() {
             runtimeClassLoader = Thread.currentThread().getContextClassLoader();
@@ -47,8 +51,9 @@
             boolean started = false;
             try {
                 Thread.currentThread().setContextClassLoader(runtimeClassLoader);
-                SCANodeFactory factory = SCANodeFactory.newInstance();
-                daemon = factory.createSCANodeFromClassLoader("NodeDaemon.composite", threadContextClassLoader);
+                NodeFactory factory = NodeFactory.newInstance();
+                String contribution = ContributionLocationHelper.getContributionLocation(getClass());
+                daemon = factory.createNode("NodeDaemon.composite", new Contribution("node-runtime", contribution));
                 started = true;
             } finally {
                 if (!started) {
@@ -65,6 +70,27 @@
                 Thread.currentThread().setContextClassLoader(threadContextClassLoader);
             }
         }
+
+        public void destroy() {
+            try {
+                Thread.currentThread().setContextClassLoader(runtimeClassLoader);
+                daemon.destroy();
+            } finally {
+                Thread.currentThread().setContextClassLoader(threadContextClassLoader);
+            }
+        }
+
+        public <B, R extends CallableReference<B>> R cast(B target) throws IllegalArgumentException {
+            throw new UnsupportedOperationException();
+        }
+
+        public <B> B getService(Class<B> businessInterface, String serviceName) {
+            throw new UnsupportedOperationException();
+        }
+
+        public <B> ServiceReference<B> getServiceReference(Class<B> businessInterface, String serviceName) {
+            throw new UnsupportedOperationException();
+        }
     }
     
     /**
@@ -78,7 +104,7 @@
      * Returns the node representing the daemon.
      * @return
      */
-    public SCANode getNode() {
+    public Node getNode() {
         return node;
     }
 

Modified: tuscany/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationLauncherBootstrap.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationLauncherBootstrap.java?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationLauncherBootstrap.java (original)
+++ tuscany/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationLauncherBootstrap.java Wed Oct  8 23:33:54 2008
@@ -19,10 +19,10 @@
 
 package org.apache.tuscany.sca.implementation.node.launcher;
 
-import org.apache.tuscany.sca.node.SCAClient;
-import org.apache.tuscany.sca.node.SCAContribution;
-import org.apache.tuscany.sca.node.SCANode;
-import org.apache.tuscany.sca.node.SCANodeFactory;
+import org.apache.tuscany.sca.node.Client;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
 import org.osoa.sca.CallableReference;
 import org.osoa.sca.ServiceReference;
 
@@ -33,17 +33,17 @@
  */
 public class NodeImplementationLauncherBootstrap {
 
-    private SCANode node;
+    private Node node;
 
     /**
      * A node facade.
      */
-    public static class NodeFacade implements SCANode, SCAClient {
+    public static class NodeFacade implements Node, Client {
         private ClassLoader threadContextClassLoader;
         private ClassLoader runtimeClassLoader;
-        private SCANode delegate;
+        private Node delegate;
         
-        private NodeFacade(SCANode delegate) {
+        private NodeFacade(Node delegate) {
             runtimeClassLoader = Thread.currentThread().getContextClassLoader();
             this.delegate = delegate;
         }
@@ -71,16 +71,25 @@
             }
         }
 
+        public void destroy() {
+            try {
+                Thread.currentThread().setContextClassLoader(runtimeClassLoader);
+                delegate.destroy();
+            } finally {
+                Thread.currentThread().setContextClassLoader(threadContextClassLoader);
+            }
+        }
+
         public <B, R extends CallableReference<B>> R cast(B target) throws IllegalArgumentException {
-            return (R)((SCAClient)delegate).cast(target);
+            return (R)((Client)delegate).cast(target);
         }
 
         public <B> B getService(Class<B> businessInterface, String serviceName) {
-            return (B)((SCAClient)delegate).getService(businessInterface, serviceName);
+            return (B)((Client)delegate).getService(businessInterface, serviceName);
         }
 
         public <B> ServiceReference<B> getServiceReference(Class<B> businessInterface, String referenceName) {
-            return (ServiceReference<B>)((SCAClient)delegate).getServiceReference(businessInterface, referenceName);
+            return (ServiceReference<B>)((Client)delegate).getServiceReference(businessInterface, referenceName);
         }
     }
     
@@ -90,19 +99,8 @@
      * @param configurationURI
      */
     public NodeImplementationLauncherBootstrap(String configurationURI) throws Exception {
-        SCANodeFactory nodeFactory = SCANodeFactory.newInstance();
-        node = new NodeFacade(nodeFactory.createSCANodeFromURL(configurationURI));
-    }
-
-    /**
-     * Bootstrap a new SCA node.
-     * 
-     * @param configurationURI
-     * @param contributionClassLoader
-     */
-    public NodeImplementationLauncherBootstrap(String compositeURI, ClassLoader contributionClassLoader) throws Exception {
-        SCANodeFactory nodeFactory = SCANodeFactory.newInstance();
-        node = new NodeFacade(nodeFactory.createSCANodeFromClassLoader(compositeURI, contributionClassLoader));
+        NodeFactory nodeFactory = NodeFactory.newInstance();
+        node = new NodeFacade(nodeFactory.createNode(configurationURI));
     }
 
     /**
@@ -113,12 +111,12 @@
      * @param locations
      */
     public NodeImplementationLauncherBootstrap(String compositeURI, String[] uris, String[] locations) throws Exception {
-        SCANodeFactory nodeFactory = SCANodeFactory.newInstance();
-        SCAContribution[] contributions = new SCAContribution[uris.length];
+        NodeFactory nodeFactory = NodeFactory.newInstance();
+        Contribution[] contributions = new Contribution[uris.length];
         for (int i = 0; i < uris.length; i++) {
-            contributions[i] = new SCAContribution(uris[i], locations[i]);
+            contributions[i] = new Contribution(uris[i], locations[i]);
         }
-        node = new NodeFacade(nodeFactory.createSCANode(compositeURI, contributions));
+        node = new NodeFacade(nodeFactory.createNode(compositeURI, contributions));
     }
 
     /**
@@ -129,12 +127,12 @@
      * @param locations
      */
     public NodeImplementationLauncherBootstrap(String compositeURI, String compositeContent, String[] uris, String[] locations) throws Exception {
-        SCANodeFactory nodeFactory = SCANodeFactory.newInstance();
-        SCAContribution[] contributions = new SCAContribution[uris.length];
+        NodeFactory nodeFactory = NodeFactory.newInstance();
+        Contribution[] contributions = new Contribution[uris.length];
         for (int i = 0; i < uris.length; i++) {
-            contributions[i] = new SCAContribution(uris[i], locations[i]);
+            contributions[i] = new Contribution(uris[i], locations[i]);
         }
-        node = new NodeFacade(nodeFactory.createSCANode(compositeURI, compositeContent, contributions));
+        node = new NodeFacade(nodeFactory.createNode(compositeURI, compositeContent, contributions));
     }
 
     /**
@@ -142,7 +140,7 @@
      * 
      * @return
      */
-    public SCANode getNode() {
+    public Node getNode() {
         return node;
     }
 

Modified: tuscany/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/webapp/NodeWebAppServletHost.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/webapp/NodeWebAppServletHost.java?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/webapp/NodeWebAppServletHost.java (original)
+++ tuscany/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/webapp/NodeWebAppServletHost.java Wed Oct  8 23:33:54 2008
@@ -47,9 +47,9 @@
 import org.apache.tuscany.sca.host.http.ServletHostExtensionPoint;
 import org.apache.tuscany.sca.host.http.ServletMappingException;
 import org.apache.tuscany.sca.implementation.node.launcher.NodeImplementationLauncherUtil;
-import org.apache.tuscany.sca.node.SCAClient;
-import org.apache.tuscany.sca.node.SCANode;
-import org.apache.tuscany.sca.node.SCANodeFactory;
+import org.apache.tuscany.sca.node.Client;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
 
 /**
  * ServletHost implementation for use in a Webapp Node environment.
@@ -62,7 +62,7 @@
     private static final NodeWebAppServletHost servletHost = new NodeWebAppServletHost();
 
     private Map<String, Servlet> servlets = new HashMap<String, Servlet>();
-    private SCANode node;
+    private Node node;
     
     private String contextPath = "/";
     private int defaultPort = 8080;
@@ -112,8 +112,8 @@
         String nodeConfiguration = NodeImplementationLauncherUtil.nodeConfigurationURI(nodeName);
         
         // Create the SCA node
-        SCANodeFactory nodeFactory = SCANodeFactory.newInstance();
-        node = nodeFactory.createSCANodeFromURL(nodeConfiguration);
+        NodeFactory nodeFactory = NodeFactory.newInstance();
+        node = nodeFactory.createNode(nodeConfiguration);
         
         // Register the Servlet host
         ServletHostExtensionPoint servletHosts = servletHosts(node);
@@ -121,7 +121,7 @@
         servletHosts.addServletHost(servletHost);
 
         // Save the node in the Servlet context 
-        servletContext.setAttribute(SCAClient.class.getName(), node);
+        servletContext.setAttribute(Client.class.getName(), node);
         
         // Start the node
         node.start();
@@ -350,7 +350,7 @@
      * 
      * @return
      */
-    private static ServletHostExtensionPoint servletHosts(SCANode node) {
+    private static ServletHostExtensionPoint servletHosts(Node node) {
         //FIXME Need a clean way to get the extension point registry
         // from the node
         ExtensionPointRegistry registry;

Modified: tuscany/branches/sca-equinox/modules/implementation-node-runtime/src/test/java/org/apache/tuscany/sca/implementation/node/NodeImplementationTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-node-runtime/src/test/java/org/apache/tuscany/sca/implementation/node/NodeImplementationTestCase.java?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/implementation-node-runtime/src/test/java/org/apache/tuscany/sca/implementation/node/NodeImplementationTestCase.java (original)
+++ tuscany/branches/sca-equinox/modules/implementation-node-runtime/src/test/java/org/apache/tuscany/sca/implementation/node/NodeImplementationTestCase.java Wed Oct  8 23:33:54 2008
@@ -20,8 +20,10 @@
 
 import junit.framework.TestCase;
 
-import org.apache.tuscany.sca.node.SCANode;
-import org.apache.tuscany.sca.node.SCANodeFactory;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.ContributionLocationHelper;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
 
 /**
  * Test case for node component implementations.
@@ -30,11 +32,13 @@
  */
 public class NodeImplementationTestCase extends TestCase {
 
-    private SCANode node;
+    private Node node;
     
     @Override
     protected void setUp() throws Exception {
-        node = SCANodeFactory.newInstance().createSCANodeFromClassLoader("TestNode.composite", null);
+        String contribution = ContributionLocationHelper.getContributionLocation(getClass());
+        node = NodeFactory.newInstance().createNode("TestNode.composite", new Contribution("test", contribution));
+        node.start();
     }
 
     @Override

Modified: tuscany/branches/sca-equinox/modules/implementation-resource-runtime/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-resource-runtime/pom.xml?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/implementation-resource-runtime/pom.xml (original)
+++ tuscany/branches/sca-equinox/modules/implementation-resource-runtime/pom.xml Wed Oct  8 23:33:54 2008
@@ -50,7 +50,7 @@
 
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-host-embedded</artifactId>
+            <artifactId>tuscany-node-impl</artifactId>
             <version>1.4-SNAPSHOT</version>
             <scope>test</scope>
         </dependency>

Modified: tuscany/branches/sca-equinox/modules/implementation-resource-runtime/src/test/java/org/apache/tuscany/sca/implementation/resource/ResourceImplementationTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-resource-runtime/src/test/java/org/apache/tuscany/sca/implementation/resource/ResourceImplementationTestCase.java?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/implementation-resource-runtime/src/test/java/org/apache/tuscany/sca/implementation/resource/ResourceImplementationTestCase.java (original)
+++ tuscany/branches/sca-equinox/modules/implementation-resource-runtime/src/test/java/org/apache/tuscany/sca/implementation/resource/ResourceImplementationTestCase.java Wed Oct  8 23:33:54 2008
@@ -25,27 +25,33 @@
 
 import junit.framework.TestCase;
 
-import org.apache.tuscany.sca.host.embedded.SCADomain;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.ContributionLocationHelper;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
 
 /**
  * @version $Rev$ $Date$
  */
 public class ResourceImplementationTestCase extends TestCase {
 
-    private SCADomain scaDomain;
+    private Node node;
     
     @Override
     protected void setUp() throws Exception {
-        scaDomain = SCADomain.newInstance("resource.composite");
+        String contribution = ContributionLocationHelper.getContributionLocation(getClass());
+        node = NodeFactory.newInstance().createNode("resource.composite", new Contribution("test", contribution));
+        node.start();
     }
 
     @Override
     protected void tearDown() throws Exception {
-        scaDomain.close();
+        node.stop();
+        node.destroy();
     }
     
     public void testResource() throws Exception {
-        Resource resource = scaDomain.getService(Resource.class, "ResourceServiceComponent");
+        Resource resource = node.getService(Resource.class, "ResourceServiceComponent");
         InputStream is = resource.get("test.html");
         String document = read(is);
         assertTrue(document.indexOf("<body><p>hello</body>") != -1);

Modified: tuscany/branches/sca-equinox/modules/implementation-script-runtime/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-script-runtime/pom.xml?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/implementation-script-runtime/pom.xml (original)
+++ tuscany/branches/sca-equinox/modules/implementation-script-runtime/pom.xml Wed Oct  8 23:33:54 2008
@@ -121,7 +121,7 @@
 
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-host-embedded</artifactId>
+            <artifactId>tuscany-node-impl</artifactId>
             <version>1.4-SNAPSHOT</version>
             <scope>test</scope>
         </dependency>

Modified: tuscany/branches/sca-equinox/modules/implementation-script-runtime/src/test/java/org/apache/tuscany/sca/implementation/script/itests/AbstractSCATestCase.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-script-runtime/src/test/java/org/apache/tuscany/sca/implementation/script/itests/AbstractSCATestCase.java?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/implementation-script-runtime/src/test/java/org/apache/tuscany/sca/implementation/script/itests/AbstractSCATestCase.java (original)
+++ tuscany/branches/sca-equinox/modules/implementation-script-runtime/src/test/java/org/apache/tuscany/sca/implementation/script/itests/AbstractSCATestCase.java Wed Oct  8 23:33:54 2008
@@ -21,7 +21,10 @@
 
 import junit.framework.TestCase;
 
-import org.apache.tuscany.sca.host.embedded.SCADomain;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.ContributionLocationHelper;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
 
 /**
  *
@@ -29,21 +32,24 @@
  */
 public abstract class AbstractSCATestCase<T> extends TestCase {
 
-    protected SCADomain domain;
+    protected Node node;
     protected T service;
 
     @Override
     @SuppressWarnings("unchecked")
     protected void setUp() throws Exception {
-        domain = SCADomain.newInstance(getCompositeName());
-        service = (T) domain.getService(getServiceClass(), "ClientComponent");
+        String contribution = ContributionLocationHelper.getContributionLocation(getClass());
+        node = NodeFactory.newInstance().createNode(getCompositeName(), new Contribution("test", contribution));
+        node.start();
+        service = (T) node.getService(getServiceClass(), "ClientComponent");
     }
     
     protected abstract Class getServiceClass();
 
     @Override
     protected void tearDown() throws Exception {
-        domain.close();
+        node.stop();
+        node.destroy();
     }
 
     protected String getCompositeName() {

Modified: tuscany/branches/sca-equinox/modules/implementation-spring/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-spring/pom.xml?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/implementation-spring/pom.xml (original)
+++ tuscany/branches/sca-equinox/modules/implementation-spring/pom.xml Wed Oct  8 23:33:54 2008
@@ -79,10 +79,11 @@
         
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-host-embedded</artifactId>
+            <artifactId>tuscany-node-impl</artifactId>
             <version>1.4-SNAPSHOT</version>
+            <scope>test</scope>
         </dependency>
-        
+
         <!-- Spring dependencies... -->    
         <dependency>
             <groupId>org.springframework</groupId>

Modified: tuscany/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/AbstractSCATestCase.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/AbstractSCATestCase.java?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/AbstractSCATestCase.java (original)
+++ tuscany/branches/sca-equinox/modules/implementation-spring/src/test/java/org/apache/tuscany/sca/implementation/spring/itests/AbstractSCATestCase.java Wed Oct  8 23:33:54 2008
@@ -21,7 +21,10 @@
 
 import junit.framework.TestCase;
 
-import org.apache.tuscany.sca.host.embedded.SCADomain;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.ContributionLocationHelper;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
 
 /**
  *
@@ -29,20 +32,23 @@
  */
 public abstract class AbstractSCATestCase<T> extends TestCase {
 
-    protected SCADomain domain;
+    protected Node node;
     protected T service;
 
     @Override
     protected void setUp() throws Exception {
-        domain = SCADomain.newInstance(getCompositeName());
-        service = (T)domain.getService(getServiceClass(), "ClientComponent");
+        String contribution = ContributionLocationHelper.getContributionLocation(getClass());
+        node = NodeFactory.newInstance().createNode(getCompositeName(), new Contribution("test", contribution));
+        node.start();
+        service = (T)node.getService(getServiceClass(), "ClientComponent");
     }
 
     protected abstract Class getServiceClass();
 
     @Override
     protected void tearDown() throws Exception {
-        domain.close();
+        node.stop();
+        node.destroy();
     }
 
     protected String getCompositeName() {

Modified: tuscany/branches/sca-equinox/modules/implementation-widget-runtime/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-widget-runtime/pom.xml?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/implementation-widget-runtime/pom.xml (original)
+++ tuscany/branches/sca-equinox/modules/implementation-widget-runtime/pom.xml Wed Oct  8 23:33:54 2008
@@ -78,11 +78,11 @@
         <!-- Test dependencies -->
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-host-embedded</artifactId>
+            <artifactId>tuscany-node-impl</artifactId>
             <version>1.4-SNAPSHOT</version>
             <scope>test</scope>
         </dependency>
-               
+
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
             <artifactId>tuscany-host-jetty</artifactId>

Modified: tuscany/branches/sca-equinox/modules/implementation-widget-runtime/src/test/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-widget-runtime/src/test/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationTestCase.java?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/implementation-widget-runtime/src/test/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationTestCase.java (original)
+++ tuscany/branches/sca-equinox/modules/implementation-widget-runtime/src/test/java/org/apache/tuscany/sca/implementation/widget/WidgetImplementationTestCase.java Wed Oct  8 23:33:54 2008
@@ -22,23 +22,29 @@
 
 import junit.framework.TestCase;
 
-import org.apache.tuscany.sca.host.embedded.SCADomain;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.ContributionLocationHelper;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
 
 /**
  * @version $Rev$ $Date$
  */
 public class WidgetImplementationTestCase extends TestCase {
 
-    private SCADomain scaDomain;
+    private Node node;
     
     @Override
     protected void setUp() throws Exception {
-        scaDomain = SCADomain.newInstance("widget.composite");
+        String contribution = ContributionLocationHelper.getContributionLocation(getClass());
+        node = NodeFactory.newInstance().createNode("widget.composite", new Contribution("test", contribution));
+        node.start();
     }
 
     @Override
     protected void tearDown() throws Exception {
-        scaDomain.close();
+        node.stop();
+        node.destroy();
     }
     
     public void testPing() throws Exception {

Modified: tuscany/branches/sca-equinox/modules/implementation-xquery/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/implementation-xquery/pom.xml?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/implementation-xquery/pom.xml (original)
+++ tuscany/branches/sca-equinox/modules/implementation-xquery/pom.xml Wed Oct  8 23:33:54 2008
@@ -69,7 +69,7 @@
 
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-host-embedded</artifactId>
+            <artifactId>tuscany-node-impl</artifactId>
             <version>1.4-SNAPSHOT</version>
             <scope>test</scope>
         </dependency>

Copied: tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Client.java (from r703066, tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCAClient.java)
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Client.java?p2=tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Client.java&p1=tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCAClient.java&r1=703066&r2=703068&rev=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCAClient.java (original)
+++ tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Client.java Wed Oct  8 23:33:54 2008
@@ -28,7 +28,7 @@
  *
  * @version $Rev$ $Date$
  */
-public interface SCAClient {
+public interface Client {
 
     /**
      * Cast a type-safe reference to a CallahbleReference. Converts a type-safe

Copied: tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Contribution.java (from r703066, tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCAContribution.java)
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Contribution.java?p2=tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Contribution.java&p1=tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCAContribution.java&r1=703066&r2=703068&rev=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCAContribution.java (original)
+++ tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Contribution.java Wed Oct  8 23:33:54 2008
@@ -21,7 +21,7 @@
 /**
  * Represents an SCA contribution uri + location.
  */
-public final class SCAContribution {
+public final class Contribution {
     private String uri;
     private String location;
     
@@ -31,7 +31,7 @@
      * @param uri The URI that uniquely identifies the contribution in the SCA domain
      * @param location The URL of the contribution archive
      */
-    public SCAContribution(String uri, String location) {
+    public Contribution(String uri, String location) {
         this.uri = uri;
         this.location = location;
     }

Copied: tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/ContributionLocationHelper.java (from r703066, tuscany/branches/sca-equinox/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/test/extension/TestImplementationFactory.java)
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/ContributionLocationHelper.java?p2=tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/ContributionLocationHelper.java&p1=tuscany/branches/sca-equinox/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/test/extension/TestImplementationFactory.java&r1=703066&r2=703068&rev=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/test/extension/TestImplementationFactory.java (original)
+++ tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/ContributionLocationHelper.java Wed Oct  8 23:33:54 2008
@@ -17,21 +17,33 @@
  * under the License.    
  */
 
-package org.apache.tuscany.sca.host.embedded.test.extension;
+package org.apache.tuscany.sca.node;
 
+import java.net.URL;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 
 /**
- * A factory for the test implementation model.
+ * ContributionLocationHelper
  *
- * @version $Rev$ $Date$
+ * @version $Rev: $ $Date: $
  */
-public interface TestImplementationFactory {
+public class ContributionLocationHelper {
     
     /**
-     * Creates a new test implementation.
+     * Returns the location of the SCA contribution containing the given class.
      * 
+     * @param anchorClass
      * @return
      */
-    TestImplementation createTestImplementation();
+    public static String getContributionLocation(final Class<?> anchorClass) {
+        URL url = AccessController.doPrivileged(new PrivilegedAction<URL>() {
+            public URL run() {
+                return anchorClass.getProtectionDomain().getCodeSource().getLocation();
+            }
+        });
+        String uri = url.toString();
+        return uri;
+    }
 
 }

Copied: tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Node.java (from r703066, tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCANode.java)
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Node.java?p2=tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Node.java&p1=tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCANode.java&r1=703066&r2=703068&rev=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCANode.java (original)
+++ tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Node.java Wed Oct  8 23:33:54 2008
@@ -27,7 +27,7 @@
  *
  * @version $Rev$ $Date$
  */
-public interface SCANode {
+public interface Node extends Client {
 
     /**
      * Start the composite loaded in the node.
@@ -38,5 +38,10 @@
      * Stop the composite loaded in the node.
      */
     void stop();
+    
+    /**
+     * Destroy the node.
+     */
+    void destroy();
 
 }

Copied: tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java (from r703066, tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCANodeFactory.java)
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java?p2=tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java&p1=tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCANodeFactory.java&r1=703066&r2=703068&rev=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCANodeFactory.java (original)
+++ tuscany/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java Wed Oct  8 23:33:54 2008
@@ -31,9 +31,9 @@
  * 
  * @version $Rev$ $Date$
  */
-public abstract class SCANodeFactory {
+public abstract class NodeFactory {
 
-    public static class NodeProxy implements SCANode, SCAClient {
+    public static class NodeProxy implements Node, Client {
         private Object node;
 
         private NodeProxy(Object node) {
@@ -95,6 +95,14 @@
             }
         }
 
+        public void destroy() {
+            try {
+                node.getClass().getMethod("destroy").invoke(node);
+            } catch (Throwable e) {
+                handleException(e);
+            }
+        }
+
         private static void handleException(Throwable ex) {
             if (ex instanceof InvocationTargetException) {
                 ex = ((InvocationTargetException)ex).getTargetException();
@@ -116,8 +124,8 @@
      *  
      * @return a new SCA node factory
      */
-    public static SCANodeFactory newInstance() {
-        SCANodeFactory scaNodeFactory = null;
+    public static NodeFactory newInstance() {
+        NodeFactory scaNodeFactory = null;
 
         try {
             // final ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
@@ -125,10 +133,10 @@
             try {
                 Class<?> discoveryClass = Class.forName("org.apache.tuscany.sca.extensibility.ServiceDiscovery");
                 Object instance = discoveryClass.getMethod("getInstance").invoke(null);
-                Object factoryDeclaration = discoveryClass.getMethod("getFirstServiceDeclaration", String.class).invoke(instance, SCANodeFactory.class.getName());
+                Object factoryDeclaration = discoveryClass.getMethod("getFirstServiceDeclaration", String.class).invoke(instance, NodeFactory.class.getName());
                 if (factoryDeclaration != null) {
                     Class<?> factoryImplClass = (Class<?>)factoryDeclaration.getClass().getMethod("loadClass").invoke(factoryDeclaration);
-                    scaNodeFactory = (SCANodeFactory)factoryImplClass.newInstance();
+                    scaNodeFactory = (NodeFactory)factoryImplClass.newInstance();
                     return scaNodeFactory;
                 }
             } catch (ClassNotFoundException e) {
@@ -139,7 +147,7 @@
             String className = "org.apache.tuscany.sca.node.impl.NodeFactoryImpl";
 
             Class<?> cls = Class.forName(className);
-            scaNodeFactory = (SCANodeFactory)cls.newInstance();
+            scaNodeFactory = (NodeFactory)cls.newInstance();
             return scaNodeFactory;
 
         } catch (Exception e) {
@@ -155,7 +163,7 @@
      *  
      * @return a new SCA node.
      */
-    public abstract SCANode createSCANodeFromURL(String configurationURL);
+    public abstract Node createNode(String configurationURL);
 
     /**
      * Creates a new SCA node.
@@ -167,7 +175,7 @@
      *   
      * @return a new SCA node.
      */
-    public abstract SCANode createSCANode(String compositeURI, SCAContribution... contributions);
+    public abstract Node createNode(String compositeURI, Contribution... contributions);
 
     /**
      * Creates a new SCA node.
@@ -177,8 +185,8 @@
      * @param contributions the URI of the contributions that provides the composites and related artifacts 
      * @return a new SCA node.
      */
-    public abstract SCANode createSCANode(String compositeURI,
+    public abstract Node createNode(String compositeURI,
                                           String compositeContent,
-                                          SCAContribution... contributions);
+                                          Contribution... contributions);
 
 }

Modified: tuscany/branches/sca-equinox/modules/node-impl/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/node-impl/pom.xml?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/node-impl/pom.xml (original)
+++ tuscany/branches/sca-equinox/modules/node-impl/pom.xml Wed Oct  8 23:33:54 2008
@@ -76,6 +76,12 @@
         
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-workspace</artifactId>
+            <version>1.4-SNAPSHOT</version>
+        </dependency>
+        
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
             <artifactId>tuscany-definitions-xml</artifactId>
             <version>1.4-SNAPSHOT</version>
             <scope>runtime</scope>

Modified: tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java (original)
+++ tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java Wed Oct  8 23:33:54 2008
@@ -19,31 +19,31 @@
 
 package org.apache.tuscany.sca.node.impl;
 
-import org.apache.tuscany.sca.node.SCAContribution;
-import org.apache.tuscany.sca.node.SCANode;
-import org.apache.tuscany.sca.node.SCANodeFactory;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
 
 /**
  * Default implementation of an SCA node factory.
  * 
  * @version $Rev$ $Date$
  */
-public class NodeFactoryImpl extends SCANodeFactory {
+public class NodeFactoryImpl extends NodeFactory {
     public NodeFactoryImpl() {
     }
     
     @Override
-    public SCANode createSCANodeFromURL(String configurationURI) {
+    public Node createNode(String configurationURI) {
         return new NodeImpl(configurationURI);
     }
     
     @Override
-    public SCANode createSCANode(String compositeURI, SCAContribution... contributions) {
+    public Node createNode(String compositeURI, Contribution... contributions) {
         return new NodeImpl(compositeURI, contributions);
     }
 
     @Override
-    public SCANode createSCANode(String compositeURI, String compositeContent, SCAContribution... contributions) {
+    public Node createNode(String compositeURI, String compositeContent, Contribution... contributions) {
         return new NodeImpl(compositeURI, compositeContent, contributions);
     }
 

Modified: tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java (original)
+++ tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java Wed Oct  8 23:33:54 2008
@@ -22,15 +22,13 @@
 import static java.lang.System.currentTimeMillis;
 import static org.apache.tuscany.sca.node.impl.NodeUtil.contribution;
 import static org.apache.tuscany.sca.node.impl.NodeUtil.createURI;
-import static org.apache.tuscany.sca.node.impl.NodeUtil.loadModules;
-import static org.apache.tuscany.sca.node.impl.NodeUtil.startModules;
-import static org.apache.tuscany.sca.node.impl.NodeUtil.stopModules;
 
 import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.InputStream;
 import java.net.URI;
 import java.net.URL;
+import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
@@ -77,9 +75,8 @@
 import org.apache.tuscany.sca.monitor.MonitorFactory;
 import org.apache.tuscany.sca.monitor.Problem;
 import org.apache.tuscany.sca.monitor.Problem.Severity;
-import org.apache.tuscany.sca.node.SCAClient;
-import org.apache.tuscany.sca.node.SCAContribution;
-import org.apache.tuscany.sca.node.SCANode;
+import org.apache.tuscany.sca.node.Client;
+import org.apache.tuscany.sca.node.Node;
 import org.apache.tuscany.sca.runtime.RuntimeComponent;
 import org.apache.tuscany.sca.runtime.RuntimeComponentContext;
 import org.apache.tuscany.sca.work.WorkScheduler;
@@ -96,7 +93,7 @@
  * 
  * @version $Rev$ $Date$
  */
-public class NodeImpl implements SCANode, SCAClient {
+public class NodeImpl implements Node, Client {
 
     private static final Logger logger = Logger.getLogger(NodeImpl.class.getName());
 
@@ -120,7 +117,7 @@
     private StAXArtifactProcessorExtensionPoint xmlProcessors;
     private StAXArtifactProcessor<Composite> compositeProcessor; 
     private ProxyFactory proxyFactory;
-    private List<ModuleActivator> modules;
+    private List<ModuleActivator> moduleActivators = new ArrayList<ModuleActivator>();
     private CompositeActivator compositeActivator;
     private WorkScheduler workScheduler;
 
@@ -170,7 +167,7 @@
      * @param compositeURI
      * @param contributions
      */
-    NodeImpl(String compositeURI, SCAContribution[] contributions) {
+    NodeImpl(String compositeURI, org.apache.tuscany.sca.node.Contribution[] contributions) {
         configurationName = compositeURI;
         logger.log(Level.INFO, "Creating node: " + configurationName);
 
@@ -190,7 +187,7 @@
             }
   
                 // Create contribution models
-            for (SCAContribution c : contributions) {
+            for (org.apache.tuscany.sca.node.Contribution c : contributions) {
                 Contribution contribution = contribution(contributionFactory, c);
                 configuration.getContributions().add(contribution);
             }
@@ -210,7 +207,7 @@
      * @param compositeContent
      * @param contributions
      */
-    NodeImpl(String compositeURI, String compositeContent, SCAContribution[] contributions) {
+    NodeImpl(String compositeURI, String compositeContent, org.apache.tuscany.sca.node.Contribution[] contributions) {
         configurationName = compositeURI;
         logger.log(Level.INFO, "Creating node: " + configurationName);
 
@@ -238,7 +235,7 @@
             configuration.setComposite(composite);
 
             // Create contribution models
-            for (SCAContribution c : contributions) {
+            for (org.apache.tuscany.sca.node.Contribution c : contributions) {
                 Contribution contribution = contribution(contributionFactory, c);
                 configuration.getContributions().add(contribution);
             }
@@ -263,9 +260,10 @@
         monitor = monitorFactory.createMonitor(); 
         
         // Initialize the Tuscany module activators
-        ModuleActivatorExtensionPoint moduleActivators = extensionPoints.getExtensionPoint(ModuleActivatorExtensionPoint.class);
-        for (ModuleActivator activator: moduleActivators.getModuleActivators()) {
-            activator.start(extensionPoints);
+        ModuleActivatorExtensionPoint activators = extensionPoints.getExtensionPoint(ModuleActivatorExtensionPoint.class);
+        for (ModuleActivator moduleActivator: activators.getModuleActivators()) {
+            moduleActivator.start(extensionPoints);
+            moduleActivators.add(moduleActivator);
         }
 
         // Get XML input/output factories
@@ -302,17 +300,6 @@
         
         // Initialize runtime
 
-        // Load the runtime modules
-        try {
-            modules = loadModules(extensionPoints);
-
-            // Start the runtime modules
-            startModules(extensionPoints, modules);
-            
-        } catch (ActivationException e) {
-            throw new IllegalStateException(e);
-        }
-
         // Get proxy factory
         ProxyFactoryExtensionPoint proxyFactories = extensionPoints.getExtensionPoint(ProxyFactoryExtensionPoint.class);
         proxyFactory = new ExtensibleProxyFactory(proxyFactories);
@@ -458,8 +445,13 @@
             throw new IllegalStateException(e);
         }
 
+    }
+    
+    public void destroy() {
         // Stop the runtime modules
-        stopModules(extensionPoints, modules);
+        for (ModuleActivator moduleActivator: moduleActivators) {
+            moduleActivator.stop(extensionPoints);
+        }
 
         // Stop and destroy the work manager
         workScheduler.destroy();

Modified: tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeUtil.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeUtil.java?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeUtil.java (original)
+++ tuscany/branches/sca-equinox/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeUtil.java Wed Oct  8 23:33:54 2008
@@ -33,16 +33,8 @@
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.ModuleActivator;
 import org.apache.tuscany.sca.core.assembly.ActivationException;
-import org.apache.tuscany.sca.core.scope.CompositeScopeContainerFactory;
-import org.apache.tuscany.sca.core.scope.ConversationalScopeContainerFactory;
-import org.apache.tuscany.sca.core.scope.RequestScopeContainerFactory;
-import org.apache.tuscany.sca.core.scope.ScopeContainerFactory;
-import org.apache.tuscany.sca.core.scope.ScopeRegistry;
-import org.apache.tuscany.sca.core.scope.ScopeRegistryImpl;
-import org.apache.tuscany.sca.core.scope.StatelessScopeContainerFactory;
 import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
 import org.apache.tuscany.sca.extensibility.ServiceDiscovery;
-import org.apache.tuscany.sca.node.SCAContribution;
 
 /**
  * NodeUtil
@@ -52,7 +44,7 @@
 public class NodeUtil {
     private static final Logger logger = Logger.getLogger(NodeImpl.class.getName());
 
-    static Contribution contribution(ContributionFactory contributionFactory, SCAContribution c) {
+    static Contribution contribution(ContributionFactory contributionFactory, org.apache.tuscany.sca.node.Contribution c) {
         Contribution contribution = contributionFactory.createContribution();
         contribution.setURI(c.getURI());
         contribution.setLocation(c.getLocation());
@@ -72,76 +64,6 @@
         return URI.create(uri);
     }
 
-    static List<ModuleActivator> loadModules(ExtensionPointRegistry registry) throws ActivationException {
-
-        // Load and instantiate the modules found on the classpath (or any registered ClassLoaders)
-        List<ModuleActivator> modules = new ArrayList<ModuleActivator>();
-        try {
-            Set<ServiceDeclaration> moduleActivators = ServiceDiscovery.getInstance().getServiceDeclarations(ModuleActivator.class.getName());
-            Set<String> moduleClasses = new HashSet<String>();
-            for (ServiceDeclaration moduleDeclarator : moduleActivators) {
-                if (moduleClasses.contains(moduleDeclarator.getClassName())) {
-                    continue;
-                }
-                moduleClasses.add(moduleDeclarator.getClassName());
-                Class<?> moduleClass = moduleDeclarator.loadClass();
-                ModuleActivator module = (ModuleActivator)moduleClass.newInstance();
-                modules.add(module);
-            }
-        } catch (IOException e) {
-            throw new ActivationException(e);
-        } catch (ClassNotFoundException e) {
-            throw new ActivationException(e);
-        } catch (InstantiationException e) {
-            throw new ActivationException(e);
-        } catch (IllegalAccessException e) {
-            throw new ActivationException(e);
-        }
-
-        return modules;
-    }
-
-    static void startModules(ExtensionPointRegistry registry, List<ModuleActivator> modules) throws ActivationException {
-        boolean debug = logger.isLoggable(Level.FINE);
-        
-        // Start all the extension modules
-        for (ModuleActivator module : modules) {
-            long start = 0L;
-            if (debug) {
-                logger.fine(module.getClass().getName() + " is starting.");
-                start = System.currentTimeMillis();
-            }
-            try {
-                module.start(registry);
-                if (debug) {
-                    long end = System.currentTimeMillis();
-                    logger.fine(module.getClass().getName() + " is started in " + (end - start) + " ms.");
-                }
-            } catch (Throwable e) {
-                logger.log(Level.WARNING, "Exception starting module " + module.getClass().getName()
-                    + " :"
-                    + e.getMessage());
-                logger.log(Level.FINE, "Exception starting module " + module.getClass().getName(), e);
-            }
-        }
-    }
-
-    static void stopModules(final ExtensionPointRegistry registry, List<ModuleActivator> modules) {
-        boolean debug = logger.isLoggable(Level.FINE);
-        for (ModuleActivator module : modules) {
-            long start = 0L;
-            if (debug) {
-                logger.fine(module.getClass().getName() + " is stopping.");
-                start = System.currentTimeMillis();
-            }
-            module.stop(registry);
-            if (debug) {
-                long end = System.currentTimeMillis();
-                logger.fine(module.getClass().getName() + " is stopped in " + (end - start) + " ms.");
-            }
-        }
-    }
-
 //    private void loadSCADefinitions() throws ActivationException {
 //        try {
 //            URLArtifactProcessorExtensionPoint documentProcessors =

Modified: tuscany/branches/sca-equinox/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeImplTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeImplTestCase.java?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeImplTestCase.java (original)
+++ tuscany/branches/sca-equinox/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeImplTestCase.java Wed Oct  8 23:33:54 2008
@@ -25,10 +25,10 @@
 
 import junit.framework.Assert;
 
-import org.apache.tuscany.sca.node.SCAClient;
-import org.apache.tuscany.sca.node.SCAContribution;
-import org.apache.tuscany.sca.node.SCANode;
-import org.apache.tuscany.sca.node.SCANodeFactory;
+import org.apache.tuscany.sca.node.Client;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
 import org.junit.Test;
 
 /**
@@ -47,25 +47,25 @@
 
     @Test
     public void testNodeWithCompositeContent() {
-        SCANodeFactory factory = new NodeFactoryImpl();
-        SCAContribution contribution = new SCAContribution("c1", new File("target/test-classes").toURI().toString());
+        NodeFactory factory = new NodeFactoryImpl();
+        Contribution contribution = new Contribution("c1", new File("target/test-classes").toURI().toString());
         String compositeURI = "HelloWorld.composite";
-        SCANode node = factory.createSCANode(compositeURI, composite, contribution);
+        Node node = factory.createNode(compositeURI, composite, contribution);
         testNode(node);
     }
     
     @Test
     public void testNodeWithRelativeCompositeURI() {
-        SCANodeFactory factory = new NodeFactoryImpl();
-        SCAContribution contribution = new SCAContribution("c1", new File("target/test-classes").toURI().toString());
+        NodeFactory factory = new NodeFactoryImpl();
+        Contribution contribution = new Contribution("c1", new File("target/test-classes").toURI().toString());
         String compositeURI = "HelloWorld.composite";
-        SCANode node = factory.createSCANode(compositeURI, contribution);
+        Node node = factory.createNode(compositeURI, contribution);
         testNode(node);
     }
 
-    private void testNode(SCANode node) {
+    private void testNode(Node node) {
         node.start();
-        HelloWorld hw = ((SCAClient)node).getService(HelloWorld.class, "HelloWorld");
+        HelloWorld hw = node.getService(HelloWorld.class, "HelloWorld");
         Assert.assertEquals("Hello, Node", hw.hello("Node"));
         node.stop();
     }

Modified: tuscany/branches/sca-equinox/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncher.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncher.java?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncher.java (original)
+++ tuscany/branches/sca-equinox/modules/node-launcher-equinox/src/main/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncher.java Wed Oct  8 23:33:54 2008
@@ -64,7 +64,7 @@
      * @return a new SCA node.
      * @throws LauncherException
      */
-    public <T> T createNodeFromURL(String configurationURL) throws LauncherException {
+    public <T> T createNode(String configurationURL) throws LauncherException {
         return (T)node(configurationURL, null, null, null, bundleContext);
     }
 
@@ -113,7 +113,7 @@
                 // Create a node from a configuration URI
                 String configurationURI = args[0];
                 logger.info("SCA Node configuration: " + configurationURI);
-                node = launcher.createNodeFromURL(configurationURI);
+                node = launcher.createNode(configurationURI);
             } else {
                 
                 // Create a node from a composite URI and a contribution location
@@ -157,7 +157,7 @@
             
             // Stop the node
             if (node != null) {
-                stopNode(node);
+                destroyNode(node);
             }
             if (equinox != null) {
                 equinox.stop();
@@ -178,9 +178,10 @@
      * @param node
      * @throws Exception
      */
-    private static void stopNode(Object node) throws Exception {
+    private static void destroyNode(Object node) throws Exception {
         try {
             node.getClass().getMethod("stop").invoke(node);
+            node.getClass().getMethod("destroy").invoke(node);
             logger.info("SCA Node is now stopped.");
         } catch (Exception e) {
             logger.log(Level.SEVERE, "SCA Node could not be stopped", e);
@@ -200,7 +201,7 @@
 
         public void run() {
             try {
-                stopNode(node);
+                destroyNode(node);
             } catch (Exception e) {
                 // Ignore
             }

Modified: tuscany/branches/sca-equinox/modules/node-launcher-equinox/src/test/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncherTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/node-launcher-equinox/src/test/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncherTestCase.java?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/node-launcher-equinox/src/test/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncherTestCase.java (original)
+++ tuscany/branches/sca-equinox/modules/node-launcher-equinox/src/test/java/org/apache/tuscany/sca/node/equinox/launcher/NodeLauncherTestCase.java Wed Oct  8 23:33:54 2008
@@ -19,7 +19,7 @@
 
 package org.apache.tuscany.sca.node.equinox.launcher;
 
-import org.apache.tuscany.sca.node.SCANode;
+import org.apache.tuscany.sca.node.Node;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
@@ -51,7 +51,7 @@
     @Test
     public void testLaunch() throws Exception {
         String location = ContributionLocationHelper.getContributionLocation(getClass());
-        SCANode node = launcher.createNode("HelloWorld.composite", new Contribution("test",  location));
+        Node node = launcher.createNode("HelloWorld.composite", new Contribution("test",  location));
         node.start();
         node.stop();
     }

Modified: tuscany/branches/sca-equinox/modules/node-manager/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/node-manager/pom.xml?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/node-manager/pom.xml (original)
+++ tuscany/branches/sca-equinox/modules/node-manager/pom.xml Wed Oct  8 23:33:54 2008
@@ -56,12 +56,6 @@
 
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-host-embedded</artifactId>
-            <version>1.4-SNAPSHOT</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.tuscany.sca</groupId>
             <artifactId>tuscany-data-api</artifactId>
             <version>1.4-SNAPSHOT</version>
         </dependency>

Modified: tuscany/branches/sca-equinox/modules/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/modules/pom.xml?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/modules/pom.xml (original)
+++ tuscany/branches/sca-equinox/modules/pom.xml Wed Oct  8 23:33:54 2008
@@ -105,7 +105,6 @@
                 <!--
                 <module>host-ejb</module>
                 -->
-                <module>host-embedded</module>
                 <module>host-http</module>
                 <module>host-jetty</module>
                 <!--
@@ -125,7 +124,6 @@
                 <module>interface-wsdl-xml</module>
                 <module>implementation-bpel</module>
                 <module>implementation-bpel-ode</module>
-                <module>implementation-bpel-jbpm</module>
                 <module>implementation-ejb</module>
                 <module>implementation-java</module>
                 <module>implementation-java-xml</module>

Modified: tuscany/branches/sca-equinox/samples/calculator-distributed/src/main/java/node/LaunchCalculatorNodeA.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/samples/calculator-distributed/src/main/java/node/LaunchCalculatorNodeA.java?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/samples/calculator-distributed/src/main/java/node/LaunchCalculatorNodeA.java (original)
+++ tuscany/branches/sca-equinox/samples/calculator-distributed/src/main/java/node/LaunchCalculatorNodeA.java Wed Oct  8 23:33:54 2008
@@ -19,8 +19,8 @@
 
 package node;
 
-import org.apache.tuscany.sca.node.SCAClient;
-import org.apache.tuscany.sca.node.SCANode;
+import org.apache.tuscany.sca.node.Client;
+import org.apache.tuscany.sca.node.Node;
 import org.apache.tuscany.sca.node.launcher.NodeLauncher;
 import org.osoa.sca.ServiceRuntimeException;
 
@@ -29,7 +29,7 @@
 public class LaunchCalculatorNodeA {
     public static void main(String[] args) throws Exception {
         
-        SCANode node = null;
+        Node node = null;
         try {
             
             NodeLauncher nodeLauncher = NodeLauncher.newInstance();
@@ -38,7 +38,7 @@
             node.start();
             
             // get a reference to the calculator component
-            SCAClient client = (SCAClient)node;
+            Client client = (Client)node;
             CalculatorService calculatorService = 
                 client.getService(CalculatorService.class, "CalculatorServiceComponentA");
             

Modified: tuscany/branches/sca-equinox/samples/calculator-distributed/src/test/java/calculator/CalculatorDistributedTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/samples/calculator-distributed/src/test/java/calculator/CalculatorDistributedTestCase.java?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/samples/calculator-distributed/src/test/java/calculator/CalculatorDistributedTestCase.java (original)
+++ tuscany/branches/sca-equinox/samples/calculator-distributed/src/test/java/calculator/CalculatorDistributedTestCase.java Wed Oct  8 23:33:54 2008
@@ -21,9 +21,9 @@
 
 import junit.framework.Assert;
 
-import org.apache.tuscany.sca.node.SCAClient;
-import org.apache.tuscany.sca.node.SCANode;
-import org.apache.tuscany.sca.node.SCANodeFactory;
+import org.apache.tuscany.sca.node.Client;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
 import org.apache.tuscany.sca.node.launcher.DomainManagerLauncher;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -35,10 +35,10 @@
  */
 public class CalculatorDistributedTestCase {
 
-    private static SCANode manager;
-    private static SCANode nodeA;
-    private static SCANode nodeB;
-    private static SCANode nodeC;
+    private static Node manager;
+    private static Node nodeA;
+    private static Node nodeB;
+    private static Node nodeC;
 
     private static CalculatorService calculatorService;
     
@@ -53,16 +53,16 @@
             manager = managerLauncher.createDomainManager();
             manager.start();
             
-            SCANodeFactory nodeFactory = SCANodeFactory.newInstance();
-            nodeC  = nodeFactory.createSCANodeFromURL("http://localhost:9990/node-config/NodeC");
-            nodeB  = nodeFactory.createSCANodeFromURL("http://localhost:9990/node-config/NodeB");
-            nodeA  = nodeFactory.createSCANodeFromURL("http://localhost:9990/node-config/NodeA");
+            NodeFactory nodeFactory = NodeFactory.newInstance();
+            nodeC  = nodeFactory.createNode("http://localhost:9990/node-config/NodeC");
+            nodeB  = nodeFactory.createNode("http://localhost:9990/node-config/NodeB");
+            nodeA  = nodeFactory.createNode("http://localhost:9990/node-config/NodeA");
 
             nodeC.start();
             nodeB.start();
             nodeA.start();
             
-            SCAClient client = (SCAClient)nodeA;
+            Client client = (Client)nodeA;
             calculatorService = 
                 client.getService(CalculatorService.class, "CalculatorServiceComponentA");
 

Modified: tuscany/branches/sca-equinox/samples/calculator-equinox/src/test/java/calculator/CalculatorTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/samples/calculator-equinox/src/test/java/calculator/CalculatorTestCase.java?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/samples/calculator-equinox/src/test/java/calculator/CalculatorTestCase.java (original)
+++ tuscany/branches/sca-equinox/samples/calculator-equinox/src/test/java/calculator/CalculatorTestCase.java Wed Oct  8 23:33:54 2008
@@ -20,7 +20,7 @@
 
 import junit.framework.TestCase;
 
-import org.apache.tuscany.sca.node.SCANode;
+import org.apache.tuscany.sca.node.Node;
 import org.apache.tuscany.sca.node.equinox.launcher.Contribution;
 import org.apache.tuscany.sca.node.equinox.launcher.ContributionLocationHelper;
 import org.apache.tuscany.sca.node.equinox.launcher.NodeLauncher;
@@ -35,7 +35,7 @@
 public class CalculatorTestCase extends TestCase {
 
     private NodeLauncher launcher;
-    private SCANode node;
+    private Node node;
 
     @Override
     protected void setUp() throws Exception {
@@ -48,8 +48,11 @@
 
     @Override
     protected void tearDown() throws Exception {
-        if (launcher != null) {
+        if (node != null) {
             node.stop();
+            node.destroy();
+        }
+        if (launcher != null) {
             launcher.destroy();
         }
     }

Modified: tuscany/branches/sca-equinox/samples/calculator-lean/src/test/java/calculator/CalculatorTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/samples/calculator-lean/src/test/java/calculator/CalculatorTestCase.java?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/samples/calculator-lean/src/test/java/calculator/CalculatorTestCase.java (original)
+++ tuscany/branches/sca-equinox/samples/calculator-lean/src/test/java/calculator/CalculatorTestCase.java Wed Oct  8 23:33:54 2008
@@ -20,8 +20,10 @@
 
 import junit.framework.TestCase;
 
-import org.apache.tuscany.sca.node.SCANode;
-import org.apache.tuscany.sca.node.SCANodeFactory;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.ContributionLocationHelper;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
 import org.osoa.sca.annotations.EagerInit;
 import org.osoa.sca.annotations.Reference;
 import org.osoa.sca.annotations.Scope;
@@ -33,7 +35,7 @@
 public class CalculatorTestCase extends TestCase {
 
     private static CalculatorService calculatorService;
-    private SCANode node;
+    private Node node;
     
     @Reference
     public void setCalculatorService(CalculatorService calculatorService) {
@@ -42,14 +44,16 @@
 
     @Override
     protected void setUp() throws Exception {
-        SCANodeFactory factory = SCANodeFactory.newInstance();
-        node = factory.createSCANodeFromClassLoader("CalculatorTest.composite", getClass().getClassLoader());
+        NodeFactory factory = NodeFactory.newInstance();
+        String contribution = ContributionLocationHelper.getContributionLocation(CalculatorClient.class);
+        node = factory.createNode("CalculatorTest.composite", new Contribution("calculator", contribution));
         node.start();
     }
 
     @Override
     protected void tearDown() throws Exception {
         node.stop();
+        node.destroy();
     }
 
     public void testCalculator() throws Exception {

Modified: tuscany/branches/sca-equinox/samples/calculator-rcp/src/main/java/calculator/rcp/Activator.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/samples/calculator-rcp/src/main/java/calculator/rcp/Activator.java?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/samples/calculator-rcp/src/main/java/calculator/rcp/Activator.java (original)
+++ tuscany/branches/sca-equinox/samples/calculator-rcp/src/main/java/calculator/rcp/Activator.java Wed Oct  8 23:33:54 2008
@@ -18,7 +18,7 @@
  */
 package calculator.rcp;
 
-import org.apache.tuscany.sca.node.SCANode;
+import org.apache.tuscany.sca.node.Node;
 import org.apache.tuscany.sca.node.equinox.launcher.Contribution;
 import org.apache.tuscany.sca.node.equinox.launcher.ContributionLocationHelper;
 import org.apache.tuscany.sca.node.equinox.launcher.NodeLauncher;
@@ -38,7 +38,7 @@
     private static Activator plugin;
 
     private NodeLauncher launcher;
-    private SCANode node;
+    private Node node;
 
     public Activator() {
     }
@@ -58,6 +58,7 @@
         super.stop(context);
         if (node != null) {
             node.stop();
+            node.destroy();
         }
         if (launcher != null) {
             launcher.destroy();

Modified: tuscany/branches/sca-equinox/samples/calculator/src/main/java/calculator/CalculatorClient.java
URL: http://svn.apache.org/viewvc/tuscany/branches/sca-equinox/samples/calculator/src/main/java/calculator/CalculatorClient.java?rev=703068&r1=703067&r2=703068&view=diff
==============================================================================
--- tuscany/branches/sca-equinox/samples/calculator/src/main/java/calculator/CalculatorClient.java (original)
+++ tuscany/branches/sca-equinox/samples/calculator/src/main/java/calculator/CalculatorClient.java Wed Oct  8 23:33:54 2008
@@ -19,9 +19,11 @@
 
 package calculator;
 
-import org.apache.tuscany.sca.node.SCAClient;
-import org.apache.tuscany.sca.node.SCANode;
-import org.apache.tuscany.sca.node.SCANodeFactory;
+import org.apache.tuscany.sca.node.Client;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.ContributionLocationHelper;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
 
 /**
  * This client program shows how to create an SCA runtime, start it,
@@ -30,11 +32,12 @@
 public class CalculatorClient {
     public static void main(String[] args) throws Exception {
 
-        SCANodeFactory factory = SCANodeFactory.newInstance();
-        SCANode node = factory.createSCANodeFromClassLoader("Calculator.composite", CalculatorClient.class.getClassLoader());
+        NodeFactory factory = NodeFactory.newInstance();
+        String contribution = ContributionLocationHelper.getContributionLocation(CalculatorClient.class);
+        Node node = factory.createNode("Calculator.composite", new Contribution("calculator", contribution));
         node.start();
         
-        CalculatorService calculatorService = ((SCAClient)node).getService(CalculatorService.class, "CalculatorServiceComponent");
+        CalculatorService calculatorService = ((Client)node).getService(CalculatorService.class, "CalculatorServiceComponent");
         
         // Calculate
         System.out.println("3 + 2=" + calculatorService.add(3, 2));
@@ -43,6 +46,7 @@
         System.out.println("3 / 2=" + calculatorService.divide(3, 2));
 
         node.stop();
+        node.destroy();
     }
 
 }