Author: jsdelfino
Date: Fri Feb 29 18:29:05 2008
New Revision: 632538

URL: http://svn.apache.org/viewvc?rev=632538&view=rev
Log:
Use the artifact processor extension mechanism to drive the proper artifact 
processors.

Modified:
    
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/CompositeCollectionImpl.java
    
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/WorkspaceCollectionImpl.java

Modified: 
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/CompositeCollectionImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/CompositeCollectionImpl.java?rev=632538&r1=632537&r2=632538&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/CompositeCollectionImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/CompositeCollectionImpl.java
 Fri Feb 29 18:29:05 2008
@@ -25,7 +25,6 @@
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -41,18 +40,18 @@
 
 import org.apache.tuscany.sca.assembly.AssemblyFactory;
 import org.apache.tuscany.sca.assembly.Composite;
-import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory;
 import org.apache.tuscany.sca.assembly.xml.CompositeProcessor;
 import org.apache.tuscany.sca.assembly.xml.Constants;
 import org.apache.tuscany.sca.contribution.ContributionFactory;
-import org.apache.tuscany.sca.contribution.DefaultContributionFactory;
+import org.apache.tuscany.sca.contribution.DefaultModelFactoryExtensionPoint;
+import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.service.ContributionReadException;
 import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
 import org.apache.tuscany.sca.implementation.data.collection.Entry;
 import org.apache.tuscany.sca.implementation.data.collection.Item;
 import org.apache.tuscany.sca.implementation.data.collection.NotFoundException;
 import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
-import org.apache.tuscany.sca.policy.DefaultPolicyFactory;
+import org.apache.tuscany.sca.interfacedef.impl.InterfaceContractMapperImpl;
 import org.apache.tuscany.sca.policy.PolicyFactory;
 import org.apache.tuscany.sca.workspace.admin.CompositeCollection;
 import org.apache.xml.serialize.OutputFormat;
@@ -76,9 +75,6 @@
     public String compositeFileName;
 
     private AssemblyFactory assemblyFactory;
-    private ContributionFactory contributionFactory;
-    private PolicyFactory policyFactory;
-    private InterfaceContractMapper contractMapper;
     private Composite compositeCollection;
     private CompositeProcessor compositeProcessor;
     private XMLOutputFactory outputFactory;
@@ -91,18 +87,20 @@
     public void init() throws IOException, ContributionReadException, 
XMLStreamException, ParserConfigurationException {
         
         // Create factories
-        contributionFactory = new DefaultContributionFactory();
-        assemblyFactory = new DefaultAssemblyFactory();
-        policyFactory = new DefaultPolicyFactory();
-        outputFactory = XMLOutputFactory.newInstance();
-        outputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, 
Boolean.TRUE);
+        ModelFactoryExtensionPoint modelFactories = new 
DefaultModelFactoryExtensionPoint();
+        assemblyFactory = modelFactories.getFactory(AssemblyFactory.class);
+        outputFactory = modelFactories.getFactory(XMLOutputFactory.class);
         documentBuilder = 
DocumentBuilderFactory.newInstance().newDocumentBuilder();
         
         // Read domain.composite
