diff options
Diffstat (limited to 'branches/sca-trunk-20080910/modules/contribution-resource')
19 files changed, 0 insertions, 1272 deletions
diff --git a/branches/sca-trunk-20080910/modules/contribution-resource/pom.xml b/branches/sca-trunk-20080910/modules/contribution-resource/pom.xml deleted file mode 100644 index da19a5249c..0000000000 --- a/branches/sca-trunk-20080910/modules/contribution-resource/pom.xml +++ /dev/null @@ -1,76 +0,0 @@ -<?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.4-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.4-SNAPSHOT</version> - </dependency> - - <dependency> - <groupId>org.apache.tuscany.sca</groupId> - <artifactId>tuscany-core-spi</artifactId> - <version>1.4-SNAPSHOT</version> - </dependency> - - <dependency> - <groupId>org.codehaus.woodstox</groupId> - <artifactId>wstx-asl</artifactId> - <version>3.2.1</version> - <scope>runtime</scope> - <exclusions> - <exclusion> - <groupId>stax</groupId> - <artifactId>stax-api</artifactId> - </exclusion> - </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/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceExport.java b/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceExport.java deleted file mode 100644 index 0bd30c19dd..0000000000 --- a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceExport.java +++ /dev/null @@ -1,46 +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; - -import org.apache.tuscany.sca.contribution.Export; - - -/** - * The representation of an resource export. - * - * @version $Rev$ $Date$ - */ -public interface ResourceExport extends Export { - - /** - * 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/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceImport.java b/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceImport.java deleted file mode 100644 index 07eac9d843..0000000000 --- a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceImport.java +++ /dev/null @@ -1,59 +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; - -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 uri The resource URI - */ - void setURI(String uri); - -}
\ No newline at end of file diff --git a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceImportExportFactory.java b/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceImportExportFactory.java deleted file mode 100644 index 4119c344ce..0000000000 --- a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/ResourceImportExportFactory.java +++ /dev/null @@ -1,42 +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; - -/** - * 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(); -} diff --git a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ArtifactModelResolver.java b/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ArtifactModelResolver.java deleted file mode 100644 index e614b47fc7..0000000000 --- a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ArtifactModelResolver.java +++ /dev/null @@ -1,86 +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 java.util.HashMap; -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.resolver.ModelResolver; -import org.apache.tuscany.sca.contribution.resource.ResourceImport; - -/** - * A Model Resolver for contribution artifacts. - * - * @version $Rev$ $Date$ - */ -public class ArtifactModelResolver implements ModelResolver { - private Contribution contribution; - private Map<String, Artifact> map = new HashMap<String, Artifact>(); - - public ArtifactModelResolver(Contribution contribution, ModelFactoryExtensionPoint modelFactories) { - this.contribution = contribution; - } - - public void addModel(Object resolved) { - Artifact artifact = (Artifact)resolved; - map.put(artifact.getURI(), artifact); - } - - public Object removeModel(Object resolved) { - return map.remove(((Artifact)resolved).getURI()); - } - - public <T> T resolveModel(Class<T> modelClass, T unresolved) { - - // 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) { - ResourceImport resourceImport = (ResourceImport)import_; - //check the import location against the computed package name from the componentType URI - if (resourceImport.getURI().equals(uri)) { - // Delegate the resolution to the import resolver - resolved = resourceImport.getModelResolver().resolveModel(Artifact.class, (Artifact)unresolved); - if (!resolved.isUnresolved()) { - return modelClass.cast(resolved); - } - } - } - } - - return (T)unresolved; - } - -} diff --git a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportImpl.java b/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportImpl.java deleted file mode 100644 index c2d525dfef..0000000000 --- a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportImpl.java +++ /dev/null @@ -1,58 +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.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; - } - -} diff --git a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportModelResolver.java b/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportModelResolver.java deleted file mode 100644 index fd568e533d..0000000000 --- a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportModelResolver.java +++ /dev/null @@ -1,65 +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.Artifact; -import org.apache.tuscany.sca.contribution.resolver.ModelResolver; -import org.apache.tuscany.sca.contribution.resource.ResourceExport; - -/** - * A model resolver for resource exports. - * - * @version $Rev$ $Date$ - */ -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) { - throw new IllegalStateException(); - } - - public Object removeModel(Object resolved) { - throw new IllegalStateException(); - } - - public <T> T resolveModel(Class<T> modelClass, T unresolved) { - - // 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); - } else { - - // The artifact URI is not exported, return the unresolved object - return unresolved; - } - } - -} diff --git a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessor.java b/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessor.java deleted file mode 100644 index 68d5d4761e..0000000000 --- a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessor.java +++ /dev/null @@ -1,142 +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 static javax.xml.stream.XMLStreamConstants.START_ELEMENT; - -import javax.xml.namespace.QName; -import javax.xml.stream.XMLStreamConstants; -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamReader; -import javax.xml.stream.XMLStreamWriter; - -import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl; -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; -import org.apache.tuscany.sca.monitor.Monitor; -import org.apache.tuscany.sca.monitor.Problem; -import org.apache.tuscany.sca.monitor.Problem.Severity; - -/** - * 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) { - 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) { - if (monitor != null) { - Problem problem = new ProblemImpl(this.getClass().getName(), "contribution-resource-validation-messages", Severity.ERROR, model, message, (Object[])messageParameters); - monitor.problem(problem); - } - } - - 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) { - error("AttributeURIMissing", reader); - //throw new ContributionReadException("Attribute 'uri' is missing"); - } else - 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 resourceExport, ModelResolver resolver) throws ContributionResolveException { - - if (resourceExport.getURI() != null) - // Initialize the export's model resolver - resourceExport.setModelResolver(new ResourceExportModelResolver(resourceExport, resolver)); - } -} diff --git a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportExportFactoryImpl.java b/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportExportFactoryImpl.java deleted file mode 100644 index 880f5f5786..0000000000 --- a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportExportFactoryImpl.java +++ /dev/null @@ -1,41 +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.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(); - } - -} diff --git a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportExportListener.java b/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportExportListener.java deleted file mode 100644 index e7aecad786..0000000000 --- a/branches/sca-trunk-20080910/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/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportImpl.java b/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportImpl.java deleted file mode 100644 index cd33f1290f..0000000000 --- a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportImpl.java +++ /dev/null @@ -1,107 +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 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; - } - - @Override - public String toString() { - return String.valueOf(uri); - } -} diff --git a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessor.java b/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessor.java deleted file mode 100644 index 8b2fc44a1c..0000000000 --- a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessor.java +++ /dev/null @@ -1,148 +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 static javax.xml.stream.XMLStreamConstants.START_ELEMENT; - -import javax.xml.namespace.QName; -import javax.xml.stream.XMLStreamConstants; -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamReader; -import javax.xml.stream.XMLStreamWriter; - -import org.apache.tuscany.sca.assembly.builder.impl.ProblemImpl; -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; -import org.apache.tuscany.sca.monitor.Monitor; -import org.apache.tuscany.sca.monitor.Problem; -import org.apache.tuscany.sca.monitor.Problem.Severity; - -/** - * 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) { - this.factory = modelFactories.getFactory(ResourceImportExportFactory.class); - this.monitor = monitor; - } - - /** - * Report a warning. - * - * @param problems - * @param message - * @param model - */ - private void error(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); - } - } - - 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) { - error("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); - } - } - 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 { - } -} diff --git a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor b/branches/sca-trunk-20080910/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor deleted file mode 100644 index 14eb81546d..0000000000 --- a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor +++ /dev/null @@ -1,19 +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. - -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 diff --git a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resolver.ModelResolver b/branches/sca-trunk-20080910/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resolver.ModelResolver deleted file mode 100644 index 08d2b1c338..0000000000 --- a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resolver.ModelResolver +++ /dev/null @@ -1,18 +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.
-
-org.apache.tuscany.sca.contribution.resource.impl.ArtifactModelResolver;model=org.apache.tuscany.sca.contribution.Artifact
\ No newline at end of file diff --git a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resource.ResourceImportExportFactory b/branches/sca-trunk-20080910/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resource.ResourceImportExportFactory deleted file mode 100644 index d39a5065c2..0000000000 --- a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.resource.ResourceImportExportFactory +++ /dev/null @@ -1,18 +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.
-
-org.apache.tuscany.sca.contribution.resource.impl.ResourceImportExportFactoryImpl
diff --git a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.service.ContributionListener b/branches/sca-trunk-20080910/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.service.ContributionListener deleted file mode 100644 index f4751db9aa..0000000000 --- a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.service.ContributionListener +++ /dev/null @@ -1,18 +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.
-
-org.apache.tuscany.sca.contribution.resource.impl.ResourceImportExportListener
diff --git a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/resources/contribution-resource-validation-messages.properties b/branches/sca-trunk-20080910/modules/contribution-resource/src/main/resources/contribution-resource-validation-messages.properties deleted file mode 100644 index 58ee8153f8..0000000000 --- a/branches/sca-trunk-20080910/modules/contribution-resource/src/main/resources/contribution-resource-validation-messages.properties +++ /dev/null @@ -1,22 +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. -# -# -AttributeURIMissing = Attribute 'uri' is missing - diff --git a/branches/sca-trunk-20080910/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessorTestCase.java b/branches/sca-trunk-20080910/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessorTestCase.java deleted file mode 100644 index ea44cb506b..0000000000 --- a/branches/sca-trunk-20080910/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceExportProcessorTestCase.java +++ /dev/null @@ -1,104 +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 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.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; - -/** - * Test NamespaceExportProcessorTestCase - * - * @version $Rev$ $Date$ - */ -public class ResourceExportProcessorTestCase extends TestCase { - - 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\"/>"; - - 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\"/>"; - - private XMLInputFactory inputFactory; - private StAXArtifactProcessor<Object> staxProcessor; - private Monitor monitor; - - @Override - protected void setUp() throws Exception { - ExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); - 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); - } - - /** - * Test loading a valid export element from a contribution metadata stream - * @throws Exception - */ - public void testLoad() throws Exception { - XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(VALID_XML)); - ResourceExport resourceExport = (ResourceExport)staxProcessor.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 = inputFactory.createXMLStreamReader(new StringReader(INVALID_XML)); - /*try { - staxProcessor.read(reader); - fail("readerException should have been thrown"); - } catch (ContributionReadException e) { - assertTrue(true); - }*/ - staxProcessor.read(reader); - Problem problem = ((DefaultMonitorImpl)monitor).getLastLoggedProblem(); - assertNotNull(problem); - assertEquals("AttributeURIMissing", problem.getMessageId()); - } -} diff --git a/branches/sca-trunk-20080910/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessorTestCase.java b/branches/sca-trunk-20080910/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessorTestCase.java deleted file mode 100644 index 1ff931c162..0000000000 --- a/branches/sca-trunk-20080910/modules/contribution-resource/src/test/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportProcessorTestCase.java +++ /dev/null @@ -1,106 +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 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.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; - -/** - * Test NamespaceImportProcessorTestCase - * - * @version $Rev$ $Date$ - */ -public class ResourceImportProcessorTestCase extends TestCase { - - 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\"/>"; - - 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\"/>"; - - private XMLInputFactory inputFactory; - private StAXArtifactProcessor<Object> staxProcessor; - private Monitor monitor; - - @Override - protected void setUp() throws Exception { - ExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); - 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); - } - - /** - * Test loading a valid import element from a contribution metadata stream - * @throws Exception - */ - public void testLoad() throws Exception { - XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(VALID_XML)); - ResourceImport namespaceImport = (ResourceImport)staxProcessor.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 = inputFactory.createXMLStreamReader(new StringReader(INVALID_XML)); - /*try { - staxProcessor.read(reader); - fail("readerException should have been thrown"); - } catch (ContributionReadException e) { - assertTrue(true); - }*/ - staxProcessor.read(reader); - Problem problem = ((DefaultMonitorImpl)monitor).getLastLoggedProblem(); - assertNotNull(problem); - assertEquals("AttributeURIMissing", problem.getMessageId()); - } -} |