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 2008/02/19 22:15:04 UTC

svn commit: r629235 - in /incubator/tuscany/java/sca/modules/contribution-resource: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/tuscany/ src/main/java/org/apache/tuscany/sca/ src/main/java/org/...

Author: lresende
Date: Tue Feb 19 13:15:00 2008
New Revision: 629235

URL: http://svn.apache.org/viewvc?rev=629235&view=rev
Log:
Strawman of contribution-resource. This still needs to be integrated to the runtime and proper iTest need to be created

Added:
    incubator/tuscany/java/sca/modules/contribution-resource/
    incubator/tuscany/java/sca/modules/contribution-resource/pom.xml   (with props)
    incubator/tuscany/java/sca/modules/contribution-resource/src/
    incubator/tuscany/java/sca/modules/contribution-resource/src/main/
    incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/
    incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/
    incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/
    incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/
    incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/
    incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/
    incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/
    incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceExport.java   (with props)
    incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceImport.java   (with props)
    incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceImportExportFactory.java   (with props)
    incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/
    incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportImpl.java   (with props)
    incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessor.java   (with props)
    incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportExportFactoryImpl.java   (with props)
    incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportImpl.java   (with props)
    incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessor.java   (with props)
    incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceceImportExportListener.java   (with props)
    incubator/tuscany/java/sca/modules/contribution-resource/src/main/resources/
    incubator/tuscany/java/sca/modules/contribution-resource/src/main/resources/META-INF/
    incubator/tuscany/java/sca/modules/contribution-resource/src/main/resources/META-INF/services/
    incubator/tuscany/java/sca/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
    incubator/tuscany/java/sca/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resource.ResourceImportExportFactory
    incubator/tuscany/java/sca/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.service.ContributionListener
    incubator/tuscany/java/sca/modules/contribution-resource/src/test/
    incubator/tuscany/java/sca/modules/contribution-resource/src/test/java/
    incubator/tuscany/java/sca/modules/contribution-resource/src/test/java/org/
    incubator/tuscany/java/sca/modules/contribution-resource/src/test/java/org/apache/
    incubator/tuscany/java/sca/modules/contribution-resource/src/test/java/org/apache/tuscany/
    incubator/tuscany/java/sca/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/
    incubator/tuscany/java/sca/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/
    incubator/tuscany/java/sca/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/
    incubator/tuscany/java/sca/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/
    incubator/tuscany/java/sca/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessorTestCase.java   (with props)
    incubator/tuscany/java/sca/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessorTestCase.java   (with props)
    incubator/tuscany/java/sca/modules/contribution-resource/src/test/resources/

Added: incubator/tuscany/java/sca/modules/contribution-resource/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-resource/pom.xml?rev=629235&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-resource/pom.xml (added)
+++ incubator/tuscany/java/sca/modules/contribution-resource/pom.xml Tue Feb 19 13:15:00 2008
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.    
+-->
+<project>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.tuscany.sca</groupId>
+        <artifactId>tuscany-modules</artifactId>
+        <version>1.2-incubating-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <artifactId>tuscany-contribution-resource</artifactId>
+    <name>Apache Tuscany SCA Resource Import/Export Model</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-contribution</artifactId>
+            <version>1.2-incubating-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-core-spi</artifactId>
+            <version>1.2-incubating-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.codehaus.woodstox</groupId>
+            <artifactId>wstx-asl</artifactId>
+            <version>3.2.1</version>
+            <scope>runtime</scope>
+        </dependency>
+    </dependencies>
+</project>

