diff options
Diffstat (limited to 'sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl')
-rw-r--r-- | sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java | 20 |
1 files changed, 18 insertions, 2 deletions
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(); } |