diff options
author | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2011-06-19 07:25:03 +0000 |
---|---|---|
committer | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2011-06-19 07:25:03 +0000 |
commit | 82d2e8d40f5b562b13faba064cf2b5323343e2ae (patch) | |
tree | d94a99ff6061f47eced60e55ddcbb6cefc437c8f /sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java | |
parent | f78a216e05c75a2e708c26efb7c616b6f1bdf2ba (diff) |
Add an impl to the update contribution method and a testcase
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1137308 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r-- | sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java | 24 |
1 files changed, 21 insertions, 3 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 2d7c371975..619ec985ab 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 @@ -103,22 +103,40 @@ public class NodeImpl implements Node { return installContribution(uri, contributionURL, null, null); } - public boolean updateContribution(String uri, String contributionURL, String metaDataURL, List<String> dependentContributionURIs) throws ContributionReadException, ValidationException { + public boolean updateContribution(String uri, String contributionURL, String metaDataURL, List<String> dependentContributionURIs) throws ContributionReadException, ValidationException, ActivationException { ContributionDescription ic = getInstalledContribution(uri); if (ic == null) { installContribution(uri, contributionURL, metaDataURL, dependentContributionURIs); return true; } + // do this if only updating if the contribution has been modified: // if url equal and a file and last modified not changed // if metadata url equal and a file and laqst modified not changed // if (dependent contributions uris not changed) // return false - // uninstall contribution - // install contribution + uninstallContribution(uri); + + installContribution(uri, contributionURL, metaDataURL, dependentContributionURIs); + // stop/start all started composites using the contribution + for (DeployedComposite dc : new ArrayList<DeployedComposite>(startedComposites.values())) { + if (dc.getContributionURIs().contains(uri)) { + String dcCompositeURI = dc.getURI(); + stopComposite(uri, dcCompositeURI); + String key = uri + "/" + dcCompositeURI; + stoppedComposites.remove(key); + startComposite(uri, dcCompositeURI); + } + } + // remove all stopped composites using the contribution + for (DeployedComposite dc : new ArrayList<DeployedComposite>(stoppedComposites.values())) { + if (dc.getContributionURIs().contains(uri)) { + stoppedComposites.remove(uri + "/" + dc.getURI()); + } + } return true; } |