You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by di...@apache.org on 2005/04/26 23:06:37 UTC
cvs commit: ws-axis/java/src/org/apache/axis/encoding/ser SimpleDeserializerFactory.java SimpleSerializer.java SimpleSerializerFactory.java
dims 2005/04/26 14:06:37
Modified: java/src/org/apache/axis/utils JavaUtils.java
java/src/org/apache/axis/encoding/ser
SimpleDeserializerFactory.java
SimpleSerializer.java SimpleSerializerFactory.java
Log:
Fix for AXIS-1910 - CLONE -axis serializes unwanted attributes (e.g. lowestSetBit of java.math.BigInteger)
Revision Changes Path
1.118 +44 -0 ws-axis/java/src/org/apache/axis/utils/JavaUtils.java
Index: JavaUtils.java
===================================================================
RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/utils/JavaUtils.java,v
retrieving revision 1.117
retrieving revision 1.118
diff -u -r1.117 -r1.118
--- JavaUtils.java 23 Mar 2005 02:22:41 -0000 1.117
+++ JavaUtils.java 26 Apr 2005 21:06:36 -0000 1.118
@@ -140,6 +140,50 @@
return null;
}
+ /*
+ * Any builtin type that has a constructor that takes a String is a basic
+ * type.
+ * This is for optimization purposes, so that we don't introspect
+ * primitive java types or some basic Axis types.
+ */
+ public static boolean isBasic(Class javaType) {
+ return (javaType.isPrimitive() ||
+ javaType == String.class ||
+ javaType == Boolean.class ||
+ javaType == Float.class ||
+ javaType == Double.class ||
+ Number.class.isAssignableFrom(javaType) ||
+ javaType == org.apache.axis.types.Day.class ||
+ javaType == org.apache.axis.types.Duration.class ||
+ javaType == org.apache.axis.types.Entities.class ||
+ javaType == org.apache.axis.types.Entity.class ||
+ javaType == HexBinary.class ||
+ javaType == org.apache.axis.types.Id.class ||
+ javaType == org.apache.axis.types.IDRef.class ||
+ javaType == org.apache.axis.types.IDRefs.class ||
+ javaType == org.apache.axis.types.Language.class ||
+ javaType == org.apache.axis.types.Month.class ||
+ javaType == org.apache.axis.types.MonthDay.class ||
+ javaType == org.apache.axis.types.Name.class ||
+ javaType == org.apache.axis.types.NCName.class ||
+ javaType == org.apache.axis.types.NegativeInteger.class ||
+ javaType == org.apache.axis.types.NMToken.class ||
+ javaType == org.apache.axis.types.NMTokens.class ||
+ javaType == org.apache.axis.types.NonNegativeInteger.class ||
+ javaType == org.apache.axis.types.NonPositiveInteger.class ||
+ javaType == org.apache.axis.types.NormalizedString.class ||
+ javaType == org.apache.axis.types.PositiveInteger.class ||
+ javaType == org.apache.axis.types.Time.class ||
+ javaType == org.apache.axis.types.Token.class ||
+ javaType == org.apache.axis.types.UnsignedByte.class ||
+ javaType == org.apache.axis.types.UnsignedInt.class ||
+ javaType == org.apache.axis.types.UnsignedLong.class ||
+ javaType == org.apache.axis.types.UnsignedShort.class ||
+ javaType == org.apache.axis.types.URI.class ||
+ javaType == org.apache.axis.types.Year.class ||
+ javaType == org.apache.axis.types.YearMonth.class);
+ }
+
/**
* It the argument to the convert(...) method implements
* the ConvertCache interface, the convert(...) method
1.18 +2 -44 ws-axis/java/src/org/apache/axis/encoding/ser/SimpleDeserializerFactory.java
Index: SimpleDeserializerFactory.java
===================================================================
RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/encoding/ser/SimpleDeserializerFactory.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- SimpleDeserializerFactory.java 15 Mar 2005 13:33:45 -0000 1.17
+++ SimpleDeserializerFactory.java 26 Apr 2005 21:06:36 -0000 1.18
@@ -18,6 +18,7 @@
import org.apache.axis.utils.BeanUtils;
import org.apache.axis.utils.BeanPropertyDescriptor;
+import org.apache.axis.utils.JavaUtils;
import javax.xml.namespace.QName;
import javax.xml.rpc.JAXRPCException;
@@ -49,7 +50,7 @@
**/
public SimpleDeserializerFactory(Class javaType, QName xmlType) {
super(SimpleDeserializer.class, xmlType, javaType);
- this.isBasicType = isBasic(javaType);
+ this.isBasicType = JavaUtils.isBasic(javaType);
initConstructor(javaType);
}
@@ -82,49 +83,6 @@
}
}
- /*
- * Any builtin type that has a constructor that takes a String is a basic
- * type.
- * This is for optimization purposes, so that we don't introspect
- * primitive java types or some basic Axis types.
- */
- public static boolean isBasic(Class javaType) {
- return (javaType.isPrimitive() ||
- javaType == java.lang.String.class ||
- javaType == java.lang.Boolean.class ||
- javaType == java.lang.Float.class ||
- javaType == java.lang.Double.class ||
- javaType == org.apache.axis.types.Day.class ||
- javaType == org.apache.axis.types.Duration.class ||
- javaType == org.apache.axis.types.Entities.class ||
- javaType == org.apache.axis.types.Entity.class ||
- javaType == org.apache.axis.types.HexBinary.class ||
- javaType == org.apache.axis.types.Id.class ||
- javaType == org.apache.axis.types.IDRef.class ||
- javaType == org.apache.axis.types.IDRefs.class ||
- javaType == org.apache.axis.types.Language.class ||
- javaType == org.apache.axis.types.Month.class ||
- javaType == org.apache.axis.types.MonthDay.class ||
- javaType == org.apache.axis.types.Name.class ||
- javaType == org.apache.axis.types.NCName.class ||
- javaType == org.apache.axis.types.NegativeInteger.class ||
- javaType == org.apache.axis.types.NMToken.class ||
- javaType == org.apache.axis.types.NMTokens.class ||
- javaType == org.apache.axis.types.NonNegativeInteger.class ||
- javaType == org.apache.axis.types.NonPositiveInteger.class ||
- javaType == org.apache.axis.types.NormalizedString.class ||
- javaType == org.apache.axis.types.PositiveInteger.class ||
- javaType == org.apache.axis.types.Time.class ||
- javaType == org.apache.axis.types.Token.class ||
- javaType == org.apache.axis.types.UnsignedByte.class ||
- javaType == org.apache.axis.types.UnsignedInt.class ||
- javaType == org.apache.axis.types.UnsignedLong.class ||
- javaType == org.apache.axis.types.UnsignedShort.class ||
- javaType == org.apache.axis.types.URI.class ||
- javaType == org.apache.axis.types.Year.class ||
- javaType == org.apache.axis.types.YearMonth.class);
- }
-
/**
* Get the Deserializer and the set the Constructor so the
* deserializer does not have to do introspection.
1.39 +2 -1 ws-axis/java/src/org/apache/axis/encoding/ser/SimpleSerializer.java
Index: SimpleSerializer.java
===================================================================
RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/encoding/ser/SimpleSerializer.java,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -r1.38 -r1.39
--- SimpleSerializer.java 7 Feb 2005 07:54:04 -0000 1.38
+++ SimpleSerializer.java 26 Apr 2005 21:06:36 -0000 1.39
@@ -26,6 +26,7 @@
import org.apache.axis.utils.BeanPropertyDescriptor;
import org.apache.axis.utils.BeanUtils;
import org.apache.axis.utils.Messages;
+import org.apache.axis.utils.JavaUtils;
import org.apache.axis.wsdl.fromJava.Types;
import org.w3c.dom.Element;
import org.xml.sax.Attributes;
@@ -71,7 +72,7 @@
// generate a fresh one.
if (typeDesc != null) {
propertyDescriptor = typeDesc.getPropertyDescriptors();
- } else if (!SimpleDeserializerFactory.isBasic(javaType)) {
+ } else if (!JavaUtils.isBasic(javaType)) {
propertyDescriptor = BeanUtils.getPd(javaType, null);
}
}
1.5 +3 -13 ws-axis/java/src/org/apache/axis/encoding/ser/SimpleSerializerFactory.java
Index: SimpleSerializerFactory.java
===================================================================
RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/encoding/ser/SimpleSerializerFactory.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- SimpleSerializerFactory.java 18 Nov 2004 23:39:18 -0000 1.4
+++ SimpleSerializerFactory.java 26 Apr 2005 21:06:36 -0000 1.5
@@ -19,6 +19,8 @@
*/
package org.apache.axis.encoding.ser;
+import org.apache.axis.utils.JavaUtils;
+
import javax.xml.namespace.QName;
import javax.xml.rpc.JAXRPCException;
@@ -32,19 +34,7 @@
**/
public SimpleSerializerFactory(Class javaType, QName xmlType) {
super(SimpleSerializer.class, xmlType, javaType);
- this.isBasicType = isBasic(javaType);
- }
-
- /*
- * Any builtin type that has a constructor that takes a String is a basic
- * type.
- * This is for optimization purposes, so that we don't introspect
- * primitive java types or some basic Axis types.
- */
- private static boolean isBasic(Class javaType) {
- return (javaType.isPrimitive() ||
- javaType == java.lang.String.class ||
- javaType == org.apache.axis.types.URI.class);
+ this.isBasicType = JavaUtils.isBasic(javaType);
}
public javax.xml.rpc.encoding.Serializer getSerializerAs(String mechanismType) throws JAXRPCException {