This documentation is for WSO2 Enterprise Service Bus version 4.7.0 . View documentation for the latest release.

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

ESB configuration language is a very powerful and robust way of driving enterprise data/messages through ESB mediation engine. However, very large amount of configuration files in the form of sequences, endpoints, proxies and transformations can be required to satisfy all the mediation requirements of your system. In such cases a number of configuration files will be scattered all over and would be extremely hard to manage. What would be frustrating to note is that, most of the configurations of particular types are redundant in nature.

ESB templates ( New in version 4.0 ) try to minimize this redundancy by creating prototypes that users can reuse and utilize as and when needed. This is very much analogous to classes and instances of classes where-as, a template is a class that can be used to wield instance objects such as templates and endpoints. Thus, ESB templates are an ideal way to improve reusability and readability of ESB configurations/XMLs. In addition to that, users can utilize predefined templates that reflect commonly used enterprise integration patterns for rapid development of ESB message/mediation flows.

ESB templates comes in two different forms.

  • Sequence Template - Defines a templated form of a ESB sequence. Sequence template has the ability to parameterize XPath expressions used within a sequence defined inside a template. We invoke a sequence template with the Call Template Mediator by passing parameter values.
Code Block
<call-template target=”template” >
<parameter name=”name” value=”value”/>
  • Endpoint Template - Defines a templated form of an endpoint. Endpoint template has the ability to parameterize an endpoint defined within it. Invoking a template of this kind is achieved using a template endpoint.
Code Block
<endpoint template=”name” ...>
<parameter name=”name” value=”value”/>


General information about templates.