The ESB profile configuration language is a very powerful and robust way of driving enterprise data/messages through the ESB profile mediation engine. However, a large number of configuration files in the form of sequences, endpoints, proxy services , and transformations can be required to satisfy all the mediation requirements of your system. To keep your configurations manageable, it's important to avoid scattering configuration files across different locations and to avoid duplicating redundant configurations.
Templates help minimize this redundancy by creating prototypes that users can use and reuse when needed. This is very much analogous to classes and instances of classes: a template is a class that can be used to wield instance objects such as templates and endpoints. Thus, templates are an ideal way to improve reusability and readability of configurations/XMLs. Additionally, users can use predefined templates that reflect common enterprise integration patterns for rapid development of message/mediation flows in the ESB profile.
Templates comes in two different forms.
Endpoint Template - Defines a templated form of an endpoint. An endpoint template can parameterize an endpoint defined within it. You invoke an endpoint template as follows:
<endpoint template=”name” ...> <parameter name=”name” value=”value”/> ..... </endpoint>
Sequence Template - Defines a templated form of a sequence in the ESB profile. A sequence template can parameterize XPath expressions used within a sequence that is defined inside a template. You invoke a sequence template with the Call Template mediator by passing in the parameter values as follows:
<call-template target=”template” > <parameter name=”name” value=”value”/> ..... </call-template>
For more information on creating and using these templates, see Endpoint Template and Sequence Template .