summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/deployment/src/main
diff options
context:
space:
mode:
authorantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2011-06-03 14:16:09 +0000
committerantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2011-06-03 14:16:09 +0000
commit20d7bf60e644809a53bac8ab0b3265b400cc8fda (patch)
tree6146b4f1c56edf308d767ee87002c4fddb4f2e94 /sca-java-2.x/trunk/modules/deployment/src/main
parent52fd5c5e9f79e26aaa8f31cf48b91bb233b56635 (diff)
Add a method to Deployer to get a contributions dependencies from a set of contribution metadata
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1131053 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/trunk/modules/deployment/src/main')
-rw-r--r--sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/Deployer.java10
-rw-r--r--sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/DeployerImpl.java27
2 files changed, 35 insertions, 2 deletions
diff --git a/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/Deployer.java b/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/Deployer.java
index f85bab06f4..f2af30b145 100644
--- a/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/Deployer.java
+++ b/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/Deployer.java
@@ -36,6 +36,7 @@ import org.apache.tuscany.sca.assembly.builder.BuilderContext;
import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException;
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.processor.ContributionReadException;
import org.apache.tuscany.sca.contribution.processor.ContributionResolveException;
import org.apache.tuscany.sca.contribution.processor.ContributionWriteException;
@@ -220,4 +221,13 @@ public interface Deployer extends LifeCycleListener {
void resolve(Contribution c, List<Contribution> dependentContributions, Monitor monitor) throws ContributionResolveException, CompositeBuilderException;
public Contribution cloneSystemContribution(Monitor monitor);
+
+ /**
+ * Get a contributions dependencies from meta data without having to load a Contribution
+ * @param possibles a Map with key contributionURI and value the contribution metaData
+ * @param targetURI the contributionURI to find the dependencies of
+ * @param monitor
+ * @return the list of contribution URIs
+ */
+ public List<String> getDependencies(Map<String, ContributionMetadata> possibles, String targetURI, Monitor monitor);
}
diff --git a/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/DeployerImpl.java b/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/DeployerImpl.java
index 1d78b2f86a..dc7f5b29b5 100644
--- a/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/DeployerImpl.java
+++ b/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/DeployerImpl.java
@@ -26,6 +26,7 @@ import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
@@ -57,6 +58,7 @@ import org.apache.tuscany.sca.common.xml.stax.StAXHelper;
import org.apache.tuscany.sca.contribution.Artifact;
import org.apache.tuscany.sca.contribution.Contribution;
import org.apache.tuscany.sca.contribution.ContributionFactory;
+import org.apache.tuscany.sca.contribution.ContributionMetadata;
import org.apache.tuscany.sca.contribution.DefaultImport;
import org.apache.tuscany.sca.contribution.Export;
import org.apache.tuscany.sca.contribution.Import;
@@ -89,9 +91,9 @@ import org.apache.tuscany.sca.monitor.Monitor;
import org.apache.tuscany.sca.monitor.MonitorFactory;
import org.apache.tuscany.sca.monitor.ValidationException;
import org.apache.tuscany.sca.runtime.BaseDomainRegistry;
+import org.apache.tuscany.sca.runtime.ContributionDescription;
import org.apache.tuscany.sca.runtime.DomainRegistry;
import org.apache.tuscany.sca.runtime.EndpointReferenceBinder;
-import org.apache.tuscany.sca.runtime.ContributionDescription;
import org.apache.tuscany.sca.xsd.XSDFactory;
import org.apache.tuscany.sca.xsd.XSDefinition;
@@ -227,7 +229,7 @@ public class DeployerImpl implements Deployer {
// push context here as the "stack" in this case is a list of nexted contributions
// through which imports have been chased which may not make much sense to the
// user so just report the contribution in error
- monitor.pushContext("Contribution: " + contribution.getLocation());
+ monitor.pushContext("Contribution: " + contribution.getURI());
Monitor.error(monitor, this, DEPLOYER_IMPL_VALIDATION_MESSAGES, "UnresolvedImport", import_);
monitor.popContext();
}
@@ -249,6 +251,27 @@ public class DeployerImpl implements Deployer {
contribution.getDependencies().addAll(dependencies);
}
+
+ public List<String> getDependencies(Map<String, ContributionMetadata> possibles, String targetURI, Monitor monitor) {
+ Map<String, Contribution> contributions = new HashMap<String, Contribution>();
+ for (String curi : possibles.keySet()) {
+ Contribution c = contributionFactory.createContribution();
+ c.setURI(curi);
+ c.mergeMetaData(possibles.get(curi));
+ contributions.put(curi, c);
+ }
+
+ Contribution tc = contributions.remove(targetURI);
+ buildDependencies(tc, new ArrayList<Contribution>(contributions.values()), monitor);
+
+ List<String> dcuris = new ArrayList<String>();
+ for (Contribution dc : tc.getDependencies()) {
+ dcuris.add(dc.getURI());
+ }
+ dcuris.remove(targetURI);
+ return dcuris;
+ }
+
/**
* Pre-resolve phase for contributions, to set up handling of imports and exports prior to full resolution