Author: antelder
Date: Sun Jun 19 07:44:31 2011
New Revision: 1137311
URL: http://svn.apache.org/viewvc?rev=1137311&view=rev
Log:
Update contribution update to handle additional deployed composites and a
testcase for that
Modified:
tuscany/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java
tuscany/sca-java-2.x/trunk/modules/domain-node/src/test/java/org/apache/tuscany/sca/impl/ContributionUpdateTestCase.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=1137311&r1=1137310&r2=1137311&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
Sun Jun 19 07:44:31 2011
@@ -119,15 +119,23 @@ public class NodeImpl implements Node {
uninstallContribution(uri);
installContribution(uri, contributionURL, metaDataURL,
dependentContributionURIs);
+
+ // merge in additional deployables
+ if (ic.getAdditionalDeployables().size() > 0) {
+ ContributionDescription newIC = getInstalledContribution(uri);
+
newIC.getAdditionalDeployables().putAll(ic.getAdditionalDeployables());
+ domainRegistry.updateInstalledContribution(newIC);
+ }
// stop/start all started composites using the contribution
for (DeployedComposite dc : new
ArrayList<DeployedComposite>(startedComposites.values())) {
if (dc.getContributionURIs().contains(uri)) {
+ String dcContributionURI = dc.getContributionURIs().get(0);
String dcCompositeURI = dc.getURI();
- stopComposite(uri, dcCompositeURI);
- String key = uri + "/" + dcCompositeURI;
+ stopComposite(dcContributionURI, dcCompositeURI);
+ String key = dcContributionURI + "/" + dcCompositeURI;
stoppedComposites.remove(key);
- startComposite(uri, dcCompositeURI);
+ startComposite(dcContributionURI, dcCompositeURI);
}
}
Modified:
tuscany/sca-java-2.x/trunk/modules/domain-node/src/test/java/org/apache/tuscany/sca/impl/ContributionUpdateTestCase.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/domain-node/src/test/java/org/apache/tuscany/sca/impl/ContributionUpdateTestCase.java?rev=1137311&r1=1137310&r2=1137311&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/domain-node/src/test/java/org/apache/tuscany/sca/impl/ContributionUpdateTestCase.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/domain-node/src/test/java/org/apache/tuscany/sca/impl/ContributionUpdateTestCase.java
Sun Jun 19 07:44:31 2011
@@ -19,6 +19,7 @@
package org.apache.tuscany.sca.impl;
import java.io.FileNotFoundException;
+import java.io.FileReader;
import java.util.Collection;
import javax.xml.stream.XMLStreamException;
@@ -52,4 +53,23 @@ public class ContributionUpdateTestCase
Assert.assertEquals(1, eps.size());
Assert.assertEquals("Helloworld2Component#service-binding(Helloworld/Helloworld)",
eps.iterator().next().getURI());
}
+
+ @Test
+ public void updateWithAdditionalDeployablesTest() throws
NoSuchServiceException, NoSuchDomainException, ContributionReadException,
ActivationException, ValidationException, XMLStreamException,
FileNotFoundException {
+ Node node =
TuscanyRuntime.newInstance().createNode("updateWithAdditionalDeployablesTest");
+ String curi =
node.installContribution("src/test/resources/sample-helloworld.jar");
+ String compURI = node.addDeploymentComposite(curi, new
FileReader("src/test/resources/helloworld2.composite"));
+ node.startComposite(curi, compURI);
+
+ Collection<Endpoint> eps =
((NodeImpl)node).getEndpointRegistry().getEndpoints();
+ Assert.assertEquals(1, eps.size());
+
Assert.assertEquals("Helloworld2Component#service-binding(Helloworld/Helloworld)",
eps.iterator().next().getURI());
+
+ ((NodeImpl)node).updateContribution(curi,
"src/test/resources/sample-helloworld.jar", null, null);
+
+ eps = ((NodeImpl)node).getEndpointRegistry().getEndpoints();
+ Assert.assertEquals(1, eps.size());
+
Assert.assertEquals("Helloworld2Component#service-binding(Helloworld/Helloworld)",
eps.iterator().next().getURI());
+ }
+
}