You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2006/05/05 13:12:42 UTC
svn commit: r400047 - in
/incubator/tuscany/java/sca/bindings/binding.axis2/src:
main/java/org/apache/tuscany/binding/axis2/builder/
main/java/org/apache/tuscany/binding/axis2/handler/
main/java/org/apache/tuscany/binding/axis2/util/ test/java/org/apac...
Author: antelder
Date: Fri May 5 04:12:38 2006
New Revision: 400047
URL: http://svn.apache.org/viewcvs?rev=400047&view=rev
Log:
Fix for TUSCANY-243 and TUSCANY-61 from Raymond
Added:
incubator/tuscany/java/sca/bindings/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/util/CreditScoreDocLit.wsdl
incubator/tuscany/java/sca/bindings/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/util/CreditScoreDocLitWrapped.wsdl
Modified:
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/builder/ExternalWebServiceBuilder.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServiceEntryPointServlet.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServicePortMetaData.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/util/AxiomHelper.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/util/SDODataBinding.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/util/AxiomHelperTestCase.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/util/SDODataBindingTestCase.java
Modified: incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/builder/ExternalWebServiceBuilder.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/builder/ExternalWebServiceBuilder.java?rev=400047&r1=400046&r2=400047&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/builder/ExternalWebServiceBuilder.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/builder/ExternalWebServiceBuilder.java Fri May 5 04:12:38 2006
@@ -36,6 +36,7 @@
import org.apache.tuscany.binding.axis2.config.WSExternalServiceContextFactory;
import org.apache.tuscany.binding.axis2.handler.Axis2OperationInvoker;
import org.apache.tuscany.binding.axis2.handler.Axis2ServiceInvoker;
+import org.apache.tuscany.binding.axis2.handler.WebServiceOperationMetaData;
import org.apache.tuscany.binding.axis2.handler.WebServicePortMetaData;
import org.apache.tuscany.binding.axis2.util.DataBinding;
import org.apache.tuscany.binding.axis2.util.SDODataBinding;
@@ -50,8 +51,7 @@
import commonj.sdo.helper.TypeHelper;
/**
- * Creates a <code>ContextFactory</code> for an external service configured with the {@link
- * WebServiceBinding}
+ * Creates a <code>ContextFactory</code> for an external service configured with the {@link WebServiceBinding}
*/
@Scope("MODULE")
public class ExternalWebServiceBuilder extends ExternalServiceBuilderSupport<WebServiceBinding> {
@@ -116,17 +116,25 @@
for (Method m : sc.getMethods()) {
String methodName = m.getName();
- String wsdlOperationName = wsPortMetaData.getWSDLOperationName(methodName);
- QName wsdlOperationQName = new QName(portTypeNS, wsdlOperationName);
- DataBinding dataBinding = new SDODataBinding(typeHelper, wsdlOperationQName);
+
+ WebServiceOperationMetaData operationMetaData = wsPortMetaData.getOperationMetaData(methodName);
+ boolean isWrapped = operationMetaData.isDocLitWrapped();
+ DataBinding dataBinding = new SDODataBinding(typeHelper, (QName) operationMetaData.getOperationSignature().get(0), isWrapped);
+
Options options = new Options();
options.setTo(new EndpointReference(wsPortMetaData.getEndpoint()));
+ options.setProperty(MessageContextConstants.CHUNKED, Boolean.FALSE);
+
+ String wsdlOperationName = operationMetaData.getBindingOperation().getOperation().getName();
+
String soapAction = wsPortMetaData.getOperationMetaData(wsdlOperationName).getSOAPAction();
- if (soapAction != null && soapAction.length() >1) {
+ if (soapAction != null && soapAction.length() > 1) {
options.setAction(soapAction);
}
- options.setProperty(MessageContextConstants.CHUNKED, Boolean.FALSE);
+
+ QName wsdlOperationQName = new QName(portTypeNS, wsdlOperationName);
Axis2OperationInvoker invoker = new Axis2OperationInvoker(wsdlOperationQName, options, dataBinding, soapFactory);
+
invokers.put(methodName, invoker);
}
Modified: incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServiceEntryPointServlet.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServiceEntryPointServlet.java?rev=400047&r1=400046&r2=400047&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServiceEntryPointServlet.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServiceEntryPointServlet.java Fri May 5 04:12:38 2006
@@ -39,7 +39,7 @@
import org.apache.axis2.description.AxisOperation;
import org.apache.axis2.description.AxisService;
import org.apache.axis2.description.AxisServiceGroup;
-import org.apache.axis2.description.InOutAxisOperation;
+import org.apache.axis2.description.WSDL2AxisServiceBuilder;
import org.apache.axis2.engine.AxisConfiguration;
import org.apache.axis2.transport.http.AxisServlet;
import org.apache.axis2.wsdl.WSDLConstants;
@@ -111,9 +111,12 @@
serviceGroup.setServiceGroupName(wsdlPortInfo.getServiceName().getLocalPart());
axisConfig.addServiceGroup(serviceGroup);
- AxisService axisService = new AxisService(entryPointName);
+ WSDL2AxisServiceBuilder builder = new WSDL2AxisServiceBuilder(definition, wsdlPortInfo.getServiceName(), wsdlPortInfo.getPort().getName());
+ builder.setServerSide(true);
+ AxisService axisService = builder.populateService();
+
+ axisService.setName(entryPointName);
axisService.setParent(serviceGroup);
-// axisService.setWSDLDefinition(definition);
axisService.setServiceDescription("Tuscany configured service EntryPoint name '" + entryPointName + '\'');
TypeHelper typeHelper = wsBinding.getTypeHelper();
@@ -131,14 +134,13 @@
QName responseTypeQN = omd.getOutputPart(0).getElementName();
Method operationMethod = getMethod(serviceInterface, operationName);
- DataBinding dataBinding = new SDODataBinding(typeHelper, responseTypeQN);
+ DataBinding dataBinding = new SDODataBinding(typeHelper, responseTypeQN, omd.isDocLitWrapped());
WebServiceEntryPointInOutSyncMessageReceiver msgrec = new WebServiceEntryPointInOutSyncMessageReceiver(entryPointProxy, operationMethod,
dataBinding);
- AxisOperation axisOp = new InOutAxisOperation(operationQN);
+ AxisOperation axisOp = axisService.getOperation(operationQN);
axisOp.setMessageExchangePattern(WSDLConstants.MEP_URI_IN_OUT);
axisOp.setMessageReceiver(msgrec);
- axisService.addOperation(axisOp);
}
axisConfig.addService(axisService);
Modified: incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServicePortMetaData.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServicePortMetaData.java?rev=400047&r1=400046&r2=400047&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServicePortMetaData.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/handler/WebServicePortMetaData.java Fri May 5 04:12:38 2006
@@ -353,11 +353,15 @@
}
public WebServiceOperationMetaData getOperationMetaData(String operationName) {
+ StringBuilder sb = new StringBuilder(operationName);
+ sb.setCharAt(0, Character.toUpperCase(sb.charAt(0)));
+ String capatalizedOpName = sb.toString();
+
for (Iterator it = getAllOperationMetaData().iterator(); it.hasNext();) {
WebServiceOperationMetaData descriptor = (WebServiceOperationMetaData) it.next();
String opName = descriptor.getBindingOperation().getOperation().getName();
- if (opName.equals(operationName)) {
+ if (opName.equals(operationName) || opName.equals(capatalizedOpName)) {
return descriptor;
}
}
Modified: incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/util/AxiomHelper.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/util/AxiomHelper.java?rev=400047&r1=400046&r2=400047&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/util/AxiomHelper.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/util/AxiomHelper.java Fri May 5 04:12:38 2006
@@ -32,15 +32,16 @@
import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axiom.om.impl.llom.factory.OMXMLBuilderFactory;
import org.apache.tuscany.core.wire.InvocationRuntimeException;
-import org.apache.tuscany.sdo.helper.DataFactoryImpl;
-import org.apache.tuscany.sdo.helper.XMLHelperImpl;
-import org.apache.tuscany.sdo.helper.XSDHelperImpl;
+import org.apache.tuscany.sdo.util.SDOUtil;
import org.osoa.sca.ServiceRuntimeException;
import commonj.sdo.DataObject;
import commonj.sdo.Property;
+import commonj.sdo.Type;
+import commonj.sdo.helper.DataFactory;
import commonj.sdo.helper.TypeHelper;
import commonj.sdo.helper.XMLDocument;
+import commonj.sdo.helper.XMLHelper;
import commonj.sdo.helper.XSDHelper;
/**
@@ -59,26 +60,38 @@
*
* @param om
* the OMElement
+ * @param isWrapped
+ *
* @return the array of deserialized Java objects
*/
- public static Object[] toObjects(TypeHelper typeHelper, OMElement om) {
+ public static Object[] toObjects(TypeHelper typeHelper, OMElement om, boolean isWrapped) {
DataObject dataObject = toDataObject(typeHelper, om);
- return toObjects(dataObject);
+ return toObjects(dataObject, isWrapped);
}
/**
* Convert a typed DataObject to Java objects
*
* @param dataObject
+ * @param isWrapped
* @return the array of Objects from the DataObject
*/
- public static Object[] toObjects(DataObject dataObject) {
- List ips = dataObject.getInstanceProperties();
- Object[] os = new Object[ips.size()];
- for (int i = 0; i < ips.size(); i++) {
- os[i] = dataObject.get((Property) ips.get(i));
+ public static Object[] toObjects(DataObject dataObject, boolean isWrapped) {
+ if (isWrapped) {
+ List ips = dataObject.getInstanceProperties();
+ Object[] os = new Object[ips.size()];
+ for (int i = 0; i < ips.size(); i++) {
+ os[i] = dataObject.get((Property) ips.get(i));
+ }
+ return os;
+ } else {
+ Object object = dataObject;
+ Type type = dataObject.getType();
+ if (type.isSequenced()) {
+ object = dataObject.getSequence().getValue(0);
+ }
+ return new Object[] { object };
}
- return os;
}
/**
@@ -89,9 +102,9 @@
* @param typeName
* @return an AXIOM OMElement
*/
- public static OMElement toOMElement(TypeHelper typeHelper, Object[] os, QName typeQN) {
- DataObject dataObject = toDataObject(typeHelper, os, typeQN);
- return toOMElement(typeHelper, dataObject, typeQN);
+ public static OMElement toOMElement(TypeHelper typeHelper, Object[] os, QName elementQName, boolean isWrapped) {
+ DataObject dataObject = toDataObject(typeHelper, os, elementQName, isWrapped);
+ return toOMElement(typeHelper, dataObject, elementQName);
}
/**
@@ -104,11 +117,12 @@
* @throws XMLStreamException
* @throws IOException
*/
- public static OMElement toOMElement(TypeHelper typeHelper, DataObject dataObject, QName typeQN) {
+ public static OMElement toOMElement(TypeHelper typeHelper, DataObject dataObject, QName elementQName) {
try {
- ByteArrayOutputStream pos = new java.io.ByteArrayOutputStream();
- new XMLHelperImpl(typeHelper).save(dataObject, typeQN.getNamespaceURI(), typeQN.getLocalPart(), pos);
+ ByteArrayOutputStream pos = new ByteArrayOutputStream();
+ XMLHelper xmlHelper = SDOUtil.createXMLHelper(typeHelper);
+ xmlHelper.save(dataObject, elementQName.getNamespaceURI(), elementQName.getLocalPart(), pos);
pos.close();
XMLStreamReader parser;
@@ -142,7 +156,7 @@
public static DataObject toDataObject(TypeHelper typeHelper, OMElement omElement) {
try {
- ByteArrayOutputStream pos = new java.io.ByteArrayOutputStream();
+ ByteArrayOutputStream pos = new ByteArrayOutputStream();
ClassLoader ccl = Thread.currentThread().getContextClassLoader();
try {
@@ -155,7 +169,8 @@
pos.flush();
pos.close();
- XMLDocument document = new XMLHelperImpl(typeHelper).load(new ByteArrayInputStream(pos.toByteArray()));
+ XMLHelper xmlHelper = SDOUtil.createXMLHelper(typeHelper);
+ XMLDocument document = xmlHelper.load(new ByteArrayInputStream(pos.toByteArray()));
return document.getRootObject();
@@ -174,18 +189,30 @@
* @param os
* @return the DataObject
*/
- public static DataObject toDataObject(TypeHelper typeHelper, Object[] os, QName typeQN) {
- XSDHelper xsdHelper = new XSDHelperImpl(typeHelper);
- Property property = xsdHelper.getGlobalProperty(typeQN.getNamespaceURI(), typeQN.getLocalPart(), true);
- if(null == property){
- throw new InvocationRuntimeException("Type '" + typeQN.toString() + "' not found in registered SDO types." );
+ public static DataObject toDataObject(TypeHelper typeHelper, Object[] os, QName elementQName, boolean isWrapped) {
+ XSDHelper xsdHelper = SDOUtil.createXSDHelper(typeHelper);
+
+ Property property = xsdHelper.getGlobalProperty(elementQName.getNamespaceURI(), elementQName.getLocalPart(), true);
+ if (null == property) {
+ throw new InvocationRuntimeException("Type '" + elementQName.toString() + "' not found in registered SDO types.");
}
- DataObject dataObject = new DataFactoryImpl(typeHelper).create(property.getType());
- List ips = dataObject.getInstanceProperties();
- for (int i = 0; i < ips.size(); i++) {
- dataObject.set(i, os[i]);
+ if (isWrapped) {
+ DataFactory dataFactory = SDOUtil.createDataFactory(typeHelper);
+ DataObject dataObject = dataFactory.create(property.getType());
+ List ips = dataObject.getInstanceProperties();
+ for (int i = 0; i < ips.size(); i++) {
+ dataObject.set(i, os[i]);
+ }
+ return dataObject;
+ } else {
+ Object value = os[0];
+ Type type = property.getType();
+ if (!type.isDataType()) {
+ return (DataObject) value;
+ } else {
+ return SDOUtil.createDataTypeWrapper(type, value);
+ }
}
- return dataObject;
}
}
Modified: incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/util/SDODataBinding.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/util/SDODataBinding.java?rev=400047&r1=400046&r2=400047&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/util/SDODataBinding.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/util/SDODataBinding.java Fri May 5 04:12:38 2006
@@ -27,15 +27,18 @@
private QName typeQN;
- public SDODataBinding(TypeHelper typeHelper, QName typeQN) {
+ private boolean isWrapped;
+
+ public SDODataBinding(TypeHelper typeHelper, QName typeQN, boolean isWrapped) {
this.typeHelper = typeHelper;
this.typeQN = typeQN;
+ this.isWrapped = isWrapped;
}
public Object[] fromOMElement(OMElement omElement) {
ClassLoader oldCL = ClassLoaderHelper.setApplicationClassLoader();
try {
- Object[] args = AxiomHelper.toObjects(typeHelper, omElement);
+ Object[] args = AxiomHelper.toObjects(typeHelper, omElement, isWrapped);
return args;
} finally {
if (oldCL != null) {
@@ -47,7 +50,7 @@
public OMElement toOMElement(Object[] args) {
ClassLoader oldCL = ClassLoaderHelper.setApplicationClassLoader();
try {
- OMElement omElement = AxiomHelper.toOMElement(typeHelper, args, typeQN);
+ OMElement omElement = AxiomHelper.toOMElement(typeHelper, args, typeQN, isWrapped);
return omElement;
} finally {
if (oldCL != null) {
Modified: incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/util/AxiomHelperTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/util/AxiomHelperTestCase.java?rev=400047&r1=400046&r2=400047&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/util/AxiomHelperTestCase.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/util/AxiomHelperTestCase.java Fri May 5 04:12:38 2006
@@ -7,27 +7,28 @@
import junit.framework.TestCase;
import org.apache.axiom.om.OMElement;
-import org.apache.tuscany.sdo.helper.XSDHelperImpl;
import org.apache.tuscany.sdo.util.DataObjectUtil;
import org.apache.tuscany.sdo.util.SDOUtil;
import commonj.sdo.DataObject;
+import commonj.sdo.helper.DataFactory;
import commonj.sdo.helper.TypeHelper;
-
+import commonj.sdo.helper.XSDHelper;
public class AxiomHelperTestCase extends TestCase {
- public static final QName GREETING_QN = new QName("http://helloworldaxis.samples.tuscany.apache.org",
- "getGreetings");
-
+ public static final QName GREETING_QN = new QName("http://helloworldaxis.samples.tuscany.apache.org", "getGreetings");
+
+ public static final QName DOCLIT_QN = new QName("http://www.example.org/creditscore/doclit/", "getCreditScoreRequest");
+
private TypeHelper typeHelper;
public void testToObjects1() {
String s = "petra";
- OMElement omElement = AxiomHelper.toOMElement(typeHelper, new Object[] {s}, GREETING_QN);
+ OMElement omElement = AxiomHelper.toOMElement(typeHelper, new Object[] { s }, GREETING_QN, true);
assertNotNull(omElement);
- Object[] os = AxiomHelper.toObjects(typeHelper, omElement);
+ Object[] os = AxiomHelper.toObjects(typeHelper, omElement, true);
assertNotNull(os);
assertEquals(os.length, 1);
assertEquals(os[0], s);
@@ -35,10 +36,10 @@
public void testToObjects2() {
String s = "sue";
- DataObject dataObject = AxiomHelper.toDataObject(typeHelper, new Object[] {s}, GREETING_QN);
+ DataObject dataObject = AxiomHelper.toDataObject(typeHelper, new Object[] { s }, GREETING_QN, true);
assertNotNull(dataObject);
- Object[] os = AxiomHelper.toObjects(dataObject);
+ Object[] os = AxiomHelper.toObjects(dataObject, true);
assertNotNull(os);
assertEquals(os.length, 1);
assertEquals(os[0], s);
@@ -46,25 +47,52 @@
public void testToOMElement1() {
String s = "beate";
- OMElement omElement = AxiomHelper.toOMElement(typeHelper, new Object[] {s}, GREETING_QN);
+ OMElement omElement = AxiomHelper.toOMElement(typeHelper, new Object[] { s }, GREETING_QN, true);
assertNotNull(omElement);
}
public void testToOMElement2() {
String s = "emma";
- DataObject dataObject = AxiomHelper.toDataObject(typeHelper, new Object[] {s}, GREETING_QN);
+ DataObject dataObject = AxiomHelper.toDataObject(typeHelper, new Object[] { s }, GREETING_QN, true);
assertNotNull(dataObject);
OMElement omElement = AxiomHelper.toOMElement(typeHelper, dataObject, GREETING_QN);
assertNotNull(omElement);
}
+ public void testToOMElement3() {
+ DataFactory dataFactory = SDOUtil.createDataFactory(typeHelper);
+ DataObject dataObject = dataFactory.create("http://www.example.org/creditscore/doclit/", "Customer");
+ dataObject.setString(0, "111-22-3333");
+ dataObject.setString(1, "John");
+ dataObject.setString(2, "Smith");
+
+ OMElement omElement = AxiomHelper.toOMElement(typeHelper, new Object[] { dataObject }, DOCLIT_QN, false);
+ assertNotNull(omElement);
+
+ Object[] os = AxiomHelper.toObjects(typeHelper, omElement, false);
+ assertNotNull(os);
+ assertEquals(os.length, 1);
+ assertTrue(os[0] instanceof DataObject);
+
+ dataObject = (DataObject) os[0];
+ assertEquals(dataObject.getString(0), "111-22-3333");
+ assertEquals(dataObject.getString(1), "John");
+ assertEquals(dataObject.getString(2), "Smith");
+
+ dataObject = AxiomHelper.toDataObject(typeHelper, omElement);
+ assertEquals(dataObject.getString(0), "111-22-3333");
+ assertEquals(dataObject.getString(1), "John");
+ assertEquals(dataObject.getString(2), "Smith");
+
+ }
+
public void testToDataObject() {
String s = "bersi";
- DataObject dataObject = AxiomHelper.toDataObject(typeHelper, new Object[] {s}, GREETING_QN);
+ DataObject dataObject = AxiomHelper.toDataObject(typeHelper, new Object[] { s }, GREETING_QN, true);
assertNotNull(dataObject);
- Object[] os = AxiomHelper.toObjects(dataObject);
+ Object[] os = AxiomHelper.toObjects(dataObject, true);
assertNotNull(os);
assertEquals(os.length, 1);
assertEquals(os[0], s);
@@ -77,8 +105,11 @@
try {
Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
typeHelper = SDOUtil.createTypeHelper();
+ XSDHelper xsdHelper = SDOUtil.createXSDHelper(typeHelper);
URL url = getClass().getResource("helloworld.wsdl");
- new XSDHelperImpl(typeHelper).define(url.openStream(), null);
+ xsdHelper.define(url.openStream(), null);
+ url = getClass().getResource("CreditScoreDocLit.wsdl");
+ xsdHelper.define(url.openStream(), null);
} finally {
Thread.currentThread().setContextClassLoader(cl);
}
Modified: incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/util/SDODataBindingTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/util/SDODataBindingTestCase.java?rev=400047&r1=400046&r2=400047&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/util/SDODataBindingTestCase.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/util/SDODataBindingTestCase.java Fri May 5 04:12:38 2006
@@ -23,28 +23,77 @@
import junit.framework.TestCase;
import org.apache.axiom.om.OMElement;
-import org.apache.tuscany.sdo.helper.XSDHelperImpl;
import org.apache.tuscany.sdo.util.DataObjectUtil;
import org.apache.tuscany.sdo.util.SDOUtil;
+import commonj.sdo.DataObject;
+import commonj.sdo.helper.DataFactory;
import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.helper.XSDHelper;
public class SDODataBindingTestCase extends TestCase {
+ public static final QName DOCLITWRAPPED_QN = new QName("http://www.example.org/creditscore/doclitwrapped/", "getCreditScore");
- private SDODataBinding dataBinding;
+ public static final QName DOCLIT_QN = new QName("http://www.example.org/creditscore/doclit/", "getCreditScoreRequest");
+
+ public static final QName GREETING_QN = new QName("http://helloworldaxis.samples.tuscany.apache.org", "getGreetings");
+
+ private TypeHelper typeHelper;
+
+ private SDODataBinding docLitWrappedDB;
+
+ private SDODataBinding docLitDB;
+
+ private SDODataBinding greetingDB;
public void testToOMElement() {
String s = "petra";
- OMElement omElement = dataBinding.toOMElement(new Object[] { s });
+ OMElement omElement = greetingDB.toOMElement(new Object[] { s });
assertNotNull(omElement);
- Object[] os = dataBinding.fromOMElement(omElement);
+ Object[] os = greetingDB.fromOMElement(omElement);
assertNotNull(os);
assertEquals(1, os.length);
assertEquals(s, os[0]);
}
+ public void testDocLit() {
+ DataFactory dataFactory = SDOUtil.createDataFactory(typeHelper);
+ DataObject dataObject = dataFactory.create("http://www.example.org/creditscore/doclit/", "Customer");
+ dataObject.setString(0, "111-22-3333");
+ dataObject.setString(1, "John");
+ dataObject.setString(2, "Smith");
+
+ OMElement omElement = docLitDB.toOMElement(new Object[] { dataObject });
+ assertNotNull(omElement);
+
+ Object[] os = docLitDB.fromOMElement(omElement);
+ assertNotNull(os);
+ assertEquals(os.length, 1);
+ assertTrue(os[0] instanceof DataObject);
+
+ dataObject = (DataObject) os[0];
+ assertEquals(dataObject.getString(0), "111-22-3333");
+ assertEquals(dataObject.getString(1), "John");
+ assertEquals(dataObject.getString(2), "Smith");
+ }
+
+ public void testDocLitWrapped() {
+ Object[] args = new Object[] { "111-22-3333", "John", "Smith" };
+
+ OMElement omElement = docLitWrappedDB.toOMElement(args);
+ assertNotNull(omElement);
+
+ Object[] os = docLitWrappedDB.fromOMElement(omElement);
+ assertNotNull(os);
+ assertEquals(os.length, 3);
+
+ assertEquals(os[0], "111-22-3333");
+ assertEquals(os[1], "John");
+ assertEquals(os[2], "Smith");
+ }
+
protected void setUp() throws Exception {
super.setUp();
DataObjectUtil.initRuntime();
@@ -52,13 +101,19 @@
try {
Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
- TypeHelper typeHelper = SDOUtil.createTypeHelper();
+ typeHelper = SDOUtil.createTypeHelper();
+ XSDHelper xsdHelper = SDOUtil.createXSDHelper(typeHelper);
URL url = getClass().getResource("helloworld.wsdl");
- new XSDHelperImpl(typeHelper).define(url.openStream(), null);
+ xsdHelper.define(url.openStream(), null);
+ url = getClass().getResource("CreditScoreDocLitWrapped.wsdl");
+ xsdHelper.define(url.openStream(), null);
+ url = getClass().getResource("CreditScoreDocLit.wsdl");
+ xsdHelper.define(url.openStream(), null);
- QName getGreetingsQName = new QName("http://helloworldaxis.samples.tuscany.apache.org", "getGreetings");
+ this.greetingDB = new SDODataBinding(typeHelper, GREETING_QN, true);
+ this.docLitWrappedDB = new SDODataBinding(typeHelper, DOCLITWRAPPED_QN, true);
- this.dataBinding = new SDODataBinding(typeHelper, getGreetingsQName);
+ this.docLitDB = new SDODataBinding(typeHelper, DOCLIT_QN, false);
} finally {
Thread.currentThread().setContextClassLoader(cl);
Added: incubator/tuscany/java/sca/bindings/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/util/CreditScoreDocLit.wsdl
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/bindings/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/util/CreditScoreDocLit.wsdl?rev=400047&view=auto
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/util/CreditScoreDocLit.wsdl (added)
+++ incubator/tuscany/java/sca/bindings/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/util/CreditScoreDocLit.wsdl Fri May 5 04:12:38 2006
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://www.example.org/creditscore/doclit/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="CreditScore"
+ targetNamespace="http://www.example.org/creditscore/doclit/">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://www.example.org/creditscore/doclit/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="getCreditScoreRequest" type="tns:Customer" />
+ <xsd:complexType name="Customer">
+ <xsd:sequence>
+ <xsd:element name="ssn" type="xsd:string" />
+ <xsd:element name="firstName" type="xsd:string" />
+ <xsd:element name="lastName" type="xsd:string" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:element name="getCreditScoreResponse" type="tns:CreditReport"/>
+ <xsd:complexType name="CreditReport">
+ <xsd:sequence>
+ <xsd:element name="score" type="xsd:int"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="getCreditScoreResponse">
+ <wsdl:part element="tns:getCreditScoreResponse"
+ name="getCreditScoreResponse" />
+ </wsdl:message>
+ <wsdl:message name="getCreditScoreRequest">
+ <wsdl:part element="tns:getCreditScoreRequest"
+ name="getCreditScoreRequest" />
+ </wsdl:message>
+ <wsdl:portType name="CreditScoreDocLit">
+ <wsdl:operation name="getCreditScore">
+ <wsdl:input message="tns:getCreditScoreRequest" />
+ <wsdl:output message="tns:getCreditScoreResponse" />
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="CreditScoreDocLitSOAP" type="tns:CreditScoreDocLit">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="getCreditScore">
+ <soap:operation
+ soapAction="http://www.example.org/creditscore/doclit/getCreditScore" />
+ <wsdl:input>
+ <soap:body parts="getCreditScoreRequest" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="getCreditScoreResponse" use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="CreditScore">
+ <wsdl:port binding="tns:CreditScoreDocLitSOAP"
+ name="CreditScoreDocLitSOAP">
+ <soap:address location="http://www.example.org/" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
Added: incubator/tuscany/java/sca/bindings/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/util/CreditScoreDocLitWrapped.wsdl
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/bindings/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/util/CreditScoreDocLitWrapped.wsdl?rev=400047&view=auto
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/util/CreditScoreDocLitWrapped.wsdl (added)
+++ incubator/tuscany/java/sca/bindings/binding.axis2/src/test/resources/org/apache/tuscany/binding/axis2/util/CreditScoreDocLitWrapped.wsdl Fri May 5 04:12:38 2006
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://www.example.org/creditscore/doclitwrapped/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="CreditScore"
+ targetNamespace="http://www.example.org/creditscore/doclitwrapped/">
+ <wsdl:types>
+ <xsd:schema
+ targetNamespace="http://www.example.org/creditscore/doclitwrapped/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="getCreditScoreResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="score" type="xsd:int" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getCreditScore">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="ssn" type="xsd:string" />
+ <xsd:element name="firstName" type="xsd:string" />
+ <xsd:element name="lastName" type="xsd:string" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="getCreditScoreResponse">
+ <wsdl:part element="tns:getCreditScoreResponse"
+ name="getCreditScoreResponse" />
+ </wsdl:message>
+ <wsdl:message name="getCreditScoreRequest">
+ <wsdl:part element="tns:getCreditScore"
+ name="getCreditScoreRequest" />
+ </wsdl:message>
+ <wsdl:portType name="CreditScoreDocLitWrapped">
+ <wsdl:operation name="getCreditScore">
+ <wsdl:input message="tns:getCreditScoreRequest" />
+ <wsdl:output message="tns:getCreditScoreResponse" />
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="CreditScoreDocLitWrappedSOAP" type="tns:CreditScoreDocLitWrapped">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="getCreditScore">
+ <soap:operation
+ soapAction="http://www.example.org/creditscore/doclitwrapped/getCreditScore" />
+ <wsdl:input>
+ <soap:body parts="getCreditScoreRequest" use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body parts="getCreditScoreResponse" use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="CreditScore">
+ <wsdl:port binding="tns:CreditScoreDocLitWrappedSOAP"
+ name="CreditScoreDocLitWrappedSOAP">
+ <soap:address location="http://localhost:8080/CreditScoreService/services/CreditScoreDocLitWrappedSOAP"/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>