From dc3bc3775abbe9459fc6de3243470f2aae76ad37 Mon Sep 17 00:00:00 2001 From: antelder Date: Fri, 3 Jun 2011 14:25:04 +0000 Subject: Update to use the new Deployer method git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1131055 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/tuscany/sca/impl/DependencyUtils.java | 82 +++------------------- 1 file changed, 9 insertions(+), 73 deletions(-) (limited to 'sca-java-2.x/trunk/modules/domain-node/src/main') diff --git a/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/DependencyUtils.java b/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/DependencyUtils.java index f7c075782a..08c426da42 100644 --- a/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/DependencyUtils.java +++ b/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/DependencyUtils.java @@ -23,12 +23,9 @@ import java.io.BufferedOutputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.StringReader; -import java.util.ArrayList; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; -import java.util.Set; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; @@ -37,16 +34,15 @@ import javax.xml.stream.XMLStreamException; import org.apache.tuscany.sca.TuscanyRuntime; 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.java.JavaImport; -import org.apache.tuscany.sca.contribution.namespace.NamespaceImport; import org.apache.tuscany.sca.contribution.processor.ContributionReadException; +import org.apache.tuscany.sca.deployment.Deployer; +import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.monitor.ValidationException; public class DependencyUtils { public static List getDependencies(String contributionURI, Map possibles) throws ValidationException, IOException, ContributionReadException, XMLStreamException { + Deployer deployer = TuscanyRuntime.newInstance().getDeployer(); Map contributionMetaDatas = new HashMap(); for (String curi : possibles.keySet()) { @@ -65,76 +61,16 @@ public class DependencyUtils { } bos.close(); - contributionMetaDatas.put(curi, (ContributionMetadata)TuscanyRuntime.newInstance().getDeployer().loadXMLDocument(new StringReader(baos.toString()))); + contributionMetaDatas.put(curi, (ContributionMetadata)deployer.loadXMLDocument(new StringReader(baos.toString()))); } } zis.close(); // close it so no one tries to reuse the already read stream } - return getDependencies(contributionMetaDatas, contributionURI); - } - - public static List getDependencies(Map possibles, String targetURI) throws ValidationException { - if (!possibles.containsKey(targetURI)) { - throw new IllegalArgumentException(targetURI); + Monitor monitor = deployer.createMonitor(); + try { + return deployer.getDependencies(contributionMetaDatas, contributionURI, monitor); + } finally { + monitor.analyzeProblems(); } - - Set dependencies = new HashSet(); - - // Go through the contribution imports - for (Import import_ : possibles.get(targetURI).getImports()) { - boolean resolved = false; - - // Go through all contribution candidates and their exports - List matchingExports = new ArrayList(); - - for (String dependencyURI : possibles.keySet()) { - if (dependencyURI.equals(targetURI)) { - // Do not self import - continue; - } - ContributionMetadata dependency = possibles.get(dependencyURI); - - // When a contribution contains a reference to an artifact from a namespace that - // is declared in an import statement of the contribution, if the SCA artifact - // resolution mechanism is used to resolve the artifact, the SCA runtime MUST resolve - // artifacts from the locations identified by the import statement(s) for the namespace. - if (import_ instanceof NamespaceImport) { - NamespaceImport namespaceImport = (NamespaceImport)import_; - if (namespaceImport.getLocation() != null) - if (!namespaceImport.getLocation().equals(dependencyURI)) - continue; - } - if (import_ instanceof JavaImport) { - JavaImport javaImport = (JavaImport)import_; - if (javaImport.getLocation() != null) - if (!javaImport.getLocation().equals(dependencyURI)) - continue; - } - - for (Export export : dependency.getExports()) { - - // If an export from a contribution matches the import in hand - // add that contribution to the dependency set - if (import_.match(export)) { - resolved = true; - matchingExports.add(export); - - if (!dependencies.contains(dependencyURI)) { - dependencies.add(dependencyURI); - - // Now add the dependencies of that contribution - getDependencies(possibles, dependencyURI); - - } // end if - } // end if - } // end for - } // end for - - if (!resolved) { - throw new ValidationException("Contribution " + targetURI + " has unresolved Import: " + import_); - } - } - - return new ArrayList(dependencies); } } -- cgit v1.2.3