...
String
...
Template
...
The
...
string-template:
...
component
...
allows
...
you
...
to
...
process
...
a
...
message
...
using
...
a
...
...
...
.
...
This
...
can
...
be
...
ideal
...
when
...
using
...
...
to
...
generate
...
responses
...
for
...
requests.
...
Maven
...
users
...
will
...
need
...
to
...
add
...
the
...
following
...
dependency
...
to
...
their
...
pom.xml
...
for
...
this
...
component:
...
...
URI Format
...
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 |
---|---|---|
|
| Cache for the resource content when its loaded. |
|
| From Camel 2.11.1: configuring the variable start delimiter |
|
| From Camel 2.11.1: configuring the variable end delimiter |
Headers
Camel will store a reference to the resource in the message header with key, org.apache.camel.stringtemplate.resource
...
.
...
The
...
Resource
...
is
...
an
...
org.springframework.core.io.Resource
...
object.
...
Hot-Reloading
The string template resource is by default hot-reloadable
...
for
...
both
...
file
...
and
...
classpath
...
resources
...
(expanded
...
jar).
...
If
...
you
...
set
...
contentCache=true
...
,
...
Camel
...
will load the
...
resource
...
just once, disabling hot-reloading
...
.
...
This
...
scenario
...
can
...
be
...
used
...
in
...
production
...
when
...
the
...
resource
...
never
...
changes.
...
StringTemplate
...
Attributes
...
Camel
...
will
...
provide
...
exchange
...
information
...
as
...
attributes
...
(just
...
a
...
java.util.Map
...
)
...
to
...
the
...
string
...
template.
...
The
...
Exchange
...
is
...
transferred as:
...
...
Key | Value |
---|---|
| The Exchange itself. |
| The headers of the |
| The Camel Context. |
| The |
| The |
| The |
| The |
| The |
From Camel 2.14: you can define the custom context map by setting the message header CamelStringTemplateVariableMap
, as shown below:
...
Samples
For example you could use a string template as follows in order to formulate a response to a message:
...
The Email Sample
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
...
$
.
...
...
And the java code is as follows:
...
...
...
...