Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Minor copy edits

...

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

contentCache

false

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

exchange

The Exchange itself.

headers

The headers of the in In message.

camelContext

The Camel Context.

request

The in In message.

in

The in In message.

body

The in In message body.

out

The out Out message (only for InOut message exchange pattern).

response

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}

...