On Mon, Sep 22, 2008 at 9:00 AM, Sanjiva Weerawarana
<[EMAIL PROTECTED]>wrote:

>  I think the whole question of "REST" is not the point here.
>
> Axis2's underlying data model is a SOAP Infoset. As a result, any type of
> data that runs thru the system has to be represented as a SOAP Infoset.
> That's not a big deal - essentially it means we need to create two extra
> Axiom nodes (a s:Envelope node and an s:Body node) and stick a child in
> there that contains whatever the real data is. Using our nice MTOM
> integration and the deferred pull architecture of Axiom, we can do that
> efficiently using OMSourceElement nodes as we've proven multiple times now.
>
> That's for incoming stuff - we take whatever that comes in and represent it
> within a SOAP Infoset.
>
> When we have an outgoing message, the inverse question is relevant - if the
> message is not going out as SOAP, then someone needs to take the real
> message payload (which is in the child node of the s:Body node) and only
> write the content of that. That's basically what MessageFormatters do.
>
> [So calling all of that "REST" is totally wrong and an abuse of what "REST"
> means. I think we need to refactor that code and get rid of any references
> to REST as this has nothing to do with REST. Yes I know the history and how
> it got called that but now its time to fix it.]
>

+1. Better  later than never ;).

>
>
> Now to get back to your original point - I think the idea of having message
> formatters applied to faults too (which you proposed in a later mail) is the
> right answer. Faults are just messages too and its clearly an oversight that
> we didn't apply the design orthogonally there too. Time to fix it.
>

+1.

Thanks,
Keith.

>
>
> Sanjiva.
>
>
> keith chapman wrote:
>
> Let me describe the problem in more detail. As of now Axis2 enables you to
> plug in various message types by registering them in the axis2.xml. Some of
> these message types will be SOAP based (like text/xml and
> application/soap+xml) while others are not. And in the latter case when a
> exception occurs somewhere in the pipe we do not want to throw the fault as
> a SOAP message. What we do in the REST case of of now is that  we take the
> fault element in the SOAP body (If not found the first child of the SOAP
> body) and write that out as the fault. As of now Axis2 treats a few message
> Types as REST specifically application/xml, multipart/form-data and
> application/x-www-form-urlencoded. But with the pluggable message types in
> place this may not work that well. Assume that someone want to to plug in
> application/foo and that this message type is REST how are we gonna handle
> it?
>
> Should we consider adding a attribute to the
> messageBuilders/messageFormatters section to indicate weather its REST or
> not?
>
> Thanks,
> Keith.
>
> On Sat, Sep 20, 2008 at 3:22 AM, Sanjiva Weerawarana <
> [EMAIL PROTECTED]> wrote:
>
>>  +1 .. but I'm a bit confused. I assume by "REST" you meant that the
>> response has media type text/xml instead of application/soap+xml, right?
>>
>> If we think about it that way, can we get rid of the "isDoingREST" flag??
>>
>> (I've hated that from day 1 and haven't had a chance to really dig thru it
>> and figure out how to get rid of. Maybe this is an opportunity to get it
>> right ..)
>>
>> Sanjiva.
>>
>> keith chapman wrote:
>>
>> Any input on this would be appreciated.
>>
>> Thanks,
>> Keith.
>>
>> On Thu, Sep 4, 2008 at 8:40 AM, keith chapman <[EMAIL PROTECTED]>wrote:
>>
>>> Hi devs,
>>>
>>> This idea came up because of the following scenario.
>>>
>>> Currently the logic for creating a AxisFault  for a fault received lies
>>> in org.apache.axis2.util.Utils.java (lines 507 - 530). This works perfectly
>>> when the received fault is SOAP or REST. But it does not work as expected
>>> when the response is JSON ( rather a exception is thrown saying "The
>>> MessageContext does not have an associated SOAPFault."). The reason is the
>>> logic we use to build the AxisFault. If the fault message is not a SOAP
>>> message we check for the flag messageContext.isDoingREST() and get the first
>>> element of the SOAPBody as the fault message.
>>>
>>> When the fault message is JSON its neither SOAP and the
>>> messageContext.isDoingREST() returns false. Should we consider  JSON
>>> messages as REST messages? I believe so.
>>>
>>> WDYT?
>>>
>>> Thanks,
>>> Keith.
>>>
>>> --
>>> Keith Chapman
>>> Senior Software Engineer
>>> WSO2 Inc.
>>> Oxygenating the Web Service Platform.
>>> http://wso2.org/
>>>
>>> blog: http://www.keith-chapman.org
>>>
>>
>>
>>
>> --
>> Keith Chapman
>> Senior Software Engineer
>> WSO2 Inc.
>> Oxygenating the Web Service Platform.
>> http://wso2.org/
>>
>> blog: http://www.keith-chapman.org
>>
>>
>>  --
>> 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/
>>
>>  --------------------------------------------------------------------- To
>> unsubscribe, e-mail: [EMAIL PROTECTED] For additional
>> commands, e-mail: [EMAIL PROTECTED]
>
>
>
>
> --
> Keith Chapman
> Senior Software Engineer
> WSO2 Inc.
> Oxygenating the Web Service Platform.
> http://wso2.org/
>
> blog: http://www.keith-chapman.org
>
>
> --
> 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/
>
>  --------------------------------------------------------------------- To
> unsubscribe, e-mail: [EMAIL PROTECTED] For additional
> commands, e-mail: [EMAIL PROTECTED]
>



-- 
Keith Chapman
Senior Software Engineer
WSO2 Inc.
Oxygenating the Web Service Platform.
http://wso2.org/

blog: http://www.keith-chapman.org

Reply via email to