Author: antelder
Date: Fri Mar  4 11:30:48 2011
New Revision: 1077885

URL: http://svn.apache.org/viewvc?rev=1077885&view=rev
Log:
Do some clean up, simplify dependencies, remove unused classes and folders, 
update to restart stopped composites

Removed:
    
tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/domain/node/
    
tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/runtime/
    tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/resources/META-INF/
    
tuscany/sca-java-2.x/trunk/modules/domain-node/src/test/java/org/apache/tuscany/sca/domain/node/
Modified:
    tuscany/sca-java-2.x/trunk/modules/domain-node/pom.xml
    
tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/TuscanyRuntime.java
    
tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/DeployedComposite.java
    
tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/InstalledContribution.java
    
tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java

Modified: tuscany/sca-java-2.x/trunk/modules/domain-node/pom.xml
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/domain-node/pom.xml?rev=1077885&r1=1077884&r2=1077885&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/domain-node/pom.xml (original)
+++ tuscany/sca-java-2.x/trunk/modules/domain-node/pom.xml Fri Mar  4 11:30:48 
2011
@@ -38,16 +38,11 @@
             <version>2.0-SNAPSHOT</version>
         </dependency>
         
-        <dependency>
-            <groupId>org.apache.tuscany.sca</groupId>
-            <artifactId>tuscany-sca-api</artifactId>
-            <version>2.0-SNAPSHOT</version>
-        </dependency>
-        
          <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
             <artifactId>tuscany-implementation-java-runtime</artifactId>
             <version>2.0-SNAPSHOT</version>
+            <scope>test</scope>
         </dependency>  
                       
          <dependency>

Modified: 
tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/TuscanyRuntime.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/TuscanyRuntime.java?rev=1077885&r1=1077884&r2=1077885&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/TuscanyRuntime.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/TuscanyRuntime.java
 Fri Mar  4 11:30:48 2011
@@ -49,6 +49,10 @@ import org.apache.tuscany.sca.runtime.Ru
 import org.apache.tuscany.sca.work.WorkScheduler;
 import org.oasisopen.sca.ServiceRuntimeException;
 
