Hi Asanka,

I had a look into the feature set and it looks really useful. Please send
us a PR and we will include this in a future ESB release.

On Wed, Mar 16, 2016 at 9:05 AM, Asanka Dissanayake <asan...@wso2.com>
wrote:

> Hi All,
> I am developing a new Mediator for ESB as a pet project. After noticing
> some draw backs in Payload Factory I thought of writing this one.
>
> Code can be found at :
> https://github.com/asanka88/VelocityTemplateMediator
>
> @ESB Team:
> If this make any sense, I am more than happy to contribute this with more
> improvements. This is still under development. I will upload samples soon.
> Your feedback is highly appreciated.
> Why Velocity Template Mediator ?
>
> Currently synapse comes with built in payloadFactory mediator. But there
> are several drawbacks in it.
>
> 1 Doesn’t support arrays : You cannot iterate though an array/collection
> and add those elements to the payload.
>
> 2 Doesn’t support conditional expressions: In case you want to add
> elements based on conditions payloadFactory doesn’t support it.
>
> 3 Readability is less since numbered placeholders like $1,$2 are used
>
> <https://github.com/asanka88/VelocityTemplateMediator#how-velocity-template-mediator-solve-them>How
> Velocity Template Mediator solve them?
>
> Velocity template mediator uses well known Apache Velocity as the template
> engine. You can do whatever you can do with Velocity in side this. Iterate
> through collections, check conditions etc. In addition to that since we are
> using place holders like $name,$age for the variables ,so it improves the
> readability as well.
>
> On the other hand, there was no such a thing in Synapse to create a
> property out of a template.
>
> For Example: When you call a soap back end, suppose you have to send a
> user name token in SOAP Header. Suppose there are several back end calls
> you need to make and in every call you need to pass the user name token.
>
> With the payload factory , you will have to create that part every time.
> Instead if you can create a property one time using a template and save it
> in the message context , you can reuse it without generating again and
> again.
>
> With the Velocity Template Mediator , it supports body,property,soap
> header,envelope as the targets. You can put the generated output to anyof
> these. And it supports both xml and json formats
>
> Sample Syntax
>
> <velocityTemplate media-type="xml|json">
>    <format>
>       <person>
>          <name>$name</name>
>          <age>$age</age>
>       </person>
>    </format>
>    <args>
>       <arg name="name" expression="$ctx:name" />
>       <arg name="age" expression="$ctx:age" />
>    </args>
>    <target target-type="property|body|custom|header" name="propertyName" 
> property-type="string|om" scope="synapse|axis2|operation" />
> </velocityTemplate>
>
>
> Thanks,
> Asanka D
>
> --
>
>
> *Asanka DissanayakeSoftware Engineer*
> *WSO2 Inc. - lean . enterprise . middleware |  wso2.com <http://wso2.com/>*
>
> *email: asan...@wso2.com <ruch...@wso2.com>,   blog:
> cyberwaadiya.blogspot.com
> <http://cyberwaadiya.blogspot.com>, asankastechtalks.wordpress.com
> <http://asankastechtalks.wordpress.com>  mobile: +94 71 8373821*
>
> _______________________________________________
> Architecture mailing list
> architect...@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
Thank you and Best Regards,
Chanaka Fernando
Senior Technical Lead
WSO2, Inc.; http://wso2.com
lean.enterprise.middleware

mobile: +94 773337238
Blog : http://soatutorials.blogspot.com
LinkedIn:http://www.linkedin.com/pub/chanaka-fernando/19/a20/5b0
Twitter:https://twitter.com/chanakaudaya
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to