diff options
Diffstat (limited to 'branches/sca-java-1.0/modules/topology-xml/src/main')
4 files changed, 0 insertions, 458 deletions
diff --git a/branches/sca-java-1.0/modules/topology-xml/src/main/java/org/apache/tuscany/sca/topology/xml/BaseTopologyArtifactProcessor.java b/branches/sca-java-1.0/modules/topology-xml/src/main/java/org/apache/tuscany/sca/topology/xml/BaseTopologyArtifactProcessor.java deleted file mode 100644 index a72b20cb8e..0000000000 --- a/branches/sca-java-1.0/modules/topology-xml/src/main/java/org/apache/tuscany/sca/topology/xml/BaseTopologyArtifactProcessor.java +++ /dev/null @@ -1,141 +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.topology.xml; - -import java.util.List; - -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamWriter; - -import org.apache.tuscany.sca.assembly.AssemblyFactory; -import org.apache.tuscany.sca.assembly.Binding; -import org.apache.tuscany.sca.assembly.Contract; -import org.apache.tuscany.sca.assembly.Implementation; -import org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor; -import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; -import org.apache.tuscany.sca.contribution.resolver.ModelResolver; -import org.apache.tuscany.sca.contribution.service.ContributionResolveException; -import org.apache.tuscany.sca.interfacedef.InterfaceContract; -import org.apache.tuscany.sca.topology.TopologyFactory; - -/** - * A base class with utility methods for the other artifact processors in this module. - * - * @version $Rev$ $Date$ - */ -public abstract class BaseTopologyArtifactProcessor extends BaseStAXArtifactProcessor implements Constants { - - protected TopologyFactory topologyFactory; - protected AssemblyFactory assemblyFactory; - protected StAXArtifactProcessor<Object> extensionProcessor; - - private static final DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance(); - static { - domFactory.setNamespaceAware(true); - } - - /** - * Construct a new BaseArtifactProcessor. - * @param factory - * @param policyFactory - */ - @SuppressWarnings("unchecked") - public BaseTopologyArtifactProcessor(TopologyFactory topologyFactory, AssemblyFactory assemblyFactory, StAXArtifactProcessor extensionProcessor) { - this.topologyFactory = topologyFactory; - this.assemblyFactory = assemblyFactory; - this.extensionProcessor = extensionProcessor; - } - - /** - * Start an element. - * @param writer - * @param name - * @param attrs - * @throws XMLStreamException - */ - protected void writeStart(XMLStreamWriter writer, String name, XAttr... attrs) throws XMLStreamException { - writeStart(writer, TUSCANY_TOPOLOGY_10_NS, name, attrs); - } - - /** - * Start a document. - * @param writer - * @throws XMLStreamException - */ - protected void writeStartDocument(XMLStreamWriter writer, String name, XAttr... attrs) throws XMLStreamException { - writeStartDocument(writer, TUSCANY_TOPOLOGY_10_NS, name, attrs); - } - - /** - * Resolve an implementation. - * @param implementation - * @param resolver - * @return - * @throws ContributionResolveException - */ - protected Implementation resolveImplementation(Implementation implementation, ModelResolver resolver) throws ContributionResolveException { - if (implementation != null) { - if (implementation.isUnresolved()) { - implementation = resolver.resolveModel(Implementation.class, implementation); - - // Lazily resolve implementations - if (implementation.isUnresolved()) { - extensionProcessor.resolve(implementation, resolver); - if (!implementation.isUnresolved()) { - resolver.addModel(implementation); - } - } - } - } - return implementation; - } - - /** - * Resolve interface, callback interface and bindings on a list of contracts. - * @param contracts the list of contracts - * @param resolver the resolver to use to resolve models - */ - protected <C extends Contract> void resolveContracts(List<C> contracts, ModelResolver resolver) throws ContributionResolveException { - for (Contract contract: contracts) { - - // Resolve the interface contract - InterfaceContract interfaceContract = contract.getInterfaceContract(); - if (interfaceContract != null) { - extensionProcessor.resolve(interfaceContract, resolver); - } - - // Resolve bindings - for (int i = 0, n = contract.getBindings().size(); i < n; i++) { - Binding binding = contract.getBindings().get(i); - extensionProcessor.resolve(binding, resolver); - } - - // Resolve callback bindings - if (contract.getCallback() != null) { - for (int i = 0, n = contract.getCallback().getBindings().size(); i < n; i++) { - Binding binding = contract.getCallback().getBindings().get(i); - extensionProcessor.resolve(binding, resolver); - } - } - } - } - -} diff --git a/branches/sca-java-1.0/modules/topology-xml/src/main/java/org/apache/tuscany/sca/topology/xml/Constants.java b/branches/sca-java-1.0/modules/topology-xml/src/main/java/org/apache/tuscany/sca/topology/xml/Constants.java deleted file mode 100644 index fc450db3b5..0000000000 --- a/branches/sca-java-1.0/modules/topology-xml/src/main/java/org/apache/tuscany/sca/topology/xml/Constants.java +++ /dev/null @@ -1,48 +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.topology.xml; - -import javax.xml.namespace.QName; - -/** - * Constants used in Tuscany Topology XML files. - */ -public interface Constants { - - String TUSCANY_TOPOLOGY_10_NS = "http://www.apache.org/tuscany/topology/1.0"; - - String RUNTIME = "runtime"; - QName RUNTIME_QNAME = new QName(TUSCANY_TOPOLOGY_10_NS, RUNTIME); - String NODE = "node"; - QName NODE_QNAME = new QName(TUSCANY_TOPOLOGY_10_NS, NODE); - String DOMAIN = "domain"; - QName DOMAIN_QNAME = new QName(TUSCANY_TOPOLOGY_10_NS, DOMAIN); - String SCHEME = "scheme"; - QName SCHEME_QNAME = new QName(TUSCANY_TOPOLOGY_10_NS, SCHEME); - String COMPONENT = "component"; - QName COMPONENT_QNAME = new QName(TUSCANY_TOPOLOGY_10_NS, COMPONENT); - - - String TARGET_NAMESPACE = "targetNamespace"; - String NAME = "name"; - String BASE_URL = "baseURL"; - String DEFAULT_DOMAIN = "nodomain"; - -} diff --git a/branches/sca-java-1.0/modules/topology-xml/src/main/java/org/apache/tuscany/sca/topology/xml/TopologyDocumentProcessor.java b/branches/sca-java-1.0/modules/topology-xml/src/main/java/org/apache/tuscany/sca/topology/xml/TopologyDocumentProcessor.java deleted file mode 100644 index 11489419a4..0000000000 --- a/branches/sca-java-1.0/modules/topology-xml/src/main/java/org/apache/tuscany/sca/topology/xml/TopologyDocumentProcessor.java +++ /dev/null @@ -1,93 +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.topology.xml; - -import java.io.IOException; -import java.io.InputStream; -import java.net.URI; -import java.net.URL; - -import javax.xml.stream.XMLInputFactory; -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamReader; - -import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; -import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor; -import org.apache.tuscany.sca.contribution.resolver.ModelResolver; -import org.apache.tuscany.sca.contribution.service.ContributionReadException; -import org.apache.tuscany.sca.contribution.service.ContributionResolveException; -import org.apache.tuscany.sca.topology.Runtime; - -/** - * A composite processor. - * - * @version $Rev$ $Date$ - */ -public class TopologyDocumentProcessor extends BaseTopologyArtifactProcessor implements URLArtifactProcessor<Runtime> { - private XMLInputFactory inputFactory; - - /** - * Construct a new composite processor - * @param assemblyFactory - * @param policyFactory - * @param staxProcessor - */ - public TopologyDocumentProcessor(StAXArtifactProcessor staxProcessor, XMLInputFactory inputFactory) { - super(null, null, staxProcessor); - this.inputFactory = inputFactory; - } - - public Runtime read(URL contributionURL, URI uri, URL url) throws ContributionReadException { - InputStream urlStream = null; - try { - urlStream = url.openStream(); - XMLStreamReader reader = inputFactory.createXMLStreamReader(urlStream); - reader.nextTag(); - Runtime node = (Runtime)extensionProcessor.read(reader); - return node; - - } catch (XMLStreamException e) { - throw new ContributionReadException(e); - } catch (IOException e) { - throw new ContributionReadException(e); - } finally { - try { - if (urlStream != null) { - urlStream.close(); - urlStream = null; - } - } catch (IOException ioe) { - //ignore - } - } - } - - public void resolve(Runtime node, ModelResolver resolver) throws ContributionResolveException { - extensionProcessor.resolve(node, resolver); - } - - public String getArtifactType() { - return ".topology"; - } - - public Class<Runtime> getModelType() { - return Runtime.class; - } -} diff --git a/branches/sca-java-1.0/modules/topology-xml/src/main/java/org/apache/tuscany/sca/topology/xml/TopologyProcessor.java b/branches/sca-java-1.0/modules/topology-xml/src/main/java/org/apache/tuscany/sca/topology/xml/TopologyProcessor.java deleted file mode 100644 index 25f62bf4c4..0000000000 --- a/branches/sca-java-1.0/modules/topology-xml/src/main/java/org/apache/tuscany/sca/topology/xml/TopologyProcessor.java +++ /dev/null @@ -1,176 +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.topology.xml; - -import static javax.xml.stream.XMLStreamConstants.END_ELEMENT; -import static javax.xml.stream.XMLStreamConstants.START_ELEMENT; - -import javax.xml.namespace.QName; -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamReader; -import javax.xml.stream.XMLStreamWriter; - -import org.apache.tuscany.sca.assembly.AssemblyFactory; -import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; -import org.apache.tuscany.sca.contribution.resolver.ModelResolver; -import org.apache.tuscany.sca.contribution.service.ContributionReadException; -import org.apache.tuscany.sca.contribution.service.ContributionResolveException; -import org.apache.tuscany.sca.contribution.service.ContributionWriteException; -import org.apache.tuscany.sca.topology.Node; -import org.apache.tuscany.sca.topology.Runtime; -import org.apache.tuscany.sca.topology.Scheme; -import org.apache.tuscany.sca.topology.Component; -import org.apache.tuscany.sca.topology.TopologyFactory; - -/** - * A composite processor. - * - * @version $Rev$ $Date$ - */ -public class TopologyProcessor extends BaseTopologyArtifactProcessor implements StAXArtifactProcessor<Runtime> { - - /** - * Construct a new composite processor - * @param assemblyFactory - * @param policyFactory - * @param extensionProcessor - */ - public TopologyProcessor(TopologyFactory topologyFactory, - AssemblyFactory assemblyFactory, - StAXArtifactProcessor extensionProcessor) { - super(topologyFactory, assemblyFactory, extensionProcessor); - } - - public Runtime read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException { - QName name = null; - Runtime runtime = null; - Node node = null; - String domainName = DEFAULT_DOMAIN; - - // Read the composite document - while (reader.hasNext()) { - int event = reader.getEventType(); - switch (event) { - case START_ELEMENT: - name = reader.getName(); - - if (RUNTIME_QNAME.equals(name)) { - // Read a <runtime> - runtime = topologyFactory.createRuntime(); - } else if (NODE_QNAME.equals(name)) { - // Read a <node> - node = topologyFactory.createNode(); - node.setName(getString(reader, NAME)); - - // add node to runtime - runtime.getNodes().add(node); - - // reset domain name to the default - domainName = DEFAULT_DOMAIN; - } else if (DOMAIN_QNAME.equals(name)) { - // Read a <domain> - domainName = getString(reader, NAME); - } else if (SCHEME_QNAME.equals(name)) { - // Read a <scheme> - Scheme scheme = topologyFactory.createScheme(); - scheme.setName(getString(reader, NAME)); - scheme.setBaseURL(getString(reader, BASE_URL)); - - scheme.setDomainName(domainName); - - // Add scheme to the node - node.getSchemes(domainName).add(scheme); - } else if (COMPONENT_QNAME.equals(name)) { - // Read a <component> - Component component = topologyFactory.createComponent(); - component.setName(getString(reader, NAME)); - - component.setDomainName(domainName); - - // Add scheme to the node - node.getComponents(domainName).add(component); - - } else { - - // Read an extension element - Object extension = extensionProcessor.read(reader); - - if (extension != null) { - // no extensions are supported - } - } - - case END_ELEMENT: - name = reader.getName(); - // Clear current state when reading reaching end element - } - - if (reader.hasNext()) { - reader.next(); - } - } - return runtime; - } - - - public void write(Runtime runtime, XMLStreamWriter writer) throws ContributionWriteException, XMLStreamException { - - writeStartDocument(writer, RUNTIME); - - // TODO - write out the scheme definitions - - for (Node node : runtime.getNodes()) { - writeStart(writer, NODE, new XAttr(NAME, node.getName())); - - for (String domainName : node.getDomainNames()) { - - writeStart(writer, DOMAIN, new XAttr(NAME, domainName)); - - for (Scheme scheme: node.getSchemes(domainName)) { - writeStart(writer, SCHEME, new XAttr(NAME, scheme.getName()), new XAttr(BASE_URL, scheme.getBaseURL())); - writeEnd(writer); - } - - for (Component component: node.getComponents(domainName)) { - writeStart(writer, COMPONENT, new XAttr(NAME, component.getName())); - writeEnd(writer); - } - - writeEnd(writer); - } - - writeEnd(writer); - } - - writeEndDocument(writer); - } - - public void resolve(Runtime runtime, ModelResolver resolver) throws ContributionResolveException { - // no resolution steps defined - } - - public QName getArtifactType() { - return RUNTIME_QNAME; - } - - public Class<Runtime> getModelType() { - return Runtime.class; - } -} |