You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2007/07/23 10:16:29 UTC
svn commit: r558650 - in /incubator/tuscany/java/sca:
itest/contribution/src/test/java/org/apache/tuscany/sca/test/contribution/
modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/
modules/contribution-impl/src/tes...
Author: rfeng
Date: Mon Jul 23 01:16:29 2007
New Revision: 558650
URL: http://svn.apache.org/viewvc?view=rev&rev=558650
Log:
Rollback the changes made by r558625 which breaks the build
Removed:
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataDocumentProcessorImpl.java
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/services/ContributionMetadataDocumentProcessorTestCase.java
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionMetadataDocumentProcessor.java
Modified:
incubator/tuscany/java/sca/itest/contribution/src/test/java/org/apache/tuscany/sca/test/contribution/ContributionServiceTestCase.java
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java
incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/NodeRuntimeBuilder.java
incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java
Modified: incubator/tuscany/java/sca/itest/contribution/src/test/java/org/apache/tuscany/sca/test/contribution/ContributionServiceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/contribution/src/test/java/org/apache/tuscany/sca/test/contribution/ContributionServiceTestCase.java?view=diff&rev=558650&r1=558649&r2=558650
==============================================================================
--- incubator/tuscany/java/sca/itest/contribution/src/test/java/org/apache/tuscany/sca/test/contribution/ContributionServiceTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/contribution/src/test/java/org/apache/tuscany/sca/test/contribution/ContributionServiceTestCase.java Mon Jul 23 01:16:29 2007
@@ -68,7 +68,6 @@
import org.apache.tuscany.sca.contribution.service.util.IOHelper;
import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.host.embedded.impl.EmbeddedSCADomain;
import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
import org.apache.tuscany.sca.interfacedef.impl.InterfaceContractMapperImpl;
import org.apache.tuscany.sca.policy.DefaultPolicyFactory;
@@ -83,20 +82,66 @@
private static final String JAR_CONTRIBUTION = "/repository/sample-calculator.jar";
private static final String FOLDER_CONTRIBUTION = "target/classes/";
- private ClassLoader cl;
- private EmbeddedSCADomain domain;
private ContributionService contributionService;
protected void setUp() throws Exception {
- //Create a test embedded SCA domain
- cl = getClass().getClassLoader();
- domain = new EmbeddedSCADomain(cl, "http://localhost");
+
+ // Create default factories
+ AssemblyFactory assemblyFactory = new DefaultAssemblyFactory();
+ PolicyFactory policyFactory = new DefaultPolicyFactory();
+ InterfaceContractMapper mapper = new InterfaceContractMapperImpl();
+
+ // Create an extension point registry
+ ExtensionPointRegistry extensionRegistry = new DefaultExtensionPointRegistry();
+
+ // Add artifact processor extension points
+ DefaultStAXArtifactProcessorExtensionPoint staxProcessors = new DefaultStAXArtifactProcessorExtensionPoint();
+ extensionRegistry.addExtensionPoint(staxProcessors);
+ ExtensibleStAXArtifactProcessor staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, XMLInputFactory.newInstance(), XMLOutputFactory.newInstance());
+ DefaultURLArtifactProcessorExtensionPoint documentProcessors = new DefaultURLArtifactProcessorExtensionPoint();
+ extensionRegistry.addExtensionPoint(documentProcessors);
+ ExtensibleURLArtifactProcessor documentProcessor = new ExtensibleURLArtifactProcessor(documentProcessors);
+
+ // Register base artifact processors
+ staxProcessors.addArtifactProcessor(new CompositeProcessor(assemblyFactory, policyFactory, mapper,
+ staxProcessor));
+ staxProcessors.addArtifactProcessor(new ComponentTypeProcessor(assemblyFactory, policyFactory, staxProcessor));
+ staxProcessors.addArtifactProcessor(new ConstrainingTypeProcessor(assemblyFactory, policyFactory,
+ staxProcessor));
+
+ XMLInputFactory inputFactory = XMLInputFactory.newInstance();
+ documentProcessors.addArtifactProcessor(new CompositeDocumentProcessor(staxProcessor, inputFactory));
+ documentProcessors.addArtifactProcessor(new ComponentTypeDocumentProcessor(staxProcessor, inputFactory));
+ documentProcessors.addArtifactProcessor(new ConstrainingTypeDocumentProcessor(staxProcessor, inputFactory));
+
+ // Create package processor extension point
+ PackageTypeDescriberImpl describer = new PackageTypeDescriberImpl();
+ PackageProcessorExtensionPoint packageProcessors = new DefaultPackageProcessorExtensionPoint();
+ PackageProcessor packageProcessor = new ExtensiblePackageProcessor(packageProcessors, describer);
+ extensionRegistry.addExtensionPoint(packageProcessors);
+
+ // Register base package processors
+ packageProcessors.addPackageProcessor(new JarContributionProcessor());
+ packageProcessors.addPackageProcessor(new FolderContributionProcessor());
+
+ //Create Contribution Model Resolver extension point
+ ModelResolverExtensionPoint modelResolverExtensionPoint = new DefaultModelResolverExtensionPoint();
+
- //Start the domain
- domain.start();
+ //Create contribution postProcessor extension point
+ DefaultContributionPostProcessorExtensionPoint contributionPostProcessors = new DefaultContributionPostProcessorExtensionPoint();
+ ContributionPostProcessor postProcessor = new ExtensibleContributionPostProcessor(contributionPostProcessors);
+ extensionRegistry.addExtensionPoint(contributionPostProcessors);
+
+
+ // Create a repository
+ ContributionRepository repository = new ContributionRepositoryImpl("target");
- //get a reference to the contribution service
- contributionService = domain.getContributionService();
+ // Create an artifact resolver and contribution service
+ this.contributionService = new ContributionServiceImpl(repository, packageProcessor, documentProcessor,
+ postProcessor, modelResolverExtensionPoint, assemblyFactory,
+ new ContributionFactoryImpl(),
+ XMLInputFactory.newInstance());
}
public void testContributeJAR() throws Exception {
Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java?view=diff&rev=558650&r1=558649&r2=558650
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java Mon Jul 23 01:16:29 2007
@@ -31,6 +31,7 @@
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
import org.apache.tuscany.sca.assembly.AssemblyFactory;
import org.apache.tuscany.sca.assembly.Composite;
@@ -43,7 +44,6 @@
import org.apache.tuscany.sca.contribution.NamespaceImport;
import org.apache.tuscany.sca.contribution.processor.ContributionPostProcessor;
import org.apache.tuscany.sca.contribution.processor.PackageProcessor;
-import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
import org.apache.tuscany.sca.contribution.resolver.ExtensibleModelResolver;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
@@ -52,7 +52,7 @@
import org.apache.tuscany.sca.contribution.resolver.impl.NamespaceImportAllModelResolverImpl;
import org.apache.tuscany.sca.contribution.resolver.impl.NamespaceImportModelResolverImpl;
import org.apache.tuscany.sca.contribution.service.ContributionException;
-import org.apache.tuscany.sca.contribution.service.ContributionMetadataDocumentProcessor;
+import org.apache.tuscany.sca.contribution.service.ContributionMetadataLoaderException;
import org.apache.tuscany.sca.contribution.service.ContributionRepository;
import org.apache.tuscany.sca.contribution.service.ContributionService;
import org.apache.tuscany.sca.contribution.service.util.IOHelper;
@@ -62,9 +62,6 @@
*
* @version $Rev$ $Date$
*/
-/**
- *
- */
public class ContributionServiceImpl implements ContributionService {
/**
@@ -84,12 +81,6 @@
private URLArtifactProcessor artifactProcessor;
/**
- * Registry of available stax processors,
- * used for loading contribution metadata in a extensible way
- */
- private StAXArtifactProcessor staxProcessor;
-
- /**
* Registry of available model resolvers
*/
@@ -115,6 +106,10 @@
*/
private ContributionFactory contributionFactory;
+ /**
+ * contribution metadata loader
+ */
+ private ContributionMetadataLoaderImpl contributionLoader;
/**
* Contribution registry This is a registry of processed Contributions indexed by URI
@@ -123,8 +118,7 @@
public ContributionServiceImpl(ContributionRepository repository,
PackageProcessor packageProcessor,
- URLArtifactProcessor documentProcessor,
- StAXArtifactProcessor staxProcessor,
+ URLArtifactProcessor artifactProcessor,
ContributionPostProcessor postProcessor,
ModelResolverExtensionPoint modelResolverExtensionPoint,
AssemblyFactory assemblyFactory,
@@ -133,13 +127,13 @@
super();
this.contributionRepository = repository;
this.packageProcessor = packageProcessor;
- this.artifactProcessor = documentProcessor;
- this.staxProcessor = staxProcessor;
+ this.artifactProcessor = artifactProcessor;
this.postProcessor = postProcessor;
this.modelResolverExtensionPoint = modelResolverExtensionPoint;
this.xmlFactory = xmlFactory;
this.assemblyFactory = assemblyFactory;
this.contributionFactory = contributionFactory;
+ this.contributionLoader = new ContributionMetadataLoaderImpl(assemblyFactory, contributionFactory);
}
public Contribution contribute(String contributionURI, URL sourceURL, boolean storeInRepository)
@@ -178,29 +172,46 @@
return addContribution(contributionURI, sourceURL, input, modelResolver, true);
}
- /**
- * Perform read of the contribution metada loader (sca-contribution.xml and sca-contribution-generated.xml)
- * When the two metadata files are available, the information provided are merged, and the sca-contribution has priorities
- *
- * @param sourceURL
- * @return Contribution
- * @throws ContributionException
- */
- private Contribution readContributionMetadata(URL sourceURL) throws ContributionException {
+ private Contribution initializeContributionMetadata(URL sourceURL, ModelResolver modelResolver) throws ContributionException {
Contribution contributionMetadata = null;
+ URL contributionMetadataURL;
+ URL generatedContributionMetadataURL;
+ InputStream metadataStream = null;
URL[] clUrls = {sourceURL};
URLClassLoader cl = new URLClassLoader(clUrls, null);
-
-
- ContributionMetadataDocumentProcessor metadataDocumentProcessor =
- new ContributionMetadataDocumentProcessorImpl(cl, this.staxProcessor, this.assemblyFactory, this.contributionFactory, this.xmlFactory);
- contributionMetadata = contributionFactory.createContribution();
+
+ contributionMetadataURL = cl.getResource(Contribution.SCA_CONTRIBUTION_META);
+ generatedContributionMetadataURL = cl.getResource(Contribution.SCA_CONTRIBUTION_GENERATED_META);
+
try {
- metadataDocumentProcessor.read(contributionMetadata);
- } catch (XMLStreamException e) {
- throw new InvalidContributionMetadataException("Invalid contribution metadata for contribution.");
+ contributionMetadata = this.contributionFactory.createContribution();
+ contributionMetadata.setModelResolver(modelResolver);
+ if (contributionMetadataURL != null || generatedContributionMetadataURL != null) {
+ URL metadataURL = contributionMetadataURL != null ? contributionMetadataURL
+ : generatedContributionMetadataURL;
+
+ try {
+ metadataStream = metadataURL.openStream();
+ XMLStreamReader xmlReader = this.xmlFactory.createXMLStreamReader(metadataStream);
+ this.contributionLoader.load(contributionMetadata, xmlReader);
+
+ } catch (IOException ioe) {
+ throw new InvalidContributionMetadataException(ioe.getMessage(), metadataURL.toExternalForm(), ioe);
+ } catch (XMLStreamException xmle) {
+ throw new InvalidContributionMetadataException(xmle.getMessage(), metadataURL.toExternalForm(),
+ xmle);
+ } catch (ContributionMetadataLoaderException le) {
+ throw new InvalidContributionMetadataException(le.getMessage(), metadataURL.toExternalForm(), le);
+ }
+ }
+ } finally {
+ IOHelper.closeQuietly(metadataStream);
+ metadataStream = null;
+ }
+ if (contributionMetadata == null) {
+ contributionMetadata = this.contributionFactory.createContribution();
}
return contributionMetadata;
@@ -262,7 +273,7 @@
}
//initialize contribution based on it's metadata if available
- Contribution contribution = readContributionMetadata(locationURL);
+ Contribution contribution = initializeContributionMetadata(locationURL, modelResolver);
//create contribution model resolver
if (modelResolver == null) {
Modified: incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/NodeRuntimeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/NodeRuntimeBuilder.java?view=diff&rev=558650&r1=558649&r2=558650
==============================================================================
--- incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/NodeRuntimeBuilder.java (original)
+++ incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/NodeRuntimeBuilder.java Mon Jul 23 01:16:29 2007
@@ -52,7 +52,6 @@
import org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint;
import org.apache.tuscany.sca.contribution.service.ContributionRepository;
import org.apache.tuscany.sca.contribution.service.ContributionService;
-import org.apache.tuscany.sca.contribution.service.impl.ContributionMetadataProcessor;
import org.apache.tuscany.sca.contribution.service.impl.ContributionRepositoryImpl;
import org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl;
import org.apache.tuscany.sca.contribution.service.impl.PackageTypeDescriberImpl;
@@ -92,12 +91,14 @@
registry.addExtensionPoint(staxProcessors);
// Create and register STAX processors for SCA assembly XML
- ExtensibleStAXArtifactProcessor staxProcessor =
- new ExtensibleStAXArtifactProcessor(staxProcessors, xmlFactory, XMLOutputFactory.newInstance());
- staxProcessors.addArtifactProcessor(new CompositeProcessor(assemblyFactory, policyFactory, mapper, staxProcessor));
+ ExtensibleStAXArtifactProcessor staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, xmlFactory,
+ XMLOutputFactory
+ .newInstance());
+ staxProcessors.addArtifactProcessor(new CompositeProcessor(assemblyFactory, policyFactory, mapper,
+ staxProcessor));
staxProcessors.addArtifactProcessor(new ComponentTypeProcessor(assemblyFactory, policyFactory, staxProcessor));
- staxProcessors.addArtifactProcessor(new ConstrainingTypeProcessor(assemblyFactory, policyFactory, staxProcessor));
- staxProcessors.addArtifactProcessor(new ContributionMetadataProcessor(assemblyFactory, contributionFactory));
+ staxProcessors
+ .addArtifactProcessor(new ConstrainingTypeProcessor(assemblyFactory, policyFactory, staxProcessor));
// Create URL artifact processor extension point
// FIXME use the interface instead of the class
@@ -146,7 +147,6 @@
ContributionService contributionService = new ContributionServiceImpl(repository,
packageProcessor,
documentProcessor,
- staxProcessor,
postProcessor,
modelResolverExtensionPoint,
assemblyFactory,
Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java?view=diff&rev=558650&r1=558649&r2=558650
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java Mon Jul 23 01:16:29 2007
@@ -70,7 +70,6 @@
import org.apache.tuscany.sca.contribution.service.ContributionRepository;
import org.apache.tuscany.sca.contribution.service.ContributionService;
import org.apache.tuscany.sca.contribution.service.TypeDescriber;
-import org.apache.tuscany.sca.contribution.service.impl.ContributionMetadataProcessor;
import org.apache.tuscany.sca.contribution.service.impl.ContributionRepositoryImpl;
import org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl;
import org.apache.tuscany.sca.contribution.service.impl.PackageTypeDescriberImpl;
@@ -175,12 +174,14 @@
registry.addExtensionPoint(staxProcessors);
// Create and register STAX processors for SCA assembly XML
- ExtensibleStAXArtifactProcessor staxProcessor =
- new ExtensibleStAXArtifactProcessor(staxProcessors, xmlFactory, XMLOutputFactory.newInstance());
- staxProcessors.addArtifactProcessor(new CompositeProcessor(assemblyFactory, policyFactory, mapper, staxProcessor));
+ ExtensibleStAXArtifactProcessor staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, xmlFactory,
+ XMLOutputFactory
+ .newInstance());
+ staxProcessors.addArtifactProcessor(new CompositeProcessor(assemblyFactory, policyFactory, mapper,
+ staxProcessor));
staxProcessors.addArtifactProcessor(new ComponentTypeProcessor(assemblyFactory, policyFactory, staxProcessor));
- staxProcessors.addArtifactProcessor(new ConstrainingTypeProcessor(assemblyFactory, policyFactory, staxProcessor));
- staxProcessors.addArtifactProcessor(new ContributionMetadataProcessor(assemblyFactory,contributionFactory));
+ staxProcessors
+ .addArtifactProcessor(new ConstrainingTypeProcessor(assemblyFactory, policyFactory, staxProcessor));
// Create URL artifact processor extension point
URLArtifactProcessorExtensionPoint documentProcessors = new DefaultURLArtifactProcessorExtensionPoint();
@@ -224,9 +225,8 @@
}
ExtensibleURLArtifactProcessor documentProcessor = new ExtensibleURLArtifactProcessor(documentProcessors);
-
ContributionService contributionService = new ContributionServiceImpl(repository, packageProcessor,
- documentProcessor, staxProcessor, postProcessor,
+ documentProcessor, postProcessor,
modelResolverExtensionPoint, assemblyFactory,
contributionFactory, xmlFactory);
return contributionService;
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org