From 9fb2fb275d3f69a287ac4f1c7d55190fb7a7bb3b Mon Sep 17 00:00:00 2001 From: jsdelfino Date: Mon, 6 Oct 2008 08:32:38 +0000 Subject: Work in progress. Started to clean up cross-bundle dependencies on ContributionService implementation class, the various CompositeBuilder implementation classes and the ContributionDependencyBuilder implementation class. Added extension points for ContributionBuilders and CompositeBuilders to have them discovered and loaded by the Equinox ServiceDiscovery like other extension points. Moved injection of monitors and SCA definitions to the build methods instead of the constructors to remove references to these implementation constructors. Simplified NodeImpl a bit to remove references to other runtime implementation classes. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@702000 13f79535-47bb-0310-9956-ffa450edef68 --- .../impl/ContributionDependencyBuilderImpl.java | 43 +++++++++++----------- .../impl/ContributionContentProcessor.java | 8 ++-- .../processor/impl/ContributionInfoProcessor.java | 8 ++-- 3 files changed, 29 insertions(+), 30 deletions(-) (limited to 'branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany') diff --git a/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderImpl.java b/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderImpl.java index 408debdc8e..bdfd244293 100644 --- a/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderImpl.java +++ b/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderImpl.java @@ -31,47 +31,45 @@ import org.apache.tuscany.sca.contribution.DefaultImport; import org.apache.tuscany.sca.contribution.Export; import org.apache.tuscany.sca.contribution.Import; import org.apache.tuscany.sca.contribution.resolver.DefaultImportModelResolver; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.monitor.Problem; import org.apache.tuscany.sca.monitor.Problem.Severity; -import org.apache.tuscany.sca.monitor.impl.ProblemImpl; import org.apache.tuscany.sca.workspace.Workspace; -import org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder; +import org.apache.tuscany.sca.workspace.builder.ContributionBuilder; +import org.apache.tuscany.sca.workspace.builder.ContributionBuilderException; /** * A contribution dependency builder. * * @version $Rev$ $Date$ */ -public class ContributionDependencyBuilderImpl implements ContributionDependencyBuilder { +public class ContributionDependencyBuilderImpl implements ContributionBuilder { private static final Logger logger = Logger.getLogger(ContributionDependencyBuilderImpl.class.getName()); - private Monitor monitor; - /** * Constructs a new ContributionDependencyBuilder. */ - public ContributionDependencyBuilderImpl(Monitor monitor) { - - this.monitor = monitor; + public ContributionDependencyBuilderImpl(FactoryExtensionPoint factories) { } - /** - * Calculate the set of contributions that a contribution depends on. - * @param contribution - * @param workspace - * @return - */ - public List buildContributionDependencies(Contribution contribution, Workspace workspace) { + public String getID() { + return "org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder"; + } + + public void build(Contribution contribution, Workspace workspace, Monitor monitor) throws ContributionBuilderException{ + contribution.getDependencies().clear(); + List dependencies = new ArrayList(); Set set = new HashSet(); dependencies.add(contribution); set.add(contribution); - addContributionDependencies(contribution, workspace, dependencies, set); + addContributionDependencies(contribution, workspace, dependencies, set, monitor); Collections.reverse(dependencies); - return dependencies; + + contribution.getDependencies().addAll(dependencies); } /** @@ -80,8 +78,9 @@ public class ContributionDependencyBuilderImpl implements ContributionDependency * @param workspace * @param dependencies * @param set + * @param monitor */ - private void addContributionDependencies(Contribution contribution, Workspace workspace, List dependencies, Set set) { + private void addContributionDependencies(Contribution contribution, Workspace workspace, List dependencies, Set set, Monitor monitor) { // Go through the contribution imports for (Import import_: contribution.getImports()) { @@ -107,7 +106,7 @@ public class ContributionDependencyBuilderImpl implements ContributionDependency dependencies.add(dependency); // Now add the dependencies of that contribution - addContributionDependencies(dependency, workspace, dependencies, set); + addContributionDependencies(dependency, workspace, dependencies, set, monitor); } } } @@ -122,7 +121,7 @@ public class ContributionDependencyBuilderImpl implements ContributionDependency } else { // Record import resolution issue if (!(import_ instanceof DefaultImport)) { - warning("UnresolvedImport", import_, import_); + warning(monitor, "UnresolvedImport", import_, import_); } } } @@ -135,9 +134,9 @@ public class ContributionDependencyBuilderImpl implements ContributionDependency * @param message * @param model */ - private void warning(String message, Object model, Object... messageParameters) { + private static void warning(Monitor monitor, String message, Object model, Object... messageParameters) { if (monitor != null) { - Problem problem = monitor.createProblem(getClass().getName(), "workspace-validation-messages", Severity.WARNING, model, message, (Object[])messageParameters); + Problem problem = monitor.createProblem(ContributionDependencyBuilderImpl.class.getName(), "workspace-validation-messages", Severity.WARNING, model, message, (Object[])messageParameters); monitor.problem(problem); } } diff --git a/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionContentProcessor.java b/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionContentProcessor.java index 880e95480e..9aa57361fc 100644 --- a/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionContentProcessor.java +++ b/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionContentProcessor.java @@ -32,7 +32,6 @@ import org.apache.tuscany.sca.contribution.DefaultExport; import org.apache.tuscany.sca.contribution.DefaultImport; import org.apache.tuscany.sca.contribution.Export; import org.apache.tuscany.sca.contribution.Import; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; @@ -46,6 +45,7 @@ import org.apache.tuscany.sca.contribution.scanner.ContributionScanner; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.core.UtilityExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.workspace.scanner.impl.DirectoryContributionScanner; @@ -60,14 +60,14 @@ import org.apache.tuscany.sca.workspace.scanner.impl.JarContributionScanner; public class ContributionContentProcessor implements URLArtifactProcessor{ private ContributionFactory contributionFactory; private ModelResolverExtensionPoint modelResolvers; - private ModelFactoryExtensionPoint modelFactories; + private FactoryExtensionPoint modelFactories; private URLArtifactProcessor artifactProcessor; private StAXArtifactProcessor extensionProcessor; private UtilityExtensionPoint utilities; private Monitor monitor = null; public ContributionContentProcessor(ExtensionPointRegistry extensionPoints, StAXArtifactProcessor extensionProcessor, Monitor monitor) { - this.modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + this.modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); this.modelResolvers = extensionPoints.getExtensionPoint(ModelResolverExtensionPoint.class); hackResolvers(modelResolvers); this.monitor = monitor; @@ -77,7 +77,7 @@ public class ContributionContentProcessor implements URLArtifactProcessor artifactProcessor, StAXArtifactProcessor extensionProcessor, Monitor monitor) { this.modelFactories = modelFactories; this.modelResolvers = modelResolvers; diff --git a/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java b/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java index 6ef0fa753d..21a0382347 100644 --- a/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java +++ b/branches/sca-equinox/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java @@ -34,7 +34,6 @@ import org.apache.tuscany.sca.contribution.DefaultExport; import org.apache.tuscany.sca.contribution.DefaultImport; import org.apache.tuscany.sca.contribution.Export; import org.apache.tuscany.sca.contribution.Import; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; @@ -48,6 +47,7 @@ import org.apache.tuscany.sca.contribution.scanner.ContributionScanner; import org.apache.tuscany.sca.contribution.service.ContributionReadException; import org.apache.tuscany.sca.contribution.service.ContributionResolveException; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.core.FactoryExtensionPoint; import org.apache.tuscany.sca.monitor.Monitor; import org.apache.tuscany.sca.workspace.scanner.impl.DirectoryContributionScanner; import org.apache.tuscany.sca.workspace.scanner.impl.JarContributionScanner; @@ -61,13 +61,13 @@ import org.apache.tuscany.sca.workspace.scanner.impl.JarContributionScanner; public class ContributionInfoProcessor implements URLArtifactProcessor{ private ContributionFactory contributionFactory; private ModelResolverExtensionPoint modelResolvers; - private ModelFactoryExtensionPoint modelFactories; + private FactoryExtensionPoint modelFactories; private URLArtifactProcessorExtensionPoint artifactProcessors; private URLArtifactProcessor artifactProcessor; private StAXArtifactProcessor extensionProcessor; public ContributionInfoProcessor(ExtensionPointRegistry extensionPoints, StAXArtifactProcessor extensionProcessor, Monitor monitor) { - this.modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); + this.modelFactories = extensionPoints.getExtensionPoint(FactoryExtensionPoint.class); this.modelResolvers = extensionPoints.getExtensionPoint(ModelResolverExtensionPoint.class); hackResolvers(modelResolvers); URLArtifactProcessorExtensionPoint artifactProcessors = extensionPoints.getExtensionPoint(URLArtifactProcessorExtensionPoint.class); @@ -77,7 +77,7 @@ public class ContributionInfoProcessor implements URLArtifactProcessor artifactProcessor) { + public ContributionInfoProcessor(FactoryExtensionPoint modelFactories, ModelResolverExtensionPoint modelResolvers, URLArtifactProcessor artifactProcessor) { this.modelFactories = modelFactories; this.modelResolvers = modelResolvers; hackResolvers(modelResolvers); -- cgit v1.2.3