Propchange: incubator/tuscany/java/sca/modules/contribution-resource/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/contribution-resource/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/tuscany/java/sca/modules/contribution-resource/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceExport.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceExport.java?rev=629235&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceExport.java (added)
+++ incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceExport.java Tue Feb 19 13:15:00 2008
@@ -0,0 +1,46 @@
+/*
+ * 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.resource;
+
+import org.apache.tuscany.sca.contribution.Export;
+
+
+/**
+ * The representation of an resource export.
+ * 
+ * @version $Rev$ $Date$
+ */
+public interface ResourceExport extends Export {
+
+    /**
+     * Get Resource that identifies the export
+     * 
+     * @return The exported resource URI
+     */
+    String getURI();
+
+    /**
+     * Set Resource that identifies the export
+     * 
+     * @param resource uri The exported namespace
+     */
+    void setURI(String URI);
+    
+}

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

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

Added: incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceImport.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceImport.java?rev=629235&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceImport.java (added)
+++ incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceImport.java Tue Feb 19 13:15:00 2008
@@ -0,0 +1,59 @@
+/*
+ * 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.resource;
+
+import org.apache.tuscany.sca.contribution.Import;
+
+/**
+ * The representation of an resource import.
+ * 
+ * @version $Rev$ $Date$
+ */
+public interface ResourceImport extends Import {
+
+    /**
+     * Get the location used to resolve the definitions for this import
+     * 
+     * @return The import location
+     */
+    String getLocation();
+
+    /**
+     * Set the location used to resolve the definitions for this import
+     * 
+     * @param location The import location
+     */
+    void setLocation(String location);
+
+    /**
+     * Get URI that identifies the resource import
+     * 
+     * @return The URI
+     */
+    String getURI();
+
+    /**
+     * Set URI that identifies the resource import
+     * 
+     * @param namespace The resource URI
+     */
+    void setURI(String uri);
+    
+}
\ No newline at end of file

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

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

Added: incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceImportExportFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceImportExportFactory.java?rev=629235&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceImportExportFactory.java (added)
+++ incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceImportExportFactory.java Tue Feb 19 13:15:00 2008
@@ -0,0 +1,42 @@
+/*
+ * 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.resource;
+
+/**
+ * Base Resource import/export model factory
+ * 
+ * @version $Rev$ $Date$
+ */
+public interface ResourceImportExportFactory {
+
+    /**
+     * Create a resource import model object
+     * 
+     * @return The new ResourceImport model object
+     */
+    ResourceImport createResourceImport();
+    
+    /**
+     * Create a resource export model object
+     * 
+     * @return The new ResourceExport model object
+     */
+    ResourceExport createResourceExport();
+}

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

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

Added: incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportImpl.java?rev=629235&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportImpl.java (added)
+++ incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportImpl.java Tue Feb 19 13:15:00 2008
@@ -0,0 +1,58 @@
+/*
+ * 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.resource.impl;
+
+import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+import org.apache.tuscany.sca.contribution.resource.ResourceExport;
+
+/**
+ * The representation of an export for the contribution
+ * 
+ * @version $Rev$ $Date$
+ */
+public class ResourceExportImpl implements ResourceExport {
+    /**
+     * The resource URI to be exported
+     */	
+    private String uri; 
+    
+    private ModelResolver modelResolver;
+    
+    protected ResourceExportImpl() {
+        super();
+    }
+    
+    public String getURI() {
+        return uri;
+    }
+
+    public void setURI(String uri) {
+        this.uri = uri;
+    }
+    
+    public ModelResolver getModelResolver() {
+        return modelResolver;
+    }
+    
+    public void setModelResolver(ModelResolver modelResolver) {
+        this.modelResolver = modelResolver;
+    }
+    
+}

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

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

