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/02/16 09:23:32 UTC
svn commit: r508346 - in /incubator/tuscany/java/sca/kernel:
core/src/main/java/org/apache/tuscany/core/services/deployment/
core/src/main/java/org/apache/tuscany/core/services/deployment/contribution/
core/src/main/resources/org/apache/tuscany/core/ c...
Author: rfeng
Date: Fri Feb 16 00:23:30 2007
New Revision: 508346
URL: http://svn.apache.org/viewvc?view=rev&rev=508346
Log:
Merge contribution code from sca-java-integration branch to trunk. Thanks for Luciano's "contribution" :-)
Added:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImpl.java
- copied, changed from r508337, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionProcessorRegistryImpl.java
- copied unchanged from r508337, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionProcessorRegistryImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/contribution/
- copied from r508337, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/contribution/
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/contribution/JarContributionProcessor.java
- copied unchanged from r508337, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/contribution/JarContributionProcessor.java
incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/deployment.scdl
- copied unchanged from r508344, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/resources/org/apache/tuscany/core/deployment.scdl
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImplTestCase.java
- copied, changed from r508338, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImplTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/
- copied from r508338, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/contribution/JarContributionProcessorTestCase.java
- copied unchanged from r508338, 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/kernel/core/src/test/resources/org/apache/tuscany/core/services/
- copied from r508344, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/resources/org/apache/tuscany/core/services/
incubator/tuscany/java/sca/kernel/core/src/test/resources/org/apache/tuscany/core/services/deployment/
- copied from r508344, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/resources/org/apache/tuscany/core/services/deployment/
incubator/tuscany/java/sca/kernel/core/src/test/resources/org/apache/tuscany/core/services/deployment/test.ext
- copied unchanged from r508344, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/resources/org/apache/tuscany/core/services/deployment/test.ext
incubator/tuscany/java/sca/kernel/core/src/test/resources/org/apache/tuscany/core/services/deployment/test.scdl
- copied unchanged from r508344, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/resources/org/apache/tuscany/core/services/deployment/test.scdl
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContentTypeDescriber.java
- copied unchanged from r508337, incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContentTypeDescriber.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ContributionProcessorExtension.java
- copied unchanged from r508338, incubator/tuscany/branches/sca-java-integration/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ContributionProcessorExtension.java
Modified:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionRepositoryImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionServiceImpl.java
incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/deployment/ContributionService.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionProcessor.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionProcessorRegistry.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentMonitor.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ElementInfo.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/TypeInfo.java
Copied: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImpl.java (from r508337, incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImpl.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImpl.java?view=diff&rev=508346&p1=incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImpl.java&r1=508337&p2=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImpl.java&r2=508346
==============================================================================
--- incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImpl.java Fri Feb 16 00:23:30 2007
@@ -49,7 +49,7 @@
* Initialize contentType registry with know types based on known file
* extensions
*/
- public void init() {
+ private void init() {
contentTypeRegistry.put("SCDL", "application/v.tuscany.scdl");
contentTypeRegistry.put("WSDL", "application/v.tuscany.wsdl");
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionRepositoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionRepositoryImpl.java?view=diff&rev=508346&r1=508345&r2=508346
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionRepositoryImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionRepositoryImpl.java Fri Feb 16 00:23:30 2007
@@ -36,8 +36,17 @@
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils;
import org.apache.tuscany.spi.deployer.ContributionRepository;
+import org.osoa.sca.annotations.Destroy;
+import org.osoa.sca.annotations.EagerInit;
+import org.osoa.sca.annotations.Init;
import org.osoa.sca.annotations.Property;
+/**
+ * The default implementation of ContributionRepository
+ *
+ * @version $Rev$ $Date$
+ */
+@EagerInit
public class ContributionRepositoryImpl implements ContributionRepository {
protected final File rootFile;
protected final Map<URI, URL> reposirotyContent = new HashMap<URI, URL>();
@@ -123,6 +132,14 @@
public List<URI> list() {
return new ArrayList<URI>(reposirotyContent.keySet());
+ }
+
+ @Init
+ public void init() {
+ }
+
+ @Destroy
+ public void destroy() {
}
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionServiceImpl.java?view=diff&rev=508346&r1=508345&r2=508346
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionServiceImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/deployment/ContributionServiceImpl.java Fri Feb 16 00:23:30 2007
@@ -23,28 +23,34 @@
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
-import java.net.URLConnection;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.UUID;
+import org.apache.commons.io.IOUtils;
import org.apache.tuscany.host.deployment.ContributionService;
import org.apache.tuscany.host.deployment.DeploymentException;
-import org.apache.tuscany.host.deployment.UnsupportedContentTypeException;
-import org.apache.tuscany.spi.deployer.ContributionProcessor;
+import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.deployer.ContributionProcessorRegistry;
+import org.apache.tuscany.spi.deployer.ContributionRepository;
+import org.apache.tuscany.spi.model.Contribution;
/**
* @version $Rev$ $Date$
*/
-public class ContributionServiceImpl implements ContributionService, ContributionProcessorRegistry {
- private Map<String, ContributionProcessor> registry = new HashMap<String, ContributionProcessor>();
-
- public void register(ContributionProcessor processor) {
- registry.put(processor.getContentType(), processor);
- }
-
- public void unregister(String contentType) {
- registry.remove(contentType);
+public class ContributionServiceImpl implements ContributionService {
+ /**
+ * Repository where contributions are stored. Usually set by injection.
+ */
+ protected ContributionRepository contributionRepository;
+ /**
+ * Registry of available processors. Usually set by injection.
+ */
+ protected ContributionProcessorRegistry processorRegistry;
+
+ public ContributionServiceImpl(@Autowire ContributionRepository repository,
+ @Autowire ContributionProcessorRegistry processorRegistry) {
+ super();
+ this.contributionRepository = repository;
+ this.processorRegistry = processorRegistry;
}
public URI contribute(URL contribution) throws DeploymentException, IOException {
@@ -59,37 +65,42 @@
throw new IllegalArgumentException("contribution cannot be converted to a URI", e);
}
- URLConnection connection = contribution.openConnection();
- String contentType = connection.getContentType();
- //todo try and figure out content type from the URL
- if (contentType == null) {
- throw new UnsupportedContentTypeException(null, contribution.toString());
- }
-
- InputStream is = connection.getInputStream();
+ InputStream is = contribution.openConnection().getInputStream();
try {
- return contribute(source, is, contentType);
+ return contribute(source, is);
} finally {
- try {
- is.close();
- } catch (IOException e) {
- // ignore
- }
+ IOUtils.closeQuietly(is);
}
}
- public URI contribute(URI source, InputStream contribution, String contentType)
- throws DeploymentException, IOException {
- if (contentType == null) {
- throw new IllegalArgumentException("contentType was null");
+ public URI contribute(URI source, InputStream contributionStream) throws DeploymentException, IOException {
+ if (source == null) {
+ throw new IllegalArgumentException("source URI for contribution is null");
+ }
+
+ if (contributionStream == null) {
+ throw new IllegalArgumentException("Invalid contribution stream : null");
}
- ContributionProcessor processor = registry.get(contentType);
- if (processor == null) {
- throw new UnsupportedContentTypeException(contentType, source.toString());
+ // store the contribution in the contribution repository
+ URL storedURL = this.contributionRepository.store(source, contributionStream);
+ Contribution contribution = null;
+ try {
+ // start processing valid contribution
+ contribution = new Contribution();
+ contribution.setUri(new URI("sca://contribution/" + UUID.randomUUID()));
+
+ this.processorRegistry.processContent(contribution, storedURL, contributionStream);
+
+ } catch (URISyntaxException urie) {
+ // FIXME
}
-
- return null;
+
+ if (contribution == null) {
+ // FIXME throw exception
+ }
+
+ return contribution.getUri();
}
public void remove(URI contribution) throws DeploymentException {
Copied: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImplTestCase.java (from r508338, 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/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImplTestCase.java?view=diff&rev=508346&p1=incubator/tuscany/branches/sca-java-integration/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImplTestCase.java&r1=508338&p2=incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImplTestCase.java&r2=508346
==============================================================================
--- 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/kernel/core/src/test/java/org/apache/tuscany/core/services/deployment/ContentTypeDescriberImplTestCase.java Fri Feb 16 00:23:30 2007
@@ -27,20 +27,20 @@
public class ContentTypeDescriberImplTestCase extends TestCase {
private ContentTypeDescriberImpl contentTypeBuilder;
- public void testResolveContentType() throws Exception{
+ public void testResolveContentType() throws Exception {
URL artifactURL = getClass().getResource("test.scdl");
assertEquals("application/v.tuscany.scdl", contentTypeBuilder.getContentType(artifactURL, null));
}
-
- public void testUnknownResolveContentType() throws Exception{
+ public void testUnknownResolveContentType() throws Exception {
URL artifactURL = getClass().getResource("test.ext");
assertNull(contentTypeBuilder.getContentType(artifactURL, null));
}
-
- public void testDefaultContentType() throws Exception{
+
+ public void testDefaultContentType() throws Exception {
URL artifactURL = getClass().getResource("test.ext");
- assertEquals("application/v.tuscany.ext", contentTypeBuilder.getContentType(artifactURL, "application/v.tuscany.ext"));
+ assertEquals("application/v.tuscany.ext", contentTypeBuilder.getContentType(artifactURL,
+ "application/v.tuscany.ext"));
}
protected void setUp() throws Exception {
Modified: incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/deployment/ContributionService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/deployment/ContributionService.java?view=diff&rev=508346&r1=508345&r2=508346
==============================================================================
--- incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/deployment/ContributionService.java (original)
+++ incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/deployment/ContributionService.java Fri Feb 16 00:23:30 2007
@@ -47,13 +47,10 @@
* @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 contentType the type of contribution being made; must be a valid Content-Type value as specified by <a
- * href="http://www.ietf.org/rfc/rfc2045.txt">RFC2045</a> and must not be null @return a URI
- * that uniquely identifies this contribution within the SCA Domain
* @throws DeploymentException if there was a problem with the contribution
* @throws IOException if there was a problem reading the stream
*/
- URI contribute(URI source, InputStream contribution, String contentType) throws DeploymentException, IOException;
+ URI contribute(URI source, InputStream contribution) throws DeploymentException, IOException;
/**
* Remove a contribution from the SCA domain
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionProcessor.java?view=diff&rev=508346&r1=508345&r2=508346
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionProcessor.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionProcessor.java Fri Feb 16 00:23:30 2007
@@ -20,7 +20,7 @@
import java.io.IOException;
import java.io.InputStream;
-import java.net.URI;
+import java.net.URL;
import org.apache.tuscany.host.deployment.DeploymentException;
import org.apache.tuscany.spi.model.Contribution;
@@ -32,27 +32,20 @@
*/
public interface ContributionProcessor {
/**
- * Returns the content type that this implementation can handle.
- *
- * @return the content type that this implementation can handle
- */
- String getContentType();
-
- /**
* Process a contribution or an artifact in the contribution from the input
* stream. The processor might add artifacts or model objects to the
* contribution object.
*
* @param contribution The contribution model that will be used to hold the
* results from the processing
+ * @param source The URI for the contribution/artifact
* @param inputStream The input stream for the contribution. The stream will
* not be closed but the read position after the call is
* undefined
- * @param source The URI for the contribution/artifact
* @throws DeploymentException if there was a problem with the contribution
* @throws IOException if there was a problem reading the stream
*/
- void processContent(Contribution contribution, URI source, InputStream inputStream) throws DeploymentException,
+ void processContent(Contribution contribution, URL source, InputStream inputStream) throws DeploymentException,
IOException;
/**
@@ -68,6 +61,6 @@
* @throws DeploymentException
* @throws IOException
*/
- void processModel(Contribution contribution, URI source, Object modelObject) throws DeploymentException,
+ void processModel(Contribution contribution, URL source, Object modelObject) throws DeploymentException,
IOException;
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionProcessorRegistry.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionProcessorRegistry.java?view=diff&rev=508346&r1=508345&r2=508346
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionProcessorRegistry.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/ContributionProcessorRegistry.java Fri Feb 16 00:23:30 2007
@@ -21,16 +21,16 @@
/**
* @version $Rev$ $Date$
*/
-public interface ContributionProcessorRegistry {
+public interface ContributionProcessorRegistry extends ContributionProcessor {
/**
* Register a ContributionProcessor using the content type as the key
* @param processor
*/
- void register(ContributionProcessor processor);
+ void register(String contentType, ContributionProcessor processor);
/**
* Unregister a ContributionProcessor by content type
* @param contentType
*/
void unregister(String contentType);
-}
+}
\ No newline at end of file
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentMonitor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentMonitor.java?view=diff&rev=508346&r1=508345&r2=508346
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentMonitor.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentMonitor.java Fri Feb 16 00:23:30 2007
@@ -8,10 +8,10 @@
*/
public interface DeploymentMonitor {
- @LogLevel("DEBUG")
+ @LogLevel("FINER")
void startDeployment();
- @LogLevel("DEBUG")
+ @LogLevel("FINER")
void endDeployment();
@LogLevel("SEVERE")
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ElementInfo.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ElementInfo.java?view=diff&rev=508346&r1=508345&r2=508346
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ElementInfo.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/ElementInfo.java Fri Feb 16 00:23:30 2007
@@ -51,4 +51,10 @@
public TypeInfo getType() {
return type;
}
+
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+ sb.append("Element: ").append(name).append(" ").append(type);
+ return sb.toString();
+ }
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/TypeInfo.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/TypeInfo.java?view=diff&rev=508346&r1=508345&r2=508346
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/TypeInfo.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/TypeInfo.java Fri Feb 16 00:23:30 2007
@@ -62,5 +62,11 @@
public TypeInfo getBaseType() {
return baseType;
}
+
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+ sb.append("Type: ").append(name);
+ return sb.toString();
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org