Author: antelder
Date: Mon Jun 20 08:50:59 2011
New Revision: 1137546
URL: http://svn.apache.org/viewvc?rev=1137546&view=rev
Log:
Avoid exception in updateCOntribution if the contribution doesn't exist for
some reason, and add a new method to uninstall a contribution and stop any
started composites that were using it
Modified:
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/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=1137546&r1=1137545&r2=1137546&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
Mon Jun 20 08:50:59 2011
@@ -104,7 +104,7 @@ public class NodeImpl implements Node {
}
public boolean updateContribution(String uri, String contributionURL,
String metaDataURL, List<String> dependentContributionURIs) throws
ContributionReadException, ValidationException, ActivationException {
- ContributionDescription ic = getInstalledContribution(uri);
+ ContributionDescription ic =
domainRegistry.getInstalledContribution(uri);
if (ic == null) {
installContribution(uri, contributionURL, metaDataURL,
dependentContributionURIs);
return true;
@@ -503,4 +503,29 @@ public class NodeImpl implements Node {
}
return updated;
}
+
+ public void uninstallContribution(String contributionURI, boolean b)
throws ActivationException {
+ uninstallContribution(contributionURI);
+ if (!b) {
+ return;
+ }
+
+ // stop all started composites using the contribution
+ for (DeployedComposite dc : new
ArrayList<DeployedComposite>(startedComposites.values())) {
+ if (dc.getContributionURIs().contains(contributionURI)) {
+ String dcContributionURI = dc.getContributionURIs().get(0);
+ String dcCompositeURI = dc.getURI();
+ stopComposite(dcContributionURI, dcCompositeURI);
+ String key = dcContributionURI + "/" + dcCompositeURI;
+ stoppedComposites.remove(key);
+ }
+ }
+
+ // remove all stopped composites using the contribution
+ for (DeployedComposite dc : new
ArrayList<DeployedComposite>(stoppedComposites.values())) {
+ if (dc.getContributionURIs().contains(contributionURI)) {
+ stoppedComposites.remove(contributionURI + "/" + dc.getURI());
+ }
+ }
+ }
}