diff options
author | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2011-06-17 15:04:06 +0000 |
---|---|---|
committer | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2011-06-17 15:04:06 +0000 |
commit | b9c6321ba32b7df4eb4046e3ad512a4a6a37909b (patch) | |
tree | 11045b2106b580cb179bb199d705159e4263bf41 | |
parent | 88fbae2e3633f169a7bb664fd7fc1ce1013f7ad6 (diff) |
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
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1136907 13f79535-47bb-0310-9956-ffa450edef68
2 files changed, 20 insertions, 2 deletions
diff --git a/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/Node.java b/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/Node.java index 3373bcccdb..8531642389 100644 --- a/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/Node.java +++ b/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/Node.java @@ -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 diff --git a/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java b/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java index 68d8191d91..5855805ca4 100644 --- a/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java +++ b/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java @@ -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(); } |