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




Reply via email to