You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2007/04/02 08:27:28 UTC
svn commit: r524731 - in /incubator/tuscany/java/sca/scdl4j/stax/src:
main/java/org/apache/tuscany/scdl/stax/impl/
test/java/org/apache/tuscany/scdl/stax/impl/ test/resources/
Author: rfeng
Date: Sun Apr 1 23:27:27 2007
New Revision: 524731
URL: http://svn.apache.org/viewvc?view=rev&rev=524731
Log:
Add the DOM-based property value loading
Added:
incubator/tuscany/java/sca/scdl4j/stax/src/main/java/org/apache/tuscany/scdl/stax/impl/DOMUtil.java (with props)
Modified:
incubator/tuscany/java/sca/scdl4j/stax/src/main/java/org/apache/tuscany/scdl/stax/impl/BaseLoader.java
incubator/tuscany/java/sca/scdl4j/stax/src/main/java/org/apache/tuscany/scdl/stax/impl/CompositeLoader.java
incubator/tuscany/java/sca/scdl4j/stax/src/main/java/org/apache/tuscany/scdl/stax/impl/ConstrainingTypeLoader.java
incubator/tuscany/java/sca/scdl4j/stax/src/test/java/org/apache/tuscany/scdl/stax/impl/ReadAllTestCase.java
incubator/tuscany/java/sca/scdl4j/stax/src/test/resources/TestAllCalculator.composite
incubator/tuscany/java/sca/scdl4j/stax/src/test/resources/TestAllDivide.composite
Modified: incubator/tuscany/java/sca/scdl4j/stax/src/main/java/org/apache/tuscany/scdl/stax/impl/BaseLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/scdl4j/stax/src/main/java/org/apache/tuscany/scdl/stax/impl/BaseLoader.java?view=diff&rev=524731&r1=524730&r2=524731
==============================================================================
--- incubator/tuscany/java/sca/scdl4j/stax/src/main/java/org/apache/tuscany/scdl/stax/impl/BaseLoader.java (original)
+++ incubator/tuscany/java/sca/scdl4j/stax/src/main/java/org/apache/tuscany/scdl/stax/impl/BaseLoader.java Sun Apr 1 23:27:27 2007
@@ -19,11 +19,17 @@
package org.apache.tuscany.scdl.stax.impl;
+import static javax.xml.XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI;
+import static javax.xml.XMLConstants.XMLNS_ATTRIBUTE_NS_URI;
+import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
+import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
+
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.StringTokenizer;
+import javax.xml.XMLConstants;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamException;
@@ -42,6 +48,10 @@
import org.apache.tuscany.policy.model.PolicySetAttachPoint;
import org.apache.tuscany.sca.idl.Operation;
import org.apache.tuscany.scdl.stax.Constants;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
/**
* A test handler to test the usability of the assembly model API when loading
@@ -53,10 +63,10 @@
private AssemblyFactory factory;
private PolicyFactory policyFactory;
-
+
BaseLoader() {
}
-
+
BaseLoader(AssemblyFactory factory, PolicyFactory policyFactory) {
this.factory = factory;
this.policyFactory = policyFactory;
@@ -71,6 +81,18 @@
return getQNameValue(reader, qname);
}
+ /**
+ * Get the value of xsi:type attribute
+ *
+ * @param reader The XML stream reader
+ * @return The QName of the type, if the attribute is not present, null is
+ * returned.
+ */
+ protected QName getXSIType(XMLStreamReader reader) {
+ String qname = reader.getAttributeValue(XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI, "type");
+ return getQNameValue(reader, qname);
+ }
+
protected QName getQNameValue(XMLStreamReader reader, String value) {
if (value != null) {
int index = value.indexOf(':');
@@ -105,9 +127,9 @@
}
protected void readIntents(IntentAttachPoint attachPoint, XMLStreamReader reader) {
- readIntents(attachPoint, null, reader);
+ readIntents(attachPoint, null, reader);
}
-
+
protected void readIntents(IntentAttachPoint attachPoint, Operation operation, XMLStreamReader reader) {
String value = reader.getAttributeValue(null, Constants.REQUIRES);
if (value != null) {
@@ -116,18 +138,18 @@
QName qname = getQNameValue(reader, tokens.nextToken());
Intent intent = policyFactory.createIntent();
intent.setName(qname);
- if (operation != null) {
- intent.getOperations().add(operation);
- }
+ if (operation != null) {
+ intent.getOperations().add(operation);
+ }
requiredIntents.add(intent);
}
}
}
protected void readPolicies(PolicySetAttachPoint attachPoint, XMLStreamReader reader) {
- readPolicies(attachPoint, null, reader);
+ readPolicies(attachPoint, null, reader);
}
-
+
protected void readMultiplicity(AbstractReference reference, XMLStreamReader reader) {
String value = reader.getAttributeValue(null, MULTIPLICITY);
if (ZERO_ONE.equals(value)) {
@@ -140,8 +162,8 @@
}
protected void readPolicies(PolicySetAttachPoint attachPoint, Operation operation, XMLStreamReader reader) {
- readIntents(attachPoint, operation, reader);
-
+ readIntents(attachPoint, operation, reader);
+
String value = reader.getAttributeValue(null, Constants.POLICY_SETS);
if (value != null) {
List<PolicySet> policySets = attachPoint.getPolicySets();
@@ -149,9 +171,9 @@
QName qname = getQNameValue(reader, tokens.nextToken());
PolicySet policySet = policyFactory.createPolicySet();
policySet.setName(qname);
- if (operation != null) {
- policySet.getOperations().add(operation);
- }
+ if (operation != null) {
+ policySet.getOperations().add(operation);
+ }
policySets.add(policySet);
}
}
@@ -169,25 +191,27 @@
}
}
- protected void readAbstractProperty(AbstractProperty prop, XMLStreamReader reader) {
+ protected void readAbstractProperty(AbstractProperty prop, XMLStreamReader reader) throws XMLStreamException {
prop.setName(getString(reader, "name"));
prop.setMany(getBoolean(reader, "many"));
prop.setMustSupply(getBoolean(reader, "mustSupply"));
prop.setXSDElement(getQName(reader, "element"));
prop.setXSDType(getQName(reader, "type"));
+ Node value = readPropertyValue(reader, prop.getXSDType());
+ prop.setDefaultValue(value);
}
- protected void readProperty(Property prop, XMLStreamReader reader) {
+ protected void readProperty(Property prop, XMLStreamReader reader) throws XMLStreamException {
readAbstractProperty(prop, reader);
}
protected boolean nextChildElement(XMLStreamReader reader) throws XMLStreamException {
while (reader.hasNext()) {
int event = reader.next();
- if (event == XMLStreamConstants.END_ELEMENT) {
+ if (event == END_ELEMENT) {
return false;
}
- if (event == XMLStreamConstants.START_ELEMENT) {
+ if (event == START_ELEMENT) {
return true;
}
}
@@ -215,5 +239,34 @@
}
}
}
+
+ public static Document readPropertyValue(XMLStreamReader reader, QName type)
+ throws XMLStreamException {
+ Document doc = DOMUtil.newDocument();
+
+ // root element has no namespace and local name "value"
+ Element root = doc.createElementNS(null, "value");
+ if (type != null) {
+ Attr xsi = doc.createAttributeNS(XMLNS_ATTRIBUTE_NS_URI, "xmlns:xsi");
+ xsi.setValue(W3C_XML_SCHEMA_INSTANCE_NS_URI);
+ root.setAttributeNodeNS(xsi);
+
+ String prefix = type.getPrefix();
+ if (prefix == null || prefix.length() == 0) {
+ prefix = "ns";
+ }
+
+ DOMUtil.declareNamespace(root, prefix, type.getNamespaceURI());
+
+ Attr xsiType = doc.createAttributeNS(W3C_XML_SCHEMA_INSTANCE_NS_URI, "xsi:type");
+ xsiType.setValue(prefix + ":" + type.getLocalPart());
+ root.setAttributeNodeNS(xsiType);
+ }
+ doc.appendChild(root);
+
+ DOMUtil.loadDOM(reader, root);
+ return doc;
+ }
+
}
Modified: incubator/tuscany/java/sca/scdl4j/stax/src/main/java/org/apache/tuscany/scdl/stax/impl/CompositeLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/scdl4j/stax/src/main/java/org/apache/tuscany/scdl/stax/impl/CompositeLoader.java?view=diff&rev=524731&r1=524730&r2=524731
==============================================================================
--- incubator/tuscany/java/sca/scdl4j/stax/src/main/java/org/apache/tuscany/scdl/stax/impl/CompositeLoader.java (original)
+++ incubator/tuscany/java/sca/scdl4j/stax/src/main/java/org/apache/tuscany/scdl/stax/impl/CompositeLoader.java Sun Apr 1 23:27:27 2007
@@ -58,7 +58,8 @@
/**
* Construct a new composite loader
- * @param assemblyFactory
+ *
+ * @param assemblyFactory
* @param policyFactory
* @param registry
*/
@@ -89,36 +90,36 @@
switch (event) {
case START_ELEMENT:
name = reader.getName();
-
+
if (COMPOSITE_QNAME.equals(name)) {
-
- // Read a <composite>
+
+ // Read a <composite>
composite = factory.createComposite();
composite.setName(getQName(reader, NAME));
composite.setAutowire(getBoolean(reader, AUTOWIRE));
composite.setLocal(getBoolean(reader, LOCAL));
composite.setConstrainingType(getConstrainingType(reader));
readPolicies(composite, reader);
-
+
} else if (INCLUDE_QNAME.equals(name)) {
-
- // Read an <include>
+
+ // Read an <include>
include = factory.createComposite();
include.setUnresolved(true);
composite.getIncludes().add(include);
-
+
} else if (SERVICE_QNAME.equals(name)) {
if (component != null) {
-
- // Read a <component><service>
+
+ // Read a <component><service>
componentService = factory.createComponentService();
contract = componentService;
componentService.setName(getString(reader, NAME));
component.getServices().add(componentService);
readPolicies(contract, reader);
} else {
-
- // Read a <composite><service>
+
+ // Read a <composite><service>
compositeService = factory.createCompositeService();
contract = compositeService;
compositeService.setName(getString(reader, NAME));
@@ -134,8 +135,8 @@
} else if (REFERENCE_QNAME.equals(name)) {
if (component != null) {
-
- // Read a <component><reference>
+
+ // Read a <component><reference>
componentReference = factory.createComponentReference();
contract = componentReference;
componentReference.setName(getString(reader, NAME));
@@ -150,8 +151,8 @@
component.getReferences().add(componentReference);
readPolicies(contract, reader);
} else {
-
- // Read a <composite><reference>
+
+ // Read a <composite><reference>
compositeReference = factory.createCompositeReference();
contract = compositeReference;
compositeReference.setName(getString(reader, NAME));
@@ -166,36 +167,37 @@
composite.getReferences().add(compositeReference);
readPolicies(contract, reader);
}
-
+
} else if (PROPERTY_QNAME.equals(name)) {
if (component != null) {
-
- // Read a <component><property>
+
+ // Read a <component><property>
componentProperty = factory.createComponentProperty();
property = componentProperty;
+ readPolicies(property, reader);
readProperty(componentProperty, reader);
component.getProperties().add(componentProperty);
} else {
-
- // Read a <composite><property>
+
+ // Read a <composite><property>
property = factory.createProperty();
+ readPolicies(property, reader);
readProperty(property, reader);
composite.getProperties().add(property);
}
- readPolicies(property, reader);
-
+
} else if (COMPONENT_QNAME.equals(name)) {
-
- // Read a <component>
+
+ // Read a <component>
component = factory.createComponent();
component.setName(getString(reader, NAME));
component.setConstrainingType(getConstrainingType(reader));
composite.getComponents().add(component);
readPolicies(component, reader);
-
+
} else if (WIRE_QNAME.equals(name)) {
-
- // Read a <wire>
+
+ // Read a <wire>
wire = factory.createWire();
ComponentReference source = factory.createComponentReference();
source.setUnresolved(true);
@@ -209,41 +211,42 @@
composite.getWires().add(wire);
readPolicies(wire, reader);
-
+
} else if (CALLBACK_QNAME.equals(name)) {
-
- // Read a <callback>
+
+ // Read a <callback>
callback = factory.createCallback();
contract.setCallback(callback);
readPolicies(callback, reader);
-
+
} else if (OPERATION.equals(name)) {
-
- // Read an <operation>
- Operation operation = factory.createOperation();
- operation.setName(getString(reader, NAME));
- operation.setUnresolved(true);
- if (callback != null) {
- readPolicies(callback, operation, reader);
- } else {
- readPolicies(contract, operation, reader);
- }
+
+ // Read an <operation>
+ Operation operation = factory.createOperation();
+ operation.setName(getString(reader, NAME));
+ operation.setUnresolved(true);
+ if (callback != null) {
+ readPolicies(callback, operation, reader);
+ } else {
+ readPolicies(contract, operation, reader);
+ }
} else {
-
+
// Read an extension element
Object extension = registry.load(reader);
if (extension != null) {
if (extension instanceof Interface) {
- // <service><interface> and <reference><interface>
+ // <service><interface> and
+ // <reference><interface>
contract.setInterface((Interface)extension);
-
+
} else if (extension instanceof Binding) {
// <service><binding> and <reference><binding>
contract.getBindings().add((Binding)extension);
-
+
} else if (extension instanceof Implementation) {
-
+
// <component><implementation>
component.setImplementation((Implementation)extension);
}
@@ -252,21 +255,17 @@
break;
case XMLStreamConstants.CHARACTERS:
-
- // Read an <include>qname</include>
+
+ // Read an <include>qname</include>
if (include != null && INCLUDE_QNAME.equals(name)) {
include.setName(getQNameValue(reader, reader.getText().trim()));
}
-
- // Read a <property>value</property>
- else if (property != null && PROPERTY_QNAME.equals(name)) {
- property.setDefaultValue(reader.getText().trim());
- }
+
break;
-
+
case END_ELEMENT:
name = reader.getName();
-
+
// Clear current state when reading reaching end element
if (SERVICE_QNAME.equals(name)) {
componentService = null;
@@ -290,7 +289,7 @@
}
break;
}
-
+
// Read the next element
if (reader.hasNext()) {
reader.next();
Modified: incubator/tuscany/java/sca/scdl4j/stax/src/main/java/org/apache/tuscany/scdl/stax/impl/ConstrainingTypeLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/scdl4j/stax/src/main/java/org/apache/tuscany/scdl/stax/impl/ConstrainingTypeLoader.java?view=diff&rev=524731&r1=524730&r2=524731
==============================================================================
--- incubator/tuscany/java/sca/scdl4j/stax/src/main/java/org/apache/tuscany/scdl/stax/impl/ConstrainingTypeLoader.java (original)
+++ incubator/tuscany/java/sca/scdl4j/stax/src/main/java/org/apache/tuscany/scdl/stax/impl/ConstrainingTypeLoader.java Sun Apr 1 23:27:27 2007
@@ -121,12 +121,9 @@
// Read an extension element
Object extension = registry.load(reader);
- if (extension != null) {
- if (extension instanceof Interface) {
-
- // <service><interface> and <reference><interface>
- abstractContract.setInterface((Interface)extension);
- }
+ if (extension instanceof Interface) {
+ // <service><interface> and <reference><interface>
+ abstractContract.setInterface((Interface)extension);
}
}
break;
Added: incubator/tuscany/java/sca/scdl4j/stax/src/main/java/org/apache/tuscany/scdl/stax/impl/DOMUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/scdl4j/stax/src/main/java/org/apache/tuscany/scdl/stax/impl/DOMUtil.java?view=auto&rev=524731
==============================================================================
--- incubator/tuscany/java/sca/scdl4j/stax/src/main/java/org/apache/tuscany/scdl/stax/impl/DOMUtil.java (added)
+++ incubator/tuscany/java/sca/scdl4j/stax/src/main/java/org/apache/tuscany/scdl/stax/impl/DOMUtil.java Sun Apr 1 23:27:27 2007
@@ -0,0 +1,169 @@
+/*
+ * 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.scdl.stax.impl;
+
+import static javax.xml.XMLConstants.XMLNS_ATTRIBUTE_NS_URI;
+
+import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.tuscany.scdl.stax.LoaderException;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public final class DOMUtil {
+ private static final DocumentBuilderFactory FACTORY = DocumentBuilderFactory.newInstance();
+ static {
+ FACTORY.setNamespaceAware(true);
+ }
+
+ private DOMUtil() {
+ }
+
+ public static Document newDocument() {
+ try {
+ return newDocumentBuilder().newDocument();
+ } catch (ParserConfigurationException e) {
+ throw new LoaderException(e);
+ }
+ }
+
+ public static DocumentBuilder newDocumentBuilder() throws ParserConfigurationException {
+ return FACTORY.newDocumentBuilder();
+ }
+
+ public static QName getQName(Node node) {
+ String ns = node.getNamespaceURI();
+ if (ns == null) {
+ ns = "";
+ }
+ // node.getLocalName() will return null if it is created using DOM Level
+ // 1 method
+ // such as createElement()
+ return new QName(ns, node.getNodeName());
+ }
+
+ public static Element createElement(Document document, QName name) {
+ String prefix = name.getPrefix();
+ String qname = (prefix != null && prefix.length() > 0) ? prefix + ":" + name.getLocalPart() : name
+ .getLocalPart();
+ return document.createElementNS(name.getNamespaceURI(), qname);
+ }
+
+ public static void declareNamespace(Element element, String prefix, String ns) {
+ String qname = null;
+ if ("".equals(prefix)) {
+ qname = "xmlns";
+ } else {
+ qname = "xmlns:" + prefix;
+ }
+ Node node = element;
+ boolean declared = false;
+ while (node != null && node.getNodeType() == Node.ELEMENT_NODE) {
+ NamedNodeMap attrs = node.getAttributes();
+ if (attrs == null) {
+ break;
+ }
+ Node attr = attrs.getNamedItem(qname);
+ if (attr != null) {
+ declared = ns.equals(attr.getNodeValue());
+ break;
+ }
+ node = node.getParentNode();
+ }
+ if (!declared) {
+ Attr attr = element.getOwnerDocument().createAttributeNS(XMLNS_ATTRIBUTE_NS_URI, qname);
+ attr.setValue(ns);
+ element.setAttributeNodeNS(attr);
+ }
+ }
+
+ /**
+ * Load a property value specification from an StAX stream into a DOM
+ * Document. Only elements, text and attributes are processed; all comments
+ * and other whitespace are ignored.
+ *
+ * @param reader the stream to read from
+ * @param root the DOM node to load
+ * @throws javax.xml.stream.XMLStreamException
+ */
+ public static void loadDOM(XMLStreamReader reader, Node root) throws XMLStreamException {
+ Document document = root.getOwnerDocument();
+ Node current = root;
+ while (true) {
+ switch (reader.next()) {
+ case XMLStreamConstants.START_ELEMENT:
+ QName name = reader.getName();
+ Element child = createElement(document, name);
+
+ // push the new element and make it the current one
+ current.appendChild(child);
+ current = child;
+
+ declareNamespace(child, name.getPrefix(), name.getNamespaceURI());
+
+ int count = reader.getNamespaceCount();
+ for (int i = 0; i < count; i++) {
+ String prefix = reader.getNamespacePrefix(i);
+ String ns = reader.getNamespaceURI(i);
+ declareNamespace(child, prefix, ns);
+ }
+
+ // add the attributes for this element
+ count = reader.getAttributeCount();
+ for (int i = 0; i < count; i++) {
+ String ns = reader.getAttributeNamespace(i);
+ String prefix = reader.getAttributePrefix(i);
+ String localPart = reader.getAttributeLocalName(i);
+ String value = reader.getAttributeValue(i);
+ child.setAttributeNS(ns, localPart, value);
+ declareNamespace(child, prefix, ns);
+ }
+
+ break;
+ case XMLStreamConstants.CDATA:
+ current.appendChild(document.createCDATASection(reader.getText()));
+ break;
+ case XMLStreamConstants.CHARACTERS:
+ current.appendChild(document.createTextNode(reader.getText()));
+ break;
+ case XMLStreamConstants.END_ELEMENT:
+ // if we are back at the root then we are done
+ if (current == root) {
+ return;
+ }
+
+ // pop the element off the stack
+ current = current.getParentNode();
+ }
+ }
+ }
+}
Propchange: incubator/tuscany/java/sca/scdl4j/stax/src/main/java/org/apache/tuscany/scdl/stax/impl/DOMUtil.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/scdl4j/stax/src/main/java/org/apache/tuscany/scdl/stax/impl/DOMUtil.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/scdl4j/stax/src/test/java/org/apache/tuscany/scdl/stax/impl/ReadAllTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/scdl4j/stax/src/test/java/org/apache/tuscany/scdl/stax/impl/ReadAllTestCase.java?view=diff&rev=524731&r1=524730&r2=524731
==============================================================================
--- incubator/tuscany/java/sca/scdl4j/stax/src/test/java/org/apache/tuscany/scdl/stax/impl/ReadAllTestCase.java (original)
+++ incubator/tuscany/java/sca/scdl4j/stax/src/test/java/org/apache/tuscany/scdl/stax/impl/ReadAllTestCase.java Sun Apr 1 23:27:27 2007
@@ -37,6 +37,8 @@
import org.apache.tuscany.assembly.util.CompositeUtil;
import org.apache.tuscany.assembly.util.PrintUtil;
import org.apache.tuscany.scdl.stax.Constants;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
/**
* Test the usability of the assembly model API when loading SCDL
@@ -113,7 +115,10 @@
Property property = calcComponent.getProperties().get(0);
assertEquals(property.getName(), "round");
- assertEquals(property.getDefaultValue(), "true");
+ Document doc = (Document) property.getDefaultValue();
+ Element element = doc.getDocumentElement();
+ String value = element.getTextContent();
+ assertEquals(value, "true");
assertEquals(property.getXSDType(), new QName("http://www.w3.org/2001/XMLSchema", "boolean"));
assertEquals(property.isMany(), false);
Modified: incubator/tuscany/java/sca/scdl4j/stax/src/test/resources/TestAllCalculator.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/scdl4j/stax/src/test/resources/TestAllCalculator.composite?view=diff&rev=524731&r1=524730&r2=524731
==============================================================================
--- incubator/tuscany/java/sca/scdl4j/stax/src/test/resources/TestAllCalculator.composite (original)
+++ incubator/tuscany/java/sca/scdl4j/stax/src/test/resources/TestAllCalculator.composite Sun Apr 1 23:27:27 2007
@@ -1,85 +1,93 @@
<?xml version="1.0" encoding="UTF-8"?>
-<composite autowire="false"
- constrainingType="tns:Calculator"
- local="true"
- name="tns:TestAllCalculator"
- policySets="sns:secure" requires="cns:confidentiality"
- targetNamespace="http://calc"
- xmlns:tns="http://calc"
- xmlns="http://www.osoa.org/xmlns/sca/1.0"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.osoa.org/xmlns/sca/1.0 http://www.osoa.org/xmlns/sca/1.0 "
- xmlns:cns="http://test/confidentiality"
- xmlns:sns="http://test/secure">
-
- <include>tns:TestAllDivide</include>
-
- <service name="CalculatorService" promote="CalculatorServiceComponent/CalculatorService"
- requires="cns:confidentiality" policySets="sns:secure">
- <interface.java interface="calculator.CalculatorService" callbackInterface="calculator.CalculatorCallback"/>
- <operation name="add" policySets="sns:secure" requires="cns:confidentiality"/>
-
- <binding.ws name="CalculatorWS" policySets="sns:secure" port="" requires="cns:confidentiality" uri="http://calc/ws">
- <operation name="add" policySets="sns:secure" requires="cns:confidentiality"/>
- </binding.ws>
-
- <callback policySets="sns:secure" requires="cns:confidentiality">
- <binding.ws name="CalculatorCallbackWS" policySets="" port="" requires="" uri="http://calc/callback/ws">
- <operation name="addCallback" policySets="sns:secure" requires="cns:confidentiality"/>
- </binding.ws>
- </callback>
- </service>
-
- <component name="CalculatorServiceComponent" autowire="false" constrainingType="tns:CalculatorServiceComponent" policySets="sns:secure" requires="cns:confidentiality">
- <service name="CalculatorService" policySets="sns:secure" requires="cns:confidentiality">
- <interface.java interface="calculator.CalculatorService" callbackInterface="calculator.CalculatorCallback"/>
- </service>
-
- <reference name="addService" target="AddServiceComponent/AddService" autowire="false" multiplicity="1..1" policySets="sns:secure" requires="cns:confidentiality" wiredByImpl="false">
- <interface.java interface="calculator.AddService" callbackInterface="calculator.AddCallback"/>
- </reference>
- <reference name="subtractService" target="SubtractServiceComponent"/>
- <reference name="multiplyService"/>
- <reference name="divideService" target="DivideServiceComponent"/>
-
- <property name="round" type="xsd:boolean" many="false">true</property>
-
- <implementation.java class="calculator.CalculatorServiceImpl" policySets="" requires=""/>
- </component>
-
- <component name="AddServiceComponent">
- <service name="AddService">
- <interface.java interface="calculator.AddService"/>
- </service>
- <implementation.java class="calculator.AddServiceImpl"/>
- </component>
-
- <component name="SubtractServiceComponent">
- <implementation.java class="calculator.SubtractServiceImpl"/>
- </component>
-
- <component name="MultiplyServiceComponent">
- <implementation.java class="calculator.MultiplyServiceImpl"/>
- </component>
-
- <component name="DivideServiceComponent">
- <implementation.java class="calculator.DivideServiceImpl"/>
- </component>
-
- <reference name="MultiplyService" promote="CalculatorServiceComponent/multiplyService" policySets="sns:secure" requires="cns:confidentiality" >
- <interface.java interface="calculator.MultiplyService" callbackInterface="calculator.MultiplyCallback"/>
- <operation name="multiply" policySets="sns:secure" requires="cns:confidentiality" />
-
- <binding.ws name="MultiplyWS" port="" policySets="sns:secure" requires="cns:confidentiality" uri="http://calc/ws">
- <operation name="multiply" policySets="sns:secure" requires="cns:confidentiality" />
- </binding.ws>
-
- <callback policySets="sns:secure" requires="cns:confidentiality" >
- <binding.ws name="MultiplyCallbackWS" port="" uri="http://calc/callback/ws" policySets="sns:secure" requires="cns:confidentiality" >
- <operation name="multiplyCallback" policySets="sns:secure" requires="cns:confidentiality" />
- </binding.ws>
- </callback>
- </reference>
-
+<composite autowire="false" constrainingType="tns:Calculator" local="true" name="tns:TestAllCalculator" policySets="sns:secure"
+ requires="cns:confidentiality" targetNamespace="http://calc" xmlns:tns="http://calc"
+ xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.osoa.org/xmlns/sca/1.0 http://www.osoa.org/xmlns/sca/1.0 "
+ xmlns:cns="http://test/confidentiality" xmlns:sns="http://test/secure">
+
+ <include>tns:TestAllDivide</include>
+
+ <service name="CalculatorService" promote="CalculatorServiceComponent/CalculatorService" requires="cns:confidentiality"
+ policySets="sns:secure">
+ <interface.java interface="calculator.CalculatorService" callbackInterface="calculator.CalculatorCallback" />
+ <operation name="add" policySets="sns:secure" requires="cns:confidentiality" />
+
+ <binding.ws name="CalculatorWS" policySets="sns:secure" port="" requires="cns:confidentiality" uri="http://calc/ws">
+ <operation name="add" policySets="sns:secure" requires="cns:confidentiality" />
+ </binding.ws>
+
+ <callback policySets="sns:secure" requires="cns:confidentiality">
+ <binding.ws name="CalculatorCallbackWS" policySets="" port="" requires="" uri="http://calc/callback/ws">
+ <operation name="addCallback" policySets="sns:secure" requires="cns:confidentiality" />
+ </binding.ws>
+ </callback>
+ </service>
+
+ <component name="CalculatorServiceComponent" autowire="false" constrainingType="tns:CalculatorServiceComponent"
+ policySets="sns:secure" requires="cns:confidentiality">
+ <service name="CalculatorService" policySets="sns:secure" requires="cns:confidentiality">
+ <interface.java interface="calculator.CalculatorService" callbackInterface="calculator.CalculatorCallback" />
+ </service>
+
+ <reference name="addService" target="AddServiceComponent/AddService" autowire="false" multiplicity="1..1"
+ policySets="sns:secure" requires="cns:confidentiality" wiredByImpl="false">
+ <interface.java interface="calculator.AddService" callbackInterface="calculator.AddCallback" />
+ </reference>
+ <reference name="subtractService" target="SubtractServiceComponent" />
+ <reference name="multiplyService" />
+ <reference name="divideService" target="DivideServiceComponent" />
+
+ <property name="round" type="xsd:boolean" many="false">true</property>
+
+ <implementation.java class="calculator.CalculatorServiceImpl" policySets="" requires="" />
+ </component>
+
+ <component name="AddServiceComponent">
+ <service name="AddService">
+ <interface.java interface="calculator.AddService" />
+ </service>
+ <implementation.java class="calculator.AddServiceImpl" />
+ </component>
+
+ <component name="SubtractServiceComponent">
+ <implementation.java class="calculator.SubtractServiceImpl" />
+ </component>
+
+ <component name="MultiplyServiceComponent">
+ <implementation.java class="calculator.MultiplyServiceImpl" />
+ </component>
+
+ <component name="DivideServiceComponent">
+ <implementation.java class="calculator.DivideServiceImpl" />
+ </component>
+
+ <reference name="MultiplyService" promote="CalculatorServiceComponent/multiplyService" policySets="sns:secure"
+ requires="cns:confidentiality">
+ <interface.java interface="calculator.MultiplyService" callbackInterface="calculator.MultiplyCallback" />
+ <operation name="multiply" policySets="sns:secure" requires="cns:confidentiality" />
+
+ <binding.ws name="MultiplyWS" port="" policySets="sns:secure" requires="cns:confidentiality" uri="http://calc/ws">
+ <operation name="multiply" policySets="sns:secure" requires="cns:confidentiality" />
+ </binding.ws>
+
+ <callback policySets="sns:secure" requires="cns:confidentiality">
+ <binding.ws name="MultiplyCallbackWS" port="" uri="http://calc/callback/ws" policySets="sns:secure"
+ requires="cns:confidentiality">
+ <operation name="multiplyCallback" policySets="sns:secure" requires="cns:confidentiality" />
+ </binding.ws>
+ </callback>
+ </reference>
+
+ <property name="prop1" xmlns:foo="http://foo">
+ <MyComplexPropertyValue1 xsi:type="foo:MyComplexType" attr="bar">
+ <foo:a>AValue</foo:a>
+ <bar:b xmlns:bar="http://bar">InterestingURI</bar:b>
+ </MyComplexPropertyValue1>
+ <MyComplexPropertyValue2 xsi:type="foo:MyComplexType" attr="zing">
+ <foo:a>BValue</foo:a>
+ <bar:b xmlns:bar="http://bar">BoringURI</bar:b>
+ </MyComplexPropertyValue2>
+ </property>
+
</composite>
Modified: incubator/tuscany/java/sca/scdl4j/stax/src/test/resources/TestAllDivide.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/scdl4j/stax/src/test/resources/TestAllDivide.composite?view=diff&rev=524731&r1=524730&r2=524731
==============================================================================
--- incubator/tuscany/java/sca/scdl4j/stax/src/test/resources/TestAllDivide.composite (original)
+++ incubator/tuscany/java/sca/scdl4j/stax/src/test/resources/TestAllDivide.composite Sun Apr 1 23:27:27 2007
@@ -74,6 +74,6 @@
<operation name="multiplyCallback" policySets="" requires=""/>
</binding.ws>
</callback>
- </service>
+ </reference>
</composite>
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org