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 2008/02/28 06:40:03 UTC

svn commit: r631855 - /incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/

Author: jsdelfino
Date: Wed Feb 27 21:40:02 2008
New Revision: 631855

URL: http://svn.apache.org/viewvc?rev=631855&view=rev
Log:
Make the contribution processors implement the processor interfaces.

Removed:
    incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionDocumentProcessor.java
    incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionProcessor.java
Modified:
    incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessor.java
    incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java

Modified: incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessor.java?rev=631855&r1=631854&r2=631855&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataDocumentProcessor.java Wed Feb 27 21:40:02 2008
@@ -20,89 +20,77 @@
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.net.URI;
 import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
 
 import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 
-import org.apache.tuscany.sca.assembly.AssemblyFactory;
 import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.contribution.ContributionFactory;
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
+import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
 import org.apache.tuscany.sca.contribution.service.ContributionReadException;
+import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
 
 /**
- * MetadataDocumentProcessor that handles contribution metadata files
+ * URLArtifactProcessor that handles contribution.xml files.
  * 
  * @version $Rev$ $Date$
  */
-public class ContributionMetadataDocumentProcessor {
-    protected final URLClassLoader classLoader;
-    protected final StAXArtifactProcessor staxProcessor;
-    protected final AssemblyFactory assemblyFactory;
-    protected final ContributionFactory contributionFactory;
-    protected final XMLInputFactory inputFactory;
-
-    public ContributionMetadataDocumentProcessor(URLClassLoader classLoader, StAXArtifactProcessor staxProcessor, AssemblyFactory assemblyFactory, ContributionFactory contributionFactory, XMLInputFactory inputFactory) {
-        super();
-        this.classLoader = classLoader;
+public class ContributionMetadataDocumentProcessor implements URLArtifactProcessor<Contribution>{
+    private final StAXArtifactProcessor staxProcessor;
+    private final XMLInputFactory inputFactory;
+
+    public ContributionMetadataDocumentProcessor(StAXArtifactProcessor staxProcessor, XMLInputFactory inputFactory) {
         this.staxProcessor = staxProcessor; 
-        this.assemblyFactory = assemblyFactory;
-        this.contributionFactory = contributionFactory;
         this.inputFactory = inputFactory;
     }
-
-    private Contribution mergeContributionMetadata(Contribution contrib1, Contribution contrib2  ) {
-        contrib1.getDeployables().addAll(contrib2.getDeployables());
-        contrib1.getImports().addAll(contrib2.getImports());
-        contrib1.getExports().addAll(contrib2.getExports());
-        
-        return contrib1;
+    
+    public String getArtifactType() {
+        return null;
     }
     
-    public void read(Contribution contribution) throws XMLStreamException, ContributionReadException {
-        List<URL> artifactList = new ArrayList<URL>(2);
-        //set generated first, as the user created one ovverrides generated information
-        artifactList.add(this.classLoader.getResource(Contribution.SCA_CONTRIBUTION_GENERATED_META));
-        artifactList.add(this.classLoader.getResource(Contribution.SCA_CONTRIBUTION_META));
-        
-        URL artifactURL = null; 
-        InputStream artifactStream = null; 
-        Iterator artifactIterator = artifactList.iterator();
-        while( artifactIterator.hasNext() ){
+    public Class<Contribution> getModelType() {
+        return Contribution.class;
+    }
+    
+    public Contribution read(URL contributionURL, URI uri, URL url) throws ContributionReadException {
+        InputStream urlStream = null;
+        try {
+            
+            // Create a stream reader
+            urlStream = url.openStream();
+            XMLStreamReader reader = inputFactory.createXMLStreamReader(url.toString(), urlStream);
+            reader.nextTag();
             
+            // Read the contribution model
+            Contribution contribution = (Contribution)staxProcessor.read(reader);
+            if (contribution != null) {
+                contribution.setURI(uri.toString());
+            }
+
+            return contribution;
+            
+        } catch (XMLStreamException e) {
+            throw new ContributionReadException(e);
+        } catch (IOException e) {
+            throw new ContributionReadException(e);
+        } finally {
             try {
-                artifactURL = (URL) artifactIterator.next();
-                if( artifactURL != null) {
-                    artifactStream = artifactURL.openStream();
-                    XMLStreamReader reader = inputFactory.createXMLStreamReader(artifactStream);
-                    reader.nextTag();
-                    
-                    Contribution contributionMetadata = (Contribution) staxProcessor.read(reader); 
-                    if (contributionMetadata != null) {
-                        this.mergeContributionMetadata(contribution, contributionMetadata);
-                    }
-                }
-                
-            } catch (XMLStreamException e) {
-                throw new ContributionReadException(e);
-            } catch (IOException e) {
-                throw new ContributionReadException(e);
-            } finally {
-                try {
-                    if (artifactStream != null) {
-                        artifactStream.close();
-                        artifactStream = null;
-                    }
-                } catch (IOException ioe) {
-                    //ignore
+                if (urlStream != null) {
+                    urlStream.close();
+                    urlStream = null;
                 }
+            } catch (IOException ioe) {
+                //ignore
             }
         }
     }
+    
+    public void resolve(Contribution contribution, ModelResolver resolver) throws ContributionResolveException {
+        staxProcessor.resolve(contribution, resolver);
+    }
+
 }

Modified: incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java?rev=631855&r1=631854&r2=631855&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-xml/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java Wed Feb 27 21:40:02 2008
@@ -158,5 +158,6 @@
     }
 
     public void resolve(Contribution model, ModelResolver resolver) throws ContributionResolveException {
+        // Nothing to do here
     }
 }



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