Repository: camel Updated Branches: refs/heads/master 60e042ae7 -> 0d7ce68a3
Added camel-stringtemplate docs to Gitbook Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/0d7ce68a Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/0d7ce68a Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/0d7ce68a Branch: refs/heads/master Commit: 0d7ce68a3372599121f206fb3127e538f3b84b8a Parents: 60e042a Author: Andrea Cosentino <anco...@gmail.com> Authored: Wed Jun 8 16:00:59 2016 +0200 Committer: Andrea Cosentino <anco...@gmail.com> Committed: Wed Jun 8 16:00:59 2016 +0200 ---------------------------------------------------------------------- .../src/main/docs/string-template.adoc | 126 +++++++++++++++++++ 1 file changed, 126 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/0d7ce68a/components/camel-stringtemplate/src/main/docs/string-template.adoc ---------------------------------------------------------------------- diff --git a/components/camel-stringtemplate/src/main/docs/string-template.adoc b/components/camel-stringtemplate/src/main/docs/string-template.adoc new file mode 100644 index 0000000..e29bfc3 --- /dev/null +++ b/components/camel-stringtemplate/src/main/docs/string-template.adoc @@ -0,0 +1,126 @@ +[[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] +------------------------------------------------------------ +<dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-stringtemplate</artifactId> + <version>x.x.x</version> + <!-- use the same version as your Camel core version --> +</dependency> +------------------------------------------------------------ + +[[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 +// component options: END + +// endpoint options: START +// 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<String, Object> variableMap = new HashMap<String, Object>(); +Map<String, Object> headersMap = new HashMap<String, Object>(); +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 <headers.lastName>, <headers.firstName> + +Thanks for the order of <headers.item>. + +Regards Camel Riders Bookstore +<body> +-------------------------------------------- + +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] +