diff options
Diffstat (limited to 'branches/sca-java-20080910/modules/implementation-node/src')
16 files changed, 0 insertions, 1675 deletions
diff --git a/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/ConfiguredNodeImplementation.java b/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/ConfiguredNodeImplementation.java deleted file mode 100644 index d4755f4071..0000000000 --- a/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/ConfiguredNodeImplementation.java +++ /dev/null @@ -1,54 +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.implementation.node; - -import java.util.List; - -import org.apache.tuscany.sca.assembly.Composite; -import org.apache.tuscany.sca.assembly.Implementation; -import org.apache.tuscany.sca.contribution.Contribution; - - - -/** - * The model representing a resource implementation in an SCA assembly model. - * - * @version $Rev$ $Date$ - */ -public interface ConfiguredNodeImplementation extends Implementation { - - /** - * Returns the composite deployed to this node. - * @return the composite deployed to this node - */ - Composite getComposite(); - - /** - * Sets the composite deployed to this node. - * @param composite the composite deployed to this node - */ - void setComposite(Composite composite); - - /** - * Returns the list of contributions deployed to this node. - * @return the list of contributions deployed to this node - */ - List<Contribution> getContributions(); - -} diff --git a/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/NodeImplementation.java b/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/NodeImplementation.java deleted file mode 100644 index 527698ea91..0000000000 --- a/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/NodeImplementation.java +++ /dev/null @@ -1,45 +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.implementation.node; - -import org.apache.tuscany.sca.assembly.Composite; -import org.apache.tuscany.sca.assembly.Implementation; - - - -/** - * The model representing a resource implementation in an SCA assembly model. - * - * @version $Rev$ $Date$ - */ -public interface NodeImplementation extends Implementation { - - /** - * Returns the composite deployed to this node. - * @return the composite deployed to this node - */ - Composite getComposite(); - - /** - * Sets the composite deployed to this node. - * @param composite the composite deployed to this node - */ - void setComposite(Composite composite); - -} diff --git a/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/NodeImplementationFactory.java b/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/NodeImplementationFactory.java deleted file mode 100644 index 9c4fed689b..0000000000 --- a/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/NodeImplementationFactory.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.implementation.node; - - -/** - * Factory for the resource implementation model. - * - * @version $Rev$ $Date$ - */ -public interface NodeImplementationFactory { - - /** - * Creates a new node implementation. - * @return a new node implementation - */ - NodeImplementation createNodeImplementation(); - - /** - * Creates a new configured node implementation. - * @return a new configured node implementation - */ - ConfiguredNodeImplementation createConfiguredNodeImplementation(); - -} diff --git a/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/builder/impl/NodeCompositeBuilderImpl.java b/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/builder/impl/NodeCompositeBuilderImpl.java deleted file mode 100644 index 736afc13f0..0000000000 --- a/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/builder/impl/NodeCompositeBuilderImpl.java +++ /dev/null @@ -1,109 +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.implementation.node.builder.impl; - -import java.util.ArrayList; -import java.util.List; - -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.transform.TransformerFactory; - -import org.apache.tuscany.sca.assembly.AssemblyFactory; -import org.apache.tuscany.sca.assembly.Binding; -import org.apache.tuscany.sca.assembly.Component; -import org.apache.tuscany.sca.assembly.ComponentService; -import org.apache.tuscany.sca.assembly.Composite; -import org.apache.tuscany.sca.assembly.Implementation; -import org.apache.tuscany.sca.assembly.SCABindingFactory; -import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; -import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException; -import org.apache.tuscany.sca.assembly.builder.impl.BaseConfigurationBuilderImpl; -import org.apache.tuscany.sca.definitions.SCADefinitions; -import org.apache.tuscany.sca.implementation.node.NodeImplementation; -import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; -import org.apache.tuscany.sca.monitor.Monitor; - -/** - * A composite builder that handles the configuration of composites assigned to - * node components, from the default configuration from the node components. - * - * @version $Rev$ $Date$ - */ -public class NodeCompositeBuilderImpl extends BaseConfigurationBuilderImpl implements CompositeBuilder { - - @Deprecated - public NodeCompositeBuilderImpl(AssemblyFactory assemblyFactory, - SCABindingFactory scaBindingFactory, - InterfaceContractMapper interfaceContractMapper, - SCADefinitions policyDefinitions, - Monitor monitor) { - super(assemblyFactory, scaBindingFactory, - null, null, - interfaceContractMapper, policyDefinitions, monitor); - } - - public NodeCompositeBuilderImpl(AssemblyFactory assemblyFactory, - SCABindingFactory scaBindingFactory, - DocumentBuilderFactory documentBuilderFactory, - TransformerFactory transformerFactory, - InterfaceContractMapper interfaceContractMapper, - SCADefinitions policyDefinitions, - Monitor monitor) { - super(assemblyFactory, scaBindingFactory, - documentBuilderFactory, transformerFactory, - interfaceContractMapper, policyDefinitions, monitor); - } - - public void build(Composite composite) throws CompositeBuilderException { - configureNodeComponents(composite); - } - - /** - * Configure the node components in the given composite. - * - * @param composite - * @throws CompositeBuilderException - */ - private void configureNodeComponents(Composite composite) throws CompositeBuilderException { - - // Process each node component in the given composite - for (Component component: composite.getComponents()) { - Implementation implementation = component.getImplementation(); - if (implementation instanceof NodeImplementation) { - - // Get the application composite assigned to the node - NodeImplementation nodeImplementation = (NodeImplementation)implementation; - Composite applicationComposite = nodeImplementation.getComposite(); - - // Get the default bindings configured on the node - List<Binding> defaultBindings = new ArrayList<Binding>(); - for (ComponentService componentService: component.getServices()) { - defaultBindings.addAll(componentService.getBindings()); - } - - // Configure services in the application composite assigned to - // the node using the default bindings. - configureBindingURIs(applicationComposite, defaultBindings); - } - } - - } - -} diff --git a/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/impl/ConfiguredNodeImplementationImpl.java b/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/impl/ConfiguredNodeImplementationImpl.java deleted file mode 100644 index 1d183513b4..0000000000 --- a/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/impl/ConfiguredNodeImplementationImpl.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.implementation.node.impl; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import org.apache.tuscany.sca.assembly.Composite; -import org.apache.tuscany.sca.assembly.ConstrainingType; -import org.apache.tuscany.sca.assembly.Property; -import org.apache.tuscany.sca.assembly.Reference; -import org.apache.tuscany.sca.assembly.Service; -import org.apache.tuscany.sca.contribution.Contribution; -import org.apache.tuscany.sca.implementation.node.ConfiguredNodeImplementation; - - -/** - * The model representing a configured node implementation in an SCA assembly model. - * - * @version $Rev$ $Date$ - */ -class ConfiguredNodeImplementationImpl implements ConfiguredNodeImplementation { - - private String uri; - private boolean unresolved; - private Composite composite; - private List<Contribution> contributions = new ArrayList<Contribution>(); - - /** - * Constructs a new node implementation. - */ - ConfiguredNodeImplementationImpl() { - } - - public ConstrainingType getConstrainingType() { - // The node implementation does not support constrainingTypes - return null; - } - - public List<Property> getProperties() { - // The node implementation does not support properties - return Collections.emptyList(); - } - - public List<Service> getServices() { - // The node implementation does not support services - return Collections.emptyList(); - } - - public List<Reference> getReferences() { - // The node implementation does not support properties - return Collections.emptyList(); - } - - public String getURI() { - return uri; - } - - public Composite getComposite() { - return composite; - } - - public List<Contribution> getContributions() { - return contributions; - } - - public void setConstrainingType(ConstrainingType constrainingType) { - // The node implementation does not support constrainingTypes - } - - public void setURI(String uri) { - this.uri = uri; - } - - public void setComposite(Composite composite) { - this.composite = composite; - } - - - public boolean isUnresolved() { - return unresolved; - } - - public void setUnresolved(boolean unresolved) { - this.unresolved = unresolved; - } -} diff --git a/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/impl/NodeImplementationFactoryImpl.java b/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/impl/NodeImplementationFactoryImpl.java deleted file mode 100644 index 94ea610314..0000000000 --- a/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/impl/NodeImplementationFactoryImpl.java +++ /dev/null @@ -1,44 +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.implementation.node.impl; - -import org.apache.tuscany.sca.implementation.node.ConfiguredNodeImplementation; -import org.apache.tuscany.sca.implementation.node.NodeImplementation; -import org.apache.tuscany.sca.implementation.node.NodeImplementationFactory; - -/** - * Factory for the resource implementation model. - * - * @version $Rev$ $Date$ - */ -public class NodeImplementationFactoryImpl implements NodeImplementationFactory { - - public NodeImplementationFactoryImpl() { - } - - public NodeImplementation createNodeImplementation() { - return new NodeImplementationImpl(); - } - - public ConfiguredNodeImplementation createConfiguredNodeImplementation() { - return new ConfiguredNodeImplementationImpl(); - } - -} diff --git a/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/impl/NodeImplementationImpl.java b/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/impl/NodeImplementationImpl.java deleted file mode 100644 index 8f6315d969..0000000000 --- a/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/impl/NodeImplementationImpl.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.implementation.node.impl; - -import java.util.Collections; -import java.util.List; - -import org.apache.tuscany.sca.assembly.Composite; -import org.apache.tuscany.sca.assembly.ConstrainingType; -import org.apache.tuscany.sca.assembly.Property; -import org.apache.tuscany.sca.assembly.Reference; -import org.apache.tuscany.sca.assembly.Service; -import org.apache.tuscany.sca.implementation.node.NodeImplementation; - - -/** - * The model representing a node implementation in an SCA assembly model. - * - * @version $Rev$ $Date$ - */ -class NodeImplementationImpl implements NodeImplementation { - - private String uri; - private boolean unresolved; - private Composite composite; - - /** - * Constructs a new node implementation. - */ - NodeImplementationImpl() { - } - - public ConstrainingType getConstrainingType() { - // The node implementation does not support constrainingTypes - return null; - } - - public List<Property> getProperties() { - // The node implementation does not support properties - return Collections.emptyList(); - } - - public List<Service> getServices() { - // The node implementation does not support services - return Collections.emptyList(); - } - - public List<Reference> getReferences() { - // The node implementation does not support properties - return Collections.emptyList(); - } - - public String getURI() { - return uri; - } - - public Composite getComposite() { - return composite; - } - - public void setConstrainingType(ConstrainingType constrainingType) { - // The node implementation does not support constrainingTypes - } - - public void setURI(String uri) { - this.uri = uri; - } - - public void setComposite(Composite composite) { - this.composite = composite; - } - - - public boolean isUnresolved() { - return unresolved; - } - - public void setUnresolved(boolean unresolved) { - this.unresolved = unresolved; - } -} diff --git a/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/xml/ConfiguredNodeImplementationProcessor.java b/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/xml/ConfiguredNodeImplementationProcessor.java deleted file mode 100644 index e695340d45..0000000000 --- a/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/xml/ConfiguredNodeImplementationProcessor.java +++ /dev/null @@ -1,196 +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.implementation.node.xml; - -import static javax.xml.stream.XMLStreamConstants.END_ELEMENT; -import static javax.xml.stream.XMLStreamConstants.START_ELEMENT; - -import java.util.List; - -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.AssemblyFactory; -import org.apache.tuscany.sca.assembly.Composite; -import org.apache.tuscany.sca.contribution.Contribution; -import org.apache.tuscany.sca.contribution.ContributionFactory; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; -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.ContributionReadException; -import org.apache.tuscany.sca.contribution.service.ContributionResolveException; -import org.apache.tuscany.sca.contribution.service.ContributionWriteException; -import org.apache.tuscany.sca.implementation.node.ConfiguredNodeImplementation; -import org.apache.tuscany.sca.implementation.node.NodeImplementationFactory; -import org.apache.tuscany.sca.monitor.Monitor; - - -/** - * Implements a StAX artifact processor for configured node implementations. - * - * @version $Rev$ $Date$ - */ -public class ConfiguredNodeImplementationProcessor extends BaseStAXArtifactProcessor implements StAXArtifactProcessor<ConfiguredNodeImplementation> { - - private static final String ATOM_NS = "http://www.w3.org/2005/Atom"; - private static final QName FEED_QNAME = new QName(ATOM_NS, "feed"); - private static final QName ENTRY_QNAME = new QName(ATOM_NS, "entry"); - private static final QName ID_QNAME = new QName(ATOM_NS, "id"); - private static final QName LINK_QNAME = new QName(ATOM_NS, "link"); - private static final String HREF = "href"; - - private ContributionFactory contributionFactory; - private AssemblyFactory assemblyFactory; - private NodeImplementationFactory implementationFactory; - - public ConfiguredNodeImplementationProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) { - this.contributionFactory = modelFactories.getFactory(ContributionFactory.class); - this.assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); - this.implementationFactory = modelFactories.getFactory(NodeImplementationFactory.class); - } - - public QName getArtifactType() { - return null; - } - - public Class<ConfiguredNodeImplementation> getModelType() { - // Returns the type of model processed by this processor - return ConfiguredNodeImplementation.class; - } - - public ConfiguredNodeImplementation read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException { - - ConfiguredNodeImplementation implementation = implementationFactory.createConfiguredNodeImplementation(); - implementation.setUnresolved(true); - - // Read a feed containing links to the composite and the contributions assigned to - // the node - Composite composite = null; - Contribution contribution = null; - boolean id = false; - QName name = null; - - while (reader.hasNext()) { - int event = reader.getEventType(); - switch (event) { - - case START_ELEMENT: - name = reader.getName(); - - if (ENTRY_QNAME.equals(name)) { - - // Read an <entry> - if (implementation.getComposite() == null) { - composite = assemblyFactory.createComposite(); - } else { - contribution = contributionFactory.createContribution(); - } - } else if (ID_QNAME.equals(name)) { - - // Read an <id> - id = true; - - } else if (LINK_QNAME.equals(name)) { - - // Read a <link> - String href = getString(reader, HREF); - - if (composite != null) { - composite.setURI(href); - } else if (contribution != null) { - contribution.setLocation(href); - } - } - break; - - case XMLStreamConstants.CHARACTERS: - - // Read characters inside an <id> element - if (id) { - if (contribution != null) { - contribution.setURI(reader.getText()); - } - } - break; - - case END_ELEMENT: - name = reader.getName(); - - // Clear current state when reading reaching end element - if (ENTRY_QNAME.equals(name)) { - if (composite != null) { - implementation.setComposite(composite); - } else if (contribution != null) { - implementation.getContributions().add(contribution); - } - - composite = null; - contribution = null; - - } else if (ID_QNAME.equals(name)) { - id = false; - - } else if (FEED_QNAME.equals(name)) { - - // We've reached the end of the feed - return implementation; - } - break; - } - - // Read the next element - if (reader.hasNext()) { - reader.next(); - } - } - return implementation; - } - - public void resolve(ConfiguredNodeImplementation implementation, ModelResolver resolver) throws ContributionResolveException { - - // Resolve the referenced composite - Composite composite = implementation.getComposite(); - if (composite != null) { - composite = resolver.resolveModel(Composite.class, composite); - if (!composite.isUnresolved()) { - implementation.setComposite(composite); - } - } - - // Resolve the referenced contributions - List<Contribution> contributions = implementation.getContributions(); - for (int i = 0, n = contributions.size(); i < n; i++) { - Contribution contribution = contributions.get(i); - contribution = resolver.resolveModel(Contribution.class, contribution); - if (!contribution.isUnresolved()) { - contributions.set(i, contribution); - } - } - - implementation.setUnresolved(false); - } - - public void write(ConfiguredNodeImplementation implementation, XMLStreamWriter writer) throws ContributionWriteException, XMLStreamException { - //TODO Write the feed describing the node configuration - } -} diff --git a/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/xml/NodeImplementationProcessor.java b/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/xml/NodeImplementationProcessor.java deleted file mode 100644 index 201354f89c..0000000000 --- a/branches/sca-java-20080910/modules/implementation-node/src/main/java/org/apache/tuscany/sca/implementation/node/xml/NodeImplementationProcessor.java +++ /dev/null @@ -1,119 +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.implementation.node.xml; - -import static javax.xml.stream.XMLStreamConstants.END_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.assembly.Composite; -import org.apache.tuscany.sca.assembly.xml.Constants; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; -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.ContributionReadException; -import org.apache.tuscany.sca.contribution.service.ContributionResolveException; -import org.apache.tuscany.sca.contribution.service.ContributionWriteException; -import org.apache.tuscany.sca.implementation.node.NodeImplementation; -import org.apache.tuscany.sca.implementation.node.NodeImplementationFactory; -import org.apache.tuscany.sca.monitor.Monitor; - - -/** - * Implements a StAX artifact processor for node implementations. - * - * @version $Rev$ $Date$ - */ -public class NodeImplementationProcessor extends BaseStAXArtifactProcessor implements StAXArtifactProcessor<NodeImplementation> { - private static final QName IMPLEMENTATION_NODE = new QName(Constants.SCA10_TUSCANY_NS, "implementation.node"); - - private AssemblyFactory assemblyFactory; - private NodeImplementationFactory implementationFactory; - - public NodeImplementationProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) { - this.assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); - this.implementationFactory = modelFactories.getFactory(NodeImplementationFactory.class); - } - - public QName getArtifactType() { - // Returns the QName of the XML element processed by this processor - return IMPLEMENTATION_NODE; - } - - public Class<NodeImplementation> getModelType() { - // Returns the type of model processed by this processor - return NodeImplementation.class; - } - - public NodeImplementation read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException { - - // Read an <implementation.node> element - NodeImplementation implementation = implementationFactory.createNodeImplementation(); - implementation.setUnresolved(false); - - // Read the composite attribute - QName qname = getQName(reader, "composite"); - if (qname != null) { - Composite composite = assemblyFactory.createComposite(); - composite.setName(qname); - String uri = getString(reader, "uri"); - composite.setURI(uri); - composite.setUnresolved(true); - implementation.setComposite(composite); - } - - // Skip to end element - while (reader.hasNext()) { - if (reader.next() == END_ELEMENT && IMPLEMENTATION_NODE.equals(reader.getName())) { - break; - } - } - - return implementation; - } - - public void resolve(NodeImplementation implementation, ModelResolver resolver) throws ContributionResolveException { - // We do not need to resolve the referenced composites here - // Nodes and application composites are not in the same composition tree - } - - public void write(NodeImplementation implementation, XMLStreamWriter writer) throws ContributionWriteException, XMLStreamException { - - // Write <implementation.node> - Composite composite = implementation.getComposite(); - QName qname; - String uri; - if (composite != null) { - qname = composite.getName(); - uri = composite.getURI(); - } else { - qname = null; - uri = null; - } - writeStart(writer, IMPLEMENTATION_NODE.getNamespaceURI(), IMPLEMENTATION_NODE.getLocalPart(), - new XAttr("composite", qname), new XAttr("uri", uri)); - - writeEnd(writer); - } -} diff --git a/branches/sca-java-20080910/modules/implementation-node/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor b/branches/sca-java-20080910/modules/implementation-node/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor deleted file mode 100644 index 9378db0875..0000000000 --- a/branches/sca-java-20080910/modules/implementation-node/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor +++ /dev/null @@ -1,20 +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. - -# Implementation class for the artifact processor extension -org.apache.tuscany.sca.implementation.node.xml.NodeImplementationProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.0#implementation.node,model=org.apache.tuscany.sca.implementation.node.NodeImplementation,factory=org.apache.tuscany.sca.implementation.node.NodeImplementationFactory -org.apache.tuscany.sca.implementation.node.xml.ConfiguredNodeImplementationProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.0#implementation.node.configured,model=org.apache.tuscany.sca.implementation.node.ConfiguredNodeImplementation,factory=org.apache.tuscany.sca.implementation.node.NodeImplementationFactory
\ No newline at end of file diff --git a/branches/sca-java-20080910/modules/implementation-node/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.node.NodeImplementationFactory b/branches/sca-java-20080910/modules/implementation-node/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.node.NodeImplementationFactory deleted file mode 100644 index b8a63a3b16..0000000000 --- a/branches/sca-java-20080910/modules/implementation-node/src/main/resources/META-INF/services/org.apache.tuscany.sca.implementation.node.NodeImplementationFactory +++ /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. - -# Implementation class for model factory -org.apache.tuscany.sca.implementation.node.impl.NodeImplementationFactoryImpl diff --git a/branches/sca-java-20080910/modules/implementation-node/src/test/java/org/apache/tuscany/sca/implementation/node/builder/impl/CalculateBindingURITestCase.java b/branches/sca-java-20080910/modules/implementation-node/src/test/java/org/apache/tuscany/sca/implementation/node/builder/impl/CalculateBindingURITestCase.java deleted file mode 100644 index 1dc397659b..0000000000 --- a/branches/sca-java-20080910/modules/implementation-node/src/test/java/org/apache/tuscany/sca/implementation/node/builder/impl/CalculateBindingURITestCase.java +++ /dev/null @@ -1,587 +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.implementation.node.builder.impl; - -import java.util.ArrayList; -import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; - -import javax.xml.namespace.QName; - -import junit.framework.TestCase; - -import org.apache.tuscany.sca.assembly.AssemblyFactory; -import org.apache.tuscany.sca.assembly.Binding; -import org.apache.tuscany.sca.assembly.Component; -import org.apache.tuscany.sca.assembly.ComponentService; -import org.apache.tuscany.sca.assembly.Composite; -import org.apache.tuscany.sca.assembly.CompositeService; -import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory; -import org.apache.tuscany.sca.assembly.SCABinding; -import org.apache.tuscany.sca.assembly.SCABindingFactory; -import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; -import org.apache.tuscany.sca.implementation.node.NodeImplementation; -import org.apache.tuscany.sca.implementation.node.NodeImplementationFactory; -import org.apache.tuscany.sca.implementation.node.impl.NodeImplementationFactoryImpl; -import org.apache.tuscany.sca.monitor.Monitor; -import org.apache.tuscany.sca.monitor.Problem; -import org.apache.tuscany.sca.monitor.Problem.Severity; - -/** - * - * @version $Rev$ $Date$ - */ -public class CalculateBindingURITestCase extends TestCase { - private static final Logger logger = Logger.getLogger(CalculateBindingURITestCase.class.getName()); - private AssemblyFactory assemblyFactory; - private SCABindingFactory scaBindingFactory; - private NodeImplementationFactory nodeImplementationFactory; - private Monitor monitor; - private CompositeBuilder configurationBuilder; - private List<Binding> defaultBindings = new ArrayList<Binding>(); - - @Override - protected void setUp() throws Exception { - assemblyFactory = new DefaultAssemblyFactory(); - scaBindingFactory = new TestBindingFactory(); - nodeImplementationFactory = new NodeImplementationFactoryImpl(); - monitor = new Monitor() { - public void problem(Problem problem) { - if (problem.getSeverity() == Severity.INFO) { - logger.info(problem.toString()); - } else if (problem.getSeverity() == Severity.WARNING) { - logger.warning(problem.toString()); - } else if (problem.getSeverity() == Severity.ERROR) { - if (problem.getCause() != null) { - logger.log(Level.SEVERE, problem.toString(), problem.getCause()); - } else { - logger.severe(problem.toString()); - } - } - } - public List<Problem> getProblems() { - return null; - } - }; - configurationBuilder = new NodeCompositeBuilderImpl(assemblyFactory, scaBindingFactory, null, null, monitor); - Binding defaultBinding = new TestBindingImpl(); - defaultBinding.setURI("http://myhost:8080/root"); - defaultBindings.add(defaultBinding); - } - - /** - * Create a composite containing a node component pointing to the - * given application composite. - * - * @param composite - * @return - */ - private Composite nodeComposite(Composite composite) { - Composite nodeComposite = assemblyFactory.createComposite(); - Component nodeComponent = assemblyFactory.createComponent(); - NodeImplementation nodeImplementation = nodeImplementationFactory.createNodeImplementation(); - nodeImplementation.setComposite(composite); - nodeComponent.setImplementation(nodeImplementation); - ComponentService nodeService = assemblyFactory.createComponentService(); - nodeService.getBindings().addAll(defaultBindings); - nodeComponent.getServices().add(nodeService); - nodeComposite.getComponents().add(nodeComponent); - return nodeComposite; - } - - @Override - protected void tearDown() throws Exception { - assemblyFactory = null; - } - - /** - * Test that URI are generated in accordance with the Assembly Specification section 1.7.2.1 as - * follows. For the 3 parts that make up the URI; - * - * BaseURI / Component URI / Service Binding URI - * - * Test the following combinations for: - * - * NB. The short hand here, e.g. <service name="s1"> <binding.sca> <service name="s2"> means - * two services appear where the first has the sca binding specified. - * - * component service bindings - * - * http://myhost:8080/root / <component name="c1"> / <service name="s1"> <binding.sca> - * --> http://myhost:8080/root/c1 - * http://myhost:8080/root / <component name="c1"> / <service name="s1"> <binding.sca> <service name="s2"> - * --> http://myhost:8080/root/c1/s1 - * http://myhost:8080/root / <component name="c1"> / <service name="s1"> <binding.sca name="n"> <service name="s2"> - * --> http://myhost:8080/root/c1/n - * http://myhost:8080/root / <component name="c1"> / <service name="s1"> <binding.sca uri="b"> <service name="s2"> - * --> http://myhost:8080/root/c1/b - * http://myhost:8080/root / <component name="c1"> / <service name="s1"> <binding.sca uri="http://myhost:8080/b"> <service name="s2"> - * --> http://myhost:8080/b - * http://myhost:8080/root / <component name="c1"> / <service name="s1"> <binding.sca uri="../../b"> <service name="s2"> - * --> http://myhost:8080/b - * - * top level composite service bindings - * - * http://myhost:8080/root / null / <service name="s1"> <binding.sca> <service name="s2"> - * --> http://myhost:8080/root - * http://myhost:8080/root / null / <service name="s1"> <binding.sca> <service name="s2"> - * --> http://myhost:8080/root/s1 - * http://myhost:8080/root / null / <service name="s1"> <binding.sca name="n"> <service name="s2"> - * --> http://myhost:8080/root/n - * http://myhost:8080/root / null / <service name="s1"> <binding.sca uri="b"> <service name="s2"> - * --> http://myhost:8080/root/b - * http://myhost:8080/root / null / <service name="s1"> <binding.sca uri="http://myhost:8080/b"> <service name="s2"> - * --> http://myhost:8080/b - * - * nested composite service bindings - * - * http://myhost:8080/root / <component name="c1"> implemented by composite with <component name="c2"> / <service name="s1"> <binding.sca> - * --> http://myhost:8080/root/c1/c2 - * http://myhost:8080/root / <component name="c1"> implemented by composite with <component name="c2"> / <service name="s1"> <binding.sca> <service name="s2"> - * --> http://myhost:8080/root/c1/c2/s1 - * http://myhost:8080/root / <component name="c1"> implemented by composite with <component name="c2"> / <service name="s1"> <binding.sca name="n"> <service name="s2"> - * --> http://myhost:8080/root/c1/c2/n - * http://myhost:8080/root / <component name="c1"> implemented by composite with <component name="c2"> / <service name="s1"> <binding.sca uri="b"> <service name="s2"> - * --> http://myhost:8080/root/c1/c2/b - * http://myhost:8080/root / <component name="c1"> implemented by composite with <component name="c2"> / <service name="s1"> <binding.sca uri="http://myhost:8080/b"> <service name="s2"> - * --> http://myhost:8080/b - * - * binding name duplication errors - * - * http://myhost:8080/root / <component name="c1"> implemented by composite with <component name="c2"> / <service name="s1"> <binding.sca> <binding.xyz> - * --> Error - * http://myhost:8080/root / <component name="c1"> implemented by composite with <component name="c2"> / <service name="s1"> <binding.sca name="b1"> <binding.xyz name="b1"> - * --> Error - */ - - private Composite createComponentServiceBinding() { - Composite composite1 = assemblyFactory.createComposite(); - composite1.setName(new QName("http://foo", "C1")); - - Component c1 = assemblyFactory.createComponent(); - c1.setName("c1"); - composite1.getComponents().add(c1); - - ComponentService s1 = assemblyFactory.createComponentService(); - c1.getServices().add(s1); - s1.setName("s1"); - - ComponentService s2 = assemblyFactory.createComponentService(); - c1.getServices().add(s2); - s2.setName("s2"); - - Binding b1 = new TestBindingImpl(); - s1.getBindings().add(b1); - - Binding b2 = new TestBindingImpl(); - s2.getBindings().add(b2); - - return composite1; - } - - private Composite createTopLevelCompositeServiceBinding(){ - Composite composite1 = assemblyFactory.createComposite(); - composite1.setName(new QName("http://foo", "C1")); - - CompositeService s1 = assemblyFactory.createCompositeService(); - s1.setName("s1"); - composite1.getServices().add(s1); - - Binding b1 = new TestBindingImpl(); - s1.getBindings().add(b1); - - CompositeService s2 = assemblyFactory.createCompositeService(); - s2.setName("s2"); - composite1.getServices().add(s2); - - Binding b2 = new TestBindingImpl(); - s2.getBindings().add(b2); - - return composite1; - } - - private Composite createNestCompositeServiceBinding(){ - Composite composite1 = assemblyFactory.createComposite(); - composite1.setName(new QName("http://foo", "C1")); - - Component c1 = assemblyFactory.createComponent(); - c1.setName("c1"); - composite1.getComponents().add(c1); - - Composite composite2 = assemblyFactory.createComposite(); - c1.setImplementation(composite2); - composite2.setName(new QName("http://foo", "C2")); - - Component c2 = assemblyFactory.createComponent(); - composite2.getComponents().add(c2); - c2.setName("c2"); - - ComponentService s1 = assemblyFactory.createComponentService(); - c2.getServices().add(s1); - s1.setName("s1"); - - ComponentService s2 = assemblyFactory.createComponentService(); - c2.getServices().add(s2); - s2.setName("s2"); - - Binding b1 = new TestBindingImpl(); - s1.getBindings().add(b1); - - Binding b2 = new TestBindingImpl(); - s2.getBindings().add(b2); - - return composite1; - } - - // component service binding tests - - public void testComponentServiceSingleService() { - Composite composite = createComponentServiceBinding(); - composite.getComponents().get(0).getServices().remove(1); - Binding b = composite.getComponents().get(0).getServices().get(0).getBindings().get(0); - - try { - configurationBuilder.build(nodeComposite(composite)); - - assertEquals("http://myhost:8080/root/c1", b.getURI()); - } catch(Exception ex){ - System.out.println(ex.toString()); - fail(); - } - } - - public void testComponentServiceBindingDefault() { - Composite composite = createComponentServiceBinding(); - Binding b = composite.getComponents().get(0).getServices().get(0).getBindings().get(0); - - try { - configurationBuilder.build(nodeComposite(composite)); - - assertEquals("http://myhost:8080/root/c1/s1", b.getURI()); - } catch(Exception ex){ - System.out.println(ex.toString()); - fail(); - } - } - - public void testComponentServiceBindingName() { - Composite composite = createComponentServiceBinding(); - Binding b = composite.getComponents().get(0).getServices().get(0).getBindings().get(0); - b.setName("n"); - - try { - configurationBuilder.build(nodeComposite(composite)); - - assertEquals("http://myhost:8080/root/c1/n", b.getURI()); - } catch(Exception ex){ - System.out.println(ex.toString()); - fail(); - } - } - - public void testComponentServiceBindingURIRelative() { - Composite composite = createComponentServiceBinding(); - Binding b = composite.getComponents().get(0).getServices().get(0).getBindings().get(0); - b.setName("n"); - b.setURI("b"); - - try { - configurationBuilder.build(nodeComposite(composite)); - - assertEquals("http://myhost:8080/root/c1/b", b.getURI()); - } catch(Exception ex){ - System.out.println(ex.toString()); - fail(); - } - } - - public void testComponentServiceBindingURIAbsolute() { - Composite composite = createComponentServiceBinding(); - Binding b = composite.getComponents().get(0).getServices().get(0).getBindings().get(0); - b.setName("n"); - b.setURI("http://myhost:8080/b"); - - try { - configurationBuilder.build(nodeComposite(composite)); - - assertEquals("http://myhost:8080/b", b.getURI()); - } catch(Exception ex){ - System.out.println(ex.toString()); - fail(); - } - } - - public void testComponentServiceBindingURIRelative2() { - Composite composite = createComponentServiceBinding(); - Binding b = composite.getComponents().get(0).getServices().get(0).getBindings().get(0); - b.setName("n"); - b.setURI("../../b"); - - try { - configurationBuilder.build(nodeComposite(composite)); - - assertEquals("http://myhost:8080/b", b.getURI()); - } catch(Exception ex){ - System.out.println(ex.toString()); - fail(); - } - } - - // top level composite service binding tests - - public void testCompositeServiceSingleService() { - Composite composite = createTopLevelCompositeServiceBinding(); - composite.getServices().remove(1); - Binding b = composite.getServices().get(0).getBindings().get(0); - - try { - configurationBuilder.build(nodeComposite(composite)); - - assertEquals("http://myhost:8080/root", b.getURI()); - } catch(Exception ex){ - System.out.println(ex.toString()); - fail(); - } - } - - public void testCompositeServiceBindingDefault() { - Composite composite = createTopLevelCompositeServiceBinding(); - Binding b = composite.getServices().get(0).getBindings().get(0); - - try { - configurationBuilder.build(nodeComposite(composite)); - - assertEquals("http://myhost:8080/root/s1", b.getURI()); - } catch(Exception ex){ - System.out.println(ex.toString()); - fail(); - } - } - - public void testCompositeServiceBindingName() { - Composite composite = createTopLevelCompositeServiceBinding(); - Binding b = composite.getServices().get(0).getBindings().get(0); - b.setName("n"); - - try { - configurationBuilder.build(nodeComposite(composite)); - - assertEquals("http://myhost:8080/root/n", b.getURI()); - } catch(Exception ex){ - System.out.println(ex.toString()); - fail(); - } - } - - public void testCompositeServiceBindingURIRelative() { - Composite composite = createTopLevelCompositeServiceBinding(); - Binding b = composite.getServices().get(0).getBindings().get(0); - b.setName("n"); - b.setURI("b"); - - try { - configurationBuilder.build(nodeComposite(composite)); - - assertEquals("http://myhost:8080/root/b", b.getURI()); - } catch(Exception ex){ - System.out.println(ex.toString()); - fail(); - } - } - - public void testCompositeServiceBindingURIAbsolute() { - Composite composite = createTopLevelCompositeServiceBinding(); - Binding b = composite.getServices().get(0).getBindings().get(0); - b.setName("n"); - b.setURI("http://myhost:8080/b"); - - try { - configurationBuilder.build(nodeComposite(composite)); - - assertEquals("http://myhost:8080/b", b.getURI()); - } catch(Exception ex){ - System.out.println(ex.toString()); - fail(); - } - } - - // nested composite service binding tests - - public void testNestedCompositeServiceSingleService() { - Composite composite = createNestCompositeServiceBinding(); - ((Composite)composite.getComponents().get(0).getImplementation()).getComponents().get(0).getServices().remove(1); - Binding b = ((Composite)composite.getComponents().get(0).getImplementation()).getComponents().get(0).getServices().get(0).getBindings().get(0); - - try { - configurationBuilder.build(nodeComposite(composite)); - - assertEquals("http://myhost:8080/root/c1/c2", b.getURI()); - } catch(Exception ex){ - System.out.println(ex.toString()); - fail(); - } - } - - public void testNestedCompositeServiceBindingDefault() { - Composite composite = createNestCompositeServiceBinding(); - Binding b = ((Composite)composite.getComponents().get(0).getImplementation()).getComponents().get(0).getServices().get(0).getBindings().get(0); - - try { - configurationBuilder.build(nodeComposite(composite)); - - assertEquals("http://myhost:8080/root/c1/c2/s1", b.getURI()); - } catch(Exception ex){ - System.out.println(ex.toString()); - fail(); - } - } - - public void testNestedCompositeServiceBindingName() { - Composite composite = createNestCompositeServiceBinding(); - Binding b = ((Composite)composite.getComponents().get(0).getImplementation()).getComponents().get(0).getServices().get(0).getBindings().get(0); - b.setName("n"); - - try { - configurationBuilder.build(nodeComposite(composite)); - - assertEquals("http://myhost:8080/root/c1/c2/n", b.getURI()); - } catch(Exception ex){ - System.out.println(ex.toString()); - fail(); - } - } - - public void testNestedCompositeServiceBindingURIRelative() { - Composite composite = createNestCompositeServiceBinding(); - Binding b = ((Composite)composite.getComponents().get(0).getImplementation()).getComponents().get(0).getServices().get(0).getBindings().get(0); - b.setName("n"); - b.setURI("b"); - - try { - configurationBuilder.build(nodeComposite(composite)); - - assertEquals("http://myhost:8080/root/c1/c2/b", b.getURI()); - } catch(Exception ex){ - System.out.println(ex.toString()); - fail(); - } - } - - public void testNestedCompositeServiceBindingURIAbsolute() { - Composite composite = createNestCompositeServiceBinding(); - Binding b = ((Composite)composite.getComponents().get(0).getImplementation()).getComponents().get(0).getServices().get(0).getBindings().get(0); - b.setName("n"); - b.setURI("http://myhost:8080/b"); - - try { - configurationBuilder.build(nodeComposite(composite)); - - assertEquals("http://myhost:8080/b", b.getURI()); - } catch(Exception ex){ - System.out.println(ex.toString()); - fail(); - } - } - - // component service binding name error tests - - //FIXME Need to find a better way to test these error cases as - // the composite builder now (intentionally) logs warnings instead of - // throwing exceptions - public void FIXMEtestComponentServiceBindingNameError1() { - Composite composite = createComponentServiceBinding(); - Binding b1 = composite.getComponents().get(0).getServices().get(0).getBindings().get(0); - Binding b2 = new TestBindingImpl(); - composite.getComponents().get(0).getServices().get(0).getBindings().add(b2); - - - try { - configurationBuilder.build(nodeComposite(composite)); - fail(); - } catch(Exception ex){ - //System.out.println(ex.toString()); - } - } - - //FIXME Need to find a better way to test these error cases as - // the composite builder now (intentionally) logs warnings instead of - // throwing exceptions - public void FIXMEtestComponentServiceBindingNameError2() { - Composite composite = createComponentServiceBinding(); - Binding b1 = composite.getComponents().get(0).getServices().get(0).getBindings().get(0); - Binding b2 = new TestBindingImpl(); - composite.getComponents().get(0).getServices().get(0).getBindings().add(b2); - - b1.setName("b"); - b2.setName("b"); - - - try { - configurationBuilder.build(nodeComposite(composite)); - fail(); - } catch(Exception ex){ - System.out.println(ex.toString()); - } - } - - - public class TestBindingFactory implements SCABindingFactory { - public SCABinding createSCABinding() { - return new TestBindingImpl(); - } - } - - public class TestBindingImpl implements SCABinding { - private String name; - private String uri; - private boolean unresolved; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getURI() { - return uri; - } - - public void setURI(String uri) { - this.uri = uri; - } - - public void setUnresolved(boolean unresolved) { - this.unresolved = unresolved; - } - - public boolean isUnresolved() { - return unresolved; - } - - @Override - public Object clone() throws CloneNotSupportedException { - return super.clone(); - } - } - -} diff --git a/branches/sca-java-20080910/modules/implementation-node/src/test/java/org/apache/tuscany/sca/implementation/node/xml/ReadTestCase.java b/branches/sca-java-20080910/modules/implementation-node/src/test/java/org/apache/tuscany/sca/implementation/node/xml/ReadTestCase.java deleted file mode 100644 index bc0c3b1507..0000000000 --- a/branches/sca-java-20080910/modules/implementation-node/src/test/java/org/apache/tuscany/sca/implementation/node/xml/ReadTestCase.java +++ /dev/null @@ -1,81 +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.implementation.node.xml; - -import java.io.InputStream; - -import javax.xml.stream.XMLInputFactory; -import javax.xml.stream.XMLStreamReader; - -import junit.framework.TestCase; - -import org.apache.tuscany.sca.assembly.AssemblyFactory; -import org.apache.tuscany.sca.assembly.Composite; -import org.apache.tuscany.sca.assembly.SCABindingFactory; -import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; -import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; -import org.apache.tuscany.sca.contribution.processor.DefaultStAXArtifactProcessorExtensionPoint; -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.core.DefaultExtensionPointRegistry; -import org.apache.tuscany.sca.core.UtilityExtensionPoint; -import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; -import org.apache.tuscany.sca.interfacedef.impl.InterfaceContractMapperImpl; -import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory; - -/** - * Test reading Node implementations. - * - * @version $Rev$ $Date$ - */ -public class ReadTestCase extends TestCase { - - private XMLInputFactory inputFactory; - private StAXArtifactProcessor<Object> staxProcessor; - private CompositeBuilder compositeBuilder; - - @Override - public void setUp() throws Exception { - DefaultExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); - inputFactory = XMLInputFactory.newInstance(); - StAXArtifactProcessorExtensionPoint staxProcessors = new DefaultStAXArtifactProcessorExtensionPoint(extensionPoints); - staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, null, null); - - ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); - AssemblyFactory assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); - SCABindingFactory scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class); - UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class); - InterfaceContractMapper mapper = utilities.getUtility(InterfaceContractMapper.class); - IntentAttachPointTypeFactory attachPointTypeFactory = modelFactories.getFactory(IntentAttachPointTypeFactory.class); - compositeBuilder = new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, attachPointTypeFactory, mapper, null); - } - - public void testReadComposite() throws Exception { - InputStream is = getClass().getResourceAsStream("TestNode.composite"); - XMLStreamReader reader = inputFactory.createXMLStreamReader(is); - Composite composite = (Composite)staxProcessor.read(reader); - assertNotNull(composite); - - compositeBuilder.build(composite); - } - -} diff --git a/branches/sca-java-20080910/modules/implementation-node/src/test/java/org/apache/tuscany/sca/implementation/node/xml/WriteTestCase.java b/branches/sca-java-20080910/modules/implementation-node/src/test/java/org/apache/tuscany/sca/implementation/node/xml/WriteTestCase.java deleted file mode 100644 index c5e6a40f89..0000000000 --- a/branches/sca-java-20080910/modules/implementation-node/src/test/java/org/apache/tuscany/sca/implementation/node/xml/WriteTestCase.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.implementation.node.xml; - -import java.io.ByteArrayOutputStream; -import java.io.InputStream; - -import javax.xml.stream.XMLInputFactory; -import javax.xml.stream.XMLOutputFactory; - -import junit.framework.TestCase; - -import org.apache.tuscany.sca.assembly.Composite; -import org.apache.tuscany.sca.contribution.processor.DefaultStAXArtifactProcessorExtensionPoint; -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.core.DefaultExtensionPointRegistry; - -/** - * Test reading/writing Node implementations. - * - * @version $Rev$ $Date$ - */ -public class WriteTestCase extends TestCase { - - private XMLInputFactory inputFactory; - private XMLOutputFactory outputFactory; - private StAXArtifactProcessor<Object> staxProcessor; - - @Override - public void setUp() throws Exception { - DefaultExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); - inputFactory = XMLInputFactory.newInstance(); - outputFactory = XMLOutputFactory.newInstance(); - StAXArtifactProcessorExtensionPoint staxProcessors = new DefaultStAXArtifactProcessorExtensionPoint(extensionPoints); - staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, inputFactory, outputFactory, null); - } - - public void testReadWriteComposite() throws Exception { - InputStream is = getClass().getResourceAsStream("TestNode.composite"); - Composite composite = (Composite)staxProcessor.read(inputFactory.createXMLStreamReader(is)); - assertNotNull(composite); - ByteArrayOutputStream bos = new ByteArrayOutputStream(); - staxProcessor.write(composite, outputFactory.createXMLStreamWriter(bos)); - } - -} diff --git a/branches/sca-java-20080910/modules/implementation-node/src/test/resources/org/apache/tuscany/sca/implementation/node/xml/TestComposite.composite b/branches/sca-java-20080910/modules/implementation-node/src/test/resources/org/apache/tuscany/sca/implementation/node/xml/TestComposite.composite deleted file mode 100644 index 55644c27e5..0000000000 --- a/branches/sca-java-20080910/modules/implementation-node/src/test/resources/org/apache/tuscany/sca/implementation/node/xml/TestComposite.composite +++ /dev/null @@ -1,29 +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. ---> -<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" - xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0" - targetNamespace="http://sample/composite" - xmlns:sc="http://sample/composite" - name="TestComposite"> - - <component name="TestComponent"> - </component> - -</composite> diff --git a/branches/sca-java-20080910/modules/implementation-node/src/test/resources/org/apache/tuscany/sca/implementation/node/xml/TestNode.composite b/branches/sca-java-20080910/modules/implementation-node/src/test/resources/org/apache/tuscany/sca/implementation/node/xml/TestNode.composite deleted file mode 100644 index 92787d3ac1..0000000000 --- a/branches/sca-java-20080910/modules/implementation-node/src/test/resources/org/apache/tuscany/sca/implementation/node/xml/TestNode.composite +++ /dev/null @@ -1,64 +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. ---> -<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" - xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0" - targetNamespace="http://sample/node" - xmlns:sc="http://sample/composite" - name="TestNode"> - - <component name="TestNode"> - <tuscany:implementation.node composite="sc:TestComposite"/> - <service name="Default"> - <binding.sca uri="http://localhost:8080"/> - </service> - </component> - - <component name="TestNode2"> - <tuscany:implementation.node.configured> - - <feed xmlns="http://www.w3.org/2005/Atom"> - <title type="text">Feed</title> - <entry> - <id>composite:store;http://store;store</id> - <title type="text">store - http://store;store</title> - <content type="text" /> - <link - href="/resolved/composite/composite:store;http://store;store" /> - </entry> - <entry> - <id>assets</id> - <title type="text">assets</title> - <content type="text" /> - <link - href="http://localhost:9990/files/tutorial-assets.jar" /> - </entry> - <entry> - <id>store</id> - <title type="text">store</title> - <content type="text" /> - <link - href="http://localhost:9990/files/tutorial-store.jar" /> - </entry> - </feed> - - </tuscany:implementation.node.configured> - </component> - -</composite> |