Author: sagara Date: Fri Dec 28 10:05:55 2012 New Revision: 1426447 URL: http://svn.apache.org/viewvc?rev=1426447&view=rev Log: Applied patch for AXIS2-5427.
Modified: axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderImpl.java axis/axis2/java/core/trunk/modules/adb/test/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderTest.java Modified: axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderImpl.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderImpl.java?rev=1426447&r1=1426446&r2=1426447&view=diff ============================================================================== --- axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderImpl.java (original) +++ axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderImpl.java Fri Dec 28 10:05:55 2012 @@ -939,6 +939,19 @@ public class ADBXMLStreamReaderImpl impl (String)propertyValue); childReader.addNamespaceContext(this.namespaceContext); childReader.init(); + } else if (propertyValue instanceof Integer + || propertyValue instanceof Long + || propertyValue instanceof Double + || propertyValue instanceof Float + || propertyValue instanceof Character + || propertyValue instanceof Short) { + //all primitive wrapped generic type instances are converted to Strings and handled by the + // NameValuePairStreamReader + childReader = + new NameValuePairStreamReader(propertyQName, + String.valueOf(propertyValue)); + childReader.addNamespaceContext(this.namespaceContext); + childReader.init(); } else if (propertyValue.getClass().isArray()) { // this is an arrary object and we need to get the pull parser for that int length = Array.getLength(propertyValue); Modified: axis/axis2/java/core/trunk/modules/adb/test/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderTest.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb/test/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderTest.java?rev=1426447&r1=1426446&r2=1426447&view=diff ============================================================================== --- axis/axis2/java/core/trunk/modules/adb/test/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderTest.java (original) +++ axis/axis2/java/core/trunk/modules/adb/test/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderTest.java Fri Dec 28 10:05:55 2012 @@ -245,6 +245,202 @@ public class ADBXMLStreamReaderTest exte assertXMLEqual(actualDom, expectedDocument); } + /** test List<java.lang.Integer> list */ + public void testGenericWrapperArrayList() throws Exception { + String exptectedXML = " <genericIntegerList>" + + "<genericInt>123</genericInt>" + + "<genericInt>1234</genericInt>" + + "<genericInt>12345</genericInt>" + + "</genericIntegerList>"; + + List propertyList = new ArrayList(); + + propertyList.add("genericInt"); + propertyList.add(new Integer(123)); + + propertyList.add("genericInt"); + propertyList.add(new Integer(1234)); + + propertyList.add("genericInt"); + propertyList.add(new Integer(12345)); + + QName projectQName = new QName("genericIntegerList"); + XMLStreamReader pullParser = + new ADBXMLStreamReaderImpl(projectQName, propertyList.toArray(), null); + + Document actualDom = newDocument(getStringXML(pullParser)); + Document expectedDocument = newDocument(exptectedXML); + assertXMLEqual(actualDom, expectedDocument); + } + + /** test List<java.lang.String> list */ + public void testGenericWrapperArrayList2() throws Exception { + String exptectedXML = " <genericStringList>" + + "<genericString>test1</genericString>" + + "<genericString>test2</genericString>" + + "<genericString>test3</genericString>" + + "</genericStringList>"; + + List propertyList = new ArrayList(); + + propertyList.add("genericString"); + propertyList.add(new String("test1")); + + propertyList.add("genericString"); + propertyList.add(new String("test2")); + + propertyList.add("genericString"); + propertyList.add(new String("test3")); + + QName projectQName = new QName("genericStringList"); + XMLStreamReader pullParser = + new ADBXMLStreamReaderImpl(projectQName, propertyList.toArray(), null); + + Document actualDom = newDocument(getStringXML(pullParser)); + Document expectedDocument = newDocument(exptectedXML); + assertXMLEqual(actualDom, expectedDocument); + } + + /** test List<java.lang.Long> list */ + public void testGenericWrapperArrayList3() throws Exception { + String exptectedXML = " <genericLongList>" + + "<genericLong>12345678910</genericLong>" + + "<genericLong>-12345678910</genericLong>" + + "<genericLong>1234567891011</genericLong>" + + "</genericLongList>"; + + List propertyList = new ArrayList(); + + propertyList.add("genericLong"); + propertyList.add(new Long(12345678910L)); + + propertyList.add("genericLong"); + propertyList.add(new Long(-12345678910L)); + + propertyList.add("genericLong"); + propertyList.add(new Long(1234567891011L)); + + QName projectQName = new QName("genericLongList"); + XMLStreamReader pullParser = + new ADBXMLStreamReaderImpl(projectQName, propertyList.toArray(), null); + + Document actualDom = newDocument(getStringXML(pullParser)); + Document expectedDocument = newDocument(exptectedXML); + assertXMLEqual(actualDom, expectedDocument); + } + + /** test List<java.lang.Float> list */ + public void testGenericWrapperArrayList4() throws Exception { + String exptectedXML = " <genericFloatList>" + + "<genericFloat>123.0</genericFloat>" + + "<genericFloat>-123.55</genericFloat>" + + "<genericFloat>12345.99</genericFloat>" + + "</genericFloatList>"; + + List propertyList = new ArrayList(); + + propertyList.add("genericFloat"); + propertyList.add(new Float(123.0f)); + + propertyList.add("genericFloat"); + propertyList.add(new Float(-123.55f)); + + propertyList.add("genericFloat"); + propertyList.add(new Float(12345.99f)); + + QName projectQName = new QName("genericFloatList"); + XMLStreamReader pullParser = + new ADBXMLStreamReaderImpl(projectQName, propertyList.toArray(), null); + + Document actualDom = newDocument(getStringXML(pullParser)); + Document expectedDocument = newDocument(exptectedXML); + assertXMLEqual(actualDom, expectedDocument); + } + + /** test List<java.lang.Double> list */ + public void testGenericWrapperArrayList5() throws Exception { + String exptectedXML = " <genericDoubleList>" + + "<genericDouble>3456.12345</genericDouble>" + + "<genericDouble>-3456.12345</genericDouble>" + + "<genericDouble>123456.12345</genericDouble>" + + "</genericDoubleList>"; + + List propertyList = new ArrayList(); + + propertyList.add("genericDouble"); + propertyList.add(new Double(3456.12345d)); + + propertyList.add("genericDouble"); + propertyList.add(new Double(-3456.12345d)); + + propertyList.add("genericDouble"); + propertyList.add(new Double(123456.12345d)); + + QName projectQName = new QName("genericDoubleList"); + XMLStreamReader pullParser = + new ADBXMLStreamReaderImpl(projectQName, propertyList.toArray(), null); + + Document actualDom = newDocument(getStringXML(pullParser)); + Document expectedDocument = newDocument(exptectedXML); + assertXMLEqual(actualDom, expectedDocument); + } + +/** test List<java.lang.Character> list */ + public void testGenericWrapperArrayList6() throws Exception { + String exptectedXML = " <genericCharacterList>" + + "<genericCharacter>A</genericCharacter>" + + "<genericCharacter>B</genericCharacter>" + + "<genericCharacter>C</genericCharacter>" + + "</genericCharacterList>"; + + List propertyList = new ArrayList(); + + propertyList.add("genericCharacter"); + propertyList.add(new Character('A')); + + propertyList.add("genericCharacter"); + propertyList.add(new Character('B')); + + propertyList.add("genericCharacter"); + propertyList.add(new Character('C')); + + QName projectQName = new QName("genericCharacterList"); + XMLStreamReader pullParser = + new ADBXMLStreamReaderImpl(projectQName, propertyList.toArray(), null); + + Document actualDom = newDocument(getStringXML(pullParser)); + Document expectedDocument = newDocument(exptectedXML); + assertXMLEqual(actualDom, expectedDocument); + } + +/** test List<java.lang.Short> list */ + public void testGenericWrapperArrayList7() throws Exception { + String exptectedXML = " <genericShortList>" + + "<genericShort>10</genericShort>" + + "<genericShort>20</genericShort>" + + "<genericShort>30</genericShort>" + + "</genericShortList>"; + + List propertyList = new ArrayList(); + + propertyList.add("genericShort"); + propertyList.add(new Short((short) 10)); + + propertyList.add("genericShort"); + propertyList.add(new Short((short) 20)); + + propertyList.add("genericShort"); + propertyList.add(new Short((short) 30)); + + QName projectQName = new QName("genericShortList"); + XMLStreamReader pullParser = + new ADBXMLStreamReaderImpl(projectQName, propertyList.toArray(), null); + + Document actualDom = newDocument(getStringXML(pullParser)); + Document expectedDocument = newDocument(exptectedXML); + assertXMLEqual(actualDom, expectedDocument); + } + public void testWithOMElements() throws Exception { String expectedXML =