Added: incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessor.java?rev=629235&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessor.java (added)
+++ incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessor.java Tue Feb 19 13:15:00 2008
@@ -0,0 +1,118 @@
+/*
+ * 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.resource.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.contribution.ModelFactoryExtensionPoint;
+import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+import org.apache.tuscany.sca.contribution.resource.ResourceExport;
+import org.apache.tuscany.sca.contribution.resource.ResourceImportExportFactory;
+import org.apache.tuscany.sca.contribution.service.ContributionReadException;
+import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
+import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
+
+/**
+ * Artifact processor for Resource export
+ * 
+ * @version $Rev$ $Date$
+ */
+public class ResourceExportProcessor implements StAXArtifactProcessor<ResourceExport> {
+
+    private static final String SCA10_NS = "http://www.osoa.org/xmlns/sca/1.0";
+    private static final QName EXPORT_RESOURCE = new QName(SCA10_NS, "export.resource");
+    private static final String URI = "uri";
+    
+    private final ResourceImportExportFactory factory;
+    
+    public ResourceExportProcessor(ModelFactoryExtensionPoint modelFactories) {
+        this.factory = modelFactories.getFactory(ResourceImportExportFactory.class);
+    }
+
+    public QName getArtifactType() {
+        return EXPORT_RESOURCE;
+    }
+    
+    public Class<ResourceExport> getModelType() {
+        return ResourceExport.class;
+    }
+    
+    /**
+     * Process <export.resource uri=""/>
+     */
+    public ResourceExport read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException {
+    	ResourceExport resourceExport = this.factory.createResourceExport();
+        QName element = null;
+        
+        while (reader.hasNext()) {
+            int event = reader.getEventType();
+            switch (event) {
+                case START_ELEMENT:
+                    element = reader.getName();
+                    
+                    // Read <export.resource>
+                    if (EXPORT_RESOURCE.equals(element)) {
+                        String uri = reader.getAttributeValue(null, URI);
+                        if (uri == null) {
+                            throw new ContributionReadException("Attribute 'uri' is missing");
+                        }
+                        resourceExport.setURI(uri);
+                    } 
+                    
+                    break;
+                case XMLStreamConstants.END_ELEMENT:
+                    if (EXPORT_RESOURCE.equals(reader.getName())) {
+                        return resourceExport;
+                    }
+                    break;        
+            }
+            
+            // Read the next element
+            if (reader.hasNext()) {
+                reader.next();
+            }
+        }
+        
+        return resourceExport;
+    }
+
+    public void write(ResourceExport resourceExport, XMLStreamWriter writer) throws ContributionWriteException, XMLStreamException {
+        
+        // Write <export.resource>
+        writer.writeStartElement(EXPORT_RESOURCE.getNamespaceURI(), EXPORT_RESOURCE.getLocalPart());
+        
+        if (resourceExport.getURI() != null) {
+            writer.writeAttribute(URI, resourceExport.getURI());
+        }
+        
+        writer.writeEndElement();
+    }
+
+    public void resolve(ResourceExport model, ModelResolver resolver) throws ContributionResolveException {
+        
+    }
+}

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

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

Added: incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportExportFactoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportExportFactoryImpl.java?rev=629235&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportExportFactoryImpl.java (added)
+++ incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportExportFactoryImpl.java Tue Feb 19 13:15:00 2008
@@ -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.resource.impl;
+
+import org.apache.tuscany.sca.contribution.resource.ResourceExport;
+import org.apache.tuscany.sca.contribution.resource.ResourceImport;
+import org.apache.tuscany.sca.contribution.resource.ResourceImportExportFactory;
+
+/**
+ * Resource Import/Export model factory implementation
+ * 
+ * @version $Rev$ $Date$
+ */
+public class ResourceImportExportFactoryImpl implements ResourceImportExportFactory {
+
+    public ResourceImport createResourceImport() {
+        return new ResourceImportImpl();
+    }
+    
+    public ResourceExport createResourceExport() {
+        return new ResourceExportImpl();
+    }
+
+}

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

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

