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/05/12 07:59:28 UTC

camel git commit: Added camel-mvel docs to Gitbook

Repository: camel
Updated Branches:
  refs/heads/master 767a98b47 -> 86ebce0ca


Added camel-mvel 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/86ebce0c
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/86ebce0c
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/86ebce0c

Branch: refs/heads/master
Commit: 86ebce0ca7445a0f79e674d028374cd729036c15
Parents: 767a98b
Author: Andrea Cosentino <an...@gmail.com>
Authored: Thu May 12 09:58:10 2016 +0200
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Thu May 12 09:58:10 2016 +0200

----------------------------------------------------------------------
 components/camel-mvel/src/main/docs/mvel.adoc | 181 +++++++++++++++++++++
 docs/user-manual/en/SUMMARY.md                |   1 +
 2 files changed, 182 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/86ebce0c/components/camel-mvel/src/main/docs/mvel.adoc
----------------------------------------------------------------------
diff --git a/components/camel-mvel/src/main/docs/mvel.adoc b/components/camel-mvel/src/main/docs/mvel.adoc
new file mode 100644
index 0000000..4f62b55
--- /dev/null
+++ b/components/camel-mvel/src/main/docs/mvel.adoc
@@ -0,0 +1,181 @@
+[[MVELComponent-MVELComponent]]
+MVEL Component
+~~~~~~~~~~~~~~
+
+*Available as of Camel 2.12*
+
+The *mvel:* component allows you to process a message using an
+http://mvel.codehaus.org/[MVEL] 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-mvel</artifactId>
+    <version>x.x.x</version>
+    <!-- use the same version as your Camel core version -->
+</dependency>
+------------------------------------------------------------
+
+[[MVELComponent-URIformat]]
+URI format
+^^^^^^^^^^
+
+[source,java]
+---------------------------
+mvel: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.mvel[file://folder/myfile.mvel]).
+
+You can append query options to the URI in the following format,
+`?option=value&option=value&...`
+
+[[MVELComponent-Options]]
+Options
+^^^^^^^
+
+
+// component options: START
+The MVEL component has no options.
+// component options: END
+
+
+
+// endpoint options: START
+The MVEL component supports 5 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.
+| 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
+
+
+[[MVELComponent-MessageHeaders]]
+Message Headers
+^^^^^^^^^^^^^^^
+
+The mvel component sets a couple headers on the message.
+
+[width="100%",cols="10%,90%",options="header",]
+|=======================================================================
+|Header |Description
+
+|`CamelMvelResourceUri` |The *templateName* as a `String` object.
+|=======================================================================
+
+[[MVELComponent-MVELContext]]
+MVEL Context
+^^^^^^^^^^^^
+
+Camel will provide exchange information in the MVEL context (just a
+`Map`). The `Exchange` is transfered 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 intance.
+
+|`request` |The In message.
+
+|`in` |The In message.
+
+|`body` |The In message body.
+
+|`out` |The Out message (only for InOut message exchange pattern).
+
+|`response` |The Out message (only for InOut message exchange pattern).
+|=======================================================================
+
+[[MVELComponent-Hotreloading]]
+Hot reloading
+^^^^^^^^^^^^^
+
+The mvel template resource is, by default, hot reloadable for both file
+and classpath resources (expanded jar). If you set `contentCache=true`,
+Camel will only load the resource once, and thus hot reloading is not
+possible. This scenario can be used in production, when the resource
+never changes.
+
+[[MVELComponent-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%,80%",options="header",]
+|=======================================================================
+|Header |Type |Description
+
+|CamelMvelResourceUri |String |A URI for the template resource to use instead of the endpoint
+configured.
+
+|CamelMvelTemplate |String |The template to use instead of the endpoint configured.
+|=======================================================================
+
+[[MVELComponent-Samples]]
+Samples
+^^^^^^^
+
+For example you could use something like
+
+[source,java]
+--------------------------------------
+from("activemq:My.Queue").
+  to("mvel:com/acme/MyResponse.mvel");
+--------------------------------------
+
+To use a MVEL template to formulate a response to a message for InOut
+message exchanges (where there is a `JMSReplyTo` header).
+
+To specify what template the component should use dynamically via a
+header, so for example:
+
+[source,java]
+-------------------------------------------------------------------------
+from("direct:in").
+  setHeader("CamelMvelResourceUri").constant("path/to/my/template.mvel").
+  to("mvel:dummy");
+-------------------------------------------------------------------------
+
+To specify a template directly as a header the component should use
+dynamically via a header, so for example:
+
+[source,java]
+------------------------------------------------------------------------------------------
+from("direct:in").
+  setHeader("CamelMvelTemplate").constant("@{\"The result is \" + request.body * 3}\" }").
+  to("velocity:dummy");
+------------------------------------------------------------------------------------------
+
+[[MVELComponent-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/86ebce0c/docs/user-manual/en/SUMMARY.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/SUMMARY.md b/docs/user-manual/en/SUMMARY.md
index c0d19a7..c6cad47 100644
--- a/docs/user-manual/en/SUMMARY.md
+++ b/docs/user-manual/en/SUMMARY.md
@@ -200,6 +200,7 @@
     * [MQTT](mqtt.adoc)
     * [Msv](msv.adoc)
     * [Mustache](mustache.adoc)
+    * [Mvel](mvel.adoc)
     * [Mock](mock.adoc)
     * [NATS](nats.adoc)
     * [Properties](properties.adoc)