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/04/23 07:55:38 UTC
svn commit: r650753 - in
/incubator/tuscany/java/sca/modules/workspace-impl/src:
main/java/org/apache/tuscany/sca/workspace/builder/impl/
main/java/org/apache/tuscany/sca/workspace/processor/impl/
test/java/org/apache/tuscany/sca/workspace/builder/impl/
Author: jsdelfino
Date: Tue Apr 22 22:55:36 2008
New Revision: 650753
URL: http://svn.apache.org/viewvc?rev=650753&view=rev
Log:
Handle initialization of imports/exports in ContributionDependencyBuilder.
Modified:
incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderImpl.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/test/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderTestCase.java
Modified: incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderImpl.java?rev=650753&r1=650752&r2=650753&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderImpl.java (original)
+++ incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderImpl.java Tue Apr 22 22:55:36 2008
@@ -24,13 +24,13 @@
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl;
import org.apache.tuscany.sca.contribution.Contribution;
import org.apache.tuscany.sca.contribution.Export;
import org.apache.tuscany.sca.contribution.Import;
+import org.apache.tuscany.sca.contribution.resolver.DefaultImportAllModelResolver;
import org.apache.tuscany.sca.monitor.Monitor;
import org.apache.tuscany.sca.monitor.Problem;
import org.apache.tuscany.sca.monitor.Problem.Severity;
@@ -57,17 +57,17 @@
/**
* Calculate the set of contributions that a contribution depends on.
- * @param workspace
* @param contribution
+ * @param workspace
* @return
*/
- public List<Contribution> buildContributionDependencies(Workspace workspace, Contribution contribution) {
+ public List<Contribution> buildContributionDependencies(Contribution contribution, Workspace workspace) {
List<Contribution> dependencies = new ArrayList<Contribution>();
Set<Contribution> set = new HashSet<Contribution>();
dependencies.add(contribution);
set.add(contribution);
- addContributionDependencies(workspace, contribution, dependencies, set);
+ addContributionDependencies(contribution, workspace, dependencies, set);
Collections.reverse(dependencies);
return dependencies;
@@ -75,18 +75,20 @@
/**
* Analyze a contribution and add its dependencies to the given dependency set.
- * @param workspace
* @param contribution
+ * @param workspace
* @param dependencies
* @param set
*/
- private void addContributionDependencies(Workspace workspace, Contribution contribution, List<Contribution> dependencies, Set<Contribution> set) {
+ private void addContributionDependencies(Contribution contribution, Workspace workspace, List<Contribution> dependencies, Set<Contribution> set) {
// Go through the contribution imports
for (Import import_: contribution.getImports()) {
boolean resolved = false;
// Go through all contribution candidates and their exports
+ List<Contribution> matched = new ArrayList<Contribution>();
+ Set<Contribution> mset = new HashSet<Contribution>();
for (Contribution dependency: workspace.getContributions()) {
for (Export export: dependency.getExports()) {
@@ -94,19 +96,29 @@
// add that contribution to the dependency set
if (import_.match(export)) {
resolved = true;
+
+ if (!mset.contains(dependency)) {
+ mset.add(dependency);
+ matched.add(dependency);
+ }
if (!set.contains(dependency)) {
set.add(dependency);
dependencies.add(dependency);
- // Now add the dependencies of that contribution
- addContributionDependencies(workspace, dependency, dependencies, set);
+ // Now add the dependencies of that contribution
+ addContributionDependencies(dependency, workspace, dependencies, set);
}
}
}
}
- if (!resolved) {
+ if (resolved) {
+
+ // Initialize the import's model resolver
+ import_.setModelResolver(new DefaultImportAllModelResolver(import_, matched));
+
+ } else {
// Record import resolution issue
Problem problem = new ProblemImpl(this.getClass().getName(), "workspace-validation-messages", Severity.WARNING, import_, "Unresolved import");
monitor.problem(problem);
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=650753&r1=650752&r2=650753&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 Tue Apr 22 22:55:36 2008
@@ -27,6 +27,7 @@
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.Export;
import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
import org.apache.tuscany.sca.contribution.resolver.ExtensibleModelResolver;
@@ -123,6 +124,11 @@
contribution.getDeployables().add((Composite)artifact.getModel());
}
}
+ }
+
+ // Initialize the exports model resolvers
+ for (Export export: contribution.getExports()) {
+ export.setModelResolver(modelResolver);
}
return contribution;
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=650753&r1=650752&r2=650753&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 Tue Apr 22 22:55:36 2008
@@ -29,6 +29,7 @@
import org.apache.tuscany.sca.assembly.Composite;
import org.apache.tuscany.sca.contribution.Contribution;
import org.apache.tuscany.sca.contribution.ContributionFactory;
+import org.apache.tuscany.sca.contribution.Export;
import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
import org.apache.tuscany.sca.contribution.resolver.ExtensibleModelResolver;
@@ -132,6 +133,11 @@
}
}
}
+ }
+
+ // Initialize the exports model resolvers
+ for (Export export: contribution.getExports()) {
+ export.setModelResolver(modelResolver);
}
return contribution;
Modified: incubator/tuscany/java/sca/modules/workspace-impl/src/test/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-impl/src/test/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderTestCase.java?rev=650753&r1=650752&r2=650753&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-impl/src/test/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/workspace-impl/src/test/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderTestCase.java Tue Apr 22 22:55:36 2008
@@ -91,7 +91,7 @@
another.getExports().add(export);
ContributionDependencyBuilderImpl analyzer = new ContributionDependencyBuilderImpl(null);
- List<Contribution> dependencies = analyzer.buildContributionDependencies(workspace, importer);
+ List<Contribution> dependencies = analyzer.buildContributionDependencies(importer, workspace);
assertTrue(dependencies.size() == 3);
assertTrue(dependencies.contains(importer));
assertTrue(dependencies.contains(imported));