You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by lr...@apache.org on 2007/07/28 01:29:18 UTC

svn commit: r560420 - in /incubator/tuscany/java/sca/modules/contribution-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/apache/tuscany/sca/contribution/ s...

Author: lresende
Date: Fri Jul 27 16:29:14 2007
New Revision: 560420

URL: http://svn.apache.org/viewvc?view=rev&rev=560420
Log:
[work in progress] 
Contribution import/export java support based on new extensibility of contribution import/export

Added:
    incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/
    incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/
    incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/
    incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/
    incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/
    incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/
    incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/JavaExport.java
    incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/JavaImport.java
    incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/
    incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaExportImpl.java
    incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportImpl.java
    incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/service/
    incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/service/impl/
    incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataImporJavaModuleActivator.java
    incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/service/impl/JavaExportMetadataProcessor.java
    incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/service/impl/JavaImportMetadataProcessor.java
    incubator/tuscany/java/sca/modules/contribution-java/src/main/resources/META-INF/
    incubator/tuscany/java/sca/modules/contribution-java/src/main/resources/META-INF/services/
    incubator/tuscany/java/sca/modules/contribution-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator
    incubator/tuscany/java/sca/modules/contribution-java/src/test/java/org/
    incubator/tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/
    incubator/tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/tuscany/
    incubator/tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/tuscany/sca/
    incubator/tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/
    incubator/tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/
    incubator/tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/
    incubator/tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/JavaExportMetadataProcessorTestCase.java
    incubator/tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportMetadataProcessorTestCase.java
Modified:
    incubator/tuscany/java/sca/modules/contribution-java/pom.xml

Modified: incubator/tuscany/java/sca/modules/contribution-java/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-java/pom.xml?view=diff&rev=560420&r1=560419&r2=560420
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-java/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/contribution-java/pom.xml Fri Jul 27 16:29:14 2007
@@ -36,6 +36,12 @@
         </dependency>
 
         <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-core-spi</artifactId>
+            <version>1.0-incubating-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
             <groupId>org.codehaus.woodstox</groupId>
             <artifactId>wstx-asl</artifactId>
             <version>3.2.0</version>

Added: incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/JavaExport.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/JavaExport.java?view=auto&rev=560420
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/JavaExport.java (added)
+++ incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/JavaExport.java Fri Jul 27 16:29:14 2007
@@ -0,0 +1,38 @@
+/*
+ * 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.java;
+
+import org.apache.tuscany.sca.contribution.Export;
+
+public interface JavaExport extends Export {
+    /**
+     * Get java package that identifies the import
+     * 
+     * @return The package name
+     */
+    String getPackage();
+
+    /**
+     * Set java package that identifies the import
+     * 
+     * @param packageName The package name
+     */
+    void setPackage(String packageName);
+}

Added: incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/JavaImport.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/JavaImport.java?view=auto&rev=560420
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/JavaImport.java (added)
+++ incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/JavaImport.java Fri Jul 27 16:29:14 2007
@@ -0,0 +1,53 @@
+/*
+ * 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.java;
+
+import org.apache.tuscany.sca.contribution.Import;
+
+public interface JavaImport 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 java package that identifies the import
+     * 
+     * @return The package name
+     */
+    String getPackage();
+
+    /**
+     * Set java package that identifies the import
+     * 
+     * @param packageName The package name
+     */
+    void setPackage(String packageName);
+}

