Sorry for any trouble, fixed this under revision #558780.

On 7/23/07, Raymond Feng <[EMAIL PROTECTED]> wrote:
Hi, Luciano.

Unfortunately I had to revert this commit because it breaks the build with
the following compilation error. Please fix the problem and re-check them
in.

Thanks,
Raymond

[INFO] Building Apache Tuscany Embedded Runtime Host
[INFO]    task-segment: [clean, install]
[INFO] -------------------------------------------------------------------------
---
[INFO] [clean:clean]
[INFO] Deleting directory C:\Tuscany\java\sca\modules\host-embedded\target
[INFO] Deleting directory
C:\Tuscany\java\sca\modules\host-embedded\target\class
es
[INFO] Deleting directory
C:\Tuscany\java\sca\modules\host-embedded\target\test-
classes
[INFO] Deleting directory
C:\Tuscany\java\sca\modules\host-embedded\target\site
[INFO] [resources:resources]
[INFO] Using default encoding to copy filtered resources.
[INFO] [compiler:compile]
[INFO] Compiling 22 source files to
C:\Tuscany\java\sca\modules\host-embedded\ta
rget\classes
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure

C:\Tuscany\java\sca\modules\host-embedded\src\main\java\org\apache\tuscany\sca\h
ost\embedded\impl\ReallySmallRuntimeBuilder.java:[73,56] cannot find symbol
symbol  : class ContributionMetadataProcessor
location: package org.apache.tuscany.sca.contribution.service.impl

C:\Tuscany\java\sca\modules\host-embedded\src\main\java\org\apache\tuscany\sca\h
ost\embedded\impl\ReallySmallRuntimeBuilder.java:[183,48] cannot find symbol
symbol  : class ContributionMetadataProcessor
location: class
org.apache.tuscany.sca.host.embedded.impl.ReallySmallRuntimeBuil
der

