Renaud,
thanks a lot for your contribution!!!
Please find my comments inline (some
of the bugs were already fixed in
the version available via CVS):
> public void setClassMap(ClassMap nmap)
> public void setEncodingStyle(String newEncStyle)
ok, already fixed in CVS version
> public String getEncodingStyle() {
I will add that and also support for filling
the property in parseHead.
> - In the writeHead function I replaced the
>
> writer.startTag (Soap.ENV,"Envelope");
> line by
> writer.startTag (Soap.prefixMap,Soap.ENV,"Envelope");
Something similar is already added, but I
will probably change it to your version.
> this.classMap = classMap; (oups :-))
> by
> this.classMap = namespaceMap;
This was already reported and fixed
by F.Hunter some time ago. :-)
> - in the readPrimitive void:
> I added a "or" condition on each "if"
> for example:
>
> 'if (fallBack == String.class)'
> became 'if (fallBack == String.class || name.equals("string"))'
> I did the same for
> * Integer.class <=> "int"
> * Long.class <=> "long"
> * Float.class <=> "float"...
Ok, thanks, I added this and also support for fixed point numbers.
However, I used "string".equals (name) etc. in order to be
safe from null pointer problems...
> * In KvmSerialisable
> I added the function:
> String getEncodingStyle();
> so that it possible to get the encoding style of the object.
I would prefer to put that into the PropertyInfo?
However, wouldn't support for the kDOM Element type
be sufficient for that purpose? What do the others
think? This is a significant change, and we should
perhaps discuss it in the group...
> * In SoapWriter.java
> - In the write(Object obj) void I added:
>
> if (obj instanceof KvmSerializable) {
> String encodingS=((KvmSerializable)obj).getEncodingStyle();
> if (encodingS!=null) writer.attribute("SOAP-ENV"
> +":encodingStyle",encodingS);
see above
> to write the encodingStyle attribute if it is needed.
> - In the "writeProperty(" void:
> I replaced ("type", prefix + ":" + qName [1]); by ("xsi:type", prefix + ":" +
> qName [1]);
> I removed the test "if (obj.getClass () != type.type) {" cause apache need to
> know type of each attribute in a RPCMessage.
This is already fixed. However, instead of removing the test, I
added an implicitTypes flag...
> * In xml package:
>
> - I changed a little thing in the kxml package (perhaps a bug ?) :
> In org.kxml.parser.StartTag when the method getAttribute(String name) is
> lauched, it calls the methode getAttribute(String namespace, String name) with a
> null namespace. So the function does not return the attribute corresponding to
> the name if they have a non-null namespace. So I propose to replace:
> if (namespace.equals (attr.getNamespace ()) &&
> (name.equals (attr.getName ())
>
> by
>
> if (name.equals (attr.getName ())&&
> (namespace.equals (attr.getNamespace ())||(namespace == Xml.NO_NAMESPACE)))
>
> in the getAttribute(String,String) method.
> (it is also possible to implement the search on the name only in the
> getAttribute(String) method...)
I have added support for null as placeholder for any namespace in
attr.getAttribute (namespace, name), but did not change the
semantics of attr.geyAttribute (name); there may be
more than one attributes having the same name but different
namespaces.
Best regards,
Stefan
--
Stefan Haustein
Univ. Dortmund, FB 4, LS 8 tel: +49 231 755 2499
Baroper Str. 301 fax: +49 231 755 5105
D-44221 Dortmund (Germany) www-ai.cs.uni-dortmund.de
|