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 2006/09/18 07:33:14 UTC
svn commit: r447254 [3/3] - in /incubator/tuscany/java:
samples/sca/echo.databinding/src/main/java/echo/ samples/sca/helloworldws/
samples/sca/helloworldws/src/main/java/helloworld/
samples/sca/helloworldws/src/main/resources/wsdl/ samples/sca/hellowor...
Modified: incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/String2DataObject.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/String2DataObject.java?view=diff&rev=447254&r1=447253&r2=447254
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/String2DataObject.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/String2DataObject.java Sun Sep 17 22:33:12 2006
@@ -21,18 +21,21 @@
import org.apache.tuscany.databinding.TransformationContext;
import org.apache.tuscany.databinding.TransformationException;
import org.apache.tuscany.databinding.PullTransformer;
+import org.apache.tuscany.databinding.Transformer;
import org.apache.tuscany.databinding.extension.TransformerExtension;
import org.apache.tuscany.sdo.util.SDOUtil;
+import org.osoa.sca.annotations.Service;
import commonj.sdo.DataObject;
import commonj.sdo.helper.TypeHelper;
import commonj.sdo.helper.XMLHelper;
+@Service(Transformer.class)
public class String2DataObject extends TransformerExtension<String, DataObject> implements PullTransformer<String, DataObject> {
public DataObject transform(String source, TransformationContext context) {
try {
- TypeHelper typeHelper = SDODataTypeHelper.getTypeHelper(context, false);
+ TypeHelper typeHelper = SDODataTypeHelper.getTypeHelper(context);
XMLHelper xmlHelper = SDOUtil.createXMLHelper(typeHelper);
return xmlHelper.load(source).getRootObject();
} catch (Exception e) {
Added: incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLDocument2String.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLDocument2String.java?view=auto&rev=447254
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLDocument2String.java (added)
+++ incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLDocument2String.java Sun Sep 17 22:33:12 2006
@@ -0,0 +1,63 @@
+/*
+ * 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.databinding.sdo;
+
+import java.io.StringWriter;
+
+import org.apache.tuscany.databinding.PullTransformer;
+import org.apache.tuscany.databinding.TransformationContext;
+import org.apache.tuscany.databinding.TransformationException;
+import org.apache.tuscany.databinding.Transformer;
+import org.apache.tuscany.databinding.extension.TransformerExtension;
+import org.apache.tuscany.sdo.util.SDOUtil;
+import org.osoa.sca.annotations.Service;
+
+import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.helper.XMLDocument;
+import commonj.sdo.helper.XMLHelper;
+
+@Service(Transformer.class)
+public class XMLDocument2String extends TransformerExtension<XMLDocument, String> implements
+ PullTransformer<XMLDocument, String> {
+
+ public String transform(XMLDocument source, TransformationContext context) {
+ try {
+ TypeHelper typeHelper = SDODataTypeHelper.getTypeHelper(context);
+ XMLHelper xmlHelper = SDOUtil.createXMLHelper(typeHelper);
+ StringWriter writer = new StringWriter();
+ xmlHelper.save(source, writer, null);
+ return writer.toString();
+ } catch (Exception e) {
+ throw new TransformationException(e);
+ }
+ }
+
+ public Class getSourceType() {
+ return XMLDocument.class;
+ }
+
+ public Class getTargetType() {
+ return String.class;
+ }
+
+ public int getWeight() {
+ return 40;
+ }
+
+}
Propchange: incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLDocument2String.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLDocument2String.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLDocument2XMLStreamReader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLDocument2XMLStreamReader.java?view=diff&rev=447254&r1=447253&r2=447254
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLDocument2XMLStreamReader.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLDocument2XMLStreamReader.java Sun Sep 17 22:33:12 2006
@@ -24,13 +24,16 @@
import org.apache.tuscany.databinding.TransformationContext;
import org.apache.tuscany.databinding.TransformationException;
import org.apache.tuscany.databinding.PullTransformer;
+import org.apache.tuscany.databinding.Transformer;
import org.apache.tuscany.databinding.extension.TransformerExtension;
import org.apache.tuscany.sdo.helper.XMLStreamHelper;
import org.apache.tuscany.sdo.util.SDOUtil;
+import org.osoa.sca.annotations.Service;
import commonj.sdo.helper.TypeHelper;
import commonj.sdo.helper.XMLDocument;
+@Service(Transformer.class)
public class XMLDocument2XMLStreamReader extends TransformerExtension<XMLDocument, XMLStreamReader> implements PullTransformer<XMLDocument, XMLStreamReader> {
/**
* @param source
@@ -39,7 +42,7 @@
*/
public XMLStreamReader transform(XMLDocument source, TransformationContext context) {
try {
- TypeHelper typeHelper = SDODataTypeHelper.getTypeHelper(context, true);
+ TypeHelper typeHelper = SDODataTypeHelper.getTypeHelper(context);
XMLStreamHelper streamHelper = SDOUtil.createXMLStreamHelper(typeHelper);
return streamHelper.createXMLStreamReader(source);
} catch (XMLStreamException e) {
Modified: incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLStreamReader2DataObject.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLStreamReader2DataObject.java?view=diff&rev=447254&r1=447253&r2=447254
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLStreamReader2DataObject.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLStreamReader2DataObject.java Sun Sep 17 22:33:12 2006
@@ -18,28 +18,37 @@
*/
package org.apache.tuscany.databinding.sdo;
+import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamReader;
import org.apache.tuscany.databinding.TransformationContext;
import org.apache.tuscany.databinding.TransformationException;
import org.apache.tuscany.databinding.PullTransformer;
+import org.apache.tuscany.databinding.Transformer;
import org.apache.tuscany.databinding.extension.TransformerExtension;
import org.apache.tuscany.sdo.helper.XMLStreamHelper;
import org.apache.tuscany.sdo.util.SDOUtil;
+import org.osoa.sca.annotations.Service;
import commonj.sdo.DataObject;
import commonj.sdo.helper.TypeHelper;
-public class XMLStreamReader2DataObject extends TransformerExtension<XMLStreamReader, DataObject> implements PullTransformer<XMLStreamReader, DataObject> {
+@Service(Transformer.class)
+public class XMLStreamReader2DataObject extends TransformerExtension<XMLStreamReader, DataObject> implements
+ PullTransformer<XMLStreamReader, DataObject> {
public DataObject transform(XMLStreamReader source, TransformationContext context) {
try {
- TypeHelper typeHelper = SDODataTypeHelper.getTypeHelper(context, false);
+ TypeHelper typeHelper = SDODataTypeHelper.getTypeHelper(context);
XMLStreamHelper streamHelper = SDOUtil.createXMLStreamHelper(typeHelper);
+ // The XMLStreamHelper requires that the reader is posistioned at START_ELEMENT
+ while (source.getEventType() != XMLStreamConstants.START_ELEMENT && source.hasNext()) {
+ source.next();
+ }
return streamHelper.loadObject(source);
} catch (Exception e) {
throw new TransformationException(e);
- }
+ }
}
public Class getTargetType() {
Modified: incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLStreamReader2XMLDocument.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLStreamReader2XMLDocument.java?view=diff&rev=447254&r1=447253&r2=447254
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLStreamReader2XMLDocument.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/java/org/apache/tuscany/databinding/sdo/XMLStreamReader2XMLDocument.java Sun Sep 17 22:33:12 2006
@@ -23,19 +23,22 @@
import org.apache.tuscany.databinding.TransformationContext;
import org.apache.tuscany.databinding.TransformationException;
import org.apache.tuscany.databinding.PullTransformer;
+import org.apache.tuscany.databinding.Transformer;
import org.apache.tuscany.databinding.extension.TransformerExtension;
import org.apache.tuscany.sdo.helper.XMLStreamHelper;
import org.apache.tuscany.sdo.util.SDOUtil;
+import org.osoa.sca.annotations.Service;
import commonj.sdo.helper.TypeHelper;
import commonj.sdo.helper.XMLDocument;
+@Service(Transformer.class)
public class XMLStreamReader2XMLDocument extends TransformerExtension<XMLStreamReader, XMLDocument> implements
PullTransformer<XMLStreamReader, XMLDocument> {
public XMLDocument transform(XMLStreamReader source, TransformationContext context) {
try {
- TypeHelper typeHelper = SDODataTypeHelper.getTypeHelper(context, false);
+ TypeHelper typeHelper = SDODataTypeHelper.getTypeHelper(context);
XMLStreamHelper streamHelper = SDOUtil.createXMLStreamHelper(typeHelper);
return streamHelper.load(source);
} catch (Exception e) {
Modified: incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/resources/META-INF/sca/default.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/resources/META-INF/sca/default.scdl?view=diff&rev=447254&r1=447253&r2=447254
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/resources/META-INF/sca/default.scdl (original)
+++ incubator/tuscany/java/sca/databinding/databinding-sdo/src/main/resources/META-INF/sca/default.scdl Sun Sep 17 22:33:12 2006
@@ -31,4 +31,30 @@
<system:implementation.system class="org.apache.tuscany.databinding.sdo.ImportSDOLoader"/>
</component>
+ <component name="databinding.sdo">
+ <system:implementation.system class="org.apache.tuscany.databinding.sdo.SDODataBinding" />
+ </component>
+
+ <component name="transformer.DataObject2String">
+ <system:implementation.system class="org.apache.tuscany.databinding.sdo.DataObject2String"/>
+ </component>
+ <component name="transformer.DataObject2XMLStreamReader">
+ <system:implementation.system class="org.apache.tuscany.databinding.sdo.DataObject2XMLStreamReader"/>
+ </component>
+ <component name="transformer.XMLDocument2String">
+ <system:implementation.system class="org.apache.tuscany.databinding.sdo.XMLDocument2String"/>
+ </component>
+ <component name="transformer.String2DataObject">
+ <system:implementation.system class="org.apache.tuscany.databinding.sdo.String2DataObject"/>
+ </component>
+ <component name="transformer.XMLDocument2XMLStreamReader">
+ <system:implementation.system class="org.apache.tuscany.databinding.sdo.XMLDocument2XMLStreamReader"/>
+ </component>
+ <component name="transformer.XMLStreamReader2DataObject">
+ <system:implementation.system class="org.apache.tuscany.databinding.sdo.XMLStreamReader2DataObject"/>
+ </component>
+ <component name="transformer.XMLStreamReader2XMLDocument">
+ <system:implementation.system class="org.apache.tuscany.databinding.sdo.XMLStreamReader2XMLDocument"/>
+ </component>
+
</composite>
Modified: incubator/tuscany/java/sca/databinding/databinding-test/src/test/java/org/apache/tuscany/databinding/TransformationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-test/src/test/java/org/apache/tuscany/databinding/TransformationTestCase.java?view=diff&rev=447254&r1=447253&r2=447254
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-test/src/test/java/org/apache/tuscany/databinding/TransformationTestCase.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-test/src/test/java/org/apache/tuscany/databinding/TransformationTestCase.java Sun Sep 17 22:33:12 2006
@@ -25,7 +25,9 @@
import java.io.StringReader;
import java.net.URL;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import junit.framework.Assert;
import junit.framework.TestCase;
@@ -43,6 +45,7 @@
import org.apache.tuscany.databinding.sdo.XMLDocument2XMLStreamReader;
import org.apache.tuscany.databinding.sdo.XMLStreamReader2DataObject;
import org.apache.tuscany.databinding.sdo.XMLStreamReader2XMLDocument;
+import org.apache.tuscany.databinding.sdo.ImportSDOLoader.SDOType;
import org.apache.tuscany.databinding.xml.Node2String;
import org.apache.tuscany.databinding.xml.String2Node;
import org.apache.tuscany.databinding.xml.String2XMLStreamReader;
@@ -51,26 +54,32 @@
import org.apache.tuscany.databinding.xmlbeans.XMLStreamReader2XmlObject;
import org.apache.tuscany.databinding.xmlbeans.XmlObject2Node;
import org.apache.tuscany.databinding.xmlbeans.XmlObject2XMLStreamReader;
+import org.apache.tuscany.sdo.util.SDOUtil;
import org.apache.tuscany.spi.model.DataType;
import org.apache.xmlbeans.XmlObject;
import org.w3c.dom.Node;
import commonj.sdo.DataObject;
+import commonj.sdo.helper.TypeHelper;
import commonj.sdo.helper.XMLDocument;
import commonj.sdo.helper.XMLHelper;
import commonj.sdo.helper.XSDHelper;
public class TransformationTestCase extends TestCase {
- private static final String IPO_XML = "<?xml version=\"1.0\"?>" + "<ipo:purchaseOrder"
- + " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" + " xmlns:ipo=\"http://www.example.com/IPO\""
- + " xsi:schemaLocation=\"http://www.example.com/IPO ipo.xsd\"" + " orderDate=\"1999-12-01\">"
- + " <shipTo exportCode=\"1\" xsi:type=\"ipo:UKAddress\">" + " <name>Helen Zoe</name>" + " <street>47 Eden Street</street>"
- + " <city>Cambridge</city>" + " <postcode>CB1 1JR</postcode>" + " </shipTo>" + " <billTo xsi:type=\"ipo:USAddress\">"
- + " <name>Robert Smith</name>" + " <street>8 Oak Avenue</street>" + " <city>Old Town</city>" + " <state>PA</state>"
- + " <zip>95819</zip>" + " </billTo>" + " <items>" + " <item partNum=\"833-AA\">"
- + " <productName>Lapis necklace</productName>" + " <quantity>1</quantity>" + " <USPrice>99.95</USPrice>"
- + " <ipo:comment>Want this for the holidays</ipo:comment>" + " <shipDate>1999-12-05</shipDate>" + " </item>" + " </items>"
- + "</ipo:purchaseOrder>";
+ private static final String IPO_XML =
+ "<?xml version=\"1.0\"?>" + "<ipo:purchaseOrder"
+ + " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
+ + " xmlns:ipo=\"http://www.example.com/IPO\""
+ + " xsi:schemaLocation=\"http://www.example.com/IPO ipo.xsd\"" + " orderDate=\"1999-12-01\">"
+ + " <shipTo exportCode=\"1\" xsi:type=\"ipo:UKAddress\">" + " <name>Helen Zoe</name>"
+ + " <street>47 Eden Street</street>" + " <city>Cambridge</city>"
+ + " <postcode>CB1 1JR</postcode>" + " </shipTo>" + " <billTo xsi:type=\"ipo:USAddress\">"
+ + " <name>Robert Smith</name>" + " <street>8 Oak Avenue</street>"
+ + " <city>Old Town</city>" + " <state>PA</state>" + " <zip>95819</zip>" + " </billTo>"
+ + " <items>" + " <item partNum=\"833-AA\">" + " <productName>Lapis necklace</productName>"
+ + " <quantity>1</quantity>" + " <USPrice>99.95</USPrice>"
+ + " <ipo:comment>Want this for the holidays</ipo:comment>"
+ + " <shipDate>1999-12-05</shipDate>" + " </item>" + " </items>" + "</ipo:purchaseOrder>";
private TransformerRegistry registry;
@@ -125,7 +134,9 @@
// XMLBeans --> SDO
public void testTransformation1() throws Exception {
URL xsdFile = getClass().getClassLoader().getResource("ipo.xsd");
- XSDHelper.INSTANCE.define(xsdFile.openStream(), null);
+ TypeHelper typeHelper = SDOUtil.createTypeHelper();
+ XSDHelper xsdHelper = SDOUtil.createXSDHelper(typeHelper);
+ xsdHelper.define(xsdFile.openStream(), xsdFile.toExternalForm());
// URL/Stream/Reader to XmlObject
XmlObject object = XmlObject.Factory.parse(new StringReader(IPO_XML));
@@ -134,6 +145,7 @@
System.out.println("Path: " + path);
TransformationContext tContext = createTransformationContext();
+ tContext.getMetadata().put(SDOType.class, new SDOType(typeHelper));
Object result = object;
for (Transformer transformer : path) {
@@ -197,11 +209,12 @@
DataType dataType = new DataType<Class>(Object.class, null);
dataType.setMetadata(JAXBContextHelper.JAXB_CONTEXT_PATH, contextPath);
-
TransformationContext tContext = createMock(TransformationContext.class);
expect(tContext.getTargetDataType()).andReturn(dataType).anyTimes();
expect(tContext.getSourceDataType()).andReturn(dataType).anyTimes();
+ Map<Class<?>, Object> metadata = new HashMap<Class<?>, Object>();
+ expect(tContext.getMetadata()).andReturn(metadata).anyTimes();
replay(tContext);
return tContext;
}
Modified: incubator/tuscany/java/sca/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/InterfaceWSDLIntrospectorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/InterfaceWSDLIntrospectorImpl.java?view=diff&rev=447254&r1=447253&r2=447254
==============================================================================
--- incubator/tuscany/java/sca/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/InterfaceWSDLIntrospectorImpl.java (original)
+++ incubator/tuscany/java/sca/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/InterfaceWSDLIntrospectorImpl.java Sun Sep 17 22:33:12 2006
@@ -30,7 +30,6 @@
import org.apache.tuscany.spi.idl.InvalidServiceContractException;
import org.apache.tuscany.spi.model.InteractionScope;
import org.osoa.sca.annotations.Constructor;
-import org.osoa.sca.annotations.Property;
/**
* Introspector for creating WSDLServiceContract definitions from WSDL PortTypes.
@@ -38,12 +37,8 @@
public class InterfaceWSDLIntrospectorImpl implements InterfaceWSDLIntrospector {
public static final String INPUT_PARTS = "idl:input";
- public static final String IDL_WSDL_DOCUMENT_LITERAL_WRPPED = "idl.wsdl.documentLiteralWrpped";
-
private WSDLDefinitionRegistry wsdlDefinitionRegistry;
- private String defaultDataBinding = "org.w3c.dom.Node"; // Default to DOM binding?
-
/**
* @param wsdlDefinitionRegistry
*/
@@ -53,11 +48,6 @@
this.wsdlDefinitionRegistry = wsdlDefinitionRegistry;
}
- @Property(name = "defaultDataBinding")
- public void setDefaultDataBinding(String defaultDataBinding) {
- this.defaultDataBinding = defaultDataBinding;
- }
-
// FIXME: Do we want to deal with document-literal wrapped style based on the JAX-WS spec?
protected Map<String, org.apache.tuscany.spi.model.Operation<QName>> introspectOperations(PortType portType)
throws InvalidServiceContractException {
@@ -73,7 +63,7 @@
protected org.apache.tuscany.spi.model.Operation<QName> introspectOperation(Operation wsdlOp)
throws InvalidServiceContractException {
- WSDLOperation op = new WSDLOperation(wsdlOp, defaultDataBinding, wsdlDefinitionRegistry.getSchemaRegistry());
+ WSDLOperation op = new WSDLOperation(wsdlOp, null, wsdlDefinitionRegistry.getSchemaRegistry());
return op.getOperation();
}
Modified: incubator/tuscany/java/sca/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/WSDLOperation.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/WSDLOperation.java?view=diff&rev=447254&r1=447253&r2=447254
==============================================================================
--- incubator/tuscany/java/sca/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/WSDLOperation.java (original)
+++ incubator/tuscany/java/sca/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/WSDLOperation.java Sun Sep 17 22:33:12 2006
@@ -60,9 +60,6 @@
protected List<DataType<QName>> faultTypes;
- // Keep a list of types so that the databindings can be reset
- private List<DataType<?>> types = new ArrayList<DataType<?>>();
-
/**
* @param operation The WSDL4J operation
* @param dataBinding The default databinding
@@ -171,7 +168,6 @@
WSDLPart part = new WSDLPart((Part) p);
DataType<QName> partType = part.getDataType();
partTypes.add(partType);
- types.add(partType);
}
}
return new DataType<List<DataType<QName>>>(dataBinding, Object[].class, partTypes);
@@ -187,7 +183,15 @@
operationModel =
new org.apache.tuscany.spi.model.Operation<QName>(operation.getName(), getInputType(),
getOutputType(), getFaultTypes(), oneway, dataBinding);
- operationModel.addMetaData(WSDLOperation.class.getName(), this);
+ operationModel.setMetaData(WSDLOperation.class.getName(), this);
+ if (isWrapperStyle()) {
+ // Register the operation with the types
+ for (DataType<?> d : wrapper.getUnwrappedInputType().getLogical()) {
+ d.setMetadata(org.apache.tuscany.spi.model.Operation.class.getName(), operationModel);
+ }
+ wrapper.getUnwrappedOutputType().setMetadata(org.apache.tuscany.spi.model.Operation.class.getName(),
+ operationModel);
+ }
}
return operationModel;
}
@@ -413,7 +417,6 @@
DataType<QName> type = new DataType<QName>(dataBinding, Object.class, element.getQName());
type.setMetadata(XmlSchemaElement.class.getName(), element);
childTypes.add(type);
- types.add(type);
}
unwrappedInputType =
new DataType<List<DataType<QName>>>("idl:unwrapped.input", Object[].class, childTypes);
@@ -432,31 +435,9 @@
XmlSchemaElement element = elements.get(0);
unwrappedOutputType = new DataType<QName>(dataBinding, Object.class, element.getQName());
unwrappedOutputType.setMetadata(XmlSchemaElement.class.getName(), element);
- types.add(unwrappedOutputType);
}
}
return unwrappedOutputType;
}
}
-
- /**
- * @return the dataBinding
- */
- public String getDataBinding() {
- return dataBinding;
- }
-
- /**
- * @param dataBinding the dataBinding to set
- */
- public void setDataBinding(String dataBinding) {
- String oldDataBinding = this.dataBinding;
- this.dataBinding = dataBinding;
- if (!dataBinding.equals(oldDataBinding)) {
- for (DataType<?> d : types) {
- d.setDataBinding(this.dataBinding);
- }
- }
- }
-
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/DataType.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/DataType.java?view=diff&rev=447254&r1=447253&r2=447254
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/DataType.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/DataType.java Sun Sep 17 22:33:12 2006
@@ -120,6 +120,13 @@
}
public String getDataBinding() {
+ if (dataBinding == null) {
+ // databinding is not set at the DataType level, check the operation
+ Operation<?> operation = (Operation<?>) getMetadata(Operation.class.getName());
+ if (operation != null) {
+ return operation.getDataBinding();
+ }
+ }
return dataBinding;
}
@@ -135,7 +142,9 @@
result = dataBinding != null ? dataBinding.hashCode() : 0;
result = 29 * result + (physical != null ? physical.hashCode() : 0);
result = 29 * result + (logical != null ? logical.hashCode() : 0);
- result = 29 * result + (metadata != null ? metadata.hashCode() : 0);
+ // Commented the following line out since it causes infinite loop from Operation.hashCode()
+ // if the metadata map contains the Operation
+ // result = 29 * result + (metadata != null ? metadata.hashCode() : 0);
return result;
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Operation.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Operation.java?view=diff&rev=447254&r1=447253&r2=447254
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Operation.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Operation.java Sun Sep 17 22:33:12 2006
@@ -84,9 +84,17 @@
List<DataType<T>> types = Collections.emptyList();
this.inputType = (inputType != null) ? inputType : new DataType<List<DataType<T>>>(Object[].class, types);
this.outputType = (outputType != null) ? outputType : new DataType<T>(void.class, null);
- this.faultTypes = faultTypes;
+ this.faultTypes = (faultTypes == null) ? types : faultTypes;
this.nonBlocking = nonBlocking;
this.dataBinding = dataBinding;
+ // Register the operation with the types
+ for (DataType<?> d : this.inputType.getLogical()) {
+ d.setMetadata(Operation.class.getName(), this);
+ }
+ this.outputType.setMetadata(Operation.class.getName(), this);
+ for (DataType<?> d : this.faultTypes) {
+ d.setMetadata(Operation.class.getName(), this);
+ }
}
/**
@@ -182,7 +190,7 @@
* @return the data binding type specified for the operation or null.
*/
public String getDataBinding() {
- return dataBinding;
+ return (dataBinding == null && contract != null) ? contract.getDataBinding() : dataBinding;
}
/**
@@ -212,7 +220,7 @@
* @param key the metadata key
* @param val the metadata value
*/
- public void addMetaData(String key, Object val) {
+ public void setMetaData(String key, Object val) {
if (metaData == null) {
metaData = new HashMap<String, Object>();
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ServiceContract.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ServiceContract.java?view=diff&rev=447254&r1=447253&r2=447254
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ServiceContract.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ServiceContract.java Sun Sep 17 22:33:12 2006
@@ -188,7 +188,7 @@
* @param key the metadata key
* @param val the metadata value
*/
- public void addMetaData(String key, Object val) {
+ public void setMetaData(String key, Object val) {
if (metaData == null) {
metaData = new HashMap<String, Object>();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org