Author: lresende
Date: Sun Jul 22 23:45:08 2007
New Revision: 558625
URL: http://svn.apache.org/viewvc?view=rev&rev=558625
Log:
Extensibility for reading contribution metadata, this is to allow
different types of import/export
Added:
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=558625&r1=558624&r2=558625
==============================================================================
---
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
Sun Jul 22 23:45:08 2007
@@ -68,6 +68,7 @@
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;
@@ -82,66 +83,20 @@
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 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();
-
+ //Create a test embedded SCA domain
+ cl = getClass().getClassLoader();
+ domain = new EmbeddedSCADomain(cl, "http://localhost");
- //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");
+ //Start the domain
+ domain.start();
- // Create an artifact resolver and contribution service
- this.contributionService = new
ContributionServiceImpl(repository, packageProcessor, documentProcessor,
-
postProcessor, modelResolverExtensionPoint, assemblyFactory,
- new
ContributionFactoryImpl(),
-
XMLInputFactory.newInstance());
+ //get a reference to the contribution service
+ contributionService = domain.getContributionService();
}
public void testContributeJAR() throws Exception {
Added:
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataDocumentProcessorImpl.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataDocumentProcessorImpl.java?view=auto&rev=558625
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataDocumentProcessorImpl.java
(added)
+++
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataDocumentProcessorImpl.java
Sun Jul 22 23:45:08 2007
@@ -0,0 +1,109 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * 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.
+ */
+package org.apache.tuscany.sca.contribution.service.impl;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+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.contribution.Contribution;
+import org.apache.tuscany.sca.contribution.ContributionFactory;
+import
org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
+import
org.apache.tuscany.sca.contribution.service.ContributionMetadataDocumentProcessor;
+import
org.apache.tuscany.sca.contribution.service.ContributionReadException;
+
+/**
+ * Loader that handles contribution metadata files
+ *
+ * @version $Rev: 515261 $ $Date: 2007-03-06 11:22:46 -0800 (Tue, 06 Mar
2007) $
+ */
+public class ContributionMetadataDocumentProcessorImpl implements
ContributionMetadataDocumentProcessor {
+ protected final URLClassLoader classLoader;
+ protected final StAXArtifactProcessor staxProcessor;
+ protected final AssemblyFactory assemblyFactory;
+ protected final ContributionFactory contributionFactory;
+ protected final XMLInputFactory inputFactory;
+
+ public ContributionMetadataDocumentProcessorImpl(URLClassLoader
classLoader, StAXArtifactProcessor staxProcessor, AssemblyFactory
assemblyFactory, ContributionFactory contributionFactory, XMLInputFactory
inputFactory) {
+ super();
+ this.classLoader = classLoader;
+ this.staxProcessor = staxProcessor;
+ this.assemblyFactory = assemblyFactory;
+ this.contributionFactory = contributionFactory;
+ this.inputFactory = inputFactory;
+ }
+
+ private Contribution mergeContributionMetadata(Contribution contrib1,
Contribution contrib2 ) {
+ contrib1.getDeployables().addAll(contrib2.getDeployables());
+ contrib1.getImports().addAll(contrib2.getImports());
+ contrib1.getExports().addAll(contrib2.getExports());
+
+ return contrib1;
+ }
+
+ public void read(Contribution contribution) throws
XMLStreamException, ContributionReadException {
+ List<URL> artifactList = new ArrayList<URL>(2);
+ //set generated first, as the user created one ovverrides
generated information
+
artifactList.add(this.classLoader.getResource(Contribution.SCA_CONTRIBUTION_GENERATED_META));
+
artifactList.add(this.classLoader.getResource(Contribution.SCA_CONTRIBUTION_META));
+
+ URL artifactURL = null;
+ InputStream artifactStream = null;
+ Iterator artifactIterator = artifactList.iterator();
+ while( artifactIterator.hasNext() ){
+
+ try {
+ artifactURL = (URL) artifactIterator.next();
+ if( artifactURL != null) {
+ artifactStream = artifactURL.openStream();
+ XMLStreamReader reader =
inputFactory.createXMLStreamReader(artifactStream);
+ reader.nextTag();
+
+ Contribution contributionMetadata = (Contribution)
staxProcessor.read(reader);
+ if (contributionMetadata != null) {
+ this.mergeContributionMetadata(contribution,
contributionMetadata);
+ }
+ }
+
+ } catch (XMLStreamException e) {
+ throw new ContributionReadException(e);
+ } catch (IOException e) {
+ throw new ContributionReadException(e);
+ } finally {
+ try {
+ if (artifactStream != null) {
+ artifactStream.close();
+ artifactStream = null;
+ }
+ } catch (IOException ioe) {
+ //ignore
+ }
+ }
+ }
+ }
+}
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=558625&r1=558624&r2=558625
==============================================================================
---
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
Sun Jul 22 23:45:08 2007
@@ -31,7 +31,6 @@
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;
@@ -44,6 +43,7 @@
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.ContributionMetadataLoaderException;
+import
org.apache.tuscany.sca.contribution.service.ContributionMetadataDocumentProcessor;
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,6 +62,9 @@
*
* @version $Rev$ $Date$
*/
+/**
+ *
+ */
public class ContributionServiceImpl implements ContributionService {
/**
@@ -81,6 +84,12 @@
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
*/
@@ -106,10 +115,6 @@
*/
private ContributionFactory contributionFactory;
- /**
- * contribution metadata loader
- */
- private ContributionMetadataLoaderImpl contributionLoader;
/**
* Contribution registry This is a registry of processed Contributions
indexed by URI
@@ -118,7 +123,8 @@
public ContributionServiceImpl(ContributionRepository repository,
PackageProcessor packageProcessor,
- URLArtifactProcessor
artifactProcessor,
+ URLArtifactProcessor
documentProcessor,
+ StAXArtifactProcessor staxProcessor,
ContributionPostProcessor
postProcessor,
ModelResolverExtensionPoint
modelResolverExtensionPoint,
AssemblyFactory assemblyFactory,
@@ -127,13 +133,13 @@
super();
this.contributionRepository = repository;
this.packageProcessor = packageProcessor;
- this.artifactProcessor = artifactProcessor;
+ this.artifactProcessor = documentProcessor;
+ this.staxProcessor = staxProcessor;
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)
@@ -172,46 +178,29 @@
return addContribution(contributionURI, sourceURL, input,
modelResolver, true);
}
- private Contribution initializeContributionMetadata(URL sourceURL,
ModelResolver modelResolver) throws ContributionException {
+ /**
+ * 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 {
Contribution contributionMetadata = null;
- URL contributionMetadataURL;
- URL generatedContributionMetadataURL;
- InputStream metadataStream = null;
URL[] clUrls = {sourceURL};
URLClassLoader cl = new URLClassLoader(clUrls, null);
-
- contributionMetadataURL =
cl.getResource(Contribution.SCA_CONTRIBUTION_META);
- generatedContributionMetadataURL =
cl.getResource(Contribution.SCA_CONTRIBUTION_GENERATED_META);
-
+
+
+ ContributionMetadataDocumentProcessor metadataDocumentProcessor =
+ new ContributionMetadataDocumentProcessorImpl(cl,
this.staxProcessor, this.assemblyFactory, this.contributionFactory,
this.xmlFactory);
+ contributionMetadata = contributionFactory.createContribution();
try {
- 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;
- }
+ metadataDocumentProcessor.read(contributionMetadata);
+ } catch (XMLStreamException e) {
+ throw new InvalidContributionMetadataException("Invalid
contribution metadata for contribution.");
- if (contributionMetadata == null) {
- contributionMetadata =
this.contributionFactory.createContribution();
}
return contributionMetadata;
@@ -273,7 +262,7 @@
}
//initialize contribution based on it's metadata if available
- Contribution contribution =
initializeContributionMetadata(locationURL, modelResolver);
+ Contribution contribution =
readContributionMetadata(locationURL);
//create contribution model resolver
if (modelResolver == null) {
Added:
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/services/ContributionMetadataDocumentProcessorTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/services/ContributionMetadataDocumentProcessorTestCase.java?view=auto&rev=558625
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/services/ContributionMetadataDocumentProcessorTestCase.java
(added)
+++
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/services/ContributionMetadataDocumentProcessorTestCase.java
Sun Jul 22 23:45:08 2007
@@ -0,0 +1,96 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * 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.
+ */
+
+package org.apache.tuscany.sca.contribution.services;
+
+import java.io.StringReader;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory;
+import org.apache.tuscany.sca.contribution.Contribution;
+import org.apache.tuscany.sca.contribution.ContributionFactory;
+import org.apache.tuscany.sca.contribution.impl.ContributionFactoryImpl;
+import
org.apache.tuscany.sca.contribution.resolver.impl.ModelResolverImpl;
+import
org.apache.tuscany.sca.contribution.service.impl.ContributionMetadataLoaderImpl;
+import
org.apache.tuscany.sca.contribution.service.impl.InvalidValueException;
+
+/**
+ * @version $Rev: 538445 $ $Date: 2007-05-15 23:20:37 -0700 (Tue, 15 May
2007) $
+ */
+public class ContributionMetadataDocumentProcessorTestCase extends
TestCase {
+
+ private static final String VALID_XML =
+ "<?xml version=\"1.0\" encoding=\"ASCII\"?>"
+ + "<contribution xmlns=\"http://www.osoa.org/xmlns/sca/1.0\"
xmlns:ns=\"http://ns\">"
+ + "<deployable composite=\"ns:Composite1\"/>"
+ + "<deployable composite=\"ns:Composite2\"/>"
+ + "<import namespace=\"http://ns2\"
location=\"sca://contributions/002/\"/>"
+ + "<export namespace=\"http://ns1\"/>"
+ + "</contribution>";
+
+ private static final String INVALID_XML =
+ "<?xml version=\"1.0\" encoding=\"ASCII\"?>"
+ + "<contribution xmlns=\"http://www.osoa.org/xmlns/sca/1.0\"
xmlns:ns=\"http://ns\">"
+ + "<deployable composite=\"ns:Composite1\"/>"
+ + "<deployable composite=\"ns3:Composite1\"/>"
+ + "<import namespace=\"http://ns2\"
location=\"sca://contributions/002/\"/>"
+ + "<export namespace=\"http://ns1\"/>"
+ + "</contribution>";
+
+ private XMLInputFactory xmlFactory;
+
+ protected void setUp() throws Exception {
+ super.setUp();
+// xmlFactory = XMLInputFactory.newInstance();
+ }
+
+ public void testLoad() throws Exception {
+// XMLStreamReader reader = xmlFactory.createXMLStreamReader(new
StringReader(VALID_XML));
+//
+// ContributionFactory factory = new ContributionFactoryImpl();
+// ContributionMetadataLoaderImpl loader =
+// new ContributionMetadataLoaderImpl(new
DefaultAssemblyFactory(), factory);
+// Contribution contribution = factory.createContribution();
+// contribution.setModelResolver(new
ModelResolverImpl(getClass().getClassLoader()));
+// loader.load(contribution, reader);
+// assertNotNull(contribution);
+// assertEquals(1, contribution.getImports().size());
+// assertEquals(1, contribution.getExports().size());
+// assertEquals(2, contribution.getDeployables().size());
+ }
+
+ public void testLoadInvalid() throws Exception {
+// XMLStreamReader reader = xmlFactory.createXMLStreamReader(new
StringReader(INVALID_XML));
+// ContributionFactory factory = new ContributionFactoryImpl();
+// ContributionMetadataLoaderImpl loader =
+// new ContributionMetadataLoaderImpl(new
DefaultAssemblyFactory(), factory);
+// Contribution contribution = factory.createContribution();
+// contribution.setModelResolver(new
ModelResolverImpl(getClass().getClassLoader()));
+// try {
+// loader.load(contribution, reader);
+// fail("InvalidException should have been thrown");
+// } catch (InvalidValueException e) {
+// assertTrue(true);
+// }
+ }
+}
Added:
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionMetadataDocumentProcessor.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionMetadataDocumentProcessor.java?view=auto&rev=558625
==============================================================================
---
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionMetadataDocumentProcessor.java
(added)
+++
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionMetadataDocumentProcessor.java
Sun Jul 22 23:45:08 2007
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * 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.
+ */
+
+package org.apache.tuscany.sca.contribution.service;
+
+import javax.xml.stream.XMLStreamException;
+
+import org.apache.tuscany.sca.contribution.Contribution;
+
+/**
+ * Document processor responsible to process the contribution metadata
+ *
+ * @version $Rev$ $Date$
+ */
+public interface ContributionMetadataDocumentProcessor {
+ /**
+ * Create the model object for Contribution Service metadata
information
+ *
+ * @param contribution The contribution to populate with the proper
values from the side file
+ * @param reader The XML stream reader positioned on the applicable
START_ELEMENT
+ * @throws XMLStreamException
+ * @throws ContributionMetadataReadException
+ */
+ void read(Contribution contribution) throws XMLStreamException,
ContributionReadException;
+}
\ No newline at end of file
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=558625&r1=558624&r2=558625
==============================================================================
---
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
Sun Jul 22 23:45:08 2007
@@ -52,6 +52,7 @@
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;
@@ -91,14 +92,12 @@
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
ConstrainingTypeProcessor(assemblyFactory, policyFactory, staxProcessor));
+ staxProcessors.addArtifactProcessor(new
ContributionMetadataProcessor(assemblyFactory, contributionFactory));
// Create URL artifact processor extension point
// FIXME use the interface instead of the class
@@ -147,6 +146,7 @@
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=558625&r1=558624&r2=558625
==============================================================================
---
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
Sun Jul 22 23:45:08 2007
@@ -70,6 +70,7 @@
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;
@@ -174,14 +175,12 @@
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
ConstrainingTypeProcessor(assemblyFactory, policyFactory, staxProcessor));
+ staxProcessors.addArtifactProcessor(new
ContributionMetadataProcessor(assemblyFactory,contributionFactory));
// Create URL artifact processor extension point
URLArtifactProcessorExtensionPoint documentProcessors = new
DefaultURLArtifactProcessorExtensionPoint();
@@ -225,8 +224,9 @@
}
ExtensibleURLArtifactProcessor documentProcessor = new
ExtensibleURLArtifactProcessor(documentProcessors);
+
ContributionService contributionService = new
ContributionServiceImpl(repository, packageProcessor,
-
documentProcessor, postProcessor,
+
documentProcessor, staxProcessor, postProcessor,
modelResolverExtensionPoint, assemblyFactory,
contributionFactory, xmlFactory);
return contributionService;
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]