Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Maven users will need to add the following dependency to their pom.xml for this component:

Code Block
xml
xml

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-stringtemplate</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>

URI format

Code Block

string-template:templateName[?options]

...

Wiki Markup
{div:class=confluenceTableSmall}
|| key || value ||
| {{exchange}} | The Exchange itself. |
| {{headers}} | The headers of the In message. |
| {{camelContext}} | The Camel Context. |
| {{request}} | The In message. |
| {{in}} | The In message. |
| {{body}} | The In message body. |
| {{out}} | The Out message (only for InOut message exchange pattern). |
| {{response}} | The Out message (only for InOut message exchange pattern). |
{div}

Since Camel 2.14, you can define the custom context map by setting the message header "CamelStringTemplateVariableMap" just like the below code.

Code Block
languagejava
Map<String, Object> variableMap = new HashMap<String, Object>();
Map<String, Object> headersMap = new HashMap<String, Object>();
headersMap.put("name", "Willem");
variableMap.put("headers", headersMap);
variableMap.put("body", "Monday");
variableMap.put("exchange", exchange);
exchange.getIn().setHeader("CamelStringTemplateVariableMap", variableMap);

Samples

For example you could use a string template as follows in order to formulate a response to a message:

Code Block

from("activemq:My.Queue").
  to("string-template:com/acme/MyResponse.tm");

...

In this sample we want to use a string template to send an order confirmation email. The email template is laid out in StringTemplate as:
This example works for camel 2.11.0. If your camel version is less than 2.11.0, the variables should be started and ended with $.

Code Block

Dear <headers.lastName>, <headers.firstName>

Thanks for the order of <headers.item>.

Regards Camel Riders Bookstore
<body>

...

Wiki Markup
{snippet:id=e1|lang=java|url=camel/trunk/components/camel-stringtemplate/src/test/java/org/apache/camel/component/stringtemplate/StringTemplateLetterTest.java}

Include Page
Endpoint See Also
Endpoint See Also