Added: incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaExportImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaExportImpl.java?view=auto&rev=560420
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaExportImpl.java (added)
+++ incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaExportImpl.java Fri Jul 27 16:29:14 2007
@@ -0,0 +1,50 @@
+/*
+ * 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.java.impl;
+
+import org.apache.tuscany.sca.contribution.java.JavaExport;
+import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+
+public class JavaExportImpl implements JavaExport {
+    private String packageName;
+
+    public JavaExportImpl() {
+        super();
+    }
+
+    public String getPackage() {
+        return this.packageName;
+    }
+
+    public void setPackage(String packageName) {
+        this.packageName = packageName;
+    }
+
+    public ModelResolver getModelResolver() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public void setModelResolver(ModelResolver modelResolver) {
+        // TODO Auto-generated method stub
+
+    }
+
+}

Added: incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportImpl.java?view=auto&rev=560420
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportImpl.java (added)
+++ incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportImpl.java Fri Jul 27 16:29:14 2007
@@ -0,0 +1,60 @@
+/*
+ * 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.java.impl;
+
+import org.apache.tuscany.sca.contribution.java.JavaImport;
+import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+
+public class JavaImportImpl implements JavaImport {
+    private String packageName;
+    private String location;
+
+    
+    public JavaImportImpl() {
+        super();
+    }
+
+    public String getLocation() {
+        return this.location;
+    }
+
+    public void setLocation(String location) {
+        this.location = location;
+    }
+
+    public String getPackage() {
+        return this.packageName;
+    }
+
+    public void setPackage(String packageName) {
+        this.packageName = packageName;
+    }
+
+    public ModelResolver getModelResolver() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public void setModelResolver(ModelResolver modelResolver) {
+        // TODO Auto-generated method stub
+
+    }
+
+}

Added: incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataImporJavaModuleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataImporJavaModuleActivator.java?view=auto&rev=560420
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataImporJavaModuleActivator.java (added)
+++ incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataImporJavaModuleActivator.java Fri Jul 27 16:29:14 2007
@@ -0,0 +1,50 @@
+/*
+ * 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 org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.ModuleActivator;
+
+
+public class ContributionMetadataImporJavaModuleActivator implements ModuleActivator{
+    JavaImportMetadataProcessor importProcessor;
+    JavaExportMetadataProcessor exportProcessor;
+
+    public Object[] getExtensionPoints() {
+        return null;
+    }
+
+    public void start(ExtensionPointRegistry registry) {
+        importProcessor = new JavaImportMetadataProcessor();
+        exportProcessor = new JavaExportMetadataProcessor();
+        
+        StAXArtifactProcessorExtensionPoint processors = registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
+        processors.addArtifactProcessor(importProcessor);
+        processors.addArtifactProcessor(exportProcessor);        
+    }
+
+    public void stop(ExtensionPointRegistry registry) {
+        StAXArtifactProcessorExtensionPoint processors = registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
+        processors.removeArtifactProcessor(importProcessor);
+        processors.removeArtifactProcessor(exportProcessor);        
+    }
+
+}

Added: incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/service/impl/JavaExportMetadataProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/service/impl/JavaExportMetadataProcessor.java?view=auto&rev=560420
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/service/impl/JavaExportMetadataProcessor.java (added)
+++ incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/service/impl/JavaExportMetadataProcessor.java Fri Jul 27 16:29:14 2007
@@ -0,0 +1,103 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.sca.contribution.service.impl;
+
+import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.tuscany.sca.contribution.java.JavaExport;
+import org.apache.tuscany.sca.contribution.java.impl.JavaExportImpl;
+import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+import org.apache.tuscany.sca.contribution.service.ContributionReadException;
+import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
+import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
+
+public class JavaExportMetadataProcessor implements StAXArtifactProcessor<JavaExport> {
+    private static final String SCA10_NS = "http://www.osoa.org/xmlns/sca/1.0";
+    
+    private static final QName EXPORT_JAVA = new QName(SCA10_NS, "export.java");
+    
+    private static final String PACKAGE = "package";
+    
+    public JavaExportMetadataProcessor() {
+        super();
+    }
+
+    public QName getArtifactType() {
+        return EXPORT_JAVA;
+    }
+    
+    public Class<JavaExport> getModelType() {
+        return JavaExport.class;
+    }
+    
+    
+    public JavaExport read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException {
+        JavaExport javaExport = new JavaExportImpl();
+        QName element = null;
+
+        
+        while (reader.hasNext()) {
+            int event = reader.getEventType();
+            switch (event) {
+                case START_ELEMENT:
+                    element = reader.getName();
+                    
+                    if (EXPORT_JAVA.equals(element)) {
+                        String packageName = reader.getAttributeValue(null, PACKAGE);
+                        if (packageName == null) {
+                            throw new ContributionReadException("Attribute 'package' is missing");
+                        }
+                        
+                        javaExport.setPackage(packageName);
+                    }
+                    break;
+                case XMLStreamConstants.END_ELEMENT:
+                    if (EXPORT_JAVA.equals(reader.getName())) {
+                        return javaExport;
+                    }
+                    break;        
+            }
+            
+            //Read the next element
+            if (reader.hasNext()) {
+                reader.next();
+            }
+        }
+        
+        return javaExport;
+    }
+
+    public void write(JavaExport model, XMLStreamWriter outputSource) throws ContributionWriteException, XMLStreamException {
+        // TODO Auto-generated method stub
+        
+    }
+
+    public void resolve(JavaExport model, ModelResolver resolver) throws ContributionResolveException {
+        // TODO Auto-generated method stub
+        
+    }
+}

Added: incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/service/impl/JavaImportMetadataProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/service/impl/JavaImportMetadataProcessor.java?view=auto&rev=560420
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/service/impl/JavaImportMetadataProcessor.java (added)
+++ incubator/tuscany/java/sca/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/service/impl/JavaImportMetadataProcessor.java Fri Jul 27 16:29:14 2007
@@ -0,0 +1,105 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.sca.contribution.service.impl;
+
+import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.tuscany.sca.contribution.java.JavaImport;
+import org.apache.tuscany.sca.contribution.java.impl.JavaImportImpl;
+import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+import org.apache.tuscany.sca.contribution.service.ContributionReadException;
+import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
+import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
+
+public class JavaImportMetadataProcessor  implements StAXArtifactProcessor<JavaImport> {
+    private static final String SCA10_NS = "http://www.osoa.org/xmlns/sca/1.0";
+    
+    private static final QName IMPORT_JAVA = new QName(SCA10_NS, "import.java");
+
+    private static final String PACKAGE = "package";
+    private static final String LOCATION = "location";
+    
+    public JavaImportMetadataProcessor() {
+        super();
+    }
+    
+    public QName getArtifactType() {
+        return IMPORT_JAVA;
+    }
+    
+    public Class<JavaImport> getModelType() {
+        return JavaImport.class;
+    }
+
+    public JavaImport read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException {
+        JavaImport javaImport = new JavaImportImpl();
+        QName element = null;
+        
+        while (reader.hasNext()) {
+            int event = reader.getEventType();
+            switch (event) {
+                case START_ELEMENT:
+                    element = reader.getName();
+                    
+                    if (IMPORT_JAVA.equals(element)) {
+                        String packageName = reader.getAttributeValue(null, PACKAGE);
+                        if (packageName == null) {
+                            throw new ContributionReadException("Attribute 'package' is missing");
+                        }
+                        
+                        String location = reader.getAttributeValue(null, LOCATION);
+                        javaImport.setPackage(packageName);
+                        javaImport.setLocation(location);
+                    }
+                    break;
+                case XMLStreamConstants.END_ELEMENT:
+                    if (IMPORT_JAVA.equals(reader.getName())) {
+                        return javaImport;
+                    }
+                    break;        
+            }
+            
+            //Read the next element
+            if (reader.hasNext()) {
+                reader.next();
+            }
+        }
+        
+        return javaImport;
+    }
+
+    public void write(JavaImport model, XMLStreamWriter outputSource) throws ContributionWriteException, XMLStreamException {
+        // TODO Auto-generated method stub
+        
+    }
+
+
+    public void resolve(JavaImport model, ModelResolver resolver) throws ContributionResolveException {
+        // TODO Auto-generated method stub
+        
+    }
+}

Added: incubator/tuscany/java/sca/modules/contribution-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator?view=auto&rev=560420
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator (added)
+++ incubator/tuscany/java/sca/modules/contribution-java/src/main/resources/META-INF/services/org.apache.tuscany.sca.core.ModuleActivator Fri Jul 27 16:29:14 2007
@@ -0,0 +1,20 @@
+# 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. 
+#
+# Implementation class for the ExtensionActivator
+#
+org.apache.tuscany.sca.contribution.service.ContributionMetadataImporJavaModuleActivator

Added: incubator/tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/JavaExportMetadataProcessorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/JavaExportMetadataProcessorTestCase.java?view=auto&rev=560420
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/JavaExportMetadataProcessorTestCase.java (added)
+++ incubator/tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/JavaExportMetadataProcessorTestCase.java Fri Jul 27 16:29:14 2007
@@ -0,0 +1,59 @@
+package org.apache.tuscany.sca.contribution.java.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.java.JavaExport;
+import org.apache.tuscany.sca.contribution.service.ContributionReadException;
+import org.apache.tuscany.sca.contribution.service.impl.JavaExportMetadataProcessor;
+
+/**
+ * @version $Rev: 538445 $ $Date: 2007-05-15 23:20:37 -0700 (Tue, 15 May 2007) $
+ */
+public class JavaExportMetadataProcessorTestCase 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.java package=\"org.apache.tuscany.sca.contribution.java\"/>"
+            + "</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.java/>"
+            + "</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));
+
+        JavaExportMetadataProcessor exportProcessor = new JavaExportMetadataProcessor();
+        JavaExport javaExport = exportProcessor.read(reader);
+        
+        assertEquals("org.apache.tuscany.sca.contribution.java", javaExport.getPackage());
+    }
+
+    public void testLoadInvalid() throws Exception {
+        XMLStreamReader reader = xmlFactory.createXMLStreamReader(new StringReader(INVALID_XML));
+
+        JavaExportMetadataProcessor exportProcessor = new JavaExportMetadataProcessor();
+        try {
+            exportProcessor.read(reader);
+            fail("readerException should have been thrown");
+        } catch (ContributionReadException e) {
+            assertTrue(true);
+        }
+    }    
+}

