You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2008/03/03 19:10:34 UTC
svn commit: r633219 - in
/incubator/tuscany/java/sca/modules/workspace-impl/src:
main/java/org/apache/tuscany/sca/workspace/dependency/impl/
main/java/org/apache/tuscany/sca/workspace/processor/impl/
main/java/org/apache/tuscany/sca/workspace/scanner/i...
Author: jsdelfino
Date: Mon Mar 3 10:10:32 2008
New Revision: 633219
URL: http://svn.apache.org/viewvc?rev=633219&view=rev
Log:
Make sure that contribution dependencies are returned in the correct order. Fixed the getArtifactURL method to always return a URL.
Modified:
incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/dependency/impl/ContributionDependencyAnalyzer.java
incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionContentProcessor.java
incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java
incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/scanner/impl/DirectoryContributionScanner.java
incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/scanner/impl/JarContributionScanner.java
incubator/tuscany/java/sca/modules/workspace-impl/src/test/java/org/apache/tuscany/sca/workspace/dependency/impl/ContributionDependencyAnalyzerTestCase.java
Modified: incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/dependency/impl/ContributionDependencyAnalyzer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/dependency/impl/ContributionDependencyAnalyzer.java?rev=633219&r1=633218&r2=633219&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/dependency/impl/ContributionDependencyAnalyzer.java (original)
+++ incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/dependency/impl/ContributionDependencyAnalyzer.java Mon Mar 3 10:10:32 2008
@@ -19,7 +19,10 @@
package org.apache.tuscany.sca.workspace.dependency.impl;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
import org.apache.tuscany.sca.contribution.Contribution;
@@ -47,12 +50,15 @@
* @param contribution
* @return
*/
- public Set<Contribution> calculateContributionDependencies(Workspace workspace, Contribution contribution) {
- Set<Contribution> dependencies = new HashSet<Contribution>();
+ public List<Contribution> calculateContributionDependencies(Workspace workspace, Contribution contribution) {
+ List<Contribution> dependencies = new ArrayList<Contribution>();
+ Set<Contribution> set = new HashSet<Contribution>();
- addContributionDependencies(workspace, contribution, dependencies);
- dependencies.remove(contribution);
+ dependencies.add(contribution);
+ set.add(contribution);
+ addContributionDependencies(workspace, contribution, dependencies, set);
+ Collections.reverse(dependencies);
return dependencies;
}
@@ -61,8 +67,9 @@
* @param workspace
* @param contribution
* @param dependencies
+ * @param set
*/
- private void addContributionDependencies(Workspace workspace, Contribution contribution, Set<Contribution> dependencies) {
+ private void addContributionDependencies(Workspace workspace, Contribution contribution, List<Contribution> dependencies, Set<Contribution> set) {
// Go through the contribution imports
for (Import import_: contribution.getImports()) {
@@ -74,11 +81,12 @@
// If an export from a contribution matches the import in hand
// add that contribution to the dependency set
if (import_.match(export)) {
- if (!dependencies.contains(dependency)) {
+ if (!set.contains(dependency)) {
+ set.add(dependency);
dependencies.add(dependency);
// Now add the dependencies of that contribution
- addContributionDependencies(workspace, dependency, dependencies);
+ addContributionDependencies(workspace, dependency, dependencies, set);
}
}
}
Modified: incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionContentProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionContentProcessor.java?rev=633219&r1=633218&r2=633219&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionContentProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionContentProcessor.java Mon Mar 3 10:10:32 2008
@@ -69,6 +69,7 @@
// Create contribution model
Contribution contribution = contributionFactory.createContribution();
contribution.setURI(contributionURI.toString());
+ contribution.setLocation(contributionURL.toString());
ModelResolver modelResolver = new ExtensibleModelResolver(contribution, modelResolvers, modelFactories);
contribution.setModelResolver(modelResolver);
contribution.setUnresolved(true);
@@ -120,7 +121,9 @@
for (Artifact artifact : contribution.getArtifacts()) {
Object model = artifact.getModel();
if (model != null) {
- artifactProcessor.resolve(model, contributionResolver);
+ //FIXME Resolution is broken right now since Java imports
+ // expect a classloader to be associated with the contribution
+ //artifactProcessor.resolve(model, contributionResolver);
}
}
Modified: incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java?rev=633219&r1=633218&r2=633219&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java Mon Mar 3 10:10:32 2008
@@ -19,6 +19,8 @@
package org.apache.tuscany.sca.workspace.processor.impl;
import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
import java.net.URI;
import java.net.URL;
@@ -67,6 +69,7 @@
// Create contribution model
Contribution contribution = contributionFactory.createContribution();
contribution.setURI(contributionURI.toString());
+ contribution.setLocation(contributionURL.toString());
ModelResolver modelResolver = new ExtensibleModelResolver(contribution, modelResolvers, modelFactories);
contribution.setModelResolver(modelResolver);
contribution.setUnresolved(true);
@@ -84,12 +87,19 @@
Contribution.SCA_CONTRIBUTION_GENERATED_META,
Contribution.SCA_CONTRIBUTION_META}) {
URL url = scanner.getArtifactURL(contributionURL, path);
- if (url != null) {
- Contribution c = (Contribution)artifactProcessor.read(contributionURL, URI.create(path), url);
- contribution.getImports().addAll(c.getImports());
- contribution.getExports().addAll(c.getExports());
- contribution.getDeployables().addAll(c.getDeployables());
+ try {
+ // Check if the file actually exists before trying to read it
+ InputStream is = url.openStream();
+ is.close();
+ } catch (IOException e) {
+ continue;
}
+
+ // Read the sca-contribution.xml file
+ Contribution c = (Contribution)artifactProcessor.read(contributionURL, URI.create(path), url);
+ contribution.getImports().addAll(c.getImports());
+ contribution.getExports().addAll(c.getExports());
+ contribution.getDeployables().addAll(c.getDeployables());
}
return contribution;
Modified: incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/scanner/impl/DirectoryContributionScanner.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/scanner/impl/DirectoryContributionScanner.java?rev=633219&r1=633218&r2=633219&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/scanner/impl/DirectoryContributionScanner.java (original)
+++ incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/scanner/impl/DirectoryContributionScanner.java Mon Mar 3 10:10:32 2008
@@ -47,14 +47,10 @@
public URL getArtifactURL(URL contributionURL, String artifact) throws ContributionReadException {
File directory = directory(contributionURL);
File file = new File(directory, artifact);
- if (file.exists()) {
- try {
- return file.toURI().toURL();
- } catch (MalformedURLException e) {
- throw new ContributionReadException(e);
- }
- } else {
- return null;
+ try {
+ return file.toURI().toURL();
+ } catch (MalformedURLException e) {
+ throw new ContributionReadException(e);
}
}
Modified: incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/scanner/impl/JarContributionScanner.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/scanner/impl/JarContributionScanner.java?rev=633219&r1=633218&r2=633219&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/scanner/impl/JarContributionScanner.java (original)
+++ incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/scanner/impl/JarContributionScanner.java Mon Mar 3 10:10:32 2008
@@ -20,7 +20,6 @@
package org.apache.tuscany.sca.workspace.scanner.impl;
import java.io.IOException;
-import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
@@ -55,12 +54,6 @@
} else {
url = new URL("jar:" + contributionURL.toExternalForm() + "!/" + artifact);
}
- try {
- InputStream is = url.openStream();
- is.close();
- } catch (IOException e) {
- return null;
- }
return url;
} catch (MalformedURLException e) {
throw new ContributionReadException(e);
@@ -82,7 +75,7 @@
}
String name = entry.getName();
- if (!name.startsWith(".")) {
+ if (name.length() != 0 && !name.startsWith(".")) {
// Trim trailing /
if (name.endsWith("/")) {
@@ -101,7 +94,7 @@
} else {
name = name.substring(0, s);
}
- if (!names.contains(name)) {
+ if (name.length() != 0 && !names.contains(name)) {
names.add(name);
} else {
break;
Modified: incubator/tuscany/java/sca/modules/workspace-impl/src/test/java/org/apache/tuscany/sca/workspace/dependency/impl/ContributionDependencyAnalyzerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-impl/src/test/java/org/apache/tuscany/sca/workspace/dependency/impl/ContributionDependencyAnalyzerTestCase.java?rev=633219&r1=633218&r2=633219&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-impl/src/test/java/org/apache/tuscany/sca/workspace/dependency/impl/ContributionDependencyAnalyzerTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/workspace-impl/src/test/java/org/apache/tuscany/sca/workspace/dependency/impl/ContributionDependencyAnalyzerTestCase.java Mon Mar 3 10:10:32 2008
@@ -19,7 +19,7 @@
package org.apache.tuscany.sca.workspace.dependency.impl;
-import java.util.Set;
+import java.util.List;
import junit.framework.TestCase;
@@ -90,8 +90,9 @@
another.getExports().add(export);
ContributionDependencyAnalyzer analyzer = new ContributionDependencyAnalyzer();
- Set<Contribution> dependencies = analyzer.calculateContributionDependencies(workspace, importer);
- assertTrue(dependencies.size() == 2);
+ List<Contribution> dependencies = analyzer.calculateContributionDependencies(workspace, importer);
+ assertTrue(dependencies.size() == 3);
+ assertTrue(dependencies.contains(importer));
assertTrue(dependencies.contains(imported));
assertTrue(dependencies.contains(imported2));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org