Hi Udayanga, On Mon, Aug 19, 2013 at 7:01 PM, Udayanga Wickramasinghe < mastershield2...@gmail.com> wrote:
> > > > On Sun, Aug 18, 2013 at 9:58 AM, Isuru Udana <isud...@gmail.com> wrote: > >> Hi All, >> >> Currently we have following two main places we use a blocking client to >> invoke services. >> 1. Callout Mediator >> 2. Forwarding Message Processor >> >> Both these components use the axis2 service client to invoke services in >> a blocking manner. >> Since the implementation is very simple, provided functionality is very >> limited. >> >> Currently we have following major limitations. >> >> * Supports only SOAP >> * Message format conversion is not supported >> * QOS functionality (WS-Security, etc.) are not supported >> * Cannot specify an endpoint as the service endpoint reference (In >> message processors we can specify an Address endpoint. But none of the >> other endpoint types and other endpoint functionality is supported) >> >> I have implemented a new blocking client which can be used as a common >> blocking sender for both above components. >> This new implementation will provide the following functionality. >> >> * Support all leaf endpoint types >> * Support for REST >> * Support Endpoint functionality. >> - Endpoint format conversions (soap11,soap12,pox, etc.) >> - WS-Security, WS-A >> - Endpoint Timeout (nhttp transport specific functionality is not >> supported) >> * message format conversions (ability to use messageType/ContentType >> properties) >> >> I have attached this implementation as patch to SYNAPSE-966 [1]. >> I have also attached a patch[2] to migrate the Callout mediator to this >> implementation. >> A sample with documentation and an integration test is also attached at >> [3]. >> > > +1 > This would be a great addition. I think synapse library support for a > blocking client would also be a good idea. Specially because many users > tend to create complex workflows with Synapse using either service chaining > ,etc without any obvious high performance requirement (leveraging > asynchronous non blocking capability of Synapse). I think a synapse library > would provide a high level abstraction as well as portability for easily > creating such workflows. > I think those service chaining workflows can be simplified by introducing a Callout like behavior for the send mediator. It will make the service chaining scenarios much simpler and we will able to leverage asynchronous non blocking transports as well. I have already done significant amount of work on implementing this feature. If I get enough time to test the implementation completely before this release, I will provide a patch to review. Thanks. > >> If others interested, I can provide patches to migrate Message processor >> to this implementation and more samples. >> >> [1] https://issues.apache.org/jira/browse/SYNAPSE-966 >> [2] https://issues.apache.org/jira/browse/SYNAPSE-967 >> [3] https://issues.apache.org/jira/browse/SYNAPSE-968 >> >> Thanks. >> Isuru >> >> -- >> *Isuru Udana* >> * >> * >> * >> Senior >> ** >> Software Engineer; WSO2 Inc.; http://wso2.com >> >> email: isud...@gmail.com >> blog: http://mytecheye.blogspot.com/ >> twitter: http://twitter.com/isudana >> * >> >> >> >> > > > -- > http://www.udayangawiki.blogspot.com > -- *Isuru Udana* * * * Senior ** Software Engineer; WSO2 Inc.; http://wso2.com email: isud...@gmail.com blog: http://mytecheye.blogspot.com/ twitter: http://twitter.com/isudana *