+        ContributionFactory contributionFactory = 
modelFactories.getFactory(ContributionFactory.class);
+        PolicyFactory policyFactory = 
modelFactories.getFactory(PolicyFactory.class);
+        //FIXME dependency on implementation class
+        InterfaceContractMapper contractMapper = new 
InterfaceContractMapperImpl();
         compositeProcessor = new CompositeProcessor(contributionFactory, 
assemblyFactory, policyFactory, contractMapper, null);
         File file = new File(compositeFileName);
         if (file.exists()) {
-            XMLInputFactory inputFactory = XMLInputFactory.newInstance();
+            XMLInputFactory inputFactory = 
modelFactories.getFactory(XMLInputFactory.class);
             FileInputStream is = new FileInputStream(file);
             XMLStreamReader reader = inputFactory.createXMLStreamReader(is);
             compositeCollection = compositeProcessor.read(reader);

Modified: 
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/WorkspaceCollectionImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/WorkspaceCollectionImpl.java?rev=632538&r1=632537&r2=632538&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/WorkspaceCollectionImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/WorkspaceCollectionImpl.java
 Fri Feb 29 18:29:05 2008
@@ -48,10 +48,16 @@
 import org.apache.tuscany.sca.contribution.DefaultModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import 
org.apache.tuscany.sca.contribution.processor.DefaultStAXArtifactProcessorExtensionPoint;
+import 
org.apache.tuscany.sca.contribution.processor.DefaultURLArtifactProcessorExtensionPoint;
 import 
org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor;
+import 
org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactProcessor;
+import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
 import 
org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
+import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
+import 
org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint;
 import org.apache.tuscany.sca.contribution.service.ContributionReadException;
 import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
+import 
org.apache.tuscany.sca.contribution.xml.ContributionGeneratedMetadataDocumentProcessor;
 import 
org.apache.tuscany.sca.contribution.xml.ContributionMetadataDocumentProcessor;
 import org.apache.tuscany.sca.contribution.xml.ContributionMetadataProcessor;
 import org.apache.tuscany.sca.implementation.data.collection.Entry;
@@ -86,10 +92,10 @@
     private AssemblyFactory assemblyFactory;
     private WorkspaceFactory workspaceFactory;
     private Workspace workspace;
-    private WorkspaceProcessor workspaceProcessor;
+    private StAXArtifactProcessor<Object> staxProcessor;
+    private URLArtifactProcessor<Object> urlProcessor;
+    private URLArtifactProcessor<Contribution> contributionInfoProcessor;
     private XMLOutputFactory outputFactory;
-    private XMLInputFactory inputFactory;
-    private ContributionInfoProcessor contributionProcessor;
     
     /**
      * Initialize the workspace administration component.
@@ -97,32 +103,35 @@
     @Init
     public void init() throws IOException, ContributionReadException, 
XMLStreamException, ParserConfigurationException {
         
-        // Create extension points
-        ModelFactoryExtensionPoint factories = new 
DefaultModelFactoryExtensionPoint();
-        StAXArtifactProcessorExtensionPoint staxProcessors = new 
DefaultStAXArtifactProcessorExtensionPoint(factories);
-        inputFactory = factories.getFactory(XMLInputFactory.class);
-        outputFactory = factories.getFactory(XMLOutputFactory.class);
-        outputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, 
Boolean.TRUE);
-        ExtensibleStAXArtifactProcessor extensionProcessor = new 
ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, outputFactory);
-        
-        // Create factories
-        contributionFactory = factories.getFactory(ContributionFactory.class);
-        assemblyFactory = factories.getFactory(AssemblyFactory.class);
-        workspaceFactory = factories.getFactory(WorkspaceFactory.class);
-
+        // Create model factories
+        ModelFactoryExtensionPoint modelFactories = new 
DefaultModelFactoryExtensionPoint();
+        outputFactory = modelFactories.getFactory(XMLOutputFactory.class);
+        contributionFactory = 
modelFactories.getFactory(ContributionFactory.class);
+        assemblyFactory = modelFactories.getFactory(AssemblyFactory.class);
+        workspaceFactory = modelFactories.getFactory(WorkspaceFactory.class);
+
+        // Create artifact processors
+        XMLInputFactory inputFactory = 
modelFactories.getFactory(XMLInputFactory.class);
+        StAXArtifactProcessorExtensionPoint staxProcessors = new 
DefaultStAXArtifactProcessorExtensionPoint(modelFactories);
+        staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, 
inputFactory, outputFactory);
+        staxProcessors.addArtifactProcessor(new 
ContributionMetadataProcessor(assemblyFactory, contributionFactory, 
staxProcessor));
+        staxProcessors.addArtifactProcessor(new 
WorkspaceProcessor(workspaceFactory, contributionFactory, staxProcessor));
+
+        URLArtifactProcessorExtensionPoint urlProcessors = new 
DefaultURLArtifactProcessorExtensionPoint(modelFactories);
+        urlProcessor = new ExtensibleURLArtifactProcessor(urlProcessors);
+        urlProcessors.addArtifactProcessor(new 
ContributionMetadataDocumentProcessor(staxProcessor, inputFactory));
+        urlProcessors.addArtifactProcessor(new 
ContributionGeneratedMetadataDocumentProcessor(staxProcessor, inputFactory));
+        
         // Create workspace and contribution artifact processors
-        workspaceProcessor = new WorkspaceProcessor(workspaceFactory, 
contributionFactory, extensionProcessor);
-        ContributionMetadataProcessor metadataProcessor = new 
ContributionMetadataProcessor(assemblyFactory, contributionFactory, 
extensionProcessor);
-        ContributionMetadataDocumentProcessor metadataDocumentProcessor = new 
ContributionMetadataDocumentProcessor(metadataProcessor, inputFactory); 
-        contributionProcessor = new 
ContributionInfoProcessor(contributionFactory, metadataDocumentProcessor);
+        contributionInfoProcessor = new 
ContributionInfoProcessor(contributionFactory, urlProcessor);
 
         // Read workspace.xml
         File file = new File(workspaceFileName);
         if (file.exists()) {
-            XMLInputFactory inputFactory = XMLInputFactory.newInstance();
             FileInputStream is = new FileInputStream(file);
             XMLStreamReader reader = inputFactory.createXMLStreamReader(is);
-            workspace = workspaceProcessor.read(reader);
+            reader.nextTag();
+            workspace = (Workspace)staxProcessor.read(reader);
         } else {
             workspace = workspaceFactory.createWorkspace();
         }
@@ -221,7 +230,7 @@
                 }
                 Contribution contribution;
                 try {
-                    contribution = contributionProcessor.read(null, uri, url);
+                    contribution = 
(Contribution)contributionInfoProcessor.read(null, uri, url);
                 } catch (ContributionReadException e) {
                     throw new ServiceRuntimeException(e);
                 }
@@ -285,7 +294,7 @@
             // First write to a byte stream
             ByteArrayOutputStream bos = new ByteArrayOutputStream();
             XMLStreamWriter writer = outputFactory.createXMLStreamWriter(bos);
-            workspaceProcessor.write(workspace, writer);
+            staxProcessor.write(workspace, writer);
             
             // Parse again to pretty format the document
             DocumentBuilder documentBuilder = 
DocumentBuilderFactory.newInstance().newDocumentBuilder();



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to