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/07/23 17:53:07 UTC

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

Author: lresende
Date: Mon Jul 23 08:53:06 2007
New Revision: 558780

URL: http://svn.apache.org/viewvc?view=rev&rev=558780
Log:
Re-applying the extensibility for reading contribution metadata, this is to allow different types of import/export with missing file

Added:
    incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataDocumentProcessorImpl.java
      - copied unchanged from r558649, incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataDocumentProcessorImpl.java
    incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataProcessor.java
    incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/services/ContributionMetadataDocumentProcessorTestCase.java
      - copied unchanged from r558649, incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/services/ContributionMetadataDocumentProcessorTestCase.java
    incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionMetadataDocumentProcessor.java
      - copied unchanged from r558649, incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionMetadataDocumentProcessor.java
Modified:
    incubator/tuscany/java/sca/itest/contribution/src/test/java/org/apache/tuscany/sca/test/contribution/ContributionServiceTestCase.java
    incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java
    incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/NodeRuntimeBuilder.java
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java

Modified: incubator/tuscany/java/sca/itest/contribution/src/test/java/org/apache/tuscany/sca/test/contribution/ContributionServiceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/contribution/src/test/java/org/apache/tuscany/sca/test/contribution/ContributionServiceTestCase.java?view=diff&rev=558780&r1=558779&r2=558780
==============================================================================
--- incubator/tuscany/java/sca/itest/contribution/src/test/java/org/apache/tuscany/sca/test/contribution/ContributionServiceTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/contribution/src/test/java/org/apache/tuscany/sca/test/contribution/ContributionServiceTestCase.java Mon Jul 23 08:53:06 2007
@@ -68,6 +68,7 @@
 import org.apache.tuscany.sca.contribution.service.util.IOHelper;
 import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.host.embedded.impl.EmbeddedSCADomain;
 import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
 import org.apache.tuscany.sca.interfacedef.impl.InterfaceContractMapperImpl;
 import org.apache.tuscany.sca.policy.DefaultPolicyFactory;
@@ -82,66 +83,20 @@
     private static final String JAR_CONTRIBUTION = "/repository/sample-calculator.jar";
     private static final String FOLDER_CONTRIBUTION = "target/classes/";
 
+    private ClassLoader cl;
+    private EmbeddedSCADomain domain;
     private ContributionService contributionService;
 
     protected void setUp() throws Exception {
-
-        // Create default factories
-        AssemblyFactory assemblyFactory = new DefaultAssemblyFactory();
-        PolicyFactory policyFactory = new DefaultPolicyFactory();
-        InterfaceContractMapper mapper = new InterfaceContractMapperImpl();
-
-        // Create an extension point registry
-        ExtensionPointRegistry extensionRegistry = new DefaultExtensionPointRegistry();
-
-        // Add artifact processor extension points
-        DefaultStAXArtifactProcessorExtensionPoint staxProcessors = new DefaultStAXArtifactProcessorExtensionPoint();
-        extensionRegistry.addExtensionPoint(staxProcessors);
-        ExtensibleStAXArtifactProcessor staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, XMLInputFactory.newInstance(), XMLOutputFactory.newInstance());
-        DefaultURLArtifactProcessorExtensionPoint documentProcessors = new DefaultURLArtifactProcessorExtensionPoint();
-        extensionRegistry.addExtensionPoint(documentProcessors);
-        ExtensibleURLArtifactProcessor documentProcessor = new ExtensibleURLArtifactProcessor(documentProcessors);
-
-        // Register base artifact processors
-        staxProcessors.addArtifactProcessor(new CompositeProcessor(assemblyFactory, policyFactory, mapper,
-                                                                   staxProcessor));
-        staxProcessors.addArtifactProcessor(new ComponentTypeProcessor(assemblyFactory, policyFactory, staxProcessor));
-        staxProcessors.addArtifactProcessor(new ConstrainingTypeProcessor(assemblyFactory, policyFactory,
-                                                                          staxProcessor));
-
-        XMLInputFactory inputFactory = XMLInputFactory.newInstance();
-        documentProcessors.addArtifactProcessor(new CompositeDocumentProcessor(staxProcessor, inputFactory));
-        documentProcessors.addArtifactProcessor(new ComponentTypeDocumentProcessor(staxProcessor, inputFactory));
-        documentProcessors.addArtifactProcessor(new ConstrainingTypeDocumentProcessor(staxProcessor, inputFactory));
-
-        // Create package processor extension point
-        PackageTypeDescriberImpl describer = new PackageTypeDescriberImpl();
-        PackageProcessorExtensionPoint packageProcessors = new DefaultPackageProcessorExtensionPoint();
-        PackageProcessor packageProcessor = new ExtensiblePackageProcessor(packageProcessors, describer);
-        extensionRegistry.addExtensionPoint(packageProcessors);
-
-        // Register base package processors
-        packageProcessors.addPackageProcessor(new JarContributionProcessor());
-        packageProcessors.addPackageProcessor(new FolderContributionProcessor());
-        
-        //Create Contribution Model Resolver extension point
-        ModelResolverExtensionPoint modelResolverExtensionPoint = new DefaultModelResolverExtensionPoint();
-        
+        //Create a test embedded SCA domain
+        cl = getClass().getClassLoader();
+        domain = new EmbeddedSCADomain(cl, "http://localhost");
         