Added: incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportImpl.java?rev=629235&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportImpl.java (added)
+++ incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportImpl.java Tue Feb 19 13:15:00 2008
@@ -0,0 +1,102 @@
+/*
+ * 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.resource.impl;
+
+import java.util.List;
+
+import org.apache.tuscany.sca.contribution.Contribution;
+import org.apache.tuscany.sca.contribution.Export;
+import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+import org.apache.tuscany.sca.contribution.resource.ResourceExport;
+import org.apache.tuscany.sca.contribution.resource.ResourceImport;
+
+/**
+ * The representation of an import for the contribution
+ * 
+ * @version $Rev$ $Date$
+ */
+public class ResourceImportImpl implements ResourceImport {
+    /**
+     * The resource URI to be imported
+     */
+    private String uri; 
+    
+	private ModelResolver modelResolver;
+    private List<Contribution> exportContributions;
+
+    /**
+     * Optional location URI pointing to a Contribution that exports the resource
+     */
+    private String location;
+
+    
+    protected ResourceImportImpl() {
+        super();
+    }
+    
+    public String getLocation() {
+        return location;
+    }
+
+    public void setLocation(String location) {
+        this.location = location;
+    }
+
+    public String getURI() {
+        return uri;
+    }
+
+    public void setURI(String uri) {
+        this.uri = uri;
+    }
+    
+    public ModelResolver getModelResolver() {
+        return modelResolver;
+    }
+    
+    public void setModelResolver(ModelResolver modelResolver) {
+        this.modelResolver = modelResolver;
+    }
+    
+    public List<Contribution> getExportContributions() {
+        return exportContributions;
+    }
+
+    public void setExportContributions(List<Contribution> contributions) {
+        this.exportContributions = contributions;
+    }
+
+    /**
+     * Match a ResourceImport to a given ResourceExport based on :
+     *    location is not provided
+     *    import and export resource uri match
+     */
+    public boolean match(Export export) {
+        if (export instanceof ResourceExport) {
+            if (this.getLocation() == null || this.getLocation().length() == 0) {
+                if (this.getURI().equals(((ResourceExport)export).getURI())) {
+                    return true;
+                }
+            }
+            
+        }
+        return false;
+    }
+}

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

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

Added: incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessor.java?rev=629235&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessor.java (added)
+++ incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessor.java Tue Feb 19 13:15:00 2008
@@ -0,0 +1,127 @@
+/*
+ * 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.resource.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.contribution.ModelFactoryExtensionPoint;
+import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+import org.apache.tuscany.sca.contribution.resource.ResourceImport;
+import org.apache.tuscany.sca.contribution.resource.ResourceImportExportFactory;
+import org.apache.tuscany.sca.contribution.service.ContributionReadException;
+import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
+import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
+
+/**
+ * Artifact processor for Namespace import
+ * 
+ * @version $Rev$ $Date$
+ */
+public class ResourceImportProcessor  implements StAXArtifactProcessor<ResourceImport> {
+    private static final String SCA10_NS = "http://www.osoa.org/xmlns/sca/1.0";
+    
+    private static final QName IMPORT_RESOURCE = new QName(SCA10_NS, "import.resource");
+
+    private static final String URI = "uri";
+    private static final String LOCATION = "location";
+    
+    private final ResourceImportExportFactory factory;
+    
+    public ResourceImportProcessor(ModelFactoryExtensionPoint modelFactories) {
+        this.factory = modelFactories.getFactory(ResourceImportExportFactory.class);
+    }
+    
+    public QName getArtifactType() {
+        return IMPORT_RESOURCE;
+    }
+    
+    public Class<ResourceImport> getModelType() {
+        return ResourceImport.class;
+    }
+
+    /**
+     * Process <import.resource uri="" location=""/>
+     */
+    public ResourceImport read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException {
+    	ResourceImport resourceImport = this.factory.createResourceImport();
+        QName element;
+        
+        while (reader.hasNext()) {
+            int event = reader.getEventType();
+            switch (event) {
+                case START_ELEMENT:
+                    element = reader.getName();
+
+                    // Read <import>
+                    if (IMPORT_RESOURCE.equals(element)) {
+                        String uri = reader.getAttributeValue(null, URI);
+                        if (uri == null) {
+                            throw new ContributionReadException("Attribute 'namespace' is missing");
+                        }
+                        resourceImport.setURI(uri);
+
+                        String location = reader.getAttributeValue(null, LOCATION);
+                        if (location != null) {
+                            resourceImport.setLocation(location);
+                        }
+                    }
+                    break;
+                case XMLStreamConstants.END_ELEMENT:
+                    if (IMPORT_RESOURCE.equals(reader.getName())) {
+                        return resourceImport;
+                    }
+                    break;        
+            }
+            
+            // Read the next element
+            if (reader.hasNext()) {
+                reader.next();
+            }
+        }
+        
+        return resourceImport;
+    }
+
+    public void write(ResourceImport resourceImport, XMLStreamWriter writer) throws ContributionWriteException, XMLStreamException {
+        
+        // Write <import>
+        writer.writeStartElement(IMPORT_RESOURCE.getNamespaceURI(), IMPORT_RESOURCE.getLocalPart());
+        
+        if (resourceImport.getURI() != null) {
+            writer.writeAttribute(URI, resourceImport.getURI());
+        }
+        if (resourceImport.getLocation() != null) {
+            writer.writeAttribute(LOCATION, resourceImport.getLocation());
+        }
+        
+        writer.writeEndElement();
+    }
+
+
+    public void resolve(ResourceImport model, ModelResolver resolver) throws ContributionResolveException {
+    }
+}

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

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

