Repository: camel Updated Branches: refs/heads/master 37df0d353 -> 13b79316b
Added camel-mustache 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/13b79316 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/13b79316 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/13b79316 Branch: refs/heads/master Commit: 13b79316bc0590bc99e6886ca0ff95fe3b5fea86 Parents: 37df0d3 Author: Andrea Cosentino <anco...@gmail.com> Authored: Wed May 11 17:32:46 2016 +0200 Committer: Andrea Cosentino <anco...@gmail.com> Committed: Wed May 11 17:32:46 2016 +0200 ---------------------------------------------------------------------- .../camel-mustache/src/main/docs/mustache.adoc | 181 +++++++++++++++++++ docs/user-manual/en/SUMMARY.md | 1 + 2 files changed, 182 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/13b79316/components/camel-mustache/src/main/docs/mustache.adoc ---------------------------------------------------------------------- diff --git a/components/camel-mustache/src/main/docs/mustache.adoc b/components/camel-mustache/src/main/docs/mustache.adoc new file mode 100644 index 0000000..bcb5500 --- /dev/null +++ b/components/camel-mustache/src/main/docs/mustache.adoc @@ -0,0 +1,181 @@ +[[Mustache-Mustache]] +Mustache +~~~~~~~~ + +*Available as of Camel 2.12* + +The *mustache:* component allows for processing a message using a +http://mustache.github.io/[Mustache] 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-mustache</artifactId> +<version>x.x.x</version> <!-- use the same version as your Camel core version --> +</dependency> +--------------------------------------------------------------------------------- + +[[Mustache-URIformat]] +URI format +^^^^^^^^^^ + +[source,java] +------------------------------- +mustache:templateName[?options] +------------------------------- + +Where *templateName* is the classpath-local URI of the template to +invoke; or the complete URL of the remote template (eg: +file://folder/myfile.mustache[file://folder/myfile.mustache]). + +You can append query options to the URI in the following format, +`?option=value&option=value&...` + +[[Mustache-Options]] +Options +^^^^^^^ + + +// component options: START +The Mustache component supports 1 options which are listed below. + + + +[width="100%",cols="2s,1m,8",options="header"] +|======================================================================= +| Name | Java Type | Description +| mustacheFactory | MustacheFactory | To use a custom MustacheFactory +|======================================================================= +// component options: END + + + +// endpoint options: START +The Mustache component supports 7 endpoint options which are listed below: + +[width="100%",cols="2s,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 +| encoding | producer | | String | Character encoding of the resource content. +| endDelimiter | producer | "\}\}" | String | Characters used to mark template code end. +| startDelimiter | producer | "\{\{" | String | Characters used to mark template code beginning. +| exchangePattern | advanced | InOnly | ExchangePattern | Sets the default exchange pattern when creating an exchange +| synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). +|======================================================================= +// endpoint options: END + + +[[Mustache-MustacheContext]] +Mustache Context +^^^^^^^^^^^^^^^^ + +Camel will provide exchange information in the Mustache context (just a +`Map`). The `Exchange` is transferred as: + +[width="100%",cols="10%,90%",options="header",] +|======================================================================= +|key |value + +|`exchange` |The `Exchange` itself. + +|`exchange.properties` |The `Exchange` properties. + +|`headers` |The headers of the In message. + +|`camelContext` |The Camel Context. + +|`request` |The In message. + +|`body` |The In message body. + +|`response` |The Out message (only for InOut message exchange pattern). +|======================================================================= + +[[Mustache-Dynamictemplates]] +Dynamic templates +^^^^^^^^^^^^^^^^^ + +Camel provides two headers by which you can define a different resource +location for a template or the template content itself. If any of these +headers is set then Camel uses this over the endpoint configured +resource. This allows you to provide a dynamic template at runtime. + +[width="100%",cols="10%,10%,10%,70%",options="header",] +|======================================================================= +|Header |Type |Description |Support Version + +|MustacheConstants.MUSTACHE_RESOURCE_URI |String |A URI for the template resource to use instead of the endpoint +configured. | + +|MustacheConstants.MUSTACHE_TEMPLATE |String |The template to use instead of the endpoint configured. | +|======================================================================= + +[[Mustache-Samples]] +Samples +^^^^^^^ + +For example you could use something like: + +[source,java] +-------------------------------------------- +from("activemq:My.Queue"). +to("mustache:com/acme/MyResponse.mustache"); +-------------------------------------------- + +To use a Mustache template to formulate a response for a message for +InOut message exchanges (where there is a `JMSReplyTo` header). + +If you want to use InOnly and consume the message and send it to another +destination you could use: + +[source,java] +-------------------------------------------- +from("activemq:My.Queue"). +to("mustache:com/acme/MyResponse.mustache"). +to("activemq:Another.Queue"); +-------------------------------------------- + +It's possible to specify what template the component should use +dynamically via a header, so for example: + +[source,java] +-------------------------------------------------------------------------------------------- +from("direct:in"). +setHeader(MustacheConstants.MUSTACHE_RESOURCE_URI).constant("path/to/my/template.mustache"). +to("mustache:dummy"); +-------------------------------------------------------------------------------------------- + +[[Mustache-TheEmailSample]] +The Email Sample +^^^^^^^^^^^^^^^^ + +In this sample we want to use Mustache templating for an order +confirmation email. The email template is laid out in Mustache as: + +[source,java] +------------------------------------------------- +Dear {{headers.lastName}}}, {{headers.firstName}} + +Thanks for the order of {{headers.item}}. + +Regards Camel Riders Bookstore +{{body}} +------------------------------------------------- + +[[Mustache-SeeAlso]] +See Also +^^^^^^^^ + +* link:configuring-camel.html[Configuring Camel] +* link:component.html[Component] +* link:endpoint.html[Endpoint] +* link:getting-started.html[Getting Started] + http://git-wip-us.apache.org/repos/asf/camel/blob/13b79316/docs/user-manual/en/SUMMARY.md ---------------------------------------------------------------------- diff --git a/docs/user-manual/en/SUMMARY.md b/docs/user-manual/en/SUMMARY.md index 2032863..c0d19a7 100644 --- a/docs/user-manual/en/SUMMARY.md +++ b/docs/user-manual/en/SUMMARY.md @@ -199,6 +199,7 @@ * [MongoDB-GridFS](gridfs.adoc) * [MQTT](mqtt.adoc) * [Msv](msv.adoc) + * [Mustache](mustache.adoc) * [Mock](mock.adoc) * [NATS](nats.adoc) * [Properties](properties.adoc)