...
Code Block |
---|
string-template:templateName[?options]
|
Where templateName is the classpath-local URI of the template to invoke; or the complete URL of the remote template.
You can append query options to the URI in the following format, ?option=value&option=value&...
Options
Option | Default | Description |
---|---|---|
| | New option in Camel 1.4. Cache for the resource content when its loaded. |
...
Camel will store a reference to the resource in the message header in the with key, org.apache.camel.stringtemplate.resource
. The Resource is an org.springframework.core.io.Resource
object.
Hot reloading
The stringtemplate string template resource is by default hot-reloadable for both file and classpath resources (expanded jar). Setting the If you set contentCache=true
then , Camel will only load loads the resource only once , and thus hot-reloading is not possible. This scenario can be used in production usage when the resource never changes.
...
Camel will provide exchange information as attributes (just a java.util.Map
) to the string template. The Exchange is transfered as:
key | value |
---|---|
| The Exchange itself. |
| The headers of the in In message. |
| The Camel Context. |
| The in In message. |
| The in In message. |
| The in In message body. |
| The out Out message (only for InOut message exchange pattern). |
| The out Out message (only for InOut message exchange pattern). |
Samples
For example you could use something likea 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"); |
...
The Email Sample
In this sample we want to use StringTemplate as templating for a string template to send an order confirmation email. The email template is laid out in StringTemplate
as:
Code Block |
---|
Dear $headers.lastName$, $headers.firstName$ Thanks for the order of $headers.item$. Regards Camel Riders Bookstore $body$ |
And the java code is as follows:
Wiki Markup |
---|
{snippet:id=e1|lang=java|url=camel/trunk/components/camel-stringtemplate/src/test/java/org/apache/camel/component/stringtemplate/StringTemplateLetterTest.java} |
...