+/**
+ * The TuscanyRuntime is the main class for using Tuscany. It can create Nodes,
+ * run composites, and provides access to various utility APIs
+ */
 public class TuscanyRuntime {
 
     private Deployer deployer;
@@ -57,9 +61,19 @@ public class TuscanyRuntime {
     private ExtensibleDomainRegistryFactory domainRegistryFactory;
     private RuntimeAssemblyFactory assemblyFactory;
 
+    /**
+     * Creates a new TuscanyRuntime 
+     * @return a TuscanyRuntime
+     */
     public static TuscanyRuntime newInstance() {
         return new TuscanyRuntime(null);
     }
+    
+    /**
+     * Creates a new TuscanyRuntime 
+     * @param config  Properties to configure the TuscanyRuntime
+     * @return a TuscanyRuntime
+     */
     public static TuscanyRuntime newInstance(Properties config) {
         return new TuscanyRuntime(config);
     }
@@ -85,6 +99,7 @@ public class TuscanyRuntime {
      * @param contributionURL  URL of the contribution
      * @param dependentContributionURLs  optional URLs of dependent 
contributions
      * @return a Node with installed contributions
+     * TODO: keep this helper method? Maybe say you should just create/use 
Node directly
      */
     public static Node runComposite(TuscanyRuntime runtime, String 
compositeURI, String contributionURL, String... dependentContributionURLs) {
         try {
@@ -116,10 +131,19 @@ public class TuscanyRuntime {
         init(config);
     }
     
+    /**
+     * Creates a Node
+     * @return a Node
+     */
     public Node createNode() {
         return createNode(null);
     }
 
+    /**
+     * Creates a Node in an SCA domain 
+     * @param domainURI  the URI of the SCA domain
+     * @return a Node
+     */
     public Node createNode(String domainURI) {
         String domainName = "default";
         if (domainURI != null){
@@ -129,6 +153,11 @@ public class TuscanyRuntime {
         return new NodeImpl(domainName, deployer, compositeActivator, 
endpointRegistry, extensionPointRegistry, null);
     }
 
+    /**
+     * Creates a Node from an XML configuration file
+     * @param configURL  the URL to the XML configuration file
+     * @return Node  the configured Node
+     */
     public Node createNodeFromXML(String configURL) throws 
ContributionReadException, ActivationException, ValidationException {
         NodeConfiguration configuration = loadConfiguration(configURL);
         Node node = createNode(configuration.getDomainURI());
@@ -138,6 +167,9 @@ public class TuscanyRuntime {
         return node;
     }
 
+    /**
+     * Stop the TuscanyRuntime
+     */
     public void stop() {
         extensionPointRegistry.stop();
     }

Modified: 
tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/DeployedComposite.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/DeployedComposite.java?rev=1077885&r1=1077884&r2=1077885&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/DeployedComposite.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/DeployedComposite.java
 Fri Mar  4 11:30:48 2011
@@ -52,6 +52,7 @@ public class DeployedComposite {
     private Deployer deployer;
     private EndpointRegistry endpointRegistry;
     private ExtensionPointRegistry extensionPointRegistry;
+    private Contribution systemContribution;
 
     public DeployedComposite(Composite composite,
                              InstalledContribution ic,
@@ -83,18 +84,14 @@ public class DeployedComposite {
         contribution.get(0).getDeployables().clear();
         contribution.get(0).getDeployables().add(composite);
         
-        Monitor monitor = deployer.createMonitor();
-// TODO: is the ContextMonitor neccessary here?         
-//        Monitor tcm = monitorFactory.setContextMonitor(monitor);
-//        try {
-            
-            domainComposite = deployer.build(contribution, 
dependedOnContributions, new HashMap<QName, List<String>>(), monitor);
-            monitor.analyzeProblems();
-
-//        } finally {
-//            monitorFactory.setContextMonitor(tcm);
-//        }
         
+        Monitor monitor = deployer.createMonitor();
+        if (systemContribution == null) {
+            this.systemContribution = 
deployer.cloneSystemContribution(monitor);
+        }
+        domainComposite = deployer.build(contribution, 
dependedOnContributions, systemContribution, new HashMap<QName, 
List<String>>(), monitor);
+        monitor.analyzeProblems();
+
         compositeContext = new CompositeContext(extensionPointRegistry, 
                                                 endpointRegistry, 
                                                 domainComposite, 
@@ -102,13 +99,17 @@ public class DeployedComposite {
                                                 null, // don't need node uri
                                                 
deployer.getSystemDefinitions());
                        
-        compositeActivator.activate(compositeContext, domainComposite);
-        compositeActivator.start(compositeContext, domainComposite);
+        start();
 
         this.uri = getCompositeURI(composite, installedContribution);
     }
 
-    public void unDeploy() throws ActivationException {
+    public void start() throws ActivationException {
+        compositeActivator.activate(compositeContext, domainComposite);
+        compositeActivator.start(compositeContext, domainComposite);
+    }
+
+    public void stop() throws ActivationException {
         compositeActivator.stop(compositeContext, domainComposite);
         compositeActivator.deactivate(domainComposite);
     }

Modified: 
tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/InstalledContribution.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/InstalledContribution.java?rev=1077885&r1=1077884&r2=1077885&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/InstalledContribution.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/InstalledContribution.java
 Fri Mar  4 11:30:48 2011
@@ -20,10 +20,13 @@
 package org.apache.tuscany.sca.impl;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import org.apache.tuscany.sca.assembly.Composite;
 import org.apache.tuscany.sca.contribution.Contribution;
+import org.apache.tuscany.sca.runtime.ActivationException;
 
 public class InstalledContribution {
 
@@ -31,7 +34,8 @@ public class InstalledContribution {
     private String url;
     private Contribution contribution;
     private List<Composite> defaultDeployables = new ArrayList<Composite>();
-    private List<DeployedComposite> deployedComposites = new 
ArrayList<DeployedComposite>();
+    private List<DeployedComposite> startededComposites = new 
ArrayList<DeployedComposite>();
+    private Map<String, DeployedComposite> stoppedComposites = new 
HashMap<String, DeployedComposite>();
     private List<String> dependentContributionURIs;
     
     public InstalledContribution(String uri, String url, Contribution 
contribution, List<String> dependentContributionURIs) {
@@ -57,9 +61,33 @@ public class InstalledContribution {
         return defaultDeployables;
     }
     public List<DeployedComposite> getDeployedComposites() {
-        return deployedComposites;
+        return startededComposites;
     }
     public List<String> getDependentContributionURIs() {
         return dependentContributionURIs;
     }
+    public void stop(String compositeURI) throws ActivationException {
+        for (DeployedComposite dc : getDeployedComposites()) {
+            if (compositeURI.equals(dc.getURI())) {
+                getDeployedComposites().remove(dc);
+                dc.stop();
+                stoppedComposites.put(compositeURI, dc);
+                return;
+            }
+        }
+        throw new IllegalStateException("composite not deployed: " + 
compositeURI);
+    }
+    
+    public void start(DeployedComposite composite) {
+        startededComposites.add(composite);
+    }
+    
+    public boolean restart(String compositeURI) throws ActivationException {
+        DeployedComposite dc = stoppedComposites.remove(compositeURI);
+        if (dc != null) {
+            dc.start();
+            startededComposites.add(dc);
+        }
+        return dc != null;
+    }
 }

Modified: 
tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java?rev=1077885&r1=1077884&r2=1077885&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java
 Fri Mar  4 11:30:48 2011
@@ -188,13 +188,15 @@ public class NodeImpl implements Node {
         if (ic == null) {
             throw new IllegalArgumentException("Contribution not installed: " 
+ contributionURI);
         }
-        for (Artifact a : ic.getContribution().getArtifacts()) {
-            if (a.getURI().equals(compositeURI)) {
-                startComposite((Composite) a.getModel(), ic);
-                return;
+        if (!ic.restart(compositeURI)) {
+            for (Artifact a : ic.getContribution().getArtifacts()) {
+                if (a.getURI().equals(compositeURI)) {
+                    startComposite((Composite) a.getModel(), ic);
+                    return;
+                }
             }
+            throw new IllegalArgumentException("composite not found: " + 
compositeURI);
         }
-        throw new IllegalArgumentException("composite not found: " + 
compositeURI);
     }
 
     @Override
@@ -203,14 +205,7 @@ public class NodeImpl implements Node {
         if (ic == null) {
             throw new IllegalArgumentException("Contribution not installed: " 
+ contributionURI);
         }
-        for (DeployedComposite dc : ic.getDeployedComposites()) {
-            if (compositeURI.equals(dc.getURI())) {
-                ic.getDeployedComposites().remove(dc);
-                dc.unDeploy();
-                return;
-            }
-        }
-        throw new IllegalStateException("composite not deployed: " + 
compositeURI);
+        ic.stop(compositeURI);
     }
 
     public Composite getDomainLevelComposite() {
@@ -238,7 +233,7 @@ public class NodeImpl implements Node {
             }
             installedContributions.remove(contributionURI);
             for (DeployedComposite dc : ic.getDeployedComposites()) {
-                dc.unDeploy();
+                dc.stop();
             }
             ic.getDeployedComposites().clear();
         }
@@ -447,9 +442,8 @@ public class NodeImpl implements Node {
 
     protected void startComposite(Composite c, InstalledContribution ic) 
throws ActivationException, ValidationException {
         List<Contribution> dependentContributions = 
calculateDependentContributions(ic);
-
         DeployedComposite dc = new DeployedComposite(c, ic, 
dependentContributions, deployer, compositeActivator, endpointRegistry, 
extensionPointRegistry);
-        ic.getDeployedComposites().add(dc);
+        ic.start(dc);
     }
     
     public Set<String> getDependentContributions(String contributionURI) {


Reply via email to