You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2007/04/14 23:42:21 UTC

svn commit: r528879 - in /incubator/tuscany/java/sca/modules: contribution-impl/src/main/java/org/apache/tuscany/contribution/processor/impl/ contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ contribution-impl/src/test/java/...

Author: jsdelfino
Date: Sat Apr 14 14:42:20 2007
New Revision: 528879

URL: http://svn.apache.org/viewvc?view=rev&rev=528879
Log:
Renamed ContributionPackageProcessor to PackageProcessor.

Added:
    incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/processor/impl/DefaultPackageProcessorExtensionPoint.java   (with props)
    incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/processor/PackageProcessor.java   (with props)
    incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/processor/PackageProcessorExtensionPoint.java   (with props)
Removed:
    incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/processor/impl/ContributionPackageProcessorRegistryImpl.java
    incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/processor/ContributionPackageProcessor.java
    incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/processor/ContributionPackageProcessorRegistry.java
Modified:
    incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/processor/impl/AbstractContributionPackageProcessor.java
    incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/processor/impl/FolderContributionProcessor.java
    incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/processor/impl/JarContributionProcessor.java
    incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ContributionServiceImpl.java
    incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/contribution/processor/FolderContributionPackageProcessorTestCase.java
    incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/contribution/processor/JarContributionPackageProcessorTestCase.java
    incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/contribution/services/ContributionServiceImplTestCase.java
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/SimpleRuntimeImpl.java

Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/processor/impl/AbstractContributionPackageProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/processor/impl/AbstractContributionPackageProcessor.java?view=diff&rev=528879&r1=528878&r2=528879
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/processor/impl/AbstractContributionPackageProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/processor/impl/AbstractContributionPackageProcessor.java Sat Apr 14 14:42:20 2007
@@ -23,28 +23,28 @@
 import java.net.URI;
 import java.net.URL;
 
-import org.apache.tuscany.contribution.processor.ContributionPackageProcessor;
-import org.apache.tuscany.contribution.processor.ContributionPackageProcessorRegistry;
+import org.apache.tuscany.contribution.processor.PackageProcessor;
+import org.apache.tuscany.contribution.processor.PackageProcessorExtensionPoint;
 
 /**
  * The base class for ContributionPackageProcessor implementations
  * 
  * @version $Rev$ $Date$
  */
