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);