And one more thing. I noticed that when the callout mediator is configured with an endpointKey, the key is resolved only once (at the first message). Try to make it so that the mediator will resolve the key on each message. That way the callout mediator can take advantage of the underlying caching + dynamic endpoint update system.
Thanks, Hiranya On Aug 19, 2013, at 8:21 AM, Isuru Udana <[email protected]> wrote: > Hi Udayanga, > > On Mon, Aug 19, 2013 at 7:01 PM, Udayanga Wickramasinghe > <[email protected]> wrote: > > > > On Sun, Aug 18, 2013 at 9:58 AM, Isuru Udana <[email protected]> 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: [email protected] > 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: [email protected] > blog: http://mytecheye.blogspot.com/ > twitter: http://twitter.com/isudana > > > -- Hiranya Jayathilaka Mayhem Lab/RACE Lab; Dept. of Computer Science, UCSB; http://cs.ucsb.edu E-mail: [email protected]; Mobile: +1 (805) 895-7443 Blog: http://techfeast-hiranya.blogspot.com