Added: incubator/tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportMetadataProcessorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportMetadataProcessorTestCase.java?view=auto&rev=560420
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportMetadataProcessorTestCase.java (added)
+++ incubator/tuscany/java/sca/modules/contribution-java/src/test/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportMetadataProcessorTestCase.java Fri Jul 27 16:29:14 2007
@@ -0,0 +1,60 @@
+package org.apache.tuscany.sca.contribution.java.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.java.JavaImport;
+import org.apache.tuscany.sca.contribution.service.ContributionReadException;
+import org.apache.tuscany.sca.contribution.service.impl.JavaImportMetadataProcessor;
+
+/**
+ * @version $Rev: 538445 $ $Date: 2007-05-15 23:20:37 -0700 (Tue, 15 May 2007) $
+ */
+public class JavaImportMetadataProcessorTestCase 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.java package=\"org.apache.tuscany.sca.contribution.java\" 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.java location=\"sca://contributions/001\"/>"
+            + "</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));
+
+        JavaImportMetadataProcessor importProcessor = new JavaImportMetadataProcessor();
+        JavaImport javaImport = importProcessor.read(reader);
+        
+        assertEquals("org.apache.tuscany.sca.contribution.java", javaImport.getPackage());
+        assertEquals("sca://contributions/001", javaImport.getLocation());
+    }
+
+    public void testLoadInvalid() throws Exception {
+        XMLStreamReader reader = xmlFactory.createXMLStreamReader(new StringReader(INVALID_XML));
+
+        JavaImportMetadataProcessor importProcessor = new JavaImportMetadataProcessor();
+        try {
+            importProcessor.read(reader);
+            fail("readerException should have been thrown");
+        } catch (ContributionReadException e) {
+            assertTrue(true);
+        }
+    }    
+}



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