Re: Comments about the new UnknownContentBuilder (AXIS2-4153)

Sanjiva Weerawarana <[email protected]> Thu, 18 Dec 2008 09:57:19 +0530
Newsgroups gmane.text.xml.axis.devel,gmane.text.xml.commons.devel
Message-ID <[email protected]>
Can we please move the BinaryBuilder to axis2 with the rest of the message 
builders?

Sanjiva.

Thilina Gunarathne wrote:
> Hi Andreas,
> I'm sorry, I missed this mail.. Saw it only now...
> 
> I agree with you regarding the 1. But I guess the solution will need to 
> address deferred building, which will make it bit complex... Something 
> like implementing a pushbackInputStream which will directly give the 
> bytes from the transport inputstream while buffering it to give it the 
> next time...
> 
> Regarding 2, I don't think we can call anything "the" right solution for 
> this. Normally Axis2 uses OMDataSources to carry native data as long as 
> it can, so that if an entity which knows how to process the native data 
> can take advantage of it.. Also using the OMSourcedElement, clearly 
> distinguish the usage of unknown content from other messages...
> 
> Regarding the 3, my apologies once again... I was not aware of such a 
> thing when I wrote the above. IMHO builder should live inside Axis2.. I 
> did this (and the mime support) as a solution to the issue raised in 
> Synapse. Wonder why they did not simply use the impl you mentioned.... 
> May be I'm missing something.. Let's see how we can combine these efforts...
> 
> thanks,
> Thilina.
> 
>     1. The class InputStreamDataSource (the one in
>     org.apache.axis2.builder.unknowncontent) violates the
>     javax.activation.DataSource contract which says for the getInputStream
>     method that "a new InputStream object must be returned each time this
>     method is called, and [that] the stream must be positioned at the
>     beginning of the data." The consequence will be that the message
>     produced by UnknownContentBuilder can only be read once. This is a
>     serious flaw.
> 
>     2. The AXIOM tree produced by UnknownContentBuilder has only two
>     nodes: an OMElement and an OMText (with a DataHandler). Using an
>     OMSourcedElement/OMDataSource is not justified for this and would
>     introduce unnecessary complexity and overhead.  
> 
> 
> 
>     3. The code in UnknownContentBuilder to a large extend duplicates the
>     code in org.apache.axis2.format.BinaryBuilder (in
>     axis2-transport-base), which doesn't have problems 1 and 2.
> 
>     Could you please make a proposal how to improve this?
> 
>     Regards,
> 
>     Andreas
> 
> 
> 
> 
> -- 
> Thilina Gunarathne  - http://thilinag.blogspot.com


-- 
Sanjiva Weerawarana, Ph.D.
Founder & Director; Lanka Software Foundation; http://www.opensource.lk/
Founder, Chairman & CEO; WSO2, Inc.; http://www.wso2.com/
Member; Apache Software Foundation; http://www.apache.org/
Visiting Lecturer; University of Moratuwa; http://www.cse.mrt.ac.lk/

Blog: http://sanjiva.weerawarana.org/