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();
     }


Reply via email to