---
apiVersion: v1
kind: List
items:
- apiVersion: v1
kind: ConfigMap
metadata:
labels:
funktion.fabric8.io/kind: Connector
provider: fabric8
project: connector-string-template
version: 1.1.55
group: io.fabric8.funktion.connector
name: string-template
data:
deployment.yml: |
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
funktion.fabric8.io/kind: Subscription
connector: string-template
spec:
replicas: 1
template:
metadata:
labels:
funktion.fabric8.io/kind: Subscription
connector: string-template
spec:
containers:
- image: funktion/connector-string-template:1.1.55
name: connector
schema.yml: |
---
component:
kind: component
scheme: string-template
syntax: string-template:resourceUri
title: String Template
description: Transforms the message using a String template.
label: transformation
deprecated: false
async: false
producerOnly: true
javaType: org.apache.camel.component.stringtemplate.StringTemplateComponent
groupId: org.apache.camel
artifactId: camel-stringtemplate
version: 2.18.1
componentProperties: {}
properties:
resourceUri:
kind: path
group: producer
required: true
type: string
javaType: java.lang.String
deprecated: false
secret: false
description: Path to the resource or a reference to lookup a bean in the Registry to use as the resource
order: 0
contentCache:
kind: parameter
group: producer
type: boolean
javaType: boolean
deprecated: false
secret: false
defaultValue: false
description: Sets whether to use resource content cache or not
order: 1
delimiterStart:
kind: parameter
group: producer
type: string
javaType: char
deprecated: false
secret: false
defaultValue: <
description: The variable start delimiter
order: 2
delimiterStop:
kind: parameter
group: producer
type: string
javaType: char
deprecated: false
secret: false
defaultValue: '>'
description: The variable end delimiter
order: 3
synchronous:
kind: parameter
group: advanced
label: advanced
type: boolean
javaType: boolean
deprecated: false
secret: false
defaultValue: false
description: Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).
order: 4
documentation.adoc: |+
[[StringTemplate-StringTemplate]]
String Template
~~~~~~~~~~~~~~~
The *string-template:* component allows you to process a message using a
http://www.stringtemplate.org/[String Template]. This can be ideal when
using link:templating.html[Templating] to generate responses for
requests.
Maven users will need to add the following dependency to their `pom.xml`
for this component:
[source,xml]
------------------------------------------------------------
org.apache.camel
camel-stringtemplate
x.x.x
------------------------------------------------------------
[[StringTemplate-URIformat]]
URI format
^^^^^^^^^^
[source,java]
--------------------------------------
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&...`
[[StringTemplate-Options]]
Options
^^^^^^^
// component options: START
The String Template component has no options.
// component options: END
// endpoint options: START
The String Template component supports 5 endpoint options which are listed below:
{% raw %}
[width="100%",cols="2,1,1m,1m,5",options="header"]
|=======================================================================
| Name | Group | Default | Java Type | Description
| resourceUri | producer | | String | *Required* Path to the resource or a reference to lookup a bean in the Registry to use as the resource
| contentCache | producer | false | boolean | Sets whether to use resource content cache or not
| delimiterStart | producer | < | char | The variable start delimiter
| delimiterStop | producer | > | char | The variable end delimiter
| synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).
|=======================================================================
{% endraw %}
// endpoint options: END
[[StringTemplate-Headers]]
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.
[[StringTemplate-Hotreloading]]
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 loads the resource only once and hot-reloading is not possible.
This scenario can be used in production when the resource never changes.
[[StringTemplate-StringTemplateAttributes]]
StringTemplate Attributes
^^^^^^^^^^^^^^^^^^^^^^^^^
Since Camel 2.14, you can define the custom context map by setting the
message header "*CamelStringTemplateVariableMap*" just like the below
code.
[source,java]
--------------------------------------------------------------------------
Map variableMap = new HashMap();
Map headersMap = new HashMap();
headersMap.put("name", "Willem");
variableMap.put("headers", headersMap);
variableMap.put("body", "Monday");
variableMap.put("exchange", exchange);
exchange.getIn().setHeader("CamelStringTemplateVariableMap", variableMap);
--------------------------------------------------------------------------
[[StringTemplate-Samples]]
Samples
^^^^^^^
For example you could use a string template as follows in order to
formulate a response to a message:
[source,java]
-----------------------------------------------
from("activemq:My.Queue").
to("string-template:com/acme/MyResponse.tm");
-----------------------------------------------
[[StringTemplate-TheEmailSample]]
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 $.
[source,java]
--------------------------------------------
Dear ,
Thanks for the order of .
Regards Camel Riders Bookstore
--------------------------------------------
And the java code is as follows:
[[StringTemplate-SeeAlso]]
See Also
^^^^^^^^
* link:configuring-camel.html[Configuring Camel]
* link:component.html[Component]
* link:endpoint.html[Endpoint]
* link:getting-started.html[Getting Started]