summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk
diff options
context:
space:
mode:
authorantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2011-05-15 06:51:48 +0000
committerantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2011-05-15 06:51:48 +0000
commitb38b9ae2715b97ba5288de178dd4beafac2f68d0 (patch)
tree1212b6194f510208a87f5cd8ef59b7a616e0841b /sca-java-2.x/trunk
parent70b07ca1705492ab71dbf11f4738ae859f0fd115 (diff)
Add a method to Contribution to merge in ContributionMetadata
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1103278 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/trunk')
-rw-r--r--sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Contribution.java2
-rw-r--r--sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionImpl.java21
2 files changed, 23 insertions, 0 deletions
diff --git a/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Contribution.java b/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Contribution.java
index af2dd66863..1e8c54cc9c 100644
--- a/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Contribution.java
+++ b/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Contribution.java
@@ -129,4 +129,6 @@ public interface Contribution extends Artifact, Extensible {
* @return the model
*/
<T> T getArtifactModel(String uri);
+
+ void mergeMetaData(ContributionMetadata metaData);
} \ No newline at end of file
diff --git a/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionImpl.java b/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionImpl.java
index 31ddc5b793..c1b348cc8b 100644
--- a/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionImpl.java
+++ b/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionImpl.java
@@ -22,12 +22,14 @@ package org.apache.tuscany.sca.contribution.impl;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
+import java.util.ListIterator;
import java.util.Set;
import org.apache.tuscany.sca.assembly.Composite;
import org.apache.tuscany.sca.assembly.impl.ExtensibleImpl;
import org.apache.tuscany.sca.contribution.Artifact;
import org.apache.tuscany.sca.contribution.Contribution;
+import org.apache.tuscany.sca.contribution.ContributionMetadata;
import org.apache.tuscany.sca.contribution.Export;
import org.apache.tuscany.sca.contribution.Import;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
@@ -163,4 +165,23 @@ class ContributionImpl extends ExtensibleImpl implements Contribution {
}
throw new IllegalArgumentException("artifact not found: " + uri);
}
+
+ @Override
+ public void mergeMetaData(ContributionMetadata metaData) {
+ imports.addAll(metaData.getImports());
+ exports.addAll(metaData.getExports());
+ if (metaData.getDeployables().size() > 0) {
+ // Update the deployable Composite objects with the correct Composite object for the artifact
+ for (Artifact a : getArtifacts()) {
+ if (a.getModel() instanceof Composite) {
+ for (ListIterator<Composite> lit = metaData.getDeployables().listIterator(); lit.hasNext();) {
+ if (lit.next().getName().equals(((Composite)a.getModel()).getName())) {
+ lit.set((Composite)a.getModel());
+ }
+ }
+ }
+ }
+ deployables.addAll(metaData.getDeployables());
+ }
+ }
}