Added: incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceceImportExportListener.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceceImportExportListener.java?rev=629235&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceceImportExportListener.java (added)
+++ incubator/tuscany/java/sca/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceceImportExportListener.java Tue Feb 19 13:15:00 2008
@@ -0,0 +1,108 @@
+/*
+ * 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.resource.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.tuscany.sca.contribution.Contribution;
+import org.apache.tuscany.sca.contribution.Export;
+import org.apache.tuscany.sca.contribution.Import;
+import org.apache.tuscany.sca.contribution.resolver.DefaultImportAllModelResolver;
+import org.apache.tuscany.sca.contribution.resource.ResourceExport;
+import org.apache.tuscany.sca.contribution.resource.ResourceImport;
+import org.apache.tuscany.sca.contribution.service.ContributionListener;
+import org.apache.tuscany.sca.contribution.service.ContributionRepository;
+
+/**
+ * Resource Import/Export contribution listener
+ * The listener would process all import/export from a given contribution 
+ * and initialize the model resolvers properly
+ * 
+ * @version $Rev$ $Date$
+ */
+public class ResourceceImportExportListener implements ContributionListener {
+
+    /**
+     * Initialize the import/export model resolvers
+     * Export model resolvers are same as Contribution model resolver
+     * Import model resolvers are matched to a specific contribution if a location uri is specified, 
+     *    otherwise it try to resolve agains all the other contributions
+     * Also set the exporting contributions used by contribution classloaders to 
+     * match import/export for class loading.
+     */    
+    public void contributionAdded(ContributionRepository repository, Contribution contribution) {
+        // Initialize the contribution exports
+        for (Export export: contribution.getExports()) {
+            export.setModelResolver(contribution.getModelResolver());
+        }
+        
+        // Initialize the contribution imports
+        for (Import import_: contribution.getImports()) {
+            boolean initialized = false;
+
+            
+            if (import_ instanceof ResourceImport) {
+                ResourceImport resourceImport = (ResourceImport)import_;
+                
+                // Find a matching contribution
+                if (resourceImport.getLocation() != null) {
+                    Contribution targetContribution = repository.getContribution(resourceImport.getLocation());
+                    if (targetContribution != null) {
+                    
+                        // Find a matching contribution export
+                        for (Export export: targetContribution.getExports()) {
+                            if (export instanceof ResourceExport) {
+                                ResourceExport resourceExport = (ResourceExport)export;
+                                if (resourceImport.getURI().equals(resourceExport.getURI())) {
+                                	resourceImport.setModelResolver(resourceExport.getModelResolver());
+                                    
+                                    List<Contribution> exportingContributions = new ArrayList<Contribution>();
+                                    exportingContributions.add(targetContribution);
+                                    import_.setExportContributions(exportingContributions);
+                                    
+                                    initialized = true;
+                                    break;
+                                }
+                            }
+                        }
+                    }
+                } 
+            } 
+            
+            //if no location was specified, try to resolve with any contribution            
+            if( !initialized ) {
+                // Use a resolver that will consider all contributions
+                import_.setModelResolver(new DefaultImportAllModelResolver(import_, repository.getContributions()));
+                import_.setExportContributions(repository.getContributions());
+            }
+        }
+
+    }
+
+    public void contributionRemoved(ContributionRepository repository, Contribution contribution) {
+
+    }
+
+    public void contributionUpdated(ContributionRepository repository, Contribution oldContribution, Contribution contribution) {
+
+    }
+
+}

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

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

