Yes, this has been exactly the direction I was looking for. I guess
Asankha made just a typo in the name of the suggested property and
wanted to use FAULTS_AS_HTTP200 as 500 would be the current default.
Then the rest of the sentence setting it to true in the
HessianMessageBuilder would still apply. ;-)

 

If nobody objects or has better ideas, I'll go ahead and propose a patch
following Asankha's suggestion.

 

Regards,

  Eric

 

 

________________________________

From: Ruwan Linton [mailto:ruwan.lin...@gmail.com] 
Sent: Monday, March 16, 2009 4:27 AM
To: dev@synapse.apache.org
Subject: Re: Creating HessianFaults using
FaultMediator/HessianMessageFormatter

 

I think all last three suggestions will work nicely to solve this issue,
but I think asankha's solution seems quite handy in this case as well as
in most of the other POX cases (it is a generic solution).

I think HessianBuilder should set the value to false in the asankha's
suggestion, because hessian messages want them to be to 200 rather than
500. :-)

Thanks,
Ruwan

On Mon, Mar 16, 2009 at 6:59 AM, Asankha C. Perera <asan...@apache.org>
wrote:

Hi all 

        Yes, I think the overhead in the FaultMediator is rather low. It
already handles a lot of other application protocol specific stuff. The
only thing which is not nice is that the way to detect the Hessian
message is making assumptions on the transport used (content-type of
http transport header as a decision criteria). But there are obviously
other alternatives to implement the isHessianMessage() method (e.g.
letting the builder write an info about the application protocol used in
a defined place within the message context or even something smarter?).

        Yes, there are limitations regarding message transformations
changing the application protocol, this is true. On the other side this
would be a relatively hard job. Either reimplementing the whole protocol
or integrating a Hessian library (many library versions are incompatible
amongst each other). Once we really do this, the effort to change a few
lines in the FaultMediator can be neglected.

Considering all that has been brought up in this thread and the above in
particular, what if we define a new Synapse property say
'FAULTS_AS_HTTP500' - and the Hessian builders would set this property
to True. This way the fault mediator is not Hessian specific.

When the fault mediator is invoked later, it would check this property
and perform the logic given in Eric's patch. I believe many POX messages
would also benefit from this - where many fault messages would actually
go on the wire as HTTP 200's..

cheers
asankha



-- 
Asankha C. Perera
AdroitLogic, http://adroitlogic.org
 
http://esbmagic.blogspot.com
 
 
 




-- 
Ruwan Linton
Senior Software Engineer & Product Manager; WSO2 ESB;
http://wso2.org/esb
WSO2 Inc.; http://wso2.org
email: ru...@wso2.com; cell: +94 77 341 3097
blog: http://ruwansblog.blogspot.com 

Reply via email to