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