----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Sunday, July 22, 2007 11:45 PM
Subject: svn commit: r558625 - 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: Sun Jul 22 23:45:08 2007
> New Revision: 558625
>
> URL: http://svn.apache.org/viewvc?view=rev&rev=558625
> Log:
> Extensibility for reading contribution metadata, this is to allow
> different types of import/export
>
> Added:
>
> 
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/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
> 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=558625&r1=558624&r2=558625
> ==============================================================================
> ---
> 
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
> Sun Jul 22 23:45:08 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/ContributionMetadataDocumentProcessorImpl.java
> URL:
> 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataDocumentProcessorImpl.java?view=auto&rev=558625
> ==============================================================================
> ---
> 
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataDocumentProcessorImpl.java
> (added)
> +++
> 
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataDocumentProcessorImpl.java
> Sun Jul 22 23:45:08 2007
> @@ -0,0 +1,109 @@
> +/*
> + * 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 java.io.IOException;
> +import java.io.InputStream;
> +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.service.ContributionMetadataDocumentProcessor;
> +import
> org.apache.tuscany.sca.contribution.service.ContributionReadException;
> +
> +/**
> + * Loader that handles contribution metadata files
> + *
> + * @version $Rev: 515261 $ $Date: 2007-03-06 11:22:46 -0800 (Tue, 06 Mar
> 2007) $
> + */
> +public class ContributionMetadataDocumentProcessorImpl  implements
> ContributionMetadataDocumentProcessor {
> +    protected final URLClassLoader classLoader;
> +    protected final StAXArtifactProcessor staxProcessor;
> +    protected final AssemblyFactory assemblyFactory;
> +    protected final ContributionFactory contributionFactory;
> +    protected final XMLInputFactory inputFactory;
> +
> +    public ContributionMetadataDocumentProcessorImpl(URLClassLoader
> classLoader, StAXArtifactProcessor staxProcessor, AssemblyFactory
> assemblyFactory, ContributionFactory contributionFactory, XMLInputFactory
> inputFactory) {
> +        super();
> +        this.classLoader = classLoader;
> +        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 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() ){
> +
> +            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
> +                }
> +            }
> +        }
> +    }
> +}
>
> 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=558625&r1=558624&r2=558625
> ==============================================================================
> ---
> 
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
> Sun Jul 22 23:45:08 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) {
>
> Added:
> 
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/services/ContributionMetadataDocumentProcessorTestCase.java
> URL:
> 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/services/ContributionMetadataDocumentProcessorTestCase.java?view=auto&rev=558625
> ==============================================================================
> ---
> 
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/services/ContributionMetadataDocumentProcessorTestCase.java
> (added)
> +++
> 
incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/services/ContributionMetadataDocumentProcessorTestCase.java
> Sun Jul 22 23:45:08 2007
> @@ -0,0 +1,96 @@
> +/*
> + * 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.services;
> +
> +import java.io.StringReader;
> +
> +import javax.xml.stream.XMLInputFactory;
> +import javax.xml.stream.XMLStreamReader;
> +
> +import junit.framework.TestCase;
> +
> +import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory;
> +import org.apache.tuscany.sca.contribution.Contribution;
> +import org.apache.tuscany.sca.contribution.ContributionFactory;
> +import org.apache.tuscany.sca.contribution.impl.ContributionFactoryImpl;
> +import
> org.apache.tuscany.sca.contribution.resolver.impl.ModelResolverImpl;
> +import
> 
org.apache.tuscany.sca.contribution.service.impl.ContributionMetadataLoaderImpl;
> +import
> org.apache.tuscany.sca.contribution.service.impl.InvalidValueException;
> +
> +/**
> + * @version $Rev: 538445 $ $Date: 2007-05-15 23:20:37 -0700 (Tue, 15 May
> 2007) $
> + */
> +public class ContributionMetadataDocumentProcessorTestCase extends
> TestCase {
> +
> +    private static final String VALID_XML =
> +        "<?xml version=\"1.0\" encoding=\"ASCII\"?>"
> +            + "<contribution xmlns=\"http://www.osoa.org/xmlns/sca/1.0\";
> xmlns:ns=\"http://ns\";>"
> +            + "<deployable composite=\"ns:Composite1\"/>"
> +            + "<deployable composite=\"ns:Composite2\"/>"
> +            + "<import namespace=\"http://ns2\";
> location=\"sca://contributions/002/\"/>"
> +            + "<export namespace=\"http://ns1\"/>"
> +            + "</contribution>";
> +
> +    private static final String INVALID_XML =
> +        "<?xml version=\"1.0\" encoding=\"ASCII\"?>"
> +            + "<contribution xmlns=\"http://www.osoa.org/xmlns/sca/1.0\";
> xmlns:ns=\"http://ns\";>"
> +            + "<deployable composite=\"ns:Composite1\"/>"
> +            + "<deployable composite=\"ns3:Composite1\"/>"
> +            + "<import namespace=\"http://ns2\";
> location=\"sca://contributions/002/\"/>"
> +            + "<export namespace=\"http://ns1\"/>"
> +            + "</contribution>";
> +
> +    private XMLInputFactory xmlFactory;
> +
> +    protected void setUp() throws Exception {
> +        super.setUp();
> +//        xmlFactory = XMLInputFactory.newInstance();
> +    }
> +
> +    public void testLoad() throws Exception {
> +//        XMLStreamReader reader = xmlFactory.createXMLStreamReader(new
> StringReader(VALID_XML));
> +//
> +//        ContributionFactory factory = new ContributionFactoryImpl();
> +//        ContributionMetadataLoaderImpl loader =
> +//            new ContributionMetadataLoaderImpl(new
> DefaultAssemblyFactory(), factory);
> +//        Contribution contribution = factory.createContribution();
> +//        contribution.setModelResolver(new
> ModelResolverImpl(getClass().getClassLoader()));
> +//        loader.load(contribution, reader);
> +//        assertNotNull(contribution);
> +//        assertEquals(1, contribution.getImports().size());
> +//        assertEquals(1, contribution.getExports().size());
> +//        assertEquals(2, contribution.getDeployables().size());
> +    }
> +
> +    public void testLoadInvalid() throws Exception {
> +//        XMLStreamReader reader = xmlFactory.createXMLStreamReader(new
> StringReader(INVALID_XML));
> +//        ContributionFactory factory = new ContributionFactoryImpl();
> +//        ContributionMetadataLoaderImpl loader =
> +//            new ContributionMetadataLoaderImpl(new
> DefaultAssemblyFactory(), factory);
> +//        Contribution contribution = factory.createContribution();
> +//        contribution.setModelResolver(new
> ModelResolverImpl(getClass().getClassLoader()));
> +//        try {
> +//            loader.load(contribution, reader);
> +//            fail("InvalidException should have been thrown");
> +//        } catch (InvalidValueException e) {
> +//            assertTrue(true);
> +//        }
> +    }
> +}
>
> Added:
> 
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionMetadataDocumentProcessor.java
> URL:
> 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionMetadataDocumentProcessor.java?view=auto&rev=558625
> ==============================================================================
> ---
> 
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionMetadataDocumentProcessor.java
> (added)
> +++
> 
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/service/ContributionMetadataDocumentProcessor.java
> Sun Jul 22 23:45:08 2007
> @@ -0,0 +1,41 @@
> +/*
> + * 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;
> +
> +import javax.xml.stream.XMLStreamException;
> +
> +import org.apache.tuscany.sca.contribution.Contribution;
> +
> +/**
> + * Document processor responsible to process the contribution metadata
> + *
> + * @version $Rev$ $Date$
> + */
> +public interface ContributionMetadataDocumentProcessor {
> +    /**
> +     * Create the model object for Contribution Service metadata
> information
> +     *
> +     * @param contribution The contribution to populate with the proper
> values from the side file
> +     * @param reader The XML stream reader positioned on the applicable
> START_ELEMENT
> +     * @throws XMLStreamException
> +     * @throws ContributionMetadataReadException
> +     */
> +    void read(Contribution contribution) throws XMLStreamException,
> ContributionReadException;
> +}
> \ No newline at end of file
>
> 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=558625&r1=558624&r2=558625
> ==============================================================================
> ---
> 
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
> Sun Jul 22 23:45:08 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=558625&r1=558624&r2=558625
> ==============================================================================
> ---
> 
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
> Sun Jul 22 23:45:08 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: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>


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




--
Luciano Resende
Apache Tuscany Committer
http://people.apache.org/~lresende
http://lresende.blogspot.com/

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

Reply via email to