-public abstract class AbstractContributionPackageProcessor implements ContributionPackageProcessor {
+public abstract class AbstractContributionPackageProcessor implements PackageProcessor {
     /**
      * The ContributionProcessorRegistry that this processor should register
      * with; usually set by injection. This registry may also be used to process
      * other sub-artifacts.
      */
-    protected final ContributionPackageProcessorRegistry registry;
+    protected final PackageProcessorExtensionPoint packageProcessors;
 
     /**
-     * @param registry the registry to set
+     * @param packageProcessors the registry to set
      */
-    public AbstractContributionPackageProcessor(ContributionPackageProcessorRegistry registry) {
-        this.registry = registry;
-        this.registry.register(this.getPackageType(), this);
+    public AbstractContributionPackageProcessor(PackageProcessorExtensionPoint packageProcessors) {
+        this.packageProcessors = packageProcessors;
+        this.packageProcessors.register(this.getPackageType(), this);
     }
 
     public URL getArtifactURL(URL packageSourceURL, URI artifact) throws MalformedURLException {

Added: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/processor/impl/DefaultPackageProcessorExtensionPoint.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/processor/impl/DefaultPackageProcessorExtensionPoint.java?view=auto&rev=528879
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/processor/impl/DefaultPackageProcessorExtensionPoint.java (added)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/processor/impl/DefaultPackageProcessorExtensionPoint.java Sat Apr 14 14:42:20 2007
@@ -0,0 +1,91 @@
+/*
+ * 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.contribution.processor.impl;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.tuscany.contribution.processor.PackageProcessor;
+import org.apache.tuscany.contribution.processor.PackageProcessorExtensionPoint;
+import org.apache.tuscany.contribution.service.ContributionException;
+import org.apache.tuscany.contribution.service.TypeDescriber;
+import org.apache.tuscany.contribution.service.UnsupportedContentTypeException;
+import org.apache.tuscany.contribution.service.impl.PackageTypeDescriberImpl;
+
+/**
+ * Default implementation of ContributionProcessorRegistry
+ *
+ * @version $Rev$ $Date$
+ */
+public class DefaultPackageProcessorExtensionPoint implements PackageProcessorExtensionPoint {
+    /**
+     * Processor registry
+     */
+    private Map<String, PackageProcessor> registry = new HashMap<String, PackageProcessor>();
+    /**
+     * Helper method to describe contentType for each artifact
+     */
+    private TypeDescriber packageTypeDescriber;
+
+    public DefaultPackageProcessorExtensionPoint(TypeDescriber packageTypeDescriber) {
+        if (packageTypeDescriber == null) {
+            this.packageTypeDescriber = new PackageTypeDescriberImpl();
+        } else {
+            this.packageTypeDescriber = packageTypeDescriber;
+        }
+    }
+
+    public void register(String contentType, PackageProcessor processor) {
+        registry.put(contentType, processor);
+    }
+
+    public void unregister(String contentType) {
+        registry.remove(contentType);
+    }
+
+    public List<URI> getArtifacts(URL packageSourceURL,InputStream inputStream) throws ContributionException, IOException{
+        String contentType = this.packageTypeDescriber.getType(packageSourceURL, null);
+        if (contentType == null) {
+            throw new UnsupportedContentTypeException("Unsupported contribution package", packageSourceURL.toString());
+        }
+
+        PackageProcessor packageProcessor = this.registry.get(contentType);
+        if (packageProcessor == null) {
+            throw new UnsupportedContentTypeException(contentType, packageSourceURL.getPath());
+        }
+
+        return packageProcessor.getArtifacts(packageSourceURL, inputStream);
+    }
+    
+    /**
+     * @see org.apache.tuscany.contribution.processor.PackageProcessor#getArtifactURL(java.net.URL, java.net.URI)
+     */
+    public URL getArtifactURL(URL packageSourceURL, URI artifact) throws MalformedURLException {
+        String contentType = this.packageTypeDescriber.getType(packageSourceURL, null);
+        PackageProcessor packageProcessor = this.registry.get(contentType);
+        return packageProcessor.getArtifactURL(packageSourceURL, artifact);
+    }    
+}

Propchange: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/processor/impl/DefaultPackageProcessorExtensionPoint.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/processor/impl/DefaultPackageProcessorExtensionPoint.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/processor/impl/FolderContributionProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/processor/impl/FolderContributionProcessor.java?view=diff&rev=528879&r1=528878&r2=528879
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/processor/impl/FolderContributionProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/processor/impl/FolderContributionProcessor.java Sat Apr 14 14:42:20 2007
@@ -30,20 +30,20 @@
 import java.util.List;
 
 import org.apache.tuscany.contribution.ContentType;
-import org.apache.tuscany.contribution.processor.ContributionPackageProcessor;
-import org.apache.tuscany.contribution.processor.ContributionPackageProcessorRegistry;
+import org.apache.tuscany.contribution.processor.PackageProcessor;
+import org.apache.tuscany.contribution.processor.PackageProcessorExtensionPoint;
 import org.apache.tuscany.contribution.service.ContributionException;
 import org.apache.tuscany.contribution.service.util.FileHelper;
 
 public class FolderContributionProcessor extends AbstractContributionPackageProcessor implements
-    ContributionPackageProcessor {
+    PackageProcessor {
     /**
      * Package-type that this package processor can handle
      */
     public static final String PACKAGE_TYPE = ContentType.FOLDER;
 
-    public FolderContributionProcessor(ContributionPackageProcessorRegistry registry) {
-        super(registry);
+    public FolderContributionProcessor(PackageProcessorExtensionPoint packageProcessors) {
+        super(packageProcessors);
     }
 
     public String getPackageType() {

Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/processor/impl/JarContributionProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/processor/impl/JarContributionProcessor.java?view=diff&rev=528879&r1=528878&r2=528879
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/processor/impl/JarContributionProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/processor/impl/JarContributionProcessor.java Sat Apr 14 14:42:20 2007
@@ -30,19 +30,19 @@
 import java.util.jar.JarInputStream;
 
 import org.apache.tuscany.contribution.ContentType;
-import org.apache.tuscany.contribution.processor.ContributionPackageProcessor;
-import org.apache.tuscany.contribution.processor.ContributionPackageProcessorRegistry;
+import org.apache.tuscany.contribution.processor.PackageProcessor;
+import org.apache.tuscany.contribution.processor.PackageProcessorExtensionPoint;
 import org.apache.tuscany.contribution.service.ContributionException;
 
 public class JarContributionProcessor extends AbstractContributionPackageProcessor implements
-    ContributionPackageProcessor {
+    PackageProcessor {
     /**
      * Package-type that this package processor can handle
      */
     public static final String PACKAGE_TYPE = ContentType.JAR;
 
-    public JarContributionProcessor(ContributionPackageProcessorRegistry registry) {
-        super(registry);
+    public JarContributionProcessor(PackageProcessorExtensionPoint packageProcessors) {
+        super(packageProcessors);
     }
 
     public String getPackageType() {

Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ContributionServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ContributionServiceImpl.java?view=diff&rev=528879&r1=528878&r2=528879
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ContributionServiceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ContributionServiceImpl.java Sat Apr 14 14:42:20 2007
@@ -34,7 +34,7 @@
 
 import org.apache.tuscany.contribution.Contribution;
 import org.apache.tuscany.contribution.DeployedArtifact;
-import org.apache.tuscany.contribution.processor.ContributionPackageProcessor;
+import org.apache.tuscany.contribution.processor.PackageProcessor;
 import org.apache.tuscany.contribution.processor.URLArtifactProcessor;
 import org.apache.tuscany.contribution.resolver.ArtifactResolver;
 import org.apache.tuscany.contribution.service.ContributionException;
@@ -56,7 +56,7 @@
     /**
      * Registry of available package processors.
      */
-    protected ContributionPackageProcessor packageProcessor;
+    protected PackageProcessor packageProcessor;
 
     /**
      * Registry of available artifact processors
@@ -82,7 +82,7 @@
     protected ArtifactResolver artifactResolver;
 
     public ContributionServiceImpl(ContributionRepository repository,
-                                   ContributionPackageProcessor packageProcessor,
+                                   PackageProcessor packageProcessor,
                                    URLArtifactProcessor artifactProcessor,
                                    ArtifactResolver artifactResolver) {
         super();

Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/contribution/processor/FolderContributionPackageProcessorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/contribution/processor/FolderContributionPackageProcessorTestCase.java?view=diff&rev=528879&r1=528878&r2=528879
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/contribution/processor/FolderContributionPackageProcessorTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/contribution/processor/FolderContributionPackageProcessorTestCase.java Sat Apr 14 14:42:20 2007
@@ -24,8 +24,8 @@
 
 import junit.framework.TestCase;
 
-import org.apache.tuscany.contribution.processor.ContributionPackageProcessorRegistry;
-import org.apache.tuscany.contribution.processor.impl.ContributionPackageProcessorRegistryImpl;
+import org.apache.tuscany.contribution.processor.PackageProcessorExtensionPoint;
+import org.apache.tuscany.contribution.processor.impl.DefaultPackageProcessorExtensionPoint;
 import org.apache.tuscany.contribution.processor.impl.FolderContributionProcessor;
 import org.apache.tuscany.contribution.service.impl.PackageTypeDescriberImpl;
 
@@ -40,8 +40,8 @@
     }
     
     public final void testProcessPackageArtifacts() throws Exception {
-        ContributionPackageProcessorRegistry packageProcessorRegistry = new ContributionPackageProcessorRegistryImpl(new PackageTypeDescriberImpl()); 
-        FolderContributionProcessor folderProcessor = new FolderContributionProcessor(packageProcessorRegistry);
+        PackageProcessorExtensionPoint packageProcessors = new DefaultPackageProcessorExtensionPoint(new PackageTypeDescriberImpl()); 
+        FolderContributionProcessor folderProcessor = new FolderContributionProcessor(packageProcessors);
 
         List<URI> artifacts = folderProcessor.getArtifacts(contributionRoot.toURL(), null);
         assertNotNull(artifacts);

Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/contribution/processor/JarContributionPackageProcessorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/contribution/processor/JarContributionPackageProcessorTestCase.java?view=diff&rev=528879&r1=528878&r2=528879
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/contribution/processor/JarContributionPackageProcessorTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/contribution/processor/JarContributionPackageProcessorTestCase.java Sat Apr 14 14:42:20 2007
@@ -25,8 +25,8 @@
 
 import junit.framework.TestCase;
 
-import org.apache.tuscany.contribution.processor.ContributionPackageProcessorRegistry;
-import org.apache.tuscany.contribution.processor.impl.ContributionPackageProcessorRegistryImpl;
+import org.apache.tuscany.contribution.processor.PackageProcessorExtensionPoint;
+import org.apache.tuscany.contribution.processor.impl.DefaultPackageProcessorExtensionPoint;
 import org.apache.tuscany.contribution.processor.impl.JarContributionProcessor;
 import org.apache.tuscany.contribution.service.impl.PackageTypeDescriberImpl;
 import org.apache.tuscany.contribution.service.util.IOHelper;
@@ -39,8 +39,8 @@
     }
     
     public final void testProcessPackageArtifacts() throws Exception {
-        ContributionPackageProcessorRegistry packageProcessorRegistry = new ContributionPackageProcessorRegistryImpl(new PackageTypeDescriberImpl()); 
-        JarContributionProcessor jarProcessor = new JarContributionProcessor(packageProcessorRegistry);
+        PackageProcessorExtensionPoint packageProcessors = new DefaultPackageProcessorExtensionPoint(new PackageTypeDescriberImpl()); 
+        JarContributionProcessor jarProcessor = new JarContributionProcessor(packageProcessors);
 
         URL jarURL = getClass().getResource(JAR_CONTRIBUTION);
         InputStream jarStream = jarURL.openStream();

Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/contribution/services/ContributionServiceImplTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/contribution/services/ContributionServiceImplTestCase.java?view=diff&rev=528879&r1=528878&r2=528879
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/contribution/services/ContributionServiceImplTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/contribution/services/ContributionServiceImplTestCase.java Sat Apr 14 14:42:20 2007
@@ -24,8 +24,8 @@
 
 import junit.framework.TestCase;
 
-import org.apache.tuscany.contribution.processor.ContributionPackageProcessorRegistry;
-import org.apache.tuscany.contribution.processor.impl.ContributionPackageProcessorRegistryImpl;
+import org.apache.tuscany.contribution.processor.PackageProcessorExtensionPoint;
+import org.apache.tuscany.contribution.processor.impl.DefaultPackageProcessorExtensionPoint;
 import org.apache.tuscany.contribution.processor.impl.FolderContributionProcessor;
 import org.apache.tuscany.contribution.processor.impl.JarContributionProcessor;
 import org.apache.tuscany.contribution.service.ContributionService;
@@ -40,9 +40,7 @@
     private static final String CONTRIBUTION = "/repository/sample-calculator.jar";
     
     private TypeDescriber contentTypeDescriber;
-    private ContributionPackageProcessorRegistry packageProcessorRegistry;
-    //private DefaultStAXArtifactProcessorRegistry staxArtifactProcessorRegistry;
-    //private DefaultURLArtifactProcessorRegistry documentArtifactProcessorRegistry;
+    private PackageProcessorExtensionPoint packageProcessors;
     private ContributionService contributionService;
     
     protected void setUp() throws Exception {
@@ -51,9 +49,9 @@
         //boostrap contribution service
         this.contentTypeDescriber = new ArtifactTypeDescriberImpl();
  
-        this.packageProcessorRegistry = new ContributionPackageProcessorRegistryImpl(contentTypeDescriber);
-        new JarContributionProcessor(this.packageProcessorRegistry);
-        new FolderContributionProcessor(this.packageProcessorRegistry);
+        this.packageProcessors = new DefaultPackageProcessorExtensionPoint(contentTypeDescriber);
+        new JarContributionProcessor(this.packageProcessors);
+        new FolderContributionProcessor(this.packageProcessors);
 
         /*
         staxArtifactProcessorRegistry = new DefaultStAXArtifactProcessorRegistry();

Added: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/processor/PackageProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/processor/PackageProcessor.java?view=auto&rev=528879
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/processor/PackageProcessor.java (added)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/processor/PackageProcessor.java Sat Apr 14 14:42:20 2007
@@ -0,0 +1,61 @@
+/*
+ * 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.contribution.processor;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URL;
+import java.util.List;
+
+import org.apache.tuscany.contribution.service.ContributionException;
+
+/**
+ * Interface for services that can process contributions.
+ * 
+ * @version $Rev$ $Date$
+ */
+public interface PackageProcessor {
+    // /**
+    // * Returns the type of package handled by this package processor.
+    // * @return the type of package handled by this package processor
+    // */
+    // String getPackageType();
+
+    /**
+     * Retrieve a list of artifacts for the specific package type
+     * 
+     * @param packageSourceURL location of the artifact
+     * @param inputStream optional content of the package
+     * @return
+     * @throws ContributionException
+     * @throws IOException
+     */
+    List<URI> getArtifacts(URL packageSourceURL, InputStream inputStream) throws ContributionException, IOException;
+
+    /**
+     * Return the URL for an artifact in the package
+     * 
+     * @param packageSourceURL The package URL
+     * @param artifact The relative URI for the artifact
+     * @return
+     */
+    URL getArtifactURL(URL packageSourceURL, URI artifact) throws MalformedURLException;
+}

Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/processor/PackageProcessor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/processor/PackageProcessor.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/processor/PackageProcessorExtensionPoint.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/processor/PackageProcessorExtensionPoint.java?view=auto&rev=528879
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/processor/PackageProcessorExtensionPoint.java (added)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/processor/PackageProcessorExtensionPoint.java Sat Apr 14 14:42:20 2007
@@ -0,0 +1,36 @@
+/*
+ * 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.contribution.processor;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public interface PackageProcessorExtensionPoint extends PackageProcessor {
+    /**
+     * Register a ContributionPackageProcessor using the package type as the key
+     * @param processor
+     */
+    void register(String packageType, PackageProcessor processor);
+    
+    /**
+     * Unregister a ContributionProcessor by package type
+     * @param packageType
+     */
+    void unregister(String packageType);
+}
\ No newline at end of file

Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/processor/PackageProcessorExtensionPoint.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/processor/PackageProcessorExtensionPoint.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/SimpleRuntimeImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/SimpleRuntimeImpl.java?view=diff&rev=528879&r1=528878&r2=528879
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/SimpleRuntimeImpl.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/SimpleRuntimeImpl.java Sat Apr 14 14:42:20 2007
@@ -34,12 +34,12 @@
 import org.apache.tuscany.assembly.xml.ConstrainingTypeProcessor;
 import org.apache.tuscany.contribution.Contribution;
 import org.apache.tuscany.contribution.DeployedArtifact;
-import org.apache.tuscany.contribution.processor.ContributionPackageProcessorRegistry;
+import org.apache.tuscany.contribution.processor.PackageProcessorExtensionPoint;
 import org.apache.tuscany.contribution.processor.DefaultStAXArtifactProcessorExtensionPoint;
 import org.apache.tuscany.contribution.processor.DefaultURLArtifactProcessorExtensionPoint;
 import org.apache.tuscany.contribution.processor.StAXArtifactProcessorExtensionPoint;
 import org.apache.tuscany.contribution.processor.URLArtifactProcessorExtensionPoint;
-import org.apache.tuscany.contribution.processor.impl.ContributionPackageProcessorRegistryImpl;
+import org.apache.tuscany.contribution.processor.impl.DefaultPackageProcessorExtensionPoint;
 import org.apache.tuscany.contribution.processor.impl.FolderContributionProcessor;
 import org.apache.tuscany.contribution.processor.impl.JarContributionProcessor;
 import org.apache.tuscany.contribution.resolver.DefaultArtifactResolver;
@@ -135,9 +135,9 @@
         extensionRegistry.addExtensionPoint(URLArtifactProcessorExtensionPoint.class, documentProcessors);
 
         PackageTypeDescriberImpl describer = new PackageTypeDescriberImpl();
-        ContributionPackageProcessorRegistry pkgRegistry = new ContributionPackageProcessorRegistryImpl(describer);
-        new JarContributionProcessor(pkgRegistry);
-        new FolderContributionProcessor(pkgRegistry);
+        PackageProcessorExtensionPoint packageProcessors = new DefaultPackageProcessorExtensionPoint(describer);
+        new JarContributionProcessor(packageProcessors);
+        new FolderContributionProcessor(packageProcessors);
 
         WorkContext workContext = new SimpleWorkContext();
         workContext.setIdentifier(Scope.COMPOSITE, DEFAULT_COMPOSITE);
@@ -145,7 +145,7 @@
 
         DefaultArtifactResolver artifactResolver = new DefaultArtifactResolver();
 
-        ContributionService contributionService = new ContributionServiceImpl(repository, pkgRegistry,
+        ContributionService contributionService = new ContributionServiceImpl(repository, packageProcessors,
                                                                               documentProcessors, artifactResolver);
 
         extensionRegistry.addExtensionPoint(ContributionService.class, contributionService);



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org