-        //Create contribution postProcessor extension point
-        DefaultContributionPostProcessorExtensionPoint contributionPostProcessors = new DefaultContributionPostProcessorExtensionPoint();
-        ContributionPostProcessor postProcessor = new ExtensibleContributionPostProcessor(contributionPostProcessors);
-        extensionRegistry.addExtensionPoint(contributionPostProcessors);
-
-
-        // Create a repository
-        ContributionRepository repository = new ContributionRepositoryImpl("target");
+        //Start the domain
+        domain.start();
 
-        // Create an artifact resolver and contribution service
-        this.contributionService = new ContributionServiceImpl(repository, packageProcessor, documentProcessor, 
-                                                               postProcessor, modelResolverExtensionPoint, assemblyFactory,
-                                                               new ContributionFactoryImpl(),
-                                                               XMLInputFactory.newInstance());
+        //get a reference to the contribution service
+        contributionService = domain.getContributionService();
     }
 
     public void testContributeJAR() throws Exception {

Added: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataProcessor.java?view=auto&rev=558780
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataProcessor.java (added)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataProcessor.java Mon Jul 23 08:53:06 2007
@@ -0,0 +1,167 @@
+/*
+ * 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.sca.contribution.service.impl;
+
+import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.tuscany.sca.assembly.AssemblyFactory;
+import org.apache.tuscany.sca.assembly.Composite;
+import org.apache.tuscany.sca.contribution.Contribution;
+import org.apache.tuscany.sca.contribution.ContributionFactory;
+import org.apache.tuscany.sca.contribution.NamespaceExport;
+import org.apache.tuscany.sca.contribution.NamespaceImport;
+import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+import org.apache.tuscany.sca.contribution.service.ContributionMetadataLoaderException;
+import org.apache.tuscany.sca.contribution.service.ContributionReadException;
+import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
+import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
+
+/**
+ * Loader that handles contribution metadata files
+ * 
+ * @version $Rev: 515261 $ $Date: 2007-03-06 11:22:46 -0800 (Tue, 06 Mar 2007) $
+ */
+public class ContributionMetadataProcessor implements StAXArtifactProcessor<Contribution> {
+    private static final String SCA10_NS = "http://www.osoa.org/xmlns/sca/1.0";
+    private static final String TARGET_NAMESPACE = "targetNamespace";
+    
+    private static final QName CONTRIBUTION = new QName(SCA10_NS, "contribution");
+    private static final QName DEPLOYABLE = new QName(SCA10_NS, "deployable");
+    private static final QName IMPORT = new QName(SCA10_NS, "import");
+    private static final QName EXPORT = new QName(SCA10_NS, "export");
+    
+    private final AssemblyFactory assemblyFactory;
+    private final ContributionFactory contributionFactory;
+
+    public ContributionMetadataProcessor(AssemblyFactory assemblyFactory, ContributionFactory contributionFactory) {
+        super();
+        this.assemblyFactory = assemblyFactory;
+        this.contributionFactory = contributionFactory;
+    }
+    
+    
+    public QName getArtifactType() {
+        return CONTRIBUTION;
+    }
+
+    public Class<Contribution> getModelType() {
+        return Contribution.class;
+    }
+
+    public Contribution read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException {
+        Contribution contribution = this.contributionFactory.createContribution();
+        String targetNameSpaceURI = null;
+        QName element = null;
+
+        
+        while (reader.hasNext()) {
+            int event = reader.getEventType();
+            switch (event) {
+                case START_ELEMENT:
+                    element = reader.getName();
+                    
+                    if (CONTRIBUTION.equals(element)) {
+                        targetNameSpaceURI = reader.getAttributeValue(null, TARGET_NAMESPACE);    
+                    } else if (DEPLOYABLE.equals(element)) {
+                        String name = reader.getAttributeValue(null, "composite");
+                        if (name == null) {
+                            throw new ContributionReadException("Attribute 'composite' is missing");
+                        }
+                        QName compositeName = null;
+
+                        int index = name.indexOf(':');
+                        if (index != -1) {
+                            String prefix = name.substring(0, index);
+                            String localPart = name.substring(index + 1);
+                            String ns = reader.getNamespaceContext().getNamespaceURI(prefix);
+                            if (ns == null) {
+                                throw new ContributionReadException("Invalid prefix: " + prefix);
+                            }
+                            compositeName = new QName(targetNameSpaceURI, localPart, prefix);
+                        } else {
+                            String prefix = "";
+                            String localPart = name;
+                            compositeName = new QName(targetNameSpaceURI, localPart, prefix);
+                        }
+
+                        Composite composite = assemblyFactory.createComposite();
+                        composite.setName(compositeName);
+                        composite.setUnresolved(true);
+                        
+                        contribution.getDeployables().add(composite);
+                    } else if (IMPORT.equals(element)) {
+                        String ns = reader.getAttributeValue(null, "namespace");
+                        if (ns == null) {
+                            throw new ContributionReadException("Attribute 'namespace' is missing");
+                        }
+                        String location = reader.getAttributeValue(null, "location");
+                        NamespaceImport namespaceImport = this.contributionFactory.createNamespaceImport();
+                        if (location != null) {
+                            namespaceImport.setLocation(location);
+                        }
+                        namespaceImport.setNamespace(ns);
+                        contribution.getImports().add(namespaceImport);
+                    } else if (EXPORT.equals(element)) {
+                        String ns = reader.getAttributeValue(null, "namespace");
+                        if (ns == null) {
+                            throw new ContributionReadException("Attribute 'namespace' is missing");
+                        }
+                        NamespaceExport namespaceExport = this.contributionFactory.createNamespaceExport();
+                        namespaceExport.setNamespace(ns);
+                        contribution.getExports().add(namespaceExport);
+                    }
+                    break;
+                case XMLStreamConstants.END_ELEMENT:
+                    if (CONTRIBUTION.equals(reader.getName())) {
+                        return contribution;
+                    }
+                    break;        
+            }
+            
+            //Read the next element
+            if (reader.hasNext()) {
+                reader.next();
+            }
+        }
+        
+        return contribution;
+    }
+
+    public void write(Contribution model, XMLStreamWriter outputSource) throws ContributionWriteException, XMLStreamException {
+        // TODO Auto-generated method stub
+        
+    }
+
+    public void resolve(Contribution model, ModelResolver resolver) throws ContributionResolveException {
+        // TODO Auto-generated method stub
+        
+    }
+
+
+    public void load(Contribution contribution, XMLStreamReader reader) throws XMLStreamException, ContributionMetadataLoaderException {
+        
+    }
+}

Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java?view=diff&rev=558780&r1=558779&r2=558780
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java Mon Jul 23 08:53:06 2007
@@ -31,7 +31,6 @@
 
 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.assembly.Composite;
@@ -44,6 +43,7 @@
 import org.apache.tuscany.sca.contribution.NamespaceImport;
 import org.apache.tuscany.sca.contribution.processor.ContributionPostProcessor;
 import org.apache.tuscany.sca.contribution.processor.PackageProcessor;
+import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
 import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
 import org.apache.tuscany.sca.contribution.resolver.ExtensibleModelResolver;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
@@ -52,7 +52,7 @@
 import org.apache.tuscany.sca.contribution.resolver.impl.NamespaceImportAllModelResolverImpl;
 import org.apache.tuscany.sca.contribution.resolver.impl.NamespaceImportModelResolverImpl;
 import org.apache.tuscany.sca.contribution.service.ContributionException;
-import org.apache.tuscany.sca.contribution.service.ContributionMetadataLoaderException;
+import org.apache.tuscany.sca.contribution.service.ContributionMetadataDocumentProcessor;
 import org.apache.tuscany.sca.contribution.service.ContributionRepository;
 import org.apache.tuscany.sca.contribution.service.ContributionService;
 import org.apache.tuscany.sca.contribution.service.util.IOHelper;
@@ -62,6 +62,9 @@
  * 
  * @version $Rev$ $Date$
  */
+/**
+ * 
+ */
 public class ContributionServiceImpl implements ContributionService {
 
     /**
@@ -81,6 +84,12 @@
     private URLArtifactProcessor artifactProcessor;
     
     /**
+     * Registry of available stax processors,
+     * used for loading contribution metadata in a extensible way
+     */
+    private StAXArtifactProcessor staxProcessor;
+    
+    /**
      * Registry of available model resolvers
      */
     
@@ -106,10 +115,6 @@
      */
     private ContributionFactory contributionFactory;
 
-    /**
-     * contribution metadata loader
-     */
-    private ContributionMetadataLoaderImpl contributionLoader;
 
     /**
      * Contribution registry This is a registry of processed Contributions indexed by URI
@@ -118,7 +123,8 @@
     
     public ContributionServiceImpl(ContributionRepository repository,
                                    PackageProcessor packageProcessor,
-                                   URLArtifactProcessor artifactProcessor,
+                                   URLArtifactProcessor documentProcessor,
+                                   StAXArtifactProcessor staxProcessor,
                                    ContributionPostProcessor postProcessor,
                                    ModelResolverExtensionPoint modelResolverExtensionPoint,
                                    AssemblyFactory assemblyFactory,
@@ -127,13 +133,13 @@
         super();
         this.contributionRepository = repository;
         this.packageProcessor = packageProcessor;
-        this.artifactProcessor = artifactProcessor;
+        this.artifactProcessor = documentProcessor;
+        this.staxProcessor = staxProcessor;
         this.postProcessor = postProcessor;
         this.modelResolverExtensionPoint = modelResolverExtensionPoint;
         this.xmlFactory = xmlFactory;
         this.assemblyFactory = assemblyFactory;
         this.contributionFactory = contributionFactory;
-        this.contributionLoader = new ContributionMetadataLoaderImpl(assemblyFactory, contributionFactory);
     }
 
     public Contribution contribute(String contributionURI, URL sourceURL, boolean storeInRepository)
@@ -172,46 +178,29 @@
         return addContribution(contributionURI, sourceURL, input, modelResolver, true);
     }
 
-    private Contribution initializeContributionMetadata(URL sourceURL, ModelResolver modelResolver) throws ContributionException {
+    /**
+     * Perform read of the contribution metada loader (sca-contribution.xml and sca-contribution-generated.xml)
+     * When the two metadata files are available, the information provided are merged, and the sca-contribution has priorities
+     * 
+     * @param sourceURL
+     * @return Contribution
+     * @throws ContributionException
+     */
+    private Contribution readContributionMetadata(URL sourceURL) throws ContributionException {
         Contribution contributionMetadata = null;
-        URL contributionMetadataURL;
-        URL generatedContributionMetadataURL;
-        InputStream metadataStream = null;
 
         URL[] clUrls = {sourceURL};
         URLClassLoader cl = new URLClassLoader(clUrls, null);
-
-        contributionMetadataURL = cl.getResource(Contribution.SCA_CONTRIBUTION_META);
-        generatedContributionMetadataURL = cl.getResource(Contribution.SCA_CONTRIBUTION_GENERATED_META);
-
+        
+        
+        ContributionMetadataDocumentProcessor metadataDocumentProcessor = 
+            new ContributionMetadataDocumentProcessorImpl(cl, this.staxProcessor, this.assemblyFactory, this.contributionFactory, this.xmlFactory);
+        contributionMetadata = contributionFactory.createContribution();
         try {
-            contributionMetadata = this.contributionFactory.createContribution();
-            contributionMetadata.setModelResolver(modelResolver);
-            if (contributionMetadataURL != null || generatedContributionMetadataURL != null) {
-                URL metadataURL = contributionMetadataURL != null ? contributionMetadataURL
-                                                                 : generatedContributionMetadataURL;
-
-                try {
-                    metadataStream = metadataURL.openStream();
-                    XMLStreamReader xmlReader = this.xmlFactory.createXMLStreamReader(metadataStream);
-                    this.contributionLoader.load(contributionMetadata, xmlReader);
-
-                } catch (IOException ioe) {
-                    throw new InvalidContributionMetadataException(ioe.getMessage(), metadataURL.toExternalForm(), ioe);
-                } catch (XMLStreamException xmle) {
-                    throw new InvalidContributionMetadataException(xmle.getMessage(), metadataURL.toExternalForm(),
-                                                                   xmle);
-                } catch (ContributionMetadataLoaderException le) {
-                    throw new InvalidContributionMetadataException(le.getMessage(), metadataURL.toExternalForm(), le);
-                }
-            }
-        } finally {
-            IOHelper.closeQuietly(metadataStream);
-            metadataStream = null;
-        }
+            metadataDocumentProcessor.read(contributionMetadata);
+        } catch (XMLStreamException e) {
+            throw new InvalidContributionMetadataException("Invalid contribution metadata for contribution.");
 
-        if (contributionMetadata == null) {
-            contributionMetadata = this.contributionFactory.createContribution();
         }
         
         return contributionMetadata;
@@ -273,7 +262,7 @@
         }
 
         //initialize contribution based on it's metadata if available
-        Contribution contribution = initializeContributionMetadata(locationURL, modelResolver);
+        Contribution contribution = readContributionMetadata(locationURL);
         
         //create contribution model resolver
         if (modelResolver == null) {

Modified: incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/NodeRuntimeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/NodeRuntimeBuilder.java?view=diff&rev=558780&r1=558779&r2=558780
==============================================================================
--- incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/NodeRuntimeBuilder.java (original)
+++ incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/NodeRuntimeBuilder.java Mon Jul 23 08:53:06 2007
@@ -52,6 +52,7 @@
 import org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint;
 import org.apache.tuscany.sca.contribution.service.ContributionRepository;
 import org.apache.tuscany.sca.contribution.service.ContributionService;
+import org.apache.tuscany.sca.contribution.service.impl.ContributionMetadataProcessor;
 import org.apache.tuscany.sca.contribution.service.impl.ContributionRepositoryImpl;
 import org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl;
 import org.apache.tuscany.sca.contribution.service.impl.PackageTypeDescriberImpl;
@@ -91,14 +92,12 @@
         registry.addExtensionPoint(staxProcessors);
 
         // Create and register STAX processors for SCA assembly XML
-        ExtensibleStAXArtifactProcessor staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, xmlFactory,
-                                                                                            XMLOutputFactory
-                                                                                                .newInstance());
-        staxProcessors.addArtifactProcessor(new CompositeProcessor(assemblyFactory, policyFactory, mapper,
-                                                                   staxProcessor));
+        ExtensibleStAXArtifactProcessor staxProcessor = 
+            new ExtensibleStAXArtifactProcessor(staxProcessors, xmlFactory, XMLOutputFactory.newInstance());
+        staxProcessors.addArtifactProcessor(new CompositeProcessor(assemblyFactory, policyFactory, mapper, staxProcessor));
         staxProcessors.addArtifactProcessor(new ComponentTypeProcessor(assemblyFactory, policyFactory, staxProcessor));
-        staxProcessors
-            .addArtifactProcessor(new ConstrainingTypeProcessor(assemblyFactory, policyFactory, staxProcessor));
+        staxProcessors.addArtifactProcessor(new ConstrainingTypeProcessor(assemblyFactory, policyFactory, staxProcessor));
+        staxProcessors.addArtifactProcessor(new ContributionMetadataProcessor(assemblyFactory, contributionFactory));
 
         // Create URL artifact processor extension point
         // FIXME use the interface instead of the class
@@ -147,6 +146,7 @@
         ContributionService contributionService = new ContributionServiceImpl(repository, 
                                                                               packageProcessor,
                                                                               documentProcessor, 
+                                                                              staxProcessor,
                                                                               postProcessor,
                                                                               modelResolverExtensionPoint,
                                                                               assemblyFactory,

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java?view=diff&rev=558780&r1=558779&r2=558780
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java Mon Jul 23 08:53:06 2007
@@ -70,6 +70,7 @@
 import org.apache.tuscany.sca.contribution.service.ContributionRepository;
 import org.apache.tuscany.sca.contribution.service.ContributionService;
 import org.apache.tuscany.sca.contribution.service.TypeDescriber;
+import org.apache.tuscany.sca.contribution.service.impl.ContributionMetadataProcessor;
 import org.apache.tuscany.sca.contribution.service.impl.ContributionRepositoryImpl;
 import org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl;
 import org.apache.tuscany.sca.contribution.service.impl.PackageTypeDescriberImpl;
@@ -174,14 +175,12 @@
         registry.addExtensionPoint(staxProcessors);
 
         // Create and register STAX processors for SCA assembly XML
-        ExtensibleStAXArtifactProcessor staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, xmlFactory,
-                                                                                            XMLOutputFactory
-                                                                                                .newInstance());
-        staxProcessors.addArtifactProcessor(new CompositeProcessor(assemblyFactory, policyFactory, mapper,
-                                                                   staxProcessor));
+        ExtensibleStAXArtifactProcessor staxProcessor = 
+            new ExtensibleStAXArtifactProcessor(staxProcessors, xmlFactory, XMLOutputFactory.newInstance());
+        staxProcessors.addArtifactProcessor(new CompositeProcessor(assemblyFactory, policyFactory, mapper, staxProcessor));
         staxProcessors.addArtifactProcessor(new ComponentTypeProcessor(assemblyFactory, policyFactory, staxProcessor));
-        staxProcessors
-            .addArtifactProcessor(new ConstrainingTypeProcessor(assemblyFactory, policyFactory, staxProcessor));
+        staxProcessors.addArtifactProcessor(new ConstrainingTypeProcessor(assemblyFactory, policyFactory, staxProcessor));
+        staxProcessors.addArtifactProcessor(new ContributionMetadataProcessor(assemblyFactory,contributionFactory));
 
         // Create URL artifact processor extension point
         URLArtifactProcessorExtensionPoint documentProcessors = new DefaultURLArtifactProcessorExtensionPoint();
@@ -225,8 +224,9 @@
         }
 
         ExtensibleURLArtifactProcessor documentProcessor = new ExtensibleURLArtifactProcessor(documentProcessors);
+        
         ContributionService contributionService = new ContributionServiceImpl(repository, packageProcessor,
-                                                                              documentProcessor, postProcessor, 
+                                                                              documentProcessor, staxProcessor, postProcessor, 
                                                                               modelResolverExtensionPoint, assemblyFactory,
                                                                               contributionFactory, xmlFactory);
         return contributionService;



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