You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by lr...@apache.org on 2007/03/26 23:06:36 UTC
svn commit: r522627 - in
/incubator/tuscany/java/sca/runtime/services/contribution:
contribution-framework/src/main/java/org/apache/tuscany/services/contribution/model/
contribution-framework/src/main/java/org/apache/tuscany/services/contribution/spi/
...
Author: lresende
Date: Mon Mar 26 14:06:34 2007
New Revision: 522627
URL: http://svn.apache.org/viewvc?view=rev&rev=522627
Log:
Adding/Merging couple testcases around contribution services components
Added:
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/ContentTypeDescriberImplTestCase.java
- copied, changed from r519481, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImplTestCase.java
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/ContributionLoaderTestCase.java
- copied, changed from r519481, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContributionLoaderTestCase.java
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/ContributionRepositoryTestCase.java
- copied, changed from r519481, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContributionRepositoryTestCase.java
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/ContributionServiceImplTestCase.java
- copied, changed from r519481, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContributionServiceImplTestCase.java
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/processor/
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/processor/CompositeContributionProcessorTestCase.java
- copied, changed from r519481, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/CompositeContributionProcessorTestCase.java
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/processor/FolderContributionProcessorTestCase.java
- copied, changed from r519481, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/FolderContributionProcessorTestCase.java
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/processor/JarContributionProcessorTestCase.java
- copied, changed from r519481, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/JarContributionProcessorTestCase.java
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/processor/JavaContributionProcessorTestCase.java
- copied, changed from r519481, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/JavaContributionProcessorTestCase.java
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/resources/deployables/
- copied from r519481, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/resources/deployables/
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/resources/org/
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/resources/org/apache/
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/resources/org/apache/tuscany/
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/resources/org/apache/tuscany/services/
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/resources/org/apache/tuscany/services/contribution/
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/resources/org/apache/tuscany/services/contribution/test.ext
- copied unchanged from r519481, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/resources/org/apache/tuscany/core/services/deployment/test.ext
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/resources/org/apache/tuscany/services/contribution/test.scdl
- copied unchanged from r519481, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/resources/org/apache/tuscany/core/services/deployment/test.scdl
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/resources/repository/
- copied from r519481, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/resources/repository/
Modified:
incubator/tuscany/java/sca/runtime/services/contribution/contribution-framework/src/main/java/org/apache/tuscany/services/contribution/model/ContentType.java
incubator/tuscany/java/sca/runtime/services/contribution/contribution-framework/src/main/java/org/apache/tuscany/services/contribution/spi/ContributionService.java
incubator/tuscany/java/sca/runtime/services/contribution/contribution/.checkstyle
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContentTypeDescriberImpl.java
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContributionDirectoryWatcher.java
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContributionLoader.java
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContributionRepositoryImpl.java
incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContributionServiceImpl.java
Modified: incubator/tuscany/java/sca/runtime/services/contribution/contribution-framework/src/main/java/org/apache/tuscany/services/contribution/model/ContentType.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/services/contribution/contribution-framework/src/main/java/org/apache/tuscany/services/contribution/model/ContentType.java?view=diff&rev=522627&r1=522626&r2=522627
==============================================================================
--- incubator/tuscany/java/sca/runtime/services/contribution/contribution-framework/src/main/java/org/apache/tuscany/services/contribution/model/ContentType.java (original)
+++ incubator/tuscany/java/sca/runtime/services/contribution/contribution-framework/src/main/java/org/apache/tuscany/services/contribution/model/ContentType.java Mon Mar 26 14:06:34 2007
@@ -33,5 +33,11 @@
public static final String COMPOSITE = "application/vnd.tuscany.composite";
public static final String WSDL = "application/vnd.tuscany.wsdl";
public static final String JAVA = "application/java-vm";
+
+ /**
+ * Unkown contentType
+ */
+
+ public static final String UNKNOWN = "content/unknown";
}
Modified: incubator/tuscany/java/sca/runtime/services/contribution/contribution-framework/src/main/java/org/apache/tuscany/services/contribution/spi/ContributionService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/services/contribution/contribution-framework/src/main/java/org/apache/tuscany/services/contribution/spi/ContributionService.java?view=diff&rev=522627&r1=522626&r2=522627
==============================================================================
--- incubator/tuscany/java/sca/runtime/services/contribution/contribution-framework/src/main/java/org/apache/tuscany/services/contribution/spi/ContributionService.java (original)
+++ incubator/tuscany/java/sca/runtime/services/contribution/contribution-framework/src/main/java/org/apache/tuscany/services/contribution/spi/ContributionService.java Mon Mar 26 14:06:34 2007
@@ -31,39 +31,61 @@
*/
public interface ContributionService {
/**
- * Contribute an artifact to the SCA Domain. The type of the contribution is determined by the Content-Type of the
- * resource or, if that is undefined, by some implementation-specific means (such as mapping an extension in the
- * URL's path).
- *
- * @param contribution the location of the resource containing the artifact
- * @param storeInRepository flag that identifies if you want to copy the contribution to the repository
- * @return a URI that uniquely identifies this contribution within the SCA Domain
+ * Contribute an artifact to the SCA Domain. The type of the contribution is
+ * determined by the Content-Type of the resource or, if that is undefined,
+ * by some implementation-specific means (such as mapping an extension in
+ * the URL's path).
+ *
+ * @param contributionURI The URI that is used as the contribution unique ID.
+ * @param sourceURL the location of the resource containing the artifact
+ * @param storeInRepository flag that identifies if you want to copy the
+ * contribution to the repository
* @throws DeploymentException if there was a problem with the contribution
- * @throws IOException if there was a problem reading the resource
+ * @throws IOException if there was a problem reading the resource
*/
- URI contribute(URL contribution, boolean storeInRepository) throws ContributionException, IOException;
+ void contribute(URI contributionURI, URL sourceURL, boolean storeInRepository) throws ContributionException,
+ IOException;
/**
* Contribute an artifact to the SCA Domain.
- *
- * @param source an identifier for the source of this contribution
- * @param contribution a stream containing the resource being contributed; the stream will not be closed but the
- * read position after the call is undefined
- * @param storeInRepository flag that identifies if you want to copy the contribution to the repository
- * @return a URI that uniquely identifies this contribution within the SCA Domain
+ *
+ * @param contributionURI The URI that is used as the contribution unique ID.
+ * @param contributionContent a stream containing the resource being
+ * contributed; the stream will not be closed but the read
+ * position after the call is undefined
* @throws DeploymentException if there was a problem with the contribution
- * @throws IOException if there was a problem reading the stream
+ * @throws IOException if there was a problem reading the stream
*/
- URI contribute(URI source, InputStream contribution, boolean storeInRepository)
+ void contribute(URI contributionURI, InputStream contributionContent)
throws ContributionException, IOException;
-
+
+ /**
+ * Get the model for an installed contribution
+ *
+ * @param contribution The URI of an installed contribution
+ * @return The model for the contribution or null if there is no such
+ * contribution
+ */
+ Object getContribution(URI contribution);
+
+ /**
+ * Adds or updates a deployment composite using a supplied composite
+ * ("composite by value" a data structure, not an existing resource in the
+ * domain) to the contribution identified by a supplied contribution URI.
+ * The added or updated deployment composite is given a relative URI that
+ * matches the "name" attribute of the composite, with a ".composite"
+ * suffix.
+ */
+ void addDeploymentComposite(URI contribution, Object composite);
+
/**
* Remove a contribution from the SCA domain
+ *
* @param contribution The URI of the contribution
- * @throws DeploymentException if there was a problem with the contribution
+ * @throws DeploymentException
*/
void remove(URI contribution) throws ContributionException;
-
+
/**
* Resolve an artifact by QName within the contribution
*
@@ -75,22 +97,25 @@
* @return The resolved artifact
*/
<T> T resolve(URI contribution, Class<T> definitionType, String namespace, String name);
-
+
/**
- * Resolve the reference to an artifact by the location URI within the given contribution.
- * Some typical use cases are:
+ * Resolve the reference to an artifact by the location URI within the given
+ * contribution. Some typical use cases are:
* <ul>
* <li>Reference a XML schema using
* {http://www.w3.org/2001/XMLSchema-instance}schemaLocation or
* <li>Reference a list of WSDLs using
* {http://www.w3.org/2004/08/wsdl-instance}wsdlLocation
* </ul>
+ *
* @param contribution The URI of the contribution
- * @param namespace The namespace of the artifact. This is for validation purpose. If the namespace is null,
- * then no check will be performed.
+ * @param namespace The namespace of the artifact. This is for validation
+ * purpose. If the namespace is null, then no check will be
+ * performed.
* @param uri The location URI
- * @param baseURI The URI of the base artifact where the reference is declared
+ * @param baseURI The URI of the base artifact where the reference is
+ * declared
* @return The URL of the resolved artifact
*/
URL resolve(URI contribution, String namespace, URI uri, URI baseURI);
-}
+}
\ No newline at end of file
Modified: incubator/tuscany/java/sca/runtime/services/contribution/contribution/.checkstyle
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/services/contribution/contribution/.checkstyle?view=diff&rev=522627&r1=522626&r2=522627
==============================================================================
--- incubator/tuscany/java/sca/runtime/services/contribution/contribution/.checkstyle (original)
+++ incubator/tuscany/java/sca/runtime/services/contribution/contribution/.checkstyle Mon Mar 26 14:06:34 2007
@@ -1,24 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * 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.
--->
<fileset-config file-format-version="1.2.0" simple-config="true">
- <fileset name="all" enabled="true" check-config-name="Tuscany Checks" local="false">
+ <fileset name="all" enabled="true" check-config-name="Sun Checks" local="false">
<file-match-pattern match-pattern="." include-pattern="true"/>
</fileset>
</fileset-config>
Modified: incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContentTypeDescriberImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContentTypeDescriberImpl.java?view=diff&rev=522627&r1=522626&r2=522627
==============================================================================
--- incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContentTypeDescriberImpl.java (original)
+++ incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContentTypeDescriberImpl.java Mon Mar 26 14:06:34 2007
@@ -25,12 +25,11 @@
import java.util.HashMap;
import java.util.Map;
-import org.osoa.sca.annotations.EagerInit;
-import org.osoa.sca.annotations.Service;
-
+import org.apache.tuscany.services.contribution.model.ContentType;
import org.apache.tuscany.services.contribution.spi.ContentTypeDescriber;
-
import org.apache.tuscany.services.contribution.util.FileHelper;
+import org.osoa.sca.annotations.EagerInit;
+import org.osoa.sca.annotations.Service;
/**
* Implementation of the content describer
@@ -51,10 +50,10 @@
* Initialize contentType registry with know types based on known file extensions
*/
private void init() {
- contentTypeRegistry.put("SCDL", "application/v.tuscany.scdl");
- contentTypeRegistry.put("COMPOSITE", "application/v.tuscany.scdl");
- contentTypeRegistry.put("WSDL", "application/v.tuscany.wsdl");
- contentTypeRegistry.put("JAR", "application/x-compressed");
+ contentTypeRegistry.put("COMPOSITE", ContentType.COMPOSITE);
+ contentTypeRegistry.put("SCDL", ContentType.COMPOSITE);
+ contentTypeRegistry.put("WSDL", ContentType.WSDL);
+ contentTypeRegistry.put("JAR", ContentType.JAR);
}
protected String resolveContentyTypeByExtension(URL resourceURL) {
@@ -84,7 +83,7 @@
connection = resourceURL.openConnection();
contentType = connection.getContentType();
- if (contentType == null || contentType.equals("content/unknown")) {
+ if (contentType == null || contentType.equals(ContentType.UNKNOWN)) {
// here we couldn't figure out from our registry or from URL
// return defaultContentType if provided
contentType = defaultContentType;
Modified: incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContributionDirectoryWatcher.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContributionDirectoryWatcher.java?view=diff&rev=522627&r1=522626&r2=522627
==============================================================================
--- incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContributionDirectoryWatcher.java (original)
+++ incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContributionDirectoryWatcher.java Mon Mar 26 14:06:34 2007
@@ -51,6 +51,7 @@
File[] files = extensionDir.listFiles();
for (File file : files) {
+ /*
try {
if (file.isDirectory()) {
this.contributionService.contribute(file.toURL(), false);
@@ -64,6 +65,7 @@
// FIXME handle this
ioe.printStackTrace();
}
+ */
}
}
}
Modified: incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContributionLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContributionLoader.java?view=diff&rev=522627&r1=522626&r2=522627
==============================================================================
--- incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContributionLoader.java (original)
+++ incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContributionLoader.java Mon Mar 26 14:06:34 2007
@@ -30,8 +30,6 @@
import org.apache.tuscany.services.contribution.model.Contribution;
import org.apache.tuscany.services.contribution.model.ContributionImport;
-import org.osoa.sca.annotations.Constructor;
-import org.osoa.sca.annotations.Reference;
/**
* Loader that handles contribution metadata files
@@ -52,9 +50,10 @@
return CONTRIBUTION;
}
- public Contribution load(ModelObject object,
- XMLStreamReader reader,
- DeploymentContext deploymentContext) throws XMLStreamException, LoaderException {
+ /* (non-Javadoc)
+ * @see org.apache.tuscany.services.contribution.ContributionMetadataLoader#load(javax.xml.stream.XMLStreamReader)
+ */
+ public Contribution load(XMLStreamReader reader) throws XMLStreamException, ContributionLoaderException {
Contribution contribution = new Contribution();
while (true) {
Modified: incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContributionRepositoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContributionRepositoryImpl.java?view=diff&rev=522627&r1=522626&r2=522627
==============================================================================
--- incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContributionRepositoryImpl.java (original)
+++ incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContributionRepositoryImpl.java Mon Mar 26 14:06:34 2007
@@ -44,9 +44,9 @@
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamReader;
+import org.apache.tuscany.services.contribution.spi.ContributionRepository;
import org.apache.tuscany.services.contribution.util.FileHelper;
import org.apache.tuscany.services.contribution.util.IOHelper;
-import org.apache.tuscany.spi.deployer.ContributionRepository;
import org.osoa.sca.annotations.Constructor;
import org.osoa.sca.annotations.Destroy;
import org.osoa.sca.annotations.EagerInit;
Modified: incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContributionServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContributionServiceImpl.java?view=diff&rev=522627&r1=522626&r2=522627
==============================================================================
--- incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContributionServiceImpl.java (original)
+++ incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/main/java/org/apache/tuscany/services/contribution/ContributionServiceImpl.java Mon Mar 26 14:06:34 2007
@@ -21,13 +21,17 @@
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
-import java.net.URISyntaxException;
import java.net.URL;
+import java.net.URLClassLoader;
import java.util.HashMap;
import java.util.Map;
-import java.util.UUID;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
import org.apache.tuscany.services.contribution.model.Contribution;
+import org.apache.tuscany.services.contribution.model.DeployedArtifact;
import org.apache.tuscany.services.contribution.spi.ContributionException;
import org.apache.tuscany.services.contribution.spi.ContributionProcessorRegistry;
import org.apache.tuscany.services.contribution.spi.ContributionRepository;
@@ -43,93 +47,193 @@
* Repository where contributions are stored. Usually set by injection.
*/
protected ContributionRepository contributionRepository;
+
/**
* Registry of available processors. Usually set by injection.
*/
protected ContributionProcessorRegistry processorRegistry;
+
+ /**
+ * xml factory used to create reader instance to load contribution metadata
+ */
+ protected XMLInputFactory xmlFactory;
+ /**
+ * contribution metadata loader
+ */
+ protected ContributionLoader contributionLoader;
+
+
/**
- * Contribution registry This is a registry of processed Contributios index by URI
+ * Contribution registry This is a registry of processed Contributios index
+ * by URI
*/
protected Map<URI, Contribution> contributionRegistry = new HashMap<URI, Contribution>();
- public ContributionServiceImpl(@Reference ContributionRepository repository,
- @Reference ContributionProcessorRegistry processorRegistry) {
+ //protected ArtifactResolverRegistry resolverRegistry;
+
+ public ContributionServiceImpl(@Reference
+ ContributionRepository repository, @Reference
+ ContributionProcessorRegistry processorRegistry/*, @Reference
+ ArtifactResolverRegistry resolverRegistry*/) {
super();
this.contributionRepository = repository;
this.processorRegistry = processorRegistry;
+ //this.resolverRegistry = resolverRegistry;
+
+ this.xmlFactory = XMLInputFactory.newInstance("javax.xml.stream.XMLInputFactory", getClass().getClassLoader());
+ this.contributionLoader = new ContributionLoader();
}
- public URI contribute(URL contribution, boolean storeInRepository) throws ContributionException, IOException {
- if (contribution == null) {
- throw new IllegalArgumentException("contribution is null");
+ public void contribute(URI contributionURI, URL sourceURL, boolean storeInRepository) throws ContributionException,
+ IOException {
+ if (contributionURI == null) {
+ throw new IllegalArgumentException("URI for the contribution is null");
}
-
- URI source;
- try {
- source = contribution.toURI();
- } catch (URISyntaxException e) {
- throw new IllegalArgumentException("contribution cannot be converted to a URI", e);
+ if (sourceURL == null) {
+ throw new IllegalArgumentException("Source URL for the contribution is null");
}
- InputStream is = contribution.openConnection().getInputStream();
+ addContribution(contributionURI, sourceURL, null, storeInRepository);
+ }
+
+ public void contribute(URI contributionURI, InputStream input) throws ContributionException, IOException {
+ addContribution(contributionURI, null, input, true);
+ }
+
+ private Contribution initializeContributionMetadata(URL sourceURL) throws ContributionException {
+ Contribution contributionMetadata = null;
+ URL contributionMetadataURL;
+ URL generatedContributionMetadataURL;
+ InputStream metadataStream = null;
+
+ URL[] clUrls = {sourceURL};
+ URLClassLoader cl = new URLClassLoader(clUrls, getClass().getClassLoader());
+
+ contributionMetadataURL = cl.getResource(Contribution.SCA_CONTRIBUTION_META);
+ generatedContributionMetadataURL = cl.getResource(Contribution.SCA_CONTRIBUTION_GENERATED_META);
+
try {
- return contribute(source, is, storeInRepository);
+ if (contributionMetadataURL == null && generatedContributionMetadataURL == null) {
+ contributionMetadata = new Contribution();
+ } else {
+ URL metadataURL =
+ contributionMetadataURL != null ? contributionMetadataURL : generatedContributionMetadataURL;
+
+ try {
+ metadataStream = metadataURL.openStream();
+ XMLStreamReader xmlReader = this.xmlFactory.createXMLStreamReader(metadataStream);
+ contributionMetadata = this.contributionLoader.load(xmlReader);
+
+ } catch (IOException ioe) {
+ throw new
+ InvalidContributionMetadataException(ioe.getMessage(), metadataURL.toExternalForm(), ioe);
+ } catch (XMLStreamException xmle) {
+ throw new
+ InvalidContributionMetadataException(xmle.getMessage(), metadataURL.toExternalForm(), xmle);
+ } catch (ContributionLoaderException le) {
+ throw new
+ InvalidContributionMetadataException(le.getMessage(), metadataURL.toExternalForm(), le);
+ }
+ }
} finally {
- IOHelper.closeQuietly(is);
+ IOHelper.closeQuietly(metadataStream);
+ metadataStream = null;
}
- }
- public URI contribute(URI source, InputStream contributionStream, boolean storeInRepository)
- throws ContributionException, IOException {
- if (source == null) {
- throw new IllegalArgumentException("source URI for contribution is null");
+ if (contributionMetadata == null) {
+ contributionMetadata = new Contribution();
}
- if (contributionStream == null) {
- throw new IllegalArgumentException("Invalid contribution stream : null");
+ return contributionMetadata;
+
+ }
+
+ /**
+ * Note:
+ * @param contributionURI ContributionID
+ * @param sourceURL contribution location
+ * @param contributionStream contribution content
+ * @param storeInRepository flag if we store the contribution into the repository or not
+ * @throws IOException
+ * @throws DeploymentException
+ */
+ private void addContribution(URI contributionURI, URL sourceURL, InputStream contributionStream, boolean storeInRepository)
+ throws IOException, ContributionException {
+ if (contributionStream == null && sourceURL == null) {
+ throw new IllegalArgumentException("The content of the contribution is null");
}
// store the contribution in the contribution repository
- URI contributionURI = URI.create("sca://contribution/" + UUID.randomUUID());
- URL locationURL;
- if (storeInRepository) {
- locationURL = this.contributionRepository.store(source, contributionStream);
- } else {
- locationURL = source.toURL();
+ URL locationURL = sourceURL;
+ if (contributionRepository != null && storeInRepository) {
+ if (sourceURL != null) {
+ locationURL = contributionRepository.store(contributionURI, sourceURL);
+ } else {
+ locationURL = contributionRepository.store(contributionURI, contributionStream);
+ }
}
-
- Contribution contribution = null;
- contribution = new Contribution(contributionURI);
+ Contribution contribution = initializeContributionMetadata(locationURL);
+ contribution.setURI(contributionURI);
contribution.setLocation(locationURL);
+
+ if (contributionStream == null) {
+ contributionStream = sourceURL.openStream();
+ try {
+ // process the contribution
+ this.processorRegistry.processContent(contribution, contribution.getUri(), contributionStream);
+ } finally {
+ IOHelper.closeQuietly(contributionStream);
+ contributionStream = null;
+ }
- //process the contribution
- this.processorRegistry.processContent(contribution, contributionURI, locationURL.openStream());
+ } else {
+ // process the contribution
+ this.processorRegistry.processContent(contribution, contribution.getUri(), contributionStream);
+ }
+
- //store the contribution on the registry
+ // store the contribution on the registry
this.contributionRegistry.put(contribution.getUri(), contribution);
-
- return contribution.getUri();
}
- public Contribution getContribution(URI id) {
+ public Object getContribution(URI id) {
return this.contributionRegistry.get(id);
}
public void remove(URI contribution) throws ContributionException {
- //remove from repository
- this.contributionRegistry.remove(contribution);
- //remove from registry
+ // remove from repository
this.contributionRegistry.remove(contribution);
}
+ public void addDeploymentComposite(URI contribution, Object composite) {
+ /*
+ CompositeComponentType model = (CompositeComponentType)composite;
+ URI compositeURI = contribution.resolve(model.getName() + ".composite");
+ DeployedArtifact artifact = new DeployedArtifact(compositeURI);
+ // FIXME: the namespace should be from the CompositeComponentType model
+ artifact.addModelObject(composite.getClass(), null, composite);
+ Contribution contributionObject = (Contribution)getContribution(contribution);
+ contributionObject.addArtifact(artifact);
+ */
+ }
+
public <T> T resolve(URI contribution, Class<T> definitionType, String namespace, String name) {
- // TODO Auto-generated method stub
+ /*
+ Contribution contributionObject = (Contribution)getContribution(contribution);
+ return resolverRegistry.resolve(contributionObject, definitionType, namespace, name, null, null);
+ */
+
return null;
}
public URL resolve(URI contribution, String namespace, URI uri, URI baseURI) {
- // TODO Auto-generated method stub
+ /*
+ Contribution contributionObject = (Contribution)getContribution(contribution);
+ return resolverRegistry.resolve(contributionObject, namespace, uri.toString(), baseURI.toString());
+ */
+
return null;
}
-}
+
+}
\ No newline at end of file
Copied: incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/ContentTypeDescriberImplTestCase.java (from r519481, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImplTestCase.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/ContentTypeDescriberImplTestCase.java?view=diff&rev=522627&p1=incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImplTestCase.java&r1=519481&p2=incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/ContentTypeDescriberImplTestCase.java&r2=522627
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImplTestCase.java (original)
+++ incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/ContentTypeDescriberImplTestCase.java Mon Mar 26 14:06:34 2007
@@ -16,13 +16,13 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.tuscany.core.services.deployment;
+package org.apache.tuscany.services.contribution;
import java.net.URL;
import junit.framework.TestCase;
-import org.apache.tuscany.spi.deployer.ContentType;
+import org.apache.tuscany.services.contribution.model.ContentType;
public class ContentTypeDescriberImplTestCase extends TestCase {
private ContentTypeDescriberImpl contentTypeBuilder;
Copied: incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/ContributionLoaderTestCase.java (from r519481, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContributionLoaderTestCase.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/ContributionLoaderTestCase.java?view=diff&rev=522627&p1=incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContributionLoaderTestCase.java&r1=519481&p2=incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/ContributionLoaderTestCase.java&r2=522627
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContributionLoaderTestCase.java (original)
+++ incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/ContributionLoaderTestCase.java Mon Mar 26 14:06:34 2007
@@ -17,18 +17,17 @@
* under the License.
*/
-package org.apache.tuscany.core.services.deployment;
+package org.apache.tuscany.services.contribution;
import java.io.StringReader;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamReader;
-import org.apache.tuscany.spi.loader.InvalidValueException;
-import org.apache.tuscany.spi.model.Contribution;
-
import junit.framework.TestCase;
+import org.apache.tuscany.services.contribution.model.Contribution;
+
/**
* @version $Rev$ $Date$
*/
@@ -61,8 +60,8 @@
public void testLoad() throws Exception {
XMLStreamReader reader = factory.createXMLStreamReader(new StringReader(VALID_XML));
- ContributionLoader loader = new ContributionLoader(null);
- Contribution contribution = loader.load(null, null, reader, null);
+ ContributionLoader loader = new ContributionLoader();
+ Contribution contribution = loader.load(reader);
assertNotNull(contribution);
assertEquals(1, contribution.getImports().size());
assertEquals(1, contribution.getExports().size());
@@ -71,9 +70,9 @@
public void testLoadInvalid() throws Exception {
XMLStreamReader reader = factory.createXMLStreamReader(new StringReader(INVALID_XML));
- ContributionLoader loader = new ContributionLoader(null);
+ ContributionLoader loader = new ContributionLoader();
try {
- loader.load(null, null, reader, null);
+ loader.load(reader);
fail("InvalidException should have been thrown");
} catch (InvalidValueException e) {
assertTrue(true);
Copied: incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/ContributionRepositoryTestCase.java (from r519481, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContributionRepositoryTestCase.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/ContributionRepositoryTestCase.java?view=diff&rev=522627&p1=incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContributionRepositoryTestCase.java&r1=519481&p2=incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/ContributionRepositoryTestCase.java&r2=522627
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContributionRepositoryTestCase.java (original)
+++ incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/ContributionRepositoryTestCase.java Mon Mar 26 14:06:34 2007
@@ -17,16 +17,16 @@
* under the License.
*/
-package org.apache.tuscany.core.services.deployment;
+package org.apache.tuscany.services.contribution;
import java.io.File;
import java.io.InputStream;
import java.net.URI;
import java.net.URL;
-import org.apache.tuscany.core.util.FileHelper;
-
import junit.framework.TestCase;
+
+import org.apache.tuscany.services.contribution.util.FileHelper;
public class ContributionRepositoryTestCase extends TestCase {
private ContributionRepositoryImpl repository;
Copied: incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/ContributionServiceImplTestCase.java (from r519481, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContributionServiceImplTestCase.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/ContributionServiceImplTestCase.java?view=diff&rev=522627&p1=incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContributionServiceImplTestCase.java&r1=519481&p2=incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/ContributionServiceImplTestCase.java&r2=522627
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContributionServiceImplTestCase.java (original)
+++ incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/ContributionServiceImplTestCase.java Mon Mar 26 14:06:34 2007
@@ -17,19 +17,14 @@
* under the License.
*/
-package org.apache.tuscany.core.services.deployment;
-
-import java.net.URI;
-import java.net.URL;
+package org.apache.tuscany.services.contribution;
import junit.framework.TestCase;
-import org.apache.tuscany.core.services.deployment.contribution.JarContributionProcessor;
-import org.apache.tuscany.core.services.deployment.contribution.JavaContributionProcessor;
-import org.apache.tuscany.host.deployment.ContributionService;
-import org.apache.tuscany.spi.deployer.ContentTypeDescriber;
-import org.apache.tuscany.spi.deployer.ContributionProcessorRegistry;
-import org.apache.tuscany.spi.deployer.ContributionRepository;
+import org.apache.tuscany.services.contribution.spi.ContentTypeDescriber;
+import org.apache.tuscany.services.contribution.spi.ContributionProcessorRegistry;
+import org.apache.tuscany.services.contribution.spi.ContributionRepository;
+import org.apache.tuscany.services.contribution.spi.ContributionService;
/**
* This is more intended to be a integration test then a unit test. *
Copied: incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/processor/CompositeContributionProcessorTestCase.java (from r519481, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/CompositeContributionProcessorTestCase.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/processor/CompositeContributionProcessorTestCase.java?view=diff&rev=522627&p1=incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/CompositeContributionProcessorTestCase.java&r1=519481&p2=incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/processor/CompositeContributionProcessorTestCase.java&r2=522627
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/CompositeContributionProcessorTestCase.java (original)
+++ incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/processor/CompositeContributionProcessorTestCase.java Mon Mar 26 14:06:34 2007
@@ -16,26 +16,13 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.tuscany.core.services.deployment.contribution;
+package org.apache.tuscany.services.contribution.processor;
import java.net.URL;
import java.util.jar.JarEntry;
import java.util.jar.JarInputStream;
import junit.framework.TestCase;
-
-import org.apache.tuscany.core.idl.java.JavaInterfaceProcessorRegistryImpl;
-import org.apache.tuscany.core.implementation.IntrospectionRegistryImpl;
-import org.apache.tuscany.core.implementation.processor.DestroyProcessor;
-import org.apache.tuscany.core.implementation.processor.ImplementationProcessorServiceImpl;
-import org.apache.tuscany.core.implementation.processor.InitProcessor;
-import org.apache.tuscany.core.implementation.processor.PropertyProcessor;
-import org.apache.tuscany.core.implementation.processor.ReferenceProcessor;
-import org.apache.tuscany.core.implementation.processor.ResourceProcessor;
-import org.apache.tuscany.core.implementation.processor.ScopeProcessor;
-import org.apache.tuscany.core.monitor.NullMonitorFactory;
-import org.apache.tuscany.spi.deployer.ContributionProcessor;
-import org.apache.tuscany.spi.implementation.java.ImplementationProcessorService;
public class CompositeContributionProcessorTestCase extends TestCase {
private static final String CONTRIBUTION = "/repository/sample-calculator.jar";
Copied: incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/processor/FolderContributionProcessorTestCase.java (from r519481, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/FolderContributionProcessorTestCase.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/processor/FolderContributionProcessorTestCase.java?view=diff&rev=522627&p1=incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/FolderContributionProcessorTestCase.java&r1=519481&p2=incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/processor/FolderContributionProcessorTestCase.java&r2=522627
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/FolderContributionProcessorTestCase.java (original)
+++ incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/processor/FolderContributionProcessorTestCase.java Mon Mar 26 14:06:34 2007
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.tuscany.core.services.deployment.contribution;
+package org.apache.tuscany.services.contribution.processor;
import java.io.File;
import java.net.URI;
Copied: incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/processor/JarContributionProcessorTestCase.java (from r519481, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/JarContributionProcessorTestCase.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/processor/JarContributionProcessorTestCase.java?view=diff&rev=522627&p1=incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/JarContributionProcessorTestCase.java&r1=519481&p2=incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/processor/JarContributionProcessorTestCase.java&r2=522627
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/JarContributionProcessorTestCase.java (original)
+++ incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/processor/JarContributionProcessorTestCase.java Mon Mar 26 14:06:34 2007
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.tuscany.core.services.deployment.contribution;
+package org.apache.tuscany.services.contribution.processor;
import java.net.URI;
import java.net.URL;
Copied: incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/processor/JavaContributionProcessorTestCase.java (from r519481, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/JavaContributionProcessorTestCase.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/processor/JavaContributionProcessorTestCase.java?view=diff&rev=522627&p1=incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/JavaContributionProcessorTestCase.java&r1=519481&p2=incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/processor/JavaContributionProcessorTestCase.java&r2=522627
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/JavaContributionProcessorTestCase.java (original)
+++ incubator/tuscany/java/sca/runtime/services/contribution/contribution/src/test/java/org/apache/tuscany/services/contribution/processor/JavaContributionProcessorTestCase.java Mon Mar 26 14:06:34 2007
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.tuscany.core.services.deployment.contribution;
+package org.apache.tuscany.services.contribution.processor;
import java.net.URI;
import java.net.URL;
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org