Added: incubator/tuscany/java/sca/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor?rev=629235&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor (added)
+++ incubator/tuscany/java/sca/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor Tue Feb 19 13:15:00 2008
@@ -0,0 +1,19 @@
+# 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. 
+
+org.apache.tuscany.sca.contribution.resource.impl.ResourceImportProcessor;qname=http://www.osoa.org/xmlns/sca/1.0#import.resource,model=org.apache.tuscany.sca.contribution.resource.ResourceImport
+org.apache.tuscany.sca.contribution.resource.impl.ResourceExportProcessor;qname=http://www.osoa.org/xmlns/sca/1.0#export.resource,model=org.apache.tuscany.sca.contribution.resource.ResourceExport

Added: incubator/tuscany/java/sca/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resource.ResourceImportExportFactory
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resource.ResourceImportExportFactory?rev=629235&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resource.ResourceImportExportFactory (added)
+++ incubator/tuscany/java/sca/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resource.ResourceImportExportFactory Tue Feb 19 13:15:00 2008
@@ -0,0 +1,18 @@
+# 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. 
+
+org.apache.tuscany.sca.contribution.resource.impl.ResourceImportExportFactoryImpl

Added: incubator/tuscany/java/sca/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.service.ContributionListener
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.service.ContributionListener?rev=629235&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.service.ContributionListener (added)
+++ incubator/tuscany/java/sca/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.service.ContributionListener Tue Feb 19 13:15:00 2008
@@ -0,0 +1,18 @@
+# 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. 
+
+org.apache.tuscany.sca.contribution.resource.impl.ResourceceImportExportListener

Added: incubator/tuscany/java/sca/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessorTestCase.java?rev=629235&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessorTestCase.java (added)
+++ incubator/tuscany/java/sca/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessorTestCase.java Tue Feb 19 13:15:00 2008
@@ -0,0 +1,94 @@
+/*
+ * 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.resource.impl;
+
+
+
+import java.io.StringReader;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.sca.contribution.DefaultModelFactoryExtensionPoint;
+import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
+import org.apache.tuscany.sca.contribution.resource.ResourceExport;
+import org.apache.tuscany.sca.contribution.service.ContributionReadException;
+
+/**
+ * Test NamespaceExportProcessorTestCase
+ *  
+ * @version $Rev$ $Date$
+ */
+public class ResourceExportProcessorTestCase 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\">"
+            + "<export.resource uri=\"helloworld/HelloWorldService.componentType\"/>"
+            + "</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\">"
+            + "<export.resource/>"
+            + "</contribution>";
+
+    private XMLInputFactory xmlFactory;
+
+    @Override
+    protected void setUp() throws Exception {
+        xmlFactory = XMLInputFactory.newInstance();
+    }
+
+    /**
+     * Test loading a valid export element from a contribution metadata stream
+     * @throws Exception
+     */
+    public void testLoad() throws Exception {
+        XMLStreamReader reader = xmlFactory.createXMLStreamReader(new StringReader(VALID_XML));
+
+        ModelFactoryExtensionPoint factories = new DefaultModelFactoryExtensionPoint();
+        factories.addFactory(new ResourceImportExportFactoryImpl());
+        ResourceExportProcessor exportProcessor = new ResourceExportProcessor(factories);
+        ResourceExport resourceExport = exportProcessor.read(reader);
+        
+        assertEquals("helloworld/HelloWorldService.componentType", resourceExport.getURI());
+    }
+
+    /**
+     * Test loading an INVALID export element from a contribution metadata stream
+     * @throws Exception
+     */
+    public void testLoadInvalid() throws Exception {
+        XMLStreamReader reader = xmlFactory.createXMLStreamReader(new StringReader(INVALID_XML));
+
+        ModelFactoryExtensionPoint factories = new DefaultModelFactoryExtensionPoint();
+        factories.addFactory(new ResourceImportExportFactoryImpl());
+        ResourceExportProcessor exportProcessor = new ResourceExportProcessor(factories);
+        try {
+            exportProcessor.read(reader);
+            fail("readerException should have been thrown");
+        } catch (ContributionReadException e) {
+            assertTrue(true);
+        }
+    }    
+}

