summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2010-09-06 16:49:51 +0000
committerlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2010-09-06 16:49:51 +0000
commit1f63bc03e8cf8dd761a51e9f83c18b25654adbf4 (patch)
tree71509850b1bfaf44c4593cbf6afa5dd2d6dd153c
parent4957d288168a5620b52537f754a529007514f811 (diff)
Porting support to import/export resources from 1.x
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@993091 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--sca-java-2.x/trunk/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-contribution-resource.xsd46
-rw-r--r--sca-java-2.x/trunk/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1.xsd6
-rw-r--r--sca-java-2.x/trunk/modules/contribution-resource/META-INF/MANIFEST.MF34
-rw-r--r--sca-java-2.x/trunk/modules/contribution-resource/pom.xml33
-rw-r--r--sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceExport.java17
-rw-r--r--sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceImport.java21
-rw-r--r--sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ArtifactModelResolver.java36
-rw-r--r--sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportModelResolver.java25
-rw-r--r--sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessor.java97
-rw-r--r--sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportExportListener.java97
-rw-r--r--sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessor.java94
-rw-r--r--sca-java-2.x/trunk/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor10
-rw-r--r--sca-java-2.x/trunk/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessorTestCase.java62
-rw-r--r--sca-java-2.x/trunk/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessorTestCase.java64
-rw-r--r--sca-java-2.x/trunk/modules/pom.xml1
15 files changed, 289 insertions, 354 deletions
diff --git a/sca-java-2.x/trunk/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-contribution-resource.xsd b/sca-java-2.x/trunk/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-contribution-resource.xsd
new file mode 100644
index 0000000000..09645724a4
--- /dev/null
+++ b/sca-java-2.x/trunk/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1-contribution-resource.xsd
@@ -0,0 +1,46 @@
+<?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.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://tuscany.apache.org/xmlns/sca/1.1"
+ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1"
+ elementFormDefault="qualified">
+
+ <import namespace="http://docs.oasis-open.org/ns/opencsa/sca/200912" schemaLocation="sca-contribution-1.1-cd05-rev1.xsd"/>
+
+ <element name="import.resource" type="t:ImportResourceType" substitutionGroup="sca:importBase"/>
+ <complexType name="ImportResourceType">
+ <complexContent>
+ <extension base="sca:Import">
+ <attribute name="uri" type="anyURI" use="required"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <element name="export.resource" type="t:ExportResourceType" substitutionGroup="sca:exportBase"/>
+ <complexType name="ExportResourceType">
+ <complexContent>
+ <extension base="sca:Export">
+ <attribute name="uri" type="anyURI" use="required"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+</schema> \ No newline at end of file
diff --git a/sca-java-2.x/trunk/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1.xsd b/sca-java-2.x/trunk/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1.xsd
index 08c6f57eb4..0259a17abb 100644
--- a/sca-java-2.x/trunk/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1.xsd
+++ b/sca-java-2.x/trunk/modules/assembly-xsd/src/main/resources/tuscany-sca-1.1.xsd
@@ -26,13 +26,17 @@
<import namespace="http://docs.oasis-open.org/ns/opencsa/sca/200912" schemaLocation="sca-1.1-cd05-rev1.xsd"/>
- <include schemaLocation="tuscany-sca-1.1-binding-atom.xsd"/>
+ <include schemaLocation="tuscany-sca-1.1-binding-atom.xsd"/>
<include schemaLocation="tuscany-sca-1.1-binding-jms.xsd"/>
<include schemaLocation="tuscany-sca-1.1-binding-http.xsd"/>
<include schemaLocation="tuscany-sca-1.1-binding-jsonrpc.xsd"/>
<include schemaLocation="tuscany-sca-1.1-binding-rest.xsd"/>
<include schemaLocation="tuscany-sca-1.1-binding-rmi.xsd"/>
+ <!--
<include schemaLocation="tuscany-sca-1.1-binding-rss.xsd"/>
+ -->
+
+ <include schemaLocation="tuscany-sca-1.1-contribution-resource.xsd"/>
<include schemaLocation="tuscany-sca-1.1-implementation-osgi.xsd"/>
<include schemaLocation="tuscany-sca-1.1-implementation-widget.xsd"/>
diff --git a/sca-java-2.x/trunk/modules/contribution-resource/META-INF/MANIFEST.MF b/sca-java-2.x/trunk/modules/contribution-resource/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..0f43a91324
--- /dev/null
+++ b/sca-java-2.x/trunk/modules/contribution-resource/META-INF/MANIFEST.MF
@@ -0,0 +1,34 @@
+Manifest-Version: 1.0
+Export-Package: org.apache.tuscany.sca.contribution.resource
+SCA-Version: 1.1
+Bundle-Name: Apache Tuscany SCA Resource Import/Export Model
+Bundle-Vendor: The Apache Software Foundation
+Bundle-Version: 2.0.0
+Bundle-ManifestVersion: 2
+Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
+Bundle-Description: Apache Tuscany SCA Resource Import/Export Model
+Import-Package: javax.xml.namespace,
+ javax.xml.parsers,
+ javax.xml.stream,
+ javax.xml.stream.events,
+ javax.xml.stream.util,
+ javax.xml.transform,
+ javax.xml.transform.sax,
+ javax.xml.transform.stream,
+ javax.xml.validation,
+ org.apache.tuscany.sca.assembly;version="2.0.0",
+ org.apache.tuscany.sca.assembly.xsd;version="2.0.0";resolution:=optional,
+ org.apache.tuscany.sca.common.java.io;version="2.0.0",
+ org.apache.tuscany.sca.common.xml;version="2.0.0",
+ org.apache.tuscany.sca.common.xml.stax;version="2.0.0",
+ org.apache.tuscany.sca.contribution;version="2.0.0",
+ org.apache.tuscany.sca.contribution.resolver;version="2.0.0",
+ org.apache.tuscany.sca.core;version="2.0.0",
+ org.apache.tuscany.sca.monitor;version="2.0.0",
+ org.w3c.dom,
+ org.w3c.dom.ls,
+ org.xml.sax,
+ org.xml.sax.helpers
+Bundle-SymbolicName: org.apache.tuscany.sca.contribution.resource
+Bundle-DocURL: http://www.apache.org/
+Bundle-RequiredExecutionEnvironment: J2SE-1.5,JavaSE-1.6
diff --git a/sca-java-2.x/trunk/modules/contribution-resource/pom.xml b/sca-java-2.x/trunk/modules/contribution-resource/pom.xml
index 6a90995b75..576670176a 100644
--- a/sca-java-2.x/trunk/modules/contribution-resource/pom.xml
+++ b/sca-java-2.x/trunk/modules/contribution-resource/pom.xml
@@ -7,22 +7,22 @@
* 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.
+ * under the License.
-->
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-modules</artifactId>
- <version>1.7-SNAPSHOT</version>
+ <version>2.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>tuscany-contribution-resource</artifactId>
@@ -32,13 +32,13 @@
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-contribution</artifactId>
- <version>1.7-SNAPSHOT</version>
+ <version>2.0-SNAPSHOT</version>
</dependency>
- <dependency>
+ <dependency>
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-core-spi</artifactId>
- <version>1.7-SNAPSHOT</version>
+ <version>2.0-SNAPSHOT</version>
</dependency>
<dependency>
@@ -54,23 +54,4 @@
</exclusions>
</dependency>
</dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
-
- <configuration>
- <instructions>
- <Bundle-Version>${tuscany.version}</Bundle-Version>
- <Bundle-SymbolicName>org.apache.tuscany.sca.contribution.resource</Bundle-SymbolicName>
- <Bundle-Description>${pom.name}</Bundle-Description>
- <Export-Package>org.apache.tuscany.sca.contribution.resource*</Export-Package>
- </instructions>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
</project>
diff --git a/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceExport.java b/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceExport.java
index 0bd30c19dd..8165b54fec 100644
--- a/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceExport.java
+++ b/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceExport.java
@@ -6,41 +6,44 @@
* 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.
+ * under the License.
*/
package org.apache.tuscany.sca.contribution.resource;
+import javax.xml.namespace.QName;
+
import org.apache.tuscany.sca.contribution.Export;
/**
* The representation of an resource export.
- *
+ *
* @version $Rev$ $Date$
*/
public interface ResourceExport extends Export {
+ QName TYPE = new QName(SCA11_TUSCANY_NS, "export.resource");
/**
* Get Resource URI that identifies the export.
- *
+ *
* @return The exported resource URI
*/
String getURI();
/**
* Set Resource URI that identifies the export.
- *
+ *
* @param uri The exported resource URI
*/
void setURI(String uri);
-
+
}
diff --git a/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceImport.java b/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceImport.java
index 07eac9d843..3bba948c82 100644
--- a/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceImport.java
+++ b/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceImport.java
@@ -6,54 +6,57 @@
* 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.
+ * under the License.
*/
package org.apache.tuscany.sca.contribution.resource;
+import javax.xml.namespace.QName;
+
import org.apache.tuscany.sca.contribution.Import;
/**
* The representation of an resource import.
- *
+ *
* @version $Rev$ $Date$
*/
public interface ResourceImport extends Import {
+ QName TYPE = new QName(SCA11_TUSCANY_NS, "import.resource");
/**
* 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 uri The resource URI
*/
void setURI(String uri);
-
+
} \ No newline at end of file
diff --git a/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ArtifactModelResolver.java b/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ArtifactModelResolver.java
index 67836748fc..de14c463d3 100644
--- a/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ArtifactModelResolver.java
+++ b/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ArtifactModelResolver.java
@@ -6,15 +6,15 @@
* 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.
+ * under the License.
*/
package org.apache.tuscany.sca.contribution.resource.impl;
@@ -25,7 +25,7 @@ import java.util.Map;
import org.apache.tuscany.sca.contribution.Artifact;
import org.apache.tuscany.sca.contribution.Contribution;
import org.apache.tuscany.sca.contribution.Import;
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
+import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
import org.apache.tuscany.sca.contribution.resource.ResourceImport;
@@ -37,34 +37,34 @@ import org.apache.tuscany.sca.contribution.resource.ResourceImport;
public class ArtifactModelResolver implements ModelResolver {
private Contribution contribution;
private Map<String, Artifact> map = new HashMap<String, Artifact>();
-
- public ArtifactModelResolver(Contribution contribution, ModelFactoryExtensionPoint modelFactories) {
+
+ public ArtifactModelResolver(Contribution contribution) {
this.contribution = contribution;
}
- public void addModel(Object resolved) {
+ public void addModel(Object resolved, ProcessorContext context) {
Artifact artifact = (Artifact)resolved;
- map.put(artifact.getURI(), artifact);
+ map.put(artifact.getURI(), artifact);
}
-
- public Object removeModel(Object resolved) {
- return map.remove(((Artifact)resolved).getURI());
+
+ public Object removeModel(Object resolved, ProcessorContext context) {
+ return map.remove(((Artifact)resolved).getURI());
}
-
- public <T> T resolveModel(Class<T> modelClass, T unresolved) {
+
+ public <T> T resolveModel(Class<T> modelClass, T unresolved, ProcessorContext context) {
// Get the artifact URI
String uri = ((Artifact)unresolved).getURI();
if (uri == null) {
return (T)unresolved;
}
-
+
// Lookup the artifact
Artifact resolved = (Artifact) map.get(uri);
if (resolved != null) {
return modelClass.cast(resolved);
- }
-
+ }
+
// If not found, delegate the resolution to the imports (in this case based on the resource imports)
for (Import import_ : this.contribution.getImports()) {
if (import_ instanceof ResourceImport) {
@@ -73,7 +73,7 @@ public class ArtifactModelResolver implements ModelResolver {
if ((resourceImport.getURI().equals(uri)) &&
(resourceImport.getModelResolver() != null)){
// Delegate the resolution to the import resolver
- resolved = resourceImport.getModelResolver().resolveModel(Artifact.class, (Artifact)unresolved);
+ resolved = resourceImport.getModelResolver().resolveModel(Artifact.class, (Artifact)unresolved, context);
if (!resolved.isUnresolved()) {
return modelClass.cast(resolved);
}
@@ -83,5 +83,5 @@ public class ArtifactModelResolver implements ModelResolver {
return (T)unresolved;
}
-
+
}
diff --git a/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportModelResolver.java b/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportModelResolver.java
index fd568e533d..96ee55ed45 100644
--- a/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportModelResolver.java
+++ b/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportModelResolver.java
@@ -6,20 +6,21 @@
* 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.
+ * under the License.
*/
package org.apache.tuscany.sca.contribution.resource.impl;
import org.apache.tuscany.sca.contribution.Artifact;
+import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
import org.apache.tuscany.sca.contribution.resource.ResourceExport;
@@ -32,31 +33,31 @@ public class ResourceExportModelResolver implements ModelResolver {
private ResourceExport export;
private ModelResolver resolver;
-
+
public ResourceExportModelResolver(ResourceExport export, ModelResolver resolver) {
this.export = export;
this.resolver = resolver;
}
-
- public void addModel(Object resolved) {
+
+ public void addModel(Object resolved, ProcessorContext context) {
throw new IllegalStateException();
}
- public Object removeModel(Object resolved) {
+ public Object removeModel(Object resolved, ProcessorContext context) {
throw new IllegalStateException();
}
- public <T> T resolveModel(Class<T> modelClass, T unresolved) {
-
+ public <T> T resolveModel(Class<T> modelClass, T unresolved, ProcessorContext context) {
+
// Filter based on the artifact URI
Artifact artifact = (Artifact)unresolved;
if (export.getURI().equals(artifact.getURI())) {
-
+
// The artifact URI matches the exported URI, delegate to the
// contribution's resolver
- return resolver.resolveModel(modelClass, unresolved);
+ return resolver.resolveModel(modelClass, unresolved, context);
} else {
-
+
// The artifact URI is not exported, return the unresolved object
return unresolved;
}
diff --git a/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessor.java b/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessor.java
index dcd806776f..215338c7ce 100644
--- a/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessor.java
+++ b/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessor.java
@@ -6,15 +6,15 @@
* 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.
+ * under the License.
*/
package org.apache.tuscany.sca.contribution.resource.impl;
@@ -27,106 +27,89 @@ 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.ContributionReadException;
+import org.apache.tuscany.sca.contribution.processor.ContributionResolveException;
+import org.apache.tuscany.sca.contribution.processor.ContributionWriteException;
+import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
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;
+import org.apache.tuscany.sca.core.FactoryExtensionPoint;
import org.apache.tuscany.sca.monitor.Monitor;
import org.apache.tuscany.sca.monitor.Problem;
import org.apache.tuscany.sca.monitor.Problem.Severity;
-import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
/**
* 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;
- private final Monitor monitor;
-
- public ResourceExportProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+
+ public ResourceExportProcessor(FactoryExtensionPoint modelFactories) {
this.factory = modelFactories.getFactory(ResourceImportExportFactory.class);
- this.monitor = monitor;
}
-
+
+
/**
* Report a error.
- *
+ *
* @param problems
* @param message
* @param model
*/
- private void error(String message, Object model, Object... messageParameters) {
+ private void error(Monitor monitor, String message, Object model, Object... messageParameters) {
if (monitor != null) {
- Problem problem = new ProblemImpl(this.getClass().getName(), "contribution-resource-validation-messages", Severity.ERROR, model, message, (Object[])messageParameters);
- monitor.problem(problem);
+ Problem problem = monitor.createProblem(this.getClass().getName(), "contribution-resource-validation-messages", Severity.ERROR, model, message, (Object[])messageParameters);
+ monitor.problem(problem);
}
}
-
- /**
- * Report a exception.
- *
- * @param problems
- * @param message
- * @param model
- */
- private void error(String message, Object model, Exception ex) {
- if (monitor != null) {
- Problem problem = new ProblemImpl(this.getClass().getName(), "contribution-resource-validation-messages", Severity.ERROR, model, message, ex);
- monitor.problem(problem);
- }
- }
public QName getArtifactType() {
- return EXPORT_RESOURCE;
+ return ResourceExport.TYPE;
}
-
+
public Class<ResourceExport> getModelType() {
return ResourceExport.class;
}
-
+
/**
* Process <export.resource uri=""/>
*/
- public ResourceExport read(XMLStreamReader reader) throws ContributionReadException {
+ public ResourceExport read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException {
ResourceExport resourceExport = this.factory.createResourceExport();
QName element = null;
-
+
try {
while (reader.hasNext()) {
int event = reader.getEventType();
switch (event) {
case START_ELEMENT:
element = reader.getName();
-
+
// Read <export.resource>
- if (EXPORT_RESOURCE.equals(element)) {
+ if (ResourceExport.TYPE.equals(element)) {
String uri = reader.getAttributeValue(null, URI);
if (uri == null) {
- error("AttributeURIMissing", reader);
+ error(context.getMonitor(), "AttributeURIMissing", reader);
//throw new ContributionReadException("Attribute 'uri' is missing");
} else
resourceExport.setURI(uri);
- }
-
+ }
+
break;
case XMLStreamConstants.END_ELEMENT:
- if (EXPORT_RESOURCE.equals(reader.getName())) {
+ if (ResourceExport.TYPE.equals(reader.getName())) {
return resourceExport;
}
- break;
+ break;
}
-
+
// Read the next element
if (reader.hasNext()) {
reader.next();
@@ -135,26 +118,26 @@ public class ResourceExportProcessor implements StAXArtifactProcessor<ResourceEx
}
catch (XMLStreamException e) {
ContributionReadException ex = new ContributionReadException(e);
- error("XMLStreamException", reader, ex);
+ error(context.getMonitor(), "XMLStreamException", reader, ex);
}
-
+
return resourceExport;
}
- public void write(ResourceExport resourceExport, XMLStreamWriter writer) throws ContributionWriteException, XMLStreamException {
-
+ public void write(ResourceExport resourceExport, XMLStreamWriter writer, ProcessorContext context) throws ContributionWriteException, XMLStreamException {
+
// Write <export.resource>
- writer.writeStartElement(EXPORT_RESOURCE.getNamespaceURI(), EXPORT_RESOURCE.getLocalPart());
-
+ writer.writeStartElement(ResourceExport.TYPE.getNamespaceURI(), ResourceExport.TYPE.getLocalPart());
+
if (resourceExport.getURI() != null) {
writer.writeAttribute(URI, resourceExport.getURI());
}
-
+
writer.writeEndElement();
}
- public void resolve(ResourceExport resourceExport, ModelResolver resolver) throws ContributionResolveException {
-
+ public void resolve(ResourceExport resourceExport, ModelResolver resolver, ProcessorContext context) throws ContributionResolveException {
+
if (resourceExport.getURI() != null)
// Initialize the export's model resolver
resourceExport.setModelResolver(new ResourceExportModelResolver(resourceExport, resolver));
diff --git a/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportExportListener.java b/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportExportListener.java
deleted file mode 100644
index e7aecad786..0000000000
--- a/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportExportListener.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * 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.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 ResourceImportExportListener 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 against 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());
- 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()));
- }
- }
- }
- }
-
- public void contributionRemoved(ContributionRepository repository, Contribution contribution) {
-
- }
-
- public void contributionUpdated(ContributionRepository repository, Contribution oldContribution, Contribution contribution) {
-
- }
-
-}
diff --git a/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessor.java b/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessor.java
index e5d30b389a..7e341f60fd 100644
--- a/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessor.java
+++ b/sca-java-2.x/trunk/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessor.java
@@ -6,15 +6,15 @@
* 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.
+ * under the License.
*/
package org.apache.tuscany.sca.contribution.resource.impl;
@@ -27,72 +27,52 @@ 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.ContributionReadException;
+import org.apache.tuscany.sca.contribution.processor.ContributionResolveException;
+import org.apache.tuscany.sca.contribution.processor.ContributionWriteException;
+import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
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;
+import org.apache.tuscany.sca.core.FactoryExtensionPoint;
import org.apache.tuscany.sca.monitor.Monitor;
import org.apache.tuscany.sca.monitor.Problem;
import org.apache.tuscany.sca.monitor.Problem.Severity;
-import org.apache.tuscany.sca.monitor.impl.ProblemImpl;
/**
* 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;
- private final Monitor monitor;
-
- public ResourceImportProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
+
+ public ResourceImportProcessor(FactoryExtensionPoint modelFactories) {
this.factory = modelFactories.getFactory(ResourceImportExportFactory.class);
- this.monitor = monitor;
}
-
+
/**
- * Report a warning.
- *
+ * Report a error.
+ *
* @param problems
* @param message
* @param model
*/
- private void error(String message, Object model, Object... messageParameters) {
+ private void error(Monitor monitor, String message, Object model, Object... messageParameters) {
if (monitor != null) {
- Problem problem = new ProblemImpl(this.getClass().getName(), "contribution-resource-validation-messages", Severity.ERROR, model, message, (Object[])messageParameters);
+ Problem problem = monitor.createProblem(this.getClass().getName(), "contribution-resource-validation-messages", Severity.ERROR, model, message, (Object[])messageParameters);
monitor.problem(problem);
}
}
-
- /**
- * Report a exception.
- *
- * @param problems
- * @param message
- * @param model
- */
- private void error(String message, Object model, Exception ex) {
- if (monitor != null) {
- Problem problem = new ProblemImpl(this.getClass().getName(), "contribution-resource-validation-messages", Severity.ERROR, model, message, ex);
- monitor.problem(problem);
- }
- }
-
+
public QName getArtifactType() {
- return IMPORT_RESOURCE;
+ return ResourceImport.TYPE;
}
-
+
public Class<ResourceImport> getModelType() {
return ResourceImport.class;
}
@@ -100,26 +80,26 @@ public class ResourceImportProcessor implements StAXArtifactProcessor<ResourceI
/**
* Process <import.resource uri="" location=""/>
*/
- public ResourceImport read(XMLStreamReader reader) throws ContributionReadException {
+ public ResourceImport read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException {
ResourceImport resourceImport = this.factory.createResourceImport();
QName element;
-
+
try {
while (reader.hasNext()) {
int event = reader.getEventType();
switch (event) {
case START_ELEMENT:
element = reader.getName();
-
+
// Read <import>
- if (IMPORT_RESOURCE.equals(element)) {
+ if (ResourceImport.TYPE.equals(element)) {
String uri = reader.getAttributeValue(null, URI);
if (uri == null) {
- error("AttributeURIMissing", reader);
+ error(context.getMonitor(), "AttributeURIMissing", reader);
//throw new ContributionReadException("Attribute 'uri' is missing");
} else
resourceImport.setURI(uri);
-
+
String location = reader.getAttributeValue(null, LOCATION);
if (location != null) {
resourceImport.setLocation(location);
@@ -127,12 +107,12 @@ public class ResourceImportProcessor implements StAXArtifactProcessor<ResourceI
}
break;
case XMLStreamConstants.END_ELEMENT:
- if (IMPORT_RESOURCE.equals(reader.getName())) {
+ if (ResourceImport.TYPE.equals(reader.getName())) {
return resourceImport;
}
- break;
+ break;
}
-
+
// Read the next element
if (reader.hasNext()) {
reader.next();
@@ -141,28 +121,28 @@ public class ResourceImportProcessor implements StAXArtifactProcessor<ResourceI
}
catch (XMLStreamException e) {
ContributionReadException ex = new ContributionReadException(e);
- error("XMLStreamException", reader, ex);
+ error(context.getMonitor(), "XMLStreamException", reader, ex);
}
-
+
return resourceImport;
}
- public void write(ResourceImport resourceImport, XMLStreamWriter writer) throws ContributionWriteException, XMLStreamException {
-
+ public void write(ResourceImport resourceImport, XMLStreamWriter writer, ProcessorContext context) throws ContributionWriteException, XMLStreamException {
+
// Write <import>
- writer.writeStartElement(IMPORT_RESOURCE.getNamespaceURI(), IMPORT_RESOURCE.getLocalPart());
-
+ writer.writeStartElement(ResourceImport.TYPE.getNamespaceURI(), ResourceImport.TYPE.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 {
+ public void resolve(ResourceImport model, ModelResolver resolver, ProcessorContext context) throws ContributionResolveException {
}
}
diff --git a/sca-java-2.x/trunk/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor b/sca-java-2.x/trunk/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
index 14eb81546d..fba50cd9b4 100644
--- a/sca-java-2.x/trunk/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
+++ b/sca-java-2.x/trunk/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
@@ -5,15 +5,15 @@
# 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.
+# 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
+org.apache.tuscany.sca.contribution.resource.impl.ResourceImportProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#import.resource,model=org.apache.tuscany.sca.contribution.resource.ResourceImport
+org.apache.tuscany.sca.contribution.resource.impl.ResourceExportProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.1#export.resource,model=org.apache.tuscany.sca.contribution.resource.ResourceExport \ No newline at end of file
diff --git a/sca-java-2.x/trunk/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessorTestCase.java b/sca-java-2.x/trunk/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessorTestCase.java
index ea44cb506b..98bd460add 100644
--- a/sca-java-2.x/trunk/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessorTestCase.java
+++ b/sca-java-2.x/trunk/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessorTestCase.java
@@ -6,81 +6,78 @@
* 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.
+ * under the License.
*/
package org.apache.tuscany.sca.contribution.resource.impl;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
import java.io.StringReader;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamReader;
-import junit.framework.TestCase;
-
import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
import org.apache.tuscany.sca.contribution.resource.ResourceExport;
import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.core.UtilityExtensionPoint;
import org.apache.tuscany.sca.monitor.Monitor;
-import org.apache.tuscany.sca.monitor.MonitorFactory;
import org.apache.tuscany.sca.monitor.Problem;
-import org.apache.tuscany.sca.monitor.impl.DefaultMonitorFactoryImpl;
-import org.apache.tuscany.sca.monitor.impl.DefaultMonitorImpl;
+import org.junit.BeforeClass;
+import org.junit.Test;
/**
* Test NamespaceExportProcessorTestCase
- *
+ *
* @version $Rev$ $Date$
*/
-public class ResourceExportProcessorTestCase extends TestCase {
+public class ResourceExportProcessorTestCase {
private static final String VALID_XML =
- "<?xml version=\"1.0\" encoding=\"ASCII\"?>"
- + "<export.resource xmlns=\"http://www.osoa.org/xmlns/sca/1.0\" xmlns:ns=\"http://ns\" uri=\"helloworld/HelloWorldService.componentType\"/>";
+ "<?xml version=\"1.0\" encoding=\"ASCII\"?>"
+ + "<export.resource xmlns=\"http://tuscany.apache.org/xmlns/sca/1.1\" xmlns:ns=\"http://ns\" uri=\"helloworld/HelloWorldService.componentType\"/>";
private static final String INVALID_XML =
- "<?xml version=\"1.0\" encoding=\"ASCII\"?>"
- + "<export.resource xmlns=\"http://www.osoa.org/xmlns/sca/1.0\" xmlns:ns=\"http://ns\"/>";
+ "<?xml version=\"1.0\" encoding=\"ASCII\"?>"
+ + "<export.resource xmlns=\"http://tuscany.apache.org/xmlns/sca/1.1\" xmlns:ns=\"http://ns\"/>";
- private XMLInputFactory inputFactory;
- private StAXArtifactProcessor<Object> staxProcessor;
- private Monitor monitor;
+ private static XMLInputFactory inputFactory;
+ private static StAXArtifactProcessor<Object> staxProcessor;
+ private static Monitor monitor;
+ private static ProcessorContext context;
- @Override
- protected void setUp() throws Exception {
+ @BeforeClass
+ public static void setUp() throws Exception {
ExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry();
+ context = new ProcessorContext(extensionPoints);
+ monitor = context.getMonitor();
inputFactory = XMLInputFactory.newInstance();
- // Create a monitor
- UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
- MonitorFactory monitorFactory = new DefaultMonitorFactoryImpl();
- if (monitorFactory != null) {
- monitor = monitorFactory.createMonitor();
- utilities.addUtility(monitorFactory);
- }
+
StAXArtifactProcessorExtensionPoint staxProcessors = extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
- staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, null, null);
+ staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, null);
}
/**
* Test loading a valid export element from a contribution metadata stream
* @throws Exception
*/
+ @Test
public void testLoad() throws Exception {
XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(VALID_XML));
- ResourceExport resourceExport = (ResourceExport)staxProcessor.read(reader);
+ ResourceExport resourceExport = (ResourceExport)staxProcessor.read(reader, context);
assertEquals("helloworld/HelloWorldService.componentType", resourceExport.getURI());
}
@@ -88,6 +85,7 @@ public class ResourceExportProcessorTestCase extends TestCase {
* Test loading an INVALID export element from a contribution metadata stream
* @throws Exception
*/
+ @Test
public void testLoadInvalid() throws Exception {
XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(INVALID_XML));
/*try {
@@ -96,9 +94,9 @@ public class ResourceExportProcessorTestCase extends TestCase {
} catch (ContributionReadException e) {
assertTrue(true);
}*/
- staxProcessor.read(reader);
- Problem problem = ((DefaultMonitorImpl)monitor).getLastLoggedProblem();
+ staxProcessor.read(reader, context);
+ Problem problem = monitor.getLastProblem();
assertNotNull(problem);
assertEquals("AttributeURIMissing", problem.getMessageId());
- }
+ }
}
diff --git a/sca-java-2.x/trunk/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessorTestCase.java b/sca-java-2.x/trunk/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessorTestCase.java
index 1ff931c162..4cff032ba2 100644
--- a/sca-java-2.x/trunk/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessorTestCase.java
+++ b/sca-java-2.x/trunk/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessorTestCase.java
@@ -6,82 +6,79 @@
* 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.
+ * under the License.
*/
package org.apache.tuscany.sca.contribution.resource.impl;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
import java.io.StringReader;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamReader;
-import junit.framework.TestCase;
-
import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
import org.apache.tuscany.sca.contribution.resource.ResourceImport;
import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.core.UtilityExtensionPoint;
import org.apache.tuscany.sca.monitor.Monitor;
-import org.apache.tuscany.sca.monitor.MonitorFactory;
import org.apache.tuscany.sca.monitor.Problem;
-import org.apache.tuscany.sca.monitor.impl.DefaultMonitorFactoryImpl;
-import org.apache.tuscany.sca.monitor.impl.DefaultMonitorImpl;
+import org.junit.BeforeClass;
+import org.junit.Test;
/**
* Test NamespaceImportProcessorTestCase
- *
+ *
* @version $Rev$ $Date$
*/
-public class ResourceImportProcessorTestCase extends TestCase {
+public class ResourceImportProcessorTestCase {
private static final String VALID_XML =
- "<?xml version=\"1.0\" encoding=\"ASCII\"?>"
- + "<import.resource xmlns=\"http://www.osoa.org/xmlns/sca/1.0\" xmlns:ns=\"http://ns\" uri=\"helloworld/HelloWorldService.componentType\" location=\"sca://contributions/001\"/>";
+ "<?xml version=\"1.0\" encoding=\"ASCII\"?>"
+ + "<import.resource xmlns=\"http://tuscany.apache.org/xmlns/sca/1.1\" xmlns:ns=\"http://ns\" uri=\"helloworld/HelloWorldService.componentType\" location=\"sca://contributions/001\"/>";
private static final String INVALID_XML =
- "<?xml version=\"1.0\" encoding=\"ASCII\"?>"
- + "<import.resource xmlns=\"http://www.osoa.org/xmlns/sca/1.0\" xmlns:ns=\"http://ns\" location=\"sca://contributions/001\"/>";
+ "<?xml version=\"1.0\" encoding=\"ASCII\"?>"
+ + "<import.resource xmlns=\"http://tuscany.apache.org/xmlns/sca/1.1\" xmlns:ns=\"http://ns\" location=\"sca://contributions/001\"/>";
- private XMLInputFactory inputFactory;
- private StAXArtifactProcessor<Object> staxProcessor;
- private Monitor monitor;
+ private static XMLInputFactory inputFactory;
+ private static StAXArtifactProcessor<Object> staxProcessor;
+ private static Monitor monitor;
+ private static ProcessorContext context;
- @Override
- protected void setUp() throws Exception {
- ExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry();
+ @BeforeClass
+ public static void setUp() throws Exception {
+ ExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry();
+ context = new ProcessorContext(extensionPoints);
+ monitor = context.getMonitor();
inputFactory = XMLInputFactory.newInstance();
- // Create a monitor
- UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
- MonitorFactory monitorFactory = new DefaultMonitorFactoryImpl();
- if (monitorFactory != null) {
- monitor = monitorFactory.createMonitor();
- utilities.addUtility(monitorFactory);
- }
+
StAXArtifactProcessorExtensionPoint staxProcessors = extensionPoints.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
- staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, null, null);
+ staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, null);
}
/**
* Test loading a valid import element from a contribution metadata stream
* @throws Exception
*/
+ @Test
public void testLoad() throws Exception {
XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(VALID_XML));
- ResourceImport namespaceImport = (ResourceImport)staxProcessor.read(reader);
+ ResourceImport namespaceImport = (ResourceImport)staxProcessor.read(reader, context);
assertEquals("helloworld/HelloWorldService.componentType", namespaceImport.getURI());
assertEquals("sca://contributions/001", namespaceImport.getLocation());
}
@@ -90,6 +87,7 @@ public class ResourceImportProcessorTestCase extends TestCase {
* Test loading a INVALID import element from a contribution metadata stream
* @throws Exception
*/
+ @Test
public void testLoadInvalid() throws Exception {
XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(INVALID_XML));
/*try {
@@ -98,9 +96,9 @@ public class ResourceImportProcessorTestCase extends TestCase {
} catch (ContributionReadException e) {
assertTrue(true);
}*/
- staxProcessor.read(reader);
- Problem problem = ((DefaultMonitorImpl)monitor).getLastLoggedProblem();
+ staxProcessor.read(reader, context);
+ Problem problem = monitor.getLastProblem();
assertNotNull(problem);
assertEquals("AttributeURIMissing", problem.getMessageId());
- }
+ }
}
diff --git a/sca-java-2.x/trunk/modules/pom.xml b/sca-java-2.x/trunk/modules/pom.xml
index 7954ad2c0b..677f550c14 100644
--- a/sca-java-2.x/trunk/modules/pom.xml
+++ b/sca-java-2.x/trunk/modules/pom.xml
@@ -64,6 +64,7 @@
<module>common-java</module>
<module>common-xml</module>
<module>contribution</module>
+ <module>contribution-resource</module>
<module>core</module>
<module>core-databinding</module>
<module>core-spi</module>