You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2016/06/08 14:01:38 UTC

camel git commit: Added camel-stringtemplate docs to Gitbook

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 <an...@gmail.com>
Authored: Wed Jun 8 16:00:59 2016 +0200
Committer: Andrea Cosentino <an...@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]
+