You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2011/06/17 17:04:06 UTC

svn commit: r1136907 - in /tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca: Node.java impl/NodeImpl.java

Author: antelder
Date: Fri Jun 17 15:04:06 2011
New Revision: 1136907

URL: http://svn.apache.org/viewvc?rev=1136907&view=rev
Log:
Add a method to stop a running composite and then uninstall any contributions that were used by the composite and are unused now that the composite is stopped

Modified:
    tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/Node.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/src/main/java/org/apache/tuscany/sca/Node.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/Node.java?rev=1136907&r1=1136906&r2=1136907&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/Node.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/Node.java Fri Jun 17 15:04:06 2011
@@ -156,6 +156,8 @@ public interface Node {
     void startComposite(String contributionURI, String compositeURI) throws ActivationException, ValidationException, ContributionReadException;
     void startComposite(String contributionURI, String compositeURI, String nodeName) throws ActivationException;
 
+    void stopCompositeAndUninstallUnused(String contributionURI, String compositeURI) throws ActivationException;
+
     /**
      * 4687 10.7.2 remove From Domain-Level Composite
      * 4688 Removes from the Domain Level composite the elements corresponding to the composite identified by a

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=1136907&r1=1136906&r2=1136907&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 Jun 17 15:04:06 2011
@@ -265,8 +265,6 @@ public class NodeImpl implements Node {
         }
     }
 
-    
-    
     public void stopComposite(String contributionURI, String compositeURI) throws ActivationException {
         String key = contributionURI+"/"+compositeURI;
         DeployedComposite dc = startedComposites.remove(key);
@@ -286,6 +284,24 @@ public class NodeImpl implements Node {
         }
     }
 
+    public void stopCompositeAndUninstallUnused(String contributionURI, String compositeURI) throws ActivationException {
+        String key = contributionURI+"/"+compositeURI;
+        DeployedComposite dc = startedComposites.remove(key);
+        if (dc == null) {
+            throw new IllegalArgumentException("No startd composite found: " + key);
+        }
+        dc.stop();
+
+        loop: for (String curi : dc.getContributionURIs()) {
+            for (DeployedComposite started : startedComposites.values()) {
+                if (started.getContributionURIs().contains(curi)) {
+                    continue loop;
+                }
+            }
+            uninstallContribution(curi);
+        }
+    }
+
     public String getDomainName() {
         return domainRegistry.getDomainName();
     }