Propchange: incubator/tuscany/java/sca/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessorTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessorTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessorTestCase.java?rev=629235&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessorTestCase.java (added)
+++ incubator/tuscany/java/sca/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessorTestCase.java Tue Feb 19 13:15:00 2008
@@ -0,0 +1,95 @@
+/*
+ * 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.resource.impl;
+
+
+
+import java.io.StringReader;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.sca.contribution.DefaultModelFactoryExtensionPoint;
+import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
+import org.apache.tuscany.sca.contribution.resource.ResourceImport;
+import org.apache.tuscany.sca.contribution.service.ContributionReadException;
+
+/**
+ * Test NamespaceImportProcessorTestCase
+ * 
+ * @version $Rev$ $Date$
+ */
+public class ResourceImportProcessorTestCase 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\">"
+            + "<import.resource uri=\"helloworld/HelloWorldService.componentType\" location=\"sca://contributions/001\"/>"
+            + "</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\">"
+            + "<import.resource location=\"sca://contributions/001\"/>"
+            + "</contribution>";
+
+    private XMLInputFactory xmlFactory;
+
+    @Override
+    protected void setUp() throws Exception {
+        xmlFactory = XMLInputFactory.newInstance();
+    }
+
+    /**
+     * Test loading a valid import element from a contribution metadata stream
+     * @throws Exception
+     */
+    public void testLoad() throws Exception {
+        XMLStreamReader reader = xmlFactory.createXMLStreamReader(new StringReader(VALID_XML));
+
+        ModelFactoryExtensionPoint factories = new DefaultModelFactoryExtensionPoint();
+        factories.addFactory(new ResourceImportExportFactoryImpl());
+        ResourceImportProcessor importProcessor = new ResourceImportProcessor(factories);
+        ResourceImport namespaceImport = importProcessor.read(reader);
+        
+        assertEquals("helloworld/HelloWorldService.componentType", namespaceImport.getURI());
+        assertEquals("sca://contributions/001", namespaceImport.getLocation());
+    }
+
+    /**
+     * Test loading a INVALID import element from a contribution metadata stream
+     * @throws Exception
+     */
+    public void testLoadInvalid() throws Exception {
+        XMLStreamReader reader = xmlFactory.createXMLStreamReader(new StringReader(INVALID_XML));
+
+        ModelFactoryExtensionPoint factories = new DefaultModelFactoryExtensionPoint();
+        factories.addFactory(new ResourceImportExportFactoryImpl());
+        ResourceImportProcessor importProcessor = new ResourceImportProcessor(factories);
+        try {
+            importProcessor.read(reader);
+            fail("readerException should have been thrown");
+        } catch (ContributionReadException e) {
+            assertTrue(true);
+        }
+    }    
+}

Propchange: incubator/tuscany/java/sca/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessorTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessorTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date



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