diff options
author | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2009-04-22 21:51:38 +0000 |
---|---|---|
committer | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2009-04-22 21:51:38 +0000 |
commit | b354c03aecb7f30bfd65f0ec02a81ab915ba4966 (patch) | |
tree | 569564504b982d2a5bfb3ab3052c0c5130fcae28 /branches/sca-java-1.x/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java | |
parent | baa5887866a52cd40be16707d9741cbbad9d7263 (diff) |
Add "Extensible" support for the ContributionMetaData/Contribution/Import/Export models (TUSCANY-2983)
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@767683 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r-- | branches/sca-java-1.x/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java | 48 |
1 files changed, 25 insertions, 23 deletions
diff --git a/branches/sca-java-1.x/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java b/branches/sca-java-1.x/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java index 40e377604c..d7a05ff532 100644 --- a/branches/sca-java-1.x/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java +++ b/branches/sca-java-1.x/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/processor/impl/ContributionInfoProcessor.java @@ -6,15 +6,15 @@ * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations - * under the License. + * under the License. */ package org.apache.tuscany.sca.workspace.processor.impl; @@ -60,7 +60,7 @@ import org.apache.tuscany.sca.workspace.scanner.impl.JarContributionScanner; /** * URLArtifactProcessor that handles contribution files and returns a contribution * info model. - * + * * @version $Rev$ $Date$ */ public class ContributionInfoProcessor implements URLArtifactProcessor<Contribution>{ @@ -87,7 +87,7 @@ public class ContributionInfoProcessor implements URLArtifactProcessor<Contribut this.extensionProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, outputFactory, monitor); this.contributionFactory = modelFactories.getFactory(ContributionFactory.class); } - + /* public ContributionInfoProcessor(ModelFactoryExtensionPoint modelFactories, ModelResolverExtensionPoint modelResolvers, URLArtifactProcessor<Object> artifactProcessor) { this.modelFactories = modelFactories; @@ -97,17 +97,17 @@ public class ContributionInfoProcessor implements URLArtifactProcessor<Contribut this.contributionFactory = modelFactories.getFactory(ContributionFactory.class); } */ - + public String getArtifactType() { return ".contribution/info"; } - + public Class<Contribution> getModelType() { return null; } - + public Contribution read(URL parentURL, URI contributionURI, URL contributionURL) throws ContributionReadException { - + // Create contribution model Contribution contribution = contributionFactory.createContribution(); contribution.setURI(contributionURI.toString()); @@ -123,7 +123,7 @@ public class ContributionInfoProcessor implements URLArtifactProcessor<Contribut } else { scanner = new JarContributionScanner(); } - + // Read generated and user sca-contribution.xml files boolean contributionMetadata = false; for (String path: new String[]{ @@ -140,14 +140,16 @@ public class ContributionInfoProcessor implements URLArtifactProcessor<Contribut continue; } contributionMetadata = true; - + // Read the sca-contribution.xml file ContributionMetadata c = (ContributionMetadata)artifactProcessor.read(contributionURL, URI.create(path), url); contribution.getImports().addAll(c.getImports()); contribution.getExports().addAll(c.getExports()); contribution.getDeployables().addAll(c.getDeployables()); + contribution.getExtensions().addAll(c.getExtensions()); + contribution.getAttributeExtensions().addAll(c.getAttributeExtensions()); } - + // If no sca-contribution.xml file was provided then consider // all composites in the contribution as deployables, and also // read any files that are explicitly asssigned artifact processors @@ -173,10 +175,10 @@ public class ContributionInfoProcessor implements URLArtifactProcessor<Contribut } if (read) { URL artifactURL = scanner.getArtifactURL(contributionURL, artifactURI); - + // Read each artifact Object model = artifactProcessor.read(contributionURL, URI.create(artifactURI), artifactURL); - + // In the absence of more info, consider all composites as deployable if (model instanceof Composite) { contribution.getDeployables().add((Composite)model); @@ -184,7 +186,7 @@ public class ContributionInfoProcessor implements URLArtifactProcessor<Contribut } } } - + // Add default contribution import and export DefaultImport defaultImport = contributionFactory.createDefaultImport(); defaultImport.setModelResolver(new DefaultModelResolver()); @@ -192,24 +194,24 @@ public class ContributionInfoProcessor implements URLArtifactProcessor<Contribut DefaultExport defaultExport = contributionFactory.createDefaultExport(); contribution.getExports().add(defaultExport); } - + return contribution; } - + public void resolve(Contribution contribution, ModelResolver resolver) throws ContributionResolveException { - + // Mark the contribution model resolved ModelResolver contributionResolver = contribution.getModelResolver(); contribution.setUnresolved(false); contributionResolver.addModel(contribution); - + // Resolve imports and exports for (Export export: contribution.getExports()) { if (export instanceof DefaultExport) { - + // Initialize the default export's resolver export.setModelResolver(contributionResolver); - + } else { extensionProcessor.resolve(export, contributionResolver); } @@ -217,12 +219,12 @@ public class ContributionInfoProcessor implements URLArtifactProcessor<Contribut for (Import import_: contribution.getImports()) { extensionProcessor.resolve(import_, contributionResolver); } - + } /** * FIXME Temporary hack for testing the ClassLoaderModelResolver. - * + * * @param modelResolvers */ private static void hackResolvers(ModelResolverExtensionPoint modelResolvers) { |