You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wsif-dev@ws.apache.org by Aleksander Slominski <as...@cs.indiana.edu> on 2004/11/28 04:02:35 UTC

Re: Patch: Axis 1.2; custom de/serializers

Michael Schuerig wrote:

>I've just spent a quarter of an hour without success to find out how to 
>enter a bug for WSIF in Bugzilla. So, if anyone knows their way around 
>there better than me, please enter this.
>  
>
hi  Michael,

use http://nagoya.apache.org/jira/browse/WSIF

(we do need to update website!)

>I've attached a tiny diff of changes for two things
>* make WSIF compile (and work!) with Axis 1.2RC
>  
>
WSIF in CVS is already patched for that (i think i did weeks ago) - see 
doc/changes.html

<a name="WSIF_2_0_1"><h3>interim builds(WSIF_2_0_1) </h3></a>
<ul>
<li>2004-10-12: moved to use AXIS 1.2 RC1: important backward change in 
WSIFJavaTestCaseWriter to use
new method writeComment(pw, p.getDocumentationElement(), true) instead 
of writeComment(pw, p.getDocumentationElement())
that no longer exist, additionally replaced all calls to no longer 
existing setScopedProperty() with setProperty()
</li>

but this confusion indicates that next release of WSIF needs to be done 
just after AXIS 1.2 final is made available.

>* fix bug in handling of custom de/serializers in the Axis provider
>  
>
your patch was applied.

i have also updated CVS to use the latest RC2 version JAR files.

thanks,

alek

>Yes, it is possible to use custom de/serializers with WSIF and Axis. 
>Just like this:
>
>    List<TypeSerializerInfo> typeSerializers =
>        new ArrayList<TypeSerializerInfo>();
>        
>    typeSerializers.add(new TypeSerializerInfo(
>        new QName(SERVICE_NS, ELEMENT_TYPE),
>        MyClass.class,
>        new MyClassSerializerFactory(),
>        new MyClassDeserializerFactory()));
>
>    WSIFMessage context = operation.getContext(); // we get a clone here
>    context.setObjectPart(WSIFAXISConstants.CONTEXT_SOAP_TYPE_SERIALIZERS,
>            typeSerializers);
>    operation.setContext(context);
>
>Please note that the code above will not work correctly without the 
>patch!
>
>Michael
>
>  
>
>------------------------------------------------------------------------
>
>diff -ur src-orig/org/apache/wsif/providers/soap/apacheaxis/WSIFOperation_ApacheAxis.java src/org/apache/wsif/providers/s
>oap/apacheaxis/WSIFOperation_ApacheAxis.java
>--- src-orig/org/apache/wsif/providers/soap/apacheaxis/WSIFOperation_ApacheAxis.java    2004-11-28 01:35:30.000000000 +01
>00
>+++ src/org/apache/wsif/providers/soap/apacheaxis/WSIFOperation_ApacheAxis.java 2004-11-28 01:19:55.000000000 +0100
>@@ -1703,8 +1703,8 @@
>                // setup the call object
>                call.setOperationName(
>                        new QName(getInputNamespace(), portTypeOperation.getName()));
>-               call.setScopedProperty(Call.SEND_TYPE_ATTR, Boolean.FALSE);
>-               call.setScopedProperty(AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
>+               call.setProperty(Call.SEND_TYPE_ATTR, Boolean.FALSE);
>+               call.setProperty(AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
>                call.setOperationStyle(operationStyle);
>         setCallParameterNames(call);
>
>@@ -2093,8 +2093,8 @@
>                Object serializer = tm.getSerializer();
>                Object deserializer = tm.getDeserializer();
>
>-               if ( (javaType != null) || (javaType.isAssignableFrom(clazz))
>-               && ( (elementType != null) || (elementType.equals(xmlType)) ) ){
>+               if ( (javaType == null) || (javaType.isAssignableFrom(clazz))
>+               && ( (elementType == null) || (elementType.equals(xmlType)) ) ){
>                    if (serializer == null || serializer instanceof SerializerFactory
>                    && deserializer == null || deserializer instanceof DeserializerFactory
>                    && serializer != null || deserializer != null) {
>  
>


-- 
The best way to predict the future is to invent it - Alan Kay