snichol 2004/06/22 14:39:48
Modified: java/docs changes.html java/src/org/apache/soap Constants.java java/src/org/apache/soap/encoding SOAPMappingRegistry.java Log: Map deserializers for the SOAP-ENC equivalents of 2001 XSD types. Revision Changes Path 1.55 +3 -0 ws-soap/java/docs/changes.html Index: changes.html =================================================================== RCS file: /home/cvs/ws-soap/java/docs/changes.html,v retrieving revision 1.54 retrieving revision 1.55 diff -u -r1.54 -r1.55 --- changes.html 7 Apr 2004 03:03:42 -0000 1.54 +++ changes.html 22 Jun 2004 21:39:48 -0000 1.55 @@ -109,6 +109,9 @@ <li>Add the ability to return text attachments from COM-based services by setting <code><isd:option key="AttachString" value="true"/></code> within the <code>isd:provider</code> element in the deployment descriptor.</li> + <li>Fix a bug in MessageRouter#invoke that treated custom provider services + as scripts rather than Java.</li> + <li>Map deserializers for the SOAP-ENC equivalents of 2001 XSD types.</li> </ul> </li> </ul> 1.32 +29 -0 ws-soap/java/src/org/apache/soap/Constants.java Index: Constants.java =================================================================== RCS file: /home/cvs/ws-soap/java/src/org/apache/soap/Constants.java,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- Constants.java 7 Apr 2004 20:51:35 -0000 1.31 +++ Constants.java 22 Jun 2004 21:39:48 -0000 1.32 @@ -269,6 +269,35 @@ public static final QName object2001QName = new QName(Constants.NS_URI_2001_SCHEMA_XSD, "anyType"); + public static final QName stringSoapEncQName = + new QName(Constants.NS_URI_SOAP_ENC, "string"); + public static final QName intSoapEncQName = + new QName(Constants.NS_URI_SOAP_ENC, "int"); + public static final QName decimalSoapEncQName = + new QName(Constants.NS_URI_SOAP_ENC, "decimal"); + public static final QName floatSoapEncQName = + new QName(Constants.NS_URI_SOAP_ENC, "float"); + public static final QName doubleSoapEncQName = + new QName(Constants.NS_URI_SOAP_ENC, "double"); + public static final QName dateSoapEncQName = + new QName(Constants.NS_URI_SOAP_ENC, "date"); + public static final QName booleanSoapEncQName = + new QName(Constants.NS_URI_SOAP_ENC, "boolean"); + public static final QName longSoapEncQName = + new QName(Constants.NS_URI_SOAP_ENC, "long"); + public static final QName shortSoapEncQName = + new QName(Constants.NS_URI_SOAP_ENC, "short"); + public static final QName byteSoapEncQName = + new QName(Constants.NS_URI_SOAP_ENC, "byte"); + public static final QName hexSoapEncQName = + new QName(Constants.NS_URI_SOAP_ENC, "hexBinary"); + public static final QName qNameSoapEncQName = + new QName(Constants.NS_URI_SOAP_ENC, "QName"); + public static final QName timeInstSoapEncQName = + new QName(Constants.NS_URI_SOAP_ENC, "dateTime"); + public static final QName objectSoapEncQName = + new QName(Constants.NS_URI_SOAP_ENC, "anyType"); + public static final ContentType CTYPE_TEXT_ALL = MimeUtils.getContentType("text/*"); public static final ContentType CTYPE_TEXT_XML = MimeUtils.getContentType("text/xml"); public static final ContentType CTYPE_MULTIPART = MimeUtils.getContentType( 1.41 +31 -0 ws-soap/java/src/org/apache/soap/encoding/SOAPMappingRegistry.java Index: SOAPMappingRegistry.java =================================================================== RCS file: /home/cvs/ws-soap/java/src/org/apache/soap/encoding/SOAPMappingRegistry.java,v retrieving revision 1.40 retrieving revision 1.41 diff -u -r1.40 -r1.41 --- SOAPMappingRegistry.java 7 Apr 2004 20:51:36 -0000 1.40 +++ SOAPMappingRegistry.java 22 Jun 2004 21:39:48 -0000 1.41 @@ -173,6 +173,34 @@ Constants.object2001QName, }; + private static QName soapEncQNames [] = { + Constants.stringSoapEncQName, + Constants.intSoapEncQName, + Constants.intSoapEncQName, + Constants.decimalSoapEncQName, + Constants.floatSoapEncQName, + Constants.floatSoapEncQName, + Constants.doubleSoapEncQName, + Constants.doubleSoapEncQName, + Constants.booleanSoapEncQName, + Constants.booleanSoapEncQName, + Constants.longSoapEncQName, + Constants.longSoapEncQName, + Constants.shortSoapEncQName, + Constants.shortSoapEncQName, + Constants.byteSoapEncQName, + Constants.byteSoapEncQName, + Constants.hexSoapEncQName, + Constants.qNameSoapEncQName, + Constants.dateSoapEncQName, + Constants.timeInstSoapEncQName, + dataHandlerQName, // for null DataHandler + dataHandlerQName, // for null DataHandler + dataHandlerQName, // for null DataHandler + dataHandlerQName, // for null DataHandler + Constants.objectSoapEncQName, + }; + private static Class classes [] = { String.class, Integer.class, @@ -400,6 +428,9 @@ // map the ones that I want to do read-write with mapSchemaTypes(schemaQNames, true); + + // map the SOAP-ENC deserializers + mapSchemaTypes(soapEncQNames, false); // add a mapping for serialization of null Objects addJavaToXMLMap(soapEncURI, objectQName, Object.class);