I have been playing around with deserialization without the need for type mappings in the deployment descriptors (useful in dynamic doc/lit and ##any scenarios) by using WSDL2Java generated metadata. I have put in hooks to use the getDeserializer method of a class if no TypeMapping is found in the TypeMappingRegistry. Because it is so close to a release I'd like to get the opinion of the committers whether you think it's a good idea to commit this into the cvs trunk/head or put it in a separate branch?
Here is what I have done:
-Added callouts to get deserializer from destination class from RPCHandler and BeanDeserializer in case none was found using the normal lookup
-Added following methods to DeserailizationContext interface:
public Deserializer getDeserializerForClass(Class cls);
public Class getDestinationClass();
public void setDestinationClass(Class cls);
-Added following methods to axis MessageElement
public Object getObjectValue(Class cls);
-Changed Enum Type generator to generate deserialization meta data
-Added hooks to ArrayDeserializer to deserialize based on destination class if no typemapping was found
I have run it through all the tests and I have modified the wsdl/extensibiliity test case to exercise the new functionality.
Note this approach does not work so well with polymorphic values which is why the xsi:type etc lookups are always performed first.
So, branch or trunk or explain more?
Cheers,
ThomasThomas Sandholm <[EMAIL PROTECTED]> The Globus Project(tm) <http://www.globus.org> Ph: 630-252-1682, Fax: 630-252-1997 Argonne National Laboratory
