--- 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.29 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: fabric8/connector-string-template:1.1.29 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 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 delimiterStart: kind: parameter group: producer type: string javaType: char deprecated: false secret: false defaultValue: < description: The variable start delimiter delimiterStop: kind: parameter group: producer type: string javaType: char deprecated: false secret: false defaultValue: '>' description: The variable end delimiter 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). 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]