scheu 02/02/12 08:50:20 Modified: java/src/org/apache/axis/encoding DefaultTypeMappingImpl.java java/test/wsdl/marrays MArrayTestsSOAPBindingImpl.java MArrayTestsServiceTestCase.java Log: Minor changes to enhance mapping of map. A javaType that implements Map should be serialized to SOAP_MAP. A SOAP_MAP should be deserialized as a HashMap...(can't deserialize into a Map because it is an interface). WSDL2Java should emit Map types in the argument lists for parts that are SOAP_MAP. Revision Changes Path 1.10 +7 -13 xml-axis/java/src/org/apache/axis/encoding/DefaultTypeMappingImpl.java Index: DefaultTypeMappingImpl.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/DefaultTypeMappingImpl.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- DefaultTypeMappingImpl.java 11 Feb 2002 19:02:53 -0000 1.9 +++ DefaultTypeMappingImpl.java 12 Feb 2002 16:50:20 -0000 1.10 @@ -271,25 +271,19 @@ Constants.XSD_DATE), true); - // Use the Map Serialization for Hashtables, Map and HashMap - // The SOAP_MAP will be deserialized into a HashMap - myRegister(Constants.SOAP_MAP, java.util.Hashtable.class, - new MapSerializerFactory(java.util.Hashtable.class, + // Serialize all extensions of Map to SOAP_MAP + // The SOAP_MAP will be deserialized into a HashMap by default. + myRegister(Constants.SOAP_MAP, java.util.HashMap.class, + new MapSerializerFactory(java.util.Map.class, Constants.SOAP_MAP), - new MapDeserializerFactory(java.util.Hashtable.class, - Constants.SOAP_MAP), + new MapDeserializerFactory(java.util.HashMap.class, + Constants.SOAP_MAP), false); myRegister(Constants.SOAP_MAP, java.util.Map.class, new MapSerializerFactory(java.util.Map.class, Constants.SOAP_MAP), - new MapDeserializerFactory(java.util.Map.class, - Constants.SOAP_MAP), - false); - myRegister(Constants.SOAP_MAP, java.util.HashMap.class, - new MapSerializerFactory(java.util.HashMap.class, - Constants.SOAP_MAP), new MapDeserializerFactory(java.util.HashMap.class, - Constants.SOAP_MAP), + Constants.SOAP_MAP), false); // Use the Element Serializeration for elements 1.3 +1 -1 xml-axis/java/test/wsdl/marrays/MArrayTestsSOAPBindingImpl.java Index: MArrayTestsSOAPBindingImpl.java =================================================================== RCS file: /home/cvs/xml-axis/java/test/wsdl/marrays/MArrayTestsSOAPBindingImpl.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- MArrayTestsSOAPBindingImpl.java 11 Feb 2002 19:02:53 -0000 1.2 +++ MArrayTestsSOAPBindingImpl.java 12 Feb 2002 16:50:20 -0000 1.3 @@ -42,7 +42,7 @@ } return in; } - public java.util.HashMap testMapFooArray(java.util.HashMap map) + public java.util.Map testMapFooArray(java.util.Map map) throws java.rmi.RemoteException { return map; } 1.6 +2 -2 xml-axis/java/test/wsdl/marrays/MArrayTestsServiceTestCase.java Index: MArrayTestsServiceTestCase.java =================================================================== RCS file: /home/cvs/xml-axis/java/test/wsdl/marrays/MArrayTestsServiceTestCase.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- MArrayTestsServiceTestCase.java 11 Feb 2002 19:02:53 -0000 1.5 +++ MArrayTestsServiceTestCase.java 12 Feb 2002 16:50:20 -0000 1.6 @@ -131,13 +131,13 @@ try { // Test 3F: Some of the Foo elements are multi-referenced. - HashMap map = new HashMap(); + Map map = new HashMap(); Foo[] array = new Foo[1]; array[0] = new Foo(); array[0].setValue(123); map.put("hello", array); - HashMap rc; + Map rc; rc = binding.testMapFooArray(map); assertTrue("Test Map Failed (a)", rc != null);