Maven users will need to add the following dependency to their
Where templateName is the classpath-local URI of the template to invoke; or the complete URL of the remote template (eg: file://folder/myfile.ftl).
You can append query options to the URI in the following format,
Headers set during the FreeMarker evaluation are returned to the message and added as headers. This provides a mechanism for the FreeMarker component to return values to the Message.
An example: Set the header value of
Camel will provide exchange information in the FreeMarker context (just a
The FreeMarker template resource is by default not hot reloadable for both file and classpath resources (expanded jar). If you set
Camel provides two headers by which you can define a different resource location for a template or the template content itself. If any of these headers is set then Camel uses this over the endpoint configured resource. This allows you to provide a dynamic template at runtime.
For example you could use something like:
To use a FreeMarker template to formulate a response for a message for InOut message exchanges (where there is a
If you want to use InOnly and consume the message and send it to another destination you could use:
And to disable the content cache, e.g. for development usage where the
And a file-based resource:
In Camel 2.1 it's possible to specify what template the component should use dynamically via a header, so for example:
The Email Sample
In this sample we want to use FreeMarker templating for an order confirmation email. The email template is laid out in FreeMarker as:
And the java code: