You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2016/08/16 08:03:50 UTC

[26/51] [partial] camel git commit: CAMEL-9541: Use -component as suffix for component docs.

http://git-wip-us.apache.org/repos/asf/camel/blob/9c0b7baf/components/camel-facebook/src/main/docs/facebook.adoc
----------------------------------------------------------------------
diff --git a/components/camel-facebook/src/main/docs/facebook.adoc b/components/camel-facebook/src/main/docs/facebook.adoc
deleted file mode 100644
index 8f58063..0000000
--- a/components/camel-facebook/src/main/docs/facebook.adoc
+++ /dev/null
@@ -1,346 +0,0 @@
-[[Facebook-FacebookComponent]]
-Facebook Component
-~~~~~~~~~~~~~~~~~~
-
-*Available as of Camel 2.12*
-
-The Facebook component provides access to all of the Facebook APIs
-accessible using http://facebook4j.org/en/index.html[Facebook4J]. It
-allows producing messages to retrieve, add, and delete posts, likes,
-comments, photos, albums, videos, photos, checkins, locations, links,
-etc. It also supports APIs that allow polling for posts, users,
-checkins, groups, locations, etc.
-
-Facebook requires the use of OAuth for all client application
-authentication. In order to use camel-facebook with your account, you'll
-need to create a new application within Facebook at
-https://developers.facebook.com/apps[https://developers.facebook.com/apps]
-and grant the application access to your account. The Facebook
-application's id and secret will allow access to Facebook APIs which do
-not require a current user. A user access token is required for APIs
-that require a logged in user. More information on obtaining a user
-access token can be found at
-https://developers.facebook.com/docs/facebook-login/access-tokens/[https://developers.facebook.com/docs/facebook-login/access-tokens/].
-
-Maven users will need to add the following dependency to their pom.xml
-for this component:
-
-[source,java]
------------------------------------------------
-    <dependency>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-facebook</artifactId>
-        <version>${camel-version}</version>
-    </dependency>
------------------------------------------------
-
-[[Facebook-URIformat]]
-URI format
-^^^^^^^^^^
-
-[source,java]
----------------------------------
-  facebook://[endpoint]?[options]
----------------------------------
-
-[[Facebook-FacebookComponent.1]]
-FacebookComponent
-^^^^^^^^^^^^^^^^^
-
-The facebook component can be configured with the Facebook account
-settings below, which are mandatory. The values can be provided to the
-component using the bean property *configuration* of type
-*org.apache.camel.component.facebook.config.FacebookConfiguration*. The
-*oAuthAccessToken* option may be ommited but that will only allow access
-to application APIs.
-
-
-
-// component options: START
-The Facebook component supports 28 options which are listed below.
-
-
-
-{% raw %}
-[width="100%",cols="2s,1m,8",options="header"]
-|=======================================================================
-| Name | Java Type | Description
-| configuration | FacebookConfiguration | To use the shared configuration. Properties of the shared configuration can also be set individually.
-| oAuthAccessToken | String | The user access token
-| oAuthAccessTokenURL | String | OAuth access token URL
-| oAuthAppId | String | The application Id
-| oAuthAppSecret | String | The application Secret
-| oAuthAuthorizationURL | String | OAuth authorization URL
-| clientURL | String | Facebook4J API client URL
-| clientVersion | String | Facebook4J client API version
-| debugEnabled | Boolean | Enables deubg output. Effective only with the embedded logger
-| gzipEnabled | Boolean | Use Facebook GZIP encoding
-| httpConnectionTimeout | Integer | Http connection timeout in milliseconds
-| httpDefaultMaxPerRoute | Integer | HTTP maximum connections per route
-| httpMaxTotalConnections | Integer | HTTP maximum total connections
-| httpProxyHost | String | HTTP proxy server host name
-| httpProxyPassword | String | HTTP proxy server password
-| httpProxyPort | Integer | HTTP proxy server port
-| httpProxyUser | String | HTTP proxy server user name
-| httpReadTimeout | Integer | Http read timeout in milliseconds
-| httpRetryCount | Integer | Number of HTTP retries
-| httpRetryIntervalSeconds | Integer | HTTP retry interval in seconds
-| httpStreamingReadTimeout | Integer | HTTP streaming read timeout in milliseconds
-| jsonStoreEnabled | Boolean | If set to true raw JSON forms will be stored in DataObjectFactory
-| mbeanEnabled | Boolean | If set to true Facebook4J mbean will be registerd
-| oAuthPermissions | String | Default OAuth permissions. Comma separated permission names. See https://developers.facebook.com/docs/reference/login/permissions for the detail
-| prettyDebugEnabled | Boolean | Prettify JSON debug output if set to true
-| restBaseURL | String | API base URL
-| useSSL | Boolean | Use SSL
-| videoBaseURL | String | Video API base URL
-|=======================================================================
-{% endraw %}
-// component options: END
-
-
-
-
-// endpoint options: START
-The Facebook component supports 103 endpoint options which are listed below:
-
-{% raw %}
-[width="100%",cols="2s,1,1m,1m,5",options="header"]
-|=======================================================================
-| Name | Group | Default | Java Type | Description
-| methodName | common |  | String | *Required* What operation to perform
-| achievementURL | common |  | URL | The unique URL of the achievement
-| albumId | common |  | String | The album ID
-| albumUpdate | common |  | AlbumUpdate | The facebook Album to be created or updated
-| appId | common |  | String | The ID of the Facebook Application
-| center | common |  | GeoLocation | Location latitude and longitude
-| checkinId | common |  | String | The checkin ID
-| checkinUpdate | common |  | CheckinUpdate | The checkin to be created. Deprecated instead create a Post with an attached location
-| clientURL | common |  | String | Facebook4J API client URL
-| clientVersion | common |  | String | Facebook4J client API version
-| commentId | common |  | String | The comment ID
-| commentUpdate | common |  | CommentUpdate | The facebook Comment to be created or updated
-| debugEnabled | common | false | Boolean | Enables deubg output. Effective only with the embedded logger
-| description | common |  | String | The description text
-| distance | common |  | Integer | Distance in meters
-| domainId | common |  | String | The domain ID
-| domainName | common |  | String | The domain name
-| domainNames | common |  | List | The domain names
-| eventId | common |  | String | The event ID
-| eventUpdate | common |  | EventUpdate | The event to be created or updated
-| friendId | common |  | String | The friend ID
-| friendlistId | common |  | String | The friend list ID
-| friendlistName | common |  | String | The friend list Name
-| friendUserId | common |  | String | The friend user ID
-| groupId | common |  | String | The group ID
-| gzipEnabled | common | true | Boolean | Use Facebook GZIP encoding
-| httpConnectionTimeout | common | 20000 | Integer | Http connection timeout in milliseconds
-| httpDefaultMaxPerRoute | common | 2 | Integer | HTTP maximum connections per route
-| httpMaxTotalConnections | common | 20 | Integer | HTTP maximum total connections
-| httpReadTimeout | common | 120000 | Integer | Http read timeout in milliseconds
-| httpRetryCount | common | 0 | Integer | Number of HTTP retries
-| httpRetryIntervalSeconds | common | 5 | Integer | HTTP retry interval in seconds
-| httpStreamingReadTimeout | common | 40000 | Integer | HTTP streaming read timeout in milliseconds
-| ids | common |  | List | The ids of users
-| inBody | common |  | String | Sets the name of a parameter to be passed in the exchange In Body
-| includeRead | common |  | Boolean | Enables notifications that the user has already read in addition to unread ones
-| isHidden | common |  | Boolean | Whether hidden
-| jsonStoreEnabled | common | false | Boolean | If set to true raw JSON forms will be stored in DataObjectFactory
-| link | common |  | URL | Link URL
-| linkId | common |  | String | Link ID
-| locale | common |  | Locale | Desired FQL locale
-| mbeanEnabled | common | false | Boolean | If set to true Facebook4J mbean will be registerd
-| message | common |  | String | The message text
-| messageId | common |  | String | The message ID
-| metric | common |  | String | The metric name
-| milestoneId | common |  | String | The milestone id
-| name | common |  | String | Test user name must be of the form 'first last'
-| noteId | common |  | String | The note ID
-| notificationId | common |  | String | The notification ID
-| objectId | common |  | String | The insight object ID
-| offerId | common |  | String | The offer id
-| optionDescription | common |  | String | The question's answer option description
-| pageId | common |  | String | The page id
-| permissionName | common |  | String | The permission name
-| permissions | common |  | String | Test user permissions in the format perm1perm2...
-| photoId | common |  | String | The photo ID
-| pictureId | common |  | Integer | The picture id
-| pictureId2 | common |  | Integer | The picture2 id
-| pictureSize | common |  | PictureSize | The picture size
-| placeId | common |  | String | The place ID
-| postId | common |  | String | The post ID
-| postUpdate | common |  | PostUpdate | The post to create or update
-| prettyDebugEnabled | common | false | Boolean | Prettify JSON debug output if set to true
-| queries | common |  | Map | FQL queries
-| query | common |  | String | FQL query or search terms for search endpoints
-| questionId | common |  | String | The question id
-| reading | common |  | Reading | Optional reading parameters. See Reading Options(reading)
-| readingOptions | common |  | Map | To configure Reading using key/value pairs from the Map.
-| restBaseURL | common | https://graph.facebook.com/ | String | API base URL
-| scoreValue | common |  | Integer | The numeric score with value
-| size | common |  | PictureSize | The picture size one of large normal small or square
-| source | common |  | Media | The media content from either a java.io.File or java.io.Inputstream
-| subject | common |  | String | The note of the subject
-| tabId | common |  | String | The tab id
-| tagUpdate | common |  | TagUpdate | Photo tag information
-| testUser1 | common |  | TestUser | Test user 1
-| testUser2 | common |  | TestUser | Test user 2
-| testUserId | common |  | String | The ID of the test user
-| title | common |  | String | The title text
-| toUserId | common |  | String | The ID of the user to tag
-| toUserIds | common |  | List | The IDs of the users to tag
-| userId | common |  | String | The Facebook user ID
-| userId1 | common |  | String | The ID of a user 1
-| userId2 | common |  | String | The ID of a user 2
-| userIds | common |  | List | The IDs of users to invite to event
-| userLocale | common |  | String | The test user locale
-| useSSL | common | true | Boolean | Use SSL
-| videoBaseURL | common | https://graph-video.facebook.com/ | String | Video API base URL
-| videoId | common |  | String | The video ID
-| bridgeErrorHandler | consumer | false | boolean | Allows for bridging the consumer to the Camel routing Error Handler which mean any exceptions occurred while the consumer is trying to pickup incoming messages or the likes will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions that will be logged at WARN/ERROR level and ignored.
-| exceptionHandler | consumer (advanced) |  | ExceptionHandler | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this options is not in use. By default the consumer will deal with exceptions that will be logged at WARN/ERROR level and ignored.
-| 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).
-| httpProxyHost | proxy |  | String | HTTP proxy server host name
-| httpProxyPassword | proxy |  | String | HTTP proxy server password
-| httpProxyPort | proxy |  | Integer | HTTP proxy server port
-| httpProxyUser | proxy |  | String | HTTP proxy server user name
-| oAuthAccessToken | security |  | String | The user access token
-| oAuthAccessTokenURL | security | https://graph.facebook.com/oauth/access_token | String | OAuth access token URL
-| oAuthAppId | security |  | String | The application Id
-| oAuthAppSecret | security |  | String | The application Secret
-| oAuthAuthorizationURL | security | https://www.facebook.com/dialog/oauth | String | OAuth authorization URL
-| oAuthPermissions | security |  | String | Default OAuth permissions. Comma separated permission names. See https://developers.facebook.com/docs/reference/login/permissions for the detail
-|=======================================================================
-{% endraw %}
-// endpoint options: END
-
-
-[[Facebook-ProducerEndpoints:]]
-Producer Endpoints:
-^^^^^^^^^^^^^^^^^^^
-
-Producer endpoints can use endpoint names and options from the table
-below. Endpoints can also use the short name without the *get* or
-*search* prefix, except *checkin* due to ambiguity between *getCheckin*
-and *searchCheckin*. Endpoint options that are not mandatory are denoted
-by [].
-
-Producer endpoints can also use a special option **inBody** that in turn
-should contain the name of the endpoint option whose value will be
-contained in the Camel Exchange In message. For example, the facebook
-endpoint in the following route retrieves activities for the user id
-value in the incoming message body.
-
-[source,java]
---------------------------------------------------------------------
-    from("direct:test").to("facebook://activities?inBody=userId")...
---------------------------------------------------------------------
-
-Any of the endpoint options can be provided in either the endpoint URI,
-or dynamically in a message header. The message header name must be of
-the format
-*CamelFacebook.https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=CAMEL&title=option&linkCreation=true&fromPageId=34020899[option]*.
-For example, the *userId* option value in the previous route could
-alternately be provided in the message header *CamelFacebook.userId*.
-Note that the inBody option overrides message header, e.g. the endpoint
-option *inBody=user* would override a *CamelFacebook.userId* header.
-
-Endpoints that return a String return an Id for the created or modified
-entity, e.g. *addAlbumPhoto* returns the new album Id. Endpoints that
-return a boolean, return true for success and false otherwise. In case
-of Facebook API errors the endpoint will throw a RuntimeCamelException
-with a facebook4j.FacebookException cause.
-
-[[Facebook-ConsumerEndpoints:]]
-Consumer Endpoints:
-^^^^^^^^^^^^^^^^^^^
-
-Any of the producer endpoints that take a
-https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=CAMEL&title=reading&linkCreation=true&fromPageId=34020899[reading#reading]
-parameter can be used as a consumer endpoint. The polling consumer uses
-the *since* and *until* fields to get responses within the polling
-interval. In addition to other reading fields, an initial *since* value
-can be provided in the endpoint for the first poll.
-
-Rather than the endpoints returning a List (or
-*facebook4j.ResponseList*) through a single route exchange,
-camel-facebook creates one route exchange per returned object. As an
-example, if *"facebook://home"* results in five posts, the route will be
-executed five times (once for each Post).
-
-[[Facebook-ReadingOptions]]
-Reading Options
-^^^^^^^^^^^^^^^
-
-The *reading* option of type *facebook4j.Reading* adds support for
-reading parameters, which allow selecting specific fields, limits the
-number of results, etc. For more information see
-https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=CAMEL&title=Graph+API&linkCreation=true&fromPageId=34020899[Graph
-API#reading] -
-https://developers.facebook.com/docs/reference/api/#reading[Facebook
-Developers].
-
-It is also used by consumer endpoints to poll Facebook data to avoid
-sending duplicate messages across polls.
-
-The reading option can be a reference or value of type
-*facebook4j.Reading*, or can be specified using the following reading
-options in either the endpoint URI or exchange header with
-*CamelFacebook.* prefix.
-
-[[Facebook-Messageheader]]
-Message header
-^^^^^^^^^^^^^^
-
-Any of the
-https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=CAMEL&title=URI+options&linkCreation=true&fromPageId=34020899[URI
-options#urioptions] can be provided in a message header for producer
-endpoints with *CamelFacebook.* prefix.
-
-[[Facebook-Messagebody]]
-Message body
-^^^^^^^^^^^^
-
-All result message bodies utilize objects provided by the Facebook4J
-API. Producer endpoints can specify the option name for incoming message
-body in the *inBody* endpoint parameter.
-
-For endpoints that return an array, or *facebook4j.ResponseList*, or
-*java.util.List*, a consumer endpoint will map every elements in the
-list to distinct messages.
-
-[[Facebook-Usecases]]
-Use cases
-^^^^^^^^^
-
-To create a post within your Facebook profile, send this producer a
-facebook4j.PostUpdate body.
-
-[source,java]
-----------------------------------------------------
-    from("direct:foo")
-        .to("facebook://postFeed/inBody=postUpdate);
-----------------------------------------------------
-
-To poll, every 5 sec (You can set the�link:polling-consumer.html[polling
-consumer]�options by adding a prefix of "consumer"), all statuses on
-your home feed:
-
-[source,java]
------------------------------------------------
-    from("facebook://home?consumer.delay=5000")
-        .to("bean:blah");
------------------------------------------------
-
-Searching using a producer with dynamic options from header.
-
-In the bar header we have the Facebook search string we want to execute
-in public posts, so we need to assign this value to the
-CamelFacebook.query header.
-
-[source,java]
---------------------------------------------------------
-    from("direct:foo")
-        .setHeader("CamelFacebook.query", header("bar"))
-        .to("facebook://posts");
---------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/camel/blob/9c0b7baf/components/camel-flatpack/src/main/docs/flatpack-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-flatpack/src/main/docs/flatpack-component.adoc b/components/camel-flatpack/src/main/docs/flatpack-component.adoc
new file mode 100644
index 0000000..cd25aa7
--- /dev/null
+++ b/components/camel-flatpack/src/main/docs/flatpack-component.adoc
@@ -0,0 +1,298 @@
+[[Flatpack-FlatpackComponent]]
+Flatpack Component
+~~~~~~~~~~~~~~~~~~
+
+The Flatpack component supports fixed width and delimited file parsing
+via the http://flatpack.sourceforge.net[FlatPack library]. +
+ *Notice:* This component only supports consuming from flatpack files to
+Object model. You can not (yet) write from Object model to flatpack
+format.
+
+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-flatpack</artifactId>
+    <version>x.x.x</version>
+    <!-- use the same version as your Camel core version -->
+</dependency>
+------------------------------------------------------------
+
+[[Flatpack-URIformat]]
+URI format
+^^^^^^^^^^
+
+[source,java]
+---------------------------------------------------------
+flatpack:[delim|fixed]:flatPackConfig.pzmap.xml[?options]
+---------------------------------------------------------
+
+Or for a delimited file handler with no configuration file just use
+
+[source,java]
+---------------------------
+flatpack:someName[?options]
+---------------------------
+
+You can append query options to the URI in the following format,
+`?option=value&option=value&...`
+
+[[Flatpack-URIOptions]]
+URI Options
+^^^^^^^^^^^
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Name |Default Value |Description
+
+|`delimiter` |`,` |The default character delimiter for delimited files.
+
+|`textQualifier` |`"` |The text qualifier for delimited files.
+
+|`ignoreFirstRecord` |`true` |Whether the first line is ignored for delimited files (for the column
+headers).
+
+|`splitRows` |`true` |The component can either process each row one by one or the entire
+content at once.
+
+|`allowShortLines` |`false` |*Camel 2.9.7 and 2.10.5 onwards:* Allows for lines to be shorter than
+expected and ignores the extra characters.
+
+|`ignoreExtraColumns` |`false` |*Camel 2.9.7 and 2.10.5 onwards:* Allows for lines to be longer than
+expected and ignores the extra characters.
+|=======================================================================
+
+[[Flatpack-Examples]]
+Examples
+^^^^^^^^
+
+* `flatpack:fixed:foo.pzmap.xml` creates a fixed-width endpoint using
+the `foo.pzmap.xml` file configuration.
+* `flatpack:delim:bar.pzmap.xml` creates a delimited endpoint using the
+`bar.pzmap.xml` file configuration.
+* `flatpack:foo` creates a delimited endpoint called `foo` with no file
+configuration.
+
+[[Flatpack-MessageHeaders]]
+Message Headers
+^^^^^^^^^^^^^^^
+
+Camel will store the following headers on the IN message:
+
+[width="100%",cols="50%,50%",options="header",]
+|=======================================================================
+|Header |Description
+
+|`camelFlatpackCounter` |The current row index. For `splitRows=false` the counter is the total
+number of rows.
+|=======================================================================
+
+[[Flatpack-MessageBody]]
+Message Body
+^^^^^^^^^^^^
+
+The component delivers the data in the IN message as a
+`org.apache.camel.component.flatpack.DataSetList` object that has
+converters for `java.util.Map` or `java.util.List`. +
+ Usually you want the `Map` if you process one row at a time
+(`splitRows=true`). Use `List` for the entire content
+(`splitRows=false`), where each element in the list is a `Map`. +
+ Each `Map` contains the key for the column name and its corresponding
+value.
+
+For example to get the firstname from the sample below:
+
+[source,java]
+------------------------------------------------
+  Map row = exchange.getIn().getBody(Map.class);
+  String firstName = row.get("FIRSTNAME");
+------------------------------------------------
+
+However, you can also always get it as a `List` (even for
+`splitRows=true`). The same example:
+
+[source,java]
+---------------------------------------------------
+  List data = exchange.getIn().getBody(List.class);
+  Map row = (Map)data.get(0);
+  String firstName = row.get("FIRSTNAME");
+---------------------------------------------------
+
+[[Flatpack-HeaderandTrailerrecords]]
+Header and Trailer records
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The header and trailer notions in Flatpack are supported. However, you
+*must* use fixed record IDs:
+
+* `header` for the header record (must be lowercase)
+* `trailer` for the trailer record (must be lowercase)
+
+The example below illustrates this fact that we have a header and a
+trailer. You can omit one or both of them if not needed.
+
+[source,xml]
+---------------------------------------------------------------------------
+    <RECORD id="header" startPosition="1" endPosition="3" indicator="HBT">
+        <COLUMN name="INDICATOR" length="3"/>
+        <COLUMN name="DATE" length="8"/>
+    </RECORD>
+
+    <COLUMN name="FIRSTNAME" length="35" />
+    <COLUMN name="LASTNAME" length="35" />
+    <COLUMN name="ADDRESS" length="100" />
+    <COLUMN name="CITY" length="100" />
+    <COLUMN name="STATE" length="2" />
+    <COLUMN name="ZIP" length="5" />
+
+    <RECORD id="trailer" startPosition="1" endPosition="3" indicator="FBT">
+        <COLUMN name="INDICATOR" length="3"/>
+        <COLUMN name="STATUS" length="7"/>
+    </RECORD>
+---------------------------------------------------------------------------
+
+[[Flatpack-Usingtheendpoint]]
+Using the endpoint
+^^^^^^^^^^^^^^^^^^
+
+A common use case is sending a file to this endpoint for further
+processing in a separate route. For example:
+
+[source,xml]
+-----------------------------------------------------------------------
+  <camelContext xmlns="http://activemq.apache.org/camel/schema/spring">
+    <route>
+      <from uri="file://someDirectory"/>
+      <to uri="flatpack:foo"/>
+    </route>
+
+    <route>
+      <from uri="flatpack:foo"/>
+      ...
+    </route>
+  </camelContext>
+-----------------------------------------------------------------------
+
+You can also convert the payload of each message created to a `Map` for
+easy link:bean-integration.html[Bean Integration]
+
+[[Flatpack-FlatpackDataFormat]]
+Flatpack DataFormat
+~~~~~~~~~~~~~~~~~~~
+
+The link:flatpack.html[Flatpack] component ships with the Flatpack data
+format that can be used to format between fixed width or delimited text
+messages to a `List` of rows as `Map`.
+
+* marshal = from `List<Map<String, Object>>` to `OutputStream` (can be
+converted to `String`)
+* unmarshal = from `java.io.InputStream` (such as a `File` or `String`)
+to a `java.util.List` as an
+`org.apache.camel.component.flatpack.DataSetList` instance. +
+ The result of the operation will contain all the data. If you need to
+process each row one by one you can split the exchange, using
+link:splitter.html[Splitter].
+
+*Notice:* The Flatpack library does currently not support header and
+trailers for the marshal operation.
+
+[[Flatpack-Options]]
+Options
+^^^^^^^
+
+The data format has the following options:
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|Option |Default |Description
+
+|`definition` |`null` |The flatpack pzmap configuration file. Can be omitted in simpler
+situations, but its preferred to use the pzmap.
+
+|`fixed` |`false` |Delimited or fixed.
+
+|`ignoreFirstRecord` |`true` |Whether the first line is ignored for delimited files (for the column
+headers).
+
+|`textQualifier` |`"` |If the text is qualified with a char such as `"`.
+
+|`delimiter` |`,` |The delimiter char (could be `;` `,` or similar)
+
+|`parserFactory` |`null` |Uses the default Flatpack parser factory.
+
+|`allowShortLines` |`false` |*Camel 2.9.7 and 2.10.5 onwards*: Allows for lines to be shorter than
+expected and ignores the extra characters.
+
+|`ignoreExtraColumns` |`false` |*Camel 2.9.7 and 2.10.5 onwards*: Allows for lines to be longer than
+expected and ignores the extra characters.
+|=======================================================================
+
+[[Flatpack-Usage]]
+Usage
+^^^^^
+
+To use the data format, simply instantiate an instance and invoke the
+marshal or unmarshal operation in the route builder:
+
+[source,java]
+---------------------------------------------------------------------------
+  FlatpackDataFormat fp = new FlatpackDataFormat();
+  fp.setDefinition(new ClassPathResource("INVENTORY-Delimited.pzmap.xml"));
+  ...
+  from("file:order/in").unmarshal(df).to("seda:queue:neworder");
+---------------------------------------------------------------------------
+
+The sample above will read files from the `order/in` folder and
+unmarshal the input using the Flatpack configuration file
+`INVENTORY-Delimited.pzmap.xml` that configures the structure of the
+files. The result is a `DataSetList` object we store on the SEDA queue.
+
+[source,java]
+-----------------------------------------------------------------------------------
+FlatpackDataFormat df = new FlatpackDataFormat();
+df.setDefinition(new ClassPathResource("PEOPLE-FixedLength.pzmap.xml"));
+df.setFixed(true);
+df.setIgnoreFirstRecord(false);
+
+from("seda:people").marshal(df).convertBodyTo(String.class).to("jms:queue:people");
+-----------------------------------------------------------------------------------
+
+In the code above we marshal the data from a Object representation as a
+`List` of rows as `Maps`. The rows as `Map` contains the column name as
+the key, and the the corresponding value. This structure can be created
+in Java code from e.g. a processor. We marshal the data according to the
+Flatpack format and convert the result as a `String` object and store it
+on a JMS queue.
+
+[[Flatpack-Dependencies]]
+Dependencies
+^^^^^^^^^^^^
+
+To use Flatpack in your camel routes you need to add the a dependency on
+*camel-flatpack* which implements this data format.
+
+If you use maven you could just add the following to your pom.xml,
+substituting the version number for the latest & greatest release (see
+link:download.html[the download page for the latest versions]).
+
+[source,java]
+-----------------------------------------
+<dependency>
+  <groupId>org.apache.camel</groupId>
+  <artifactId>camel-flatpack</artifactId>
+  <version>x.x.x</version>
+</dependency>
+-----------------------------------------
+
+[[Flatpack-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/9c0b7baf/components/camel-flatpack/src/main/docs/flatpack.adoc
----------------------------------------------------------------------
diff --git a/components/camel-flatpack/src/main/docs/flatpack.adoc b/components/camel-flatpack/src/main/docs/flatpack.adoc
deleted file mode 100644
index cd25aa7..0000000
--- a/components/camel-flatpack/src/main/docs/flatpack.adoc
+++ /dev/null
@@ -1,298 +0,0 @@
-[[Flatpack-FlatpackComponent]]
-Flatpack Component
-~~~~~~~~~~~~~~~~~~
-
-The Flatpack component supports fixed width and delimited file parsing
-via the http://flatpack.sourceforge.net[FlatPack library]. +
- *Notice:* This component only supports consuming from flatpack files to
-Object model. You can not (yet) write from Object model to flatpack
-format.
-
-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-flatpack</artifactId>
-    <version>x.x.x</version>
-    <!-- use the same version as your Camel core version -->
-</dependency>
-------------------------------------------------------------
-
-[[Flatpack-URIformat]]
-URI format
-^^^^^^^^^^
-
-[source,java]
----------------------------------------------------------
-flatpack:[delim|fixed]:flatPackConfig.pzmap.xml[?options]
----------------------------------------------------------
-
-Or for a delimited file handler with no configuration file just use
-
-[source,java]
----------------------------
-flatpack:someName[?options]
----------------------------
-
-You can append query options to the URI in the following format,
-`?option=value&option=value&...`
-
-[[Flatpack-URIOptions]]
-URI Options
-^^^^^^^^^^^
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Name |Default Value |Description
-
-|`delimiter` |`,` |The default character delimiter for delimited files.
-
-|`textQualifier` |`"` |The text qualifier for delimited files.
-
-|`ignoreFirstRecord` |`true` |Whether the first line is ignored for delimited files (for the column
-headers).
-
-|`splitRows` |`true` |The component can either process each row one by one or the entire
-content at once.
-
-|`allowShortLines` |`false` |*Camel 2.9.7 and 2.10.5 onwards:* Allows for lines to be shorter than
-expected and ignores the extra characters.
-
-|`ignoreExtraColumns` |`false` |*Camel 2.9.7 and 2.10.5 onwards:* Allows for lines to be longer than
-expected and ignores the extra characters.
-|=======================================================================
-
-[[Flatpack-Examples]]
-Examples
-^^^^^^^^
-
-* `flatpack:fixed:foo.pzmap.xml` creates a fixed-width endpoint using
-the `foo.pzmap.xml` file configuration.
-* `flatpack:delim:bar.pzmap.xml` creates a delimited endpoint using the
-`bar.pzmap.xml` file configuration.
-* `flatpack:foo` creates a delimited endpoint called `foo` with no file
-configuration.
-
-[[Flatpack-MessageHeaders]]
-Message Headers
-^^^^^^^^^^^^^^^
-
-Camel will store the following headers on the IN message:
-
-[width="100%",cols="50%,50%",options="header",]
-|=======================================================================
-|Header |Description
-
-|`camelFlatpackCounter` |The current row index. For `splitRows=false` the counter is the total
-number of rows.
-|=======================================================================
-
-[[Flatpack-MessageBody]]
-Message Body
-^^^^^^^^^^^^
-
-The component delivers the data in the IN message as a
-`org.apache.camel.component.flatpack.DataSetList` object that has
-converters for `java.util.Map` or `java.util.List`. +
- Usually you want the `Map` if you process one row at a time
-(`splitRows=true`). Use `List` for the entire content
-(`splitRows=false`), where each element in the list is a `Map`. +
- Each `Map` contains the key for the column name and its corresponding
-value.
-
-For example to get the firstname from the sample below:
-
-[source,java]
-------------------------------------------------
-  Map row = exchange.getIn().getBody(Map.class);
-  String firstName = row.get("FIRSTNAME");
-------------------------------------------------
-
-However, you can also always get it as a `List` (even for
-`splitRows=true`). The same example:
-
-[source,java]
----------------------------------------------------
-  List data = exchange.getIn().getBody(List.class);
-  Map row = (Map)data.get(0);
-  String firstName = row.get("FIRSTNAME");
----------------------------------------------------
-
-[[Flatpack-HeaderandTrailerrecords]]
-Header and Trailer records
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The header and trailer notions in Flatpack are supported. However, you
-*must* use fixed record IDs:
-
-* `header` for the header record (must be lowercase)
-* `trailer` for the trailer record (must be lowercase)
-
-The example below illustrates this fact that we have a header and a
-trailer. You can omit one or both of them if not needed.
-
-[source,xml]
----------------------------------------------------------------------------
-    <RECORD id="header" startPosition="1" endPosition="3" indicator="HBT">
-        <COLUMN name="INDICATOR" length="3"/>
-        <COLUMN name="DATE" length="8"/>
-    </RECORD>
-
-    <COLUMN name="FIRSTNAME" length="35" />
-    <COLUMN name="LASTNAME" length="35" />
-    <COLUMN name="ADDRESS" length="100" />
-    <COLUMN name="CITY" length="100" />
-    <COLUMN name="STATE" length="2" />
-    <COLUMN name="ZIP" length="5" />
-
-    <RECORD id="trailer" startPosition="1" endPosition="3" indicator="FBT">
-        <COLUMN name="INDICATOR" length="3"/>
-        <COLUMN name="STATUS" length="7"/>
-    </RECORD>
----------------------------------------------------------------------------
-
-[[Flatpack-Usingtheendpoint]]
-Using the endpoint
-^^^^^^^^^^^^^^^^^^
-
-A common use case is sending a file to this endpoint for further
-processing in a separate route. For example:
-
-[source,xml]
------------------------------------------------------------------------
-  <camelContext xmlns="http://activemq.apache.org/camel/schema/spring">
-    <route>
-      <from uri="file://someDirectory"/>
-      <to uri="flatpack:foo"/>
-    </route>
-
-    <route>
-      <from uri="flatpack:foo"/>
-      ...
-    </route>
-  </camelContext>
------------------------------------------------------------------------
-
-You can also convert the payload of each message created to a `Map` for
-easy link:bean-integration.html[Bean Integration]
-
-[[Flatpack-FlatpackDataFormat]]
-Flatpack DataFormat
-~~~~~~~~~~~~~~~~~~~
-
-The link:flatpack.html[Flatpack] component ships with the Flatpack data
-format that can be used to format between fixed width or delimited text
-messages to a `List` of rows as `Map`.
-
-* marshal = from `List<Map<String, Object>>` to `OutputStream` (can be
-converted to `String`)
-* unmarshal = from `java.io.InputStream` (such as a `File` or `String`)
-to a `java.util.List` as an
-`org.apache.camel.component.flatpack.DataSetList` instance. +
- The result of the operation will contain all the data. If you need to
-process each row one by one you can split the exchange, using
-link:splitter.html[Splitter].
-
-*Notice:* The Flatpack library does currently not support header and
-trailers for the marshal operation.
-
-[[Flatpack-Options]]
-Options
-^^^^^^^
-
-The data format has the following options:
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Option |Default |Description
-
-|`definition` |`null` |The flatpack pzmap configuration file. Can be omitted in simpler
-situations, but its preferred to use the pzmap.
-
-|`fixed` |`false` |Delimited or fixed.
-
-|`ignoreFirstRecord` |`true` |Whether the first line is ignored for delimited files (for the column
-headers).
-
-|`textQualifier` |`"` |If the text is qualified with a char such as `"`.
-
-|`delimiter` |`,` |The delimiter char (could be `;` `,` or similar)
-
-|`parserFactory` |`null` |Uses the default Flatpack parser factory.
-
-|`allowShortLines` |`false` |*Camel 2.9.7 and 2.10.5 onwards*: Allows for lines to be shorter than
-expected and ignores the extra characters.
-
-|`ignoreExtraColumns` |`false` |*Camel 2.9.7 and 2.10.5 onwards*: Allows for lines to be longer than
-expected and ignores the extra characters.
-|=======================================================================
-
-[[Flatpack-Usage]]
-Usage
-^^^^^
-
-To use the data format, simply instantiate an instance and invoke the
-marshal or unmarshal operation in the route builder:
-
-[source,java]
----------------------------------------------------------------------------
-  FlatpackDataFormat fp = new FlatpackDataFormat();
-  fp.setDefinition(new ClassPathResource("INVENTORY-Delimited.pzmap.xml"));
-  ...
-  from("file:order/in").unmarshal(df).to("seda:queue:neworder");
----------------------------------------------------------------------------
-
-The sample above will read files from the `order/in` folder and
-unmarshal the input using the Flatpack configuration file
-`INVENTORY-Delimited.pzmap.xml` that configures the structure of the
-files. The result is a `DataSetList` object we store on the SEDA queue.
-
-[source,java]
------------------------------------------------------------------------------------
-FlatpackDataFormat df = new FlatpackDataFormat();
-df.setDefinition(new ClassPathResource("PEOPLE-FixedLength.pzmap.xml"));
-df.setFixed(true);
-df.setIgnoreFirstRecord(false);
-
-from("seda:people").marshal(df).convertBodyTo(String.class).to("jms:queue:people");
------------------------------------------------------------------------------------
-
-In the code above we marshal the data from a Object representation as a
-`List` of rows as `Maps`. The rows as `Map` contains the column name as
-the key, and the the corresponding value. This structure can be created
-in Java code from e.g. a processor. We marshal the data according to the
-Flatpack format and convert the result as a `String` object and store it
-on a JMS queue.
-
-[[Flatpack-Dependencies]]
-Dependencies
-^^^^^^^^^^^^
-
-To use Flatpack in your camel routes you need to add the a dependency on
-*camel-flatpack* which implements this data format.
-
-If you use maven you could just add the following to your pom.xml,
-substituting the version number for the latest & greatest release (see
-link:download.html[the download page for the latest versions]).
-
-[source,java]
------------------------------------------
-<dependency>
-  <groupId>org.apache.camel</groupId>
-  <artifactId>camel-flatpack</artifactId>
-  <version>x.x.x</version>
-</dependency>
------------------------------------------
-
-[[Flatpack-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/9c0b7baf/components/camel-flink/src/main/docs/flink-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-flink/src/main/docs/flink-component.adoc b/components/camel-flink/src/main/docs/flink-component.adoc
new file mode 100644
index 0000000..c40f126
--- /dev/null
+++ b/components/camel-flink/src/main/docs/flink-component.adoc
@@ -0,0 +1,155 @@
+[[camel-flink-CamelFlinkComponent]]
+Camel Flink Component
+~~~~~~~~~~~~~~~~~~~~~
+
+*Available as of Camel 2.18*
+
+This documentation page covers the https://flink.apache.org[Apache Flink]
+component for the Apache Camel. The�*camel-flink*�component provides a
+bridge between Camel connectors and Flink tasks. +
+This Camel Flink connector provides a way to route message from various
+transports, dynamically choosing a flink task to execute, use incoming
+message as input data for the task and finally deliver the results back to
+the Camel pipeline.
+
+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-flink</artifactId>
+    <version>x.x.x</version>
+    <!-- use the same version as your Camel core version -->
+</dependency>
+------------------------------------------------------------
+
+[[camel-flink-URIFormat]]
+URI Format
+^^^^^^^^^^
+
+Currently, the Flink Component supports only Producers. One can create DataSet, DataStream jobs.
+
+[source,java]
+-------------------------------------------------
+flink:dataset?dataset=#myDataSet&dataSetCallback=#dataSetCallback
+flink:datastream?datastream=#myDataStream&dataStreamCallback=#dataStreamCallback
+-------------------------------------------------
+
+[[Flink-FlinkEndpointOptions]]
+FlinkEndpoint Options
+
+
+
+// endpoint options: START
+The Apache Flink component supports 8 endpoint options which are listed below:
+
+{% raw %}
+[width="100%",cols="2s,1,1m,1m,5",options="header"]
+|=======================================================================
+| Name | Group | Default | Java Type | Description
+| endpointType | producer |  | EndpointType | *Required* Type of the endpoint (dataset datastream).
+| collect | producer | true | boolean | Indicates if results should be collected or counted.
+| dataSet | producer |  | DataSet | DataSet to compute against.
+| dataSetCallback | producer |  | DataSetCallback | Function performing action against a DataSet.
+| dataStream | producer |  | DataStream | DataStream to compute against.
+| dataStreamCallback | producer |  | DataStreamCallback | Function performing action against a DataStream.
+| 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).
+|=======================================================================
+{% endraw %}
+// endpoint options: END
+
+
+
+[[Flink-FlinkComponentOptions]]
+FlinkComponent Options
+^^^^^^^^^^^^^^^^^^^^
+
+
+
+// component options: START
+The Apache Flink component supports 4 options which are listed below.
+
+
+
+{% raw %}
+[width="100%",cols="2s,1m,8",options="header"]
+|=======================================================================
+| Name | Java Type | Description
+| dataSet | DataSet | DataSet to compute against.
+| dataStream | DataStream | DataStream to compute against.
+| dataSetCallback | DataSetCallback | Function performing action against a DataSet.
+| dataStreamCallback | DataStreamCallback | Function performing action against a DataStream.
+|=======================================================================
+{% endraw %}
+// component options: END
+
+
+
+
+Flink DataSet Callback
+^^^^^^^^^^^^^^^^^^^^^^
+
+[source,java]
+-----------------------------------
+@Bean
+public DataSetCallback<Long> dataSetCallback() {
+    return new DataSetCallback<Long>() {
+        public Long onDataSet(DataSet dataSet, Object... objects) {
+            try {
+                 dataSet.print();
+                 return new Long(0);
+            } catch (Exception e) {
+                 return new Long(-1);
+            }
+        }
+    };
+}
+-----------------------------------
+
+Flink DataStream Callback
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+[source,java]
+---------------------------
+@Bean
+public VoidDataStreamCallback dataStreamCallback() {
+    return new VoidDataStreamCallback() {
+        @Override
+        public void doOnDataStream(DataStream dataStream, Object... objects) throws Exception {
+            dataStream.flatMap(new Splitter()).print();
+
+            environment.execute("data stream test");
+        }
+    };
+}
+---------------------------
+
+Camel-Flink Producer call
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+[source,java]
+-----------------------------------
+CamelContext camelContext = new SpringCamelContext(context);
+
+String pattern = "foo";
+
+try {
+    ProducerTemplate template = camelContext.createProducerTemplate();
+    camelContext.start();
+    Long count = template.requestBody("flink:dataSet?dataSet=#myDataSet&dataSetCallback=#countLinesContaining", pattern, Long.class);
+    } finally {
+        camelContext.stop();
+    }
+-----------------------------------
+
+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/9c0b7baf/components/camel-flink/src/main/docs/flink.adoc
----------------------------------------------------------------------
diff --git a/components/camel-flink/src/main/docs/flink.adoc b/components/camel-flink/src/main/docs/flink.adoc
deleted file mode 100644
index c40f126..0000000
--- a/components/camel-flink/src/main/docs/flink.adoc
+++ /dev/null
@@ -1,155 +0,0 @@
-[[camel-flink-CamelFlinkComponent]]
-Camel Flink Component
-~~~~~~~~~~~~~~~~~~~~~
-
-*Available as of Camel 2.18*
-
-This documentation page covers the https://flink.apache.org[Apache Flink]
-component for the Apache Camel. The�*camel-flink*�component provides a
-bridge between Camel connectors and Flink tasks. +
-This Camel Flink connector provides a way to route message from various
-transports, dynamically choosing a flink task to execute, use incoming
-message as input data for the task and finally deliver the results back to
-the Camel pipeline.
-
-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-flink</artifactId>
-    <version>x.x.x</version>
-    <!-- use the same version as your Camel core version -->
-</dependency>
-------------------------------------------------------------
-
-[[camel-flink-URIFormat]]
-URI Format
-^^^^^^^^^^
-
-Currently, the Flink Component supports only Producers. One can create DataSet, DataStream jobs.
-
-[source,java]
--------------------------------------------------
-flink:dataset?dataset=#myDataSet&dataSetCallback=#dataSetCallback
-flink:datastream?datastream=#myDataStream&dataStreamCallback=#dataStreamCallback
--------------------------------------------------
-
-[[Flink-FlinkEndpointOptions]]
-FlinkEndpoint Options
-
-
-
-// endpoint options: START
-The Apache Flink component supports 8 endpoint options which are listed below:
-
-{% raw %}
-[width="100%",cols="2s,1,1m,1m,5",options="header"]
-|=======================================================================
-| Name | Group | Default | Java Type | Description
-| endpointType | producer |  | EndpointType | *Required* Type of the endpoint (dataset datastream).
-| collect | producer | true | boolean | Indicates if results should be collected or counted.
-| dataSet | producer |  | DataSet | DataSet to compute against.
-| dataSetCallback | producer |  | DataSetCallback | Function performing action against a DataSet.
-| dataStream | producer |  | DataStream | DataStream to compute against.
-| dataStreamCallback | producer |  | DataStreamCallback | Function performing action against a DataStream.
-| 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).
-|=======================================================================
-{% endraw %}
-// endpoint options: END
-
-
-
-[[Flink-FlinkComponentOptions]]
-FlinkComponent Options
-^^^^^^^^^^^^^^^^^^^^
-
-
-
-// component options: START
-The Apache Flink component supports 4 options which are listed below.
-
-
-
-{% raw %}
-[width="100%",cols="2s,1m,8",options="header"]
-|=======================================================================
-| Name | Java Type | Description
-| dataSet | DataSet | DataSet to compute against.
-| dataStream | DataStream | DataStream to compute against.
-| dataSetCallback | DataSetCallback | Function performing action against a DataSet.
-| dataStreamCallback | DataStreamCallback | Function performing action against a DataStream.
-|=======================================================================
-{% endraw %}
-// component options: END
-
-
-
-
-Flink DataSet Callback
-^^^^^^^^^^^^^^^^^^^^^^
-
-[source,java]
------------------------------------
-@Bean
-public DataSetCallback<Long> dataSetCallback() {
-    return new DataSetCallback<Long>() {
-        public Long onDataSet(DataSet dataSet, Object... objects) {
-            try {
-                 dataSet.print();
-                 return new Long(0);
-            } catch (Exception e) {
-                 return new Long(-1);
-            }
-        }
-    };
-}
------------------------------------
-
-Flink DataStream Callback
-^^^^^^^^^^^^^^^^^^^^^^^^^
-
-[source,java]
----------------------------
-@Bean
-public VoidDataStreamCallback dataStreamCallback() {
-    return new VoidDataStreamCallback() {
-        @Override
-        public void doOnDataStream(DataStream dataStream, Object... objects) throws Exception {
-            dataStream.flatMap(new Splitter()).print();
-
-            environment.execute("data stream test");
-        }
-    };
-}
----------------------------
-
-Camel-Flink Producer call
-^^^^^^^^^^^^^^^^^^^^^^^^^
-
-[source,java]
------------------------------------
-CamelContext camelContext = new SpringCamelContext(context);
-
-String pattern = "foo";
-
-try {
-    ProducerTemplate template = camelContext.createProducerTemplate();
-    camelContext.start();
-    Long count = template.requestBody("flink:dataSet?dataSet=#myDataSet&dataSetCallback=#countLinesContaining", pattern, Long.class);
-    } finally {
-        camelContext.stop();
-    }
------------------------------------
-
-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/9c0b7baf/components/camel-fop/src/main/docs/fop-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-fop/src/main/docs/fop-component.adoc b/components/camel-fop/src/main/docs/fop-component.adoc
new file mode 100644
index 0000000..e57f7dd
--- /dev/null
+++ b/components/camel-fop/src/main/docs/fop-component.adoc
@@ -0,0 +1,171 @@
+[[FOP-FOPComponent]]
+FOP Component
+~~~~~~~~~~~~~
+
+*Available as of Camel 2.10*
+
+The FOP component allows you to render a message into different output
+formats using http://xmlgraphics.apache.org/fop/index.html[Apache FOP].
+
+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-fop</artifactId>
+    <version>x.x.x</version>
+    <!-- use the same version as your Camel core version -->
+</dependency>
+------------------------------------------------------------
+
+[[FOP-URIformat]]
+URI format
+^^^^^^^^^^
+
+[source,java]
+----------------------------
+fop://outputFormat?[options]
+----------------------------
+
+[[FOP-OutputFormats]]
+Output Formats
+^^^^^^^^^^^^^^
+
+The primary output format is PDF but other output
+http://xmlgraphics.apache.org/fop/0.95/output.html[formats] are also
+supported:
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|name |outputFormat |description
+
+|PDF |application/pdf |Portable Document Format
+
+|PS |application/postscript |Adobe Postscript
+
+|PCL |application/x-pcl |Printer Control Language
+
+|PNG |image/png |PNG images
+
+|JPEG |image/jpeg |JPEG images
+
+|SVG |image/svg+xml |Scalable Vector Graphics
+
+|XML |application/X-fop-areatree |Area tree representation
+
+|MIF |application/mif |FrameMaker's MIF
+
+|RTF |application/rtf |Rich Text Format
+
+|TXT |text/plain |Text
+|=======================================================================
+
+The complete list of valid output formats can be found
+http://svn.apache.org/repos/asf/xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/util/MimeConstants.java[here]
+
+[[FOP-EndpointOptions]]
+Endpoint Options
+^^^^^^^^^^^^^^^^
+
+// component options: START
+The FOP component has no options.
+// component options: END
+
+
+
+// endpoint options: START
+The FOP component supports 5 endpoint options which are listed below:
+
+{% raw %}
+[width="100%",cols="2s,1,1m,1m,5",options="header"]
+|=======================================================================
+| Name | Group | Default | Java Type | Description
+| outputType | producer |  | FopOutputType | *Required* The primary output format is PDF but other output formats are also supported.
+| fopFactory | producer |  | FopFactory | Allows to use a custom configured or implementation of org.apache.fop.apps.FopFactory.
+| userConfigURL | producer |  | String | The location of a configuration file which can be loaded from classpath or file system.
+| 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).
+|=======================================================================
+{% endraw %}
+// endpoint options: END
+
+
+The location of a configuration file with the following
+http://xmlgraphics.apache.org/fop/1.0/configuration.html[structure].
+From *Camel 2.12* onwards the file is loaded from the classpath by
+default. You can use `file:`, or `classpath:` as prefix to load the
+resource from file or classpath. In previous releases the file is always
+loaded from file system.
+
+fopFactory
+
+�
+
+Allows to use a custom configured or implementation of
+`org.apache.fop.apps.FopFactory`.
+
+[[FOP-MessageOperations]]
+Message Operations
+^^^^^^^^^^^^^^^^^^
+
+[width="100%",cols="10%,10%,80%",options="header",]
+|=======================================================================
+|name |default value |description
+
+|CamelFop.Output.Format |  | Overrides the output format for that message
+
+|CamelFop.Encrypt.userPassword |  | PDF user password
+
+|CamelFop.Encrypt.ownerPassword |  | PDF owner passoword
+
+|CamelFop.Encrypt.allowPrint | true |Allows printing the PDF
+
+|CamelFop.Encrypt.allowCopyContent |true |Allows copying content of the PDF
+
+|CamelFop.Encrypt.allowEditContent |true |Allows editing content of the PDF
+
+|CamelFop.Encrypt.allowEditAnnotations |true |Allows editing annotation of the PDF
+
+|CamelFop.Render.producer |Apache FOP |Metadata element for the system/software that produces the document
+
+|CamelFop.Render.creator |  | Metadata element for the user that created the document
+
+|CamelFop.Render.creationDate |  | Creation Date
+
+|CamelFop.Render.author |  | Author of the content of the document
+
+|CamelFop.Render.title |  | Title of the document
+
+|CamelFop.Render.subject |  | Subject of the document
+
+|CamelFop.Render.keywords |  | Set of keywords applicable to this document
+|=======================================================================
+
+[[FOP-Example]]
+Example
+^^^^^^^
+
+Below is an example route that renders PDFs from xml data and xslt
+template and saves the PDF files in target folder:
+
+[source,java]
+---------------------------------
+from("file:source/data/xml")
+    .to("xslt:xslt/template.xsl")
+    .to("fop:application/pdf")
+    .to("file:target/data");
+---------------------------------
+
+For more information, see these resources...
+
+[[FOP-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/9c0b7baf/components/camel-fop/src/main/docs/fop.adoc
----------------------------------------------------------------------
diff --git a/components/camel-fop/src/main/docs/fop.adoc b/components/camel-fop/src/main/docs/fop.adoc
deleted file mode 100644
index e57f7dd..0000000
--- a/components/camel-fop/src/main/docs/fop.adoc
+++ /dev/null
@@ -1,171 +0,0 @@
-[[FOP-FOPComponent]]
-FOP Component
-~~~~~~~~~~~~~
-
-*Available as of Camel 2.10*
-
-The FOP component allows you to render a message into different output
-formats using http://xmlgraphics.apache.org/fop/index.html[Apache FOP].
-
-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-fop</artifactId>
-    <version>x.x.x</version>
-    <!-- use the same version as your Camel core version -->
-</dependency>
-------------------------------------------------------------
-
-[[FOP-URIformat]]
-URI format
-^^^^^^^^^^
-
-[source,java]
-----------------------------
-fop://outputFormat?[options]
-----------------------------
-
-[[FOP-OutputFormats]]
-Output Formats
-^^^^^^^^^^^^^^
-
-The primary output format is PDF but other output
-http://xmlgraphics.apache.org/fop/0.95/output.html[formats] are also
-supported:
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|name |outputFormat |description
-
-|PDF |application/pdf |Portable Document Format
-
-|PS |application/postscript |Adobe Postscript
-
-|PCL |application/x-pcl |Printer Control Language
-
-|PNG |image/png |PNG images
-
-|JPEG |image/jpeg |JPEG images
-
-|SVG |image/svg+xml |Scalable Vector Graphics
-
-|XML |application/X-fop-areatree |Area tree representation
-
-|MIF |application/mif |FrameMaker's MIF
-
-|RTF |application/rtf |Rich Text Format
-
-|TXT |text/plain |Text
-|=======================================================================
-
-The complete list of valid output formats can be found
-http://svn.apache.org/repos/asf/xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/util/MimeConstants.java[here]
-
-[[FOP-EndpointOptions]]
-Endpoint Options
-^^^^^^^^^^^^^^^^
-
-// component options: START
-The FOP component has no options.
-// component options: END
-
-
-
-// endpoint options: START
-The FOP component supports 5 endpoint options which are listed below:
-
-{% raw %}
-[width="100%",cols="2s,1,1m,1m,5",options="header"]
-|=======================================================================
-| Name | Group | Default | Java Type | Description
-| outputType | producer |  | FopOutputType | *Required* The primary output format is PDF but other output formats are also supported.
-| fopFactory | producer |  | FopFactory | Allows to use a custom configured or implementation of org.apache.fop.apps.FopFactory.
-| userConfigURL | producer |  | String | The location of a configuration file which can be loaded from classpath or file system.
-| 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).
-|=======================================================================
-{% endraw %}
-// endpoint options: END
-
-
-The location of a configuration file with the following
-http://xmlgraphics.apache.org/fop/1.0/configuration.html[structure].
-From *Camel 2.12* onwards the file is loaded from the classpath by
-default. You can use `file:`, or `classpath:` as prefix to load the
-resource from file or classpath. In previous releases the file is always
-loaded from file system.
-
-fopFactory
-
-�
-
-Allows to use a custom configured or implementation of
-`org.apache.fop.apps.FopFactory`.
-
-[[FOP-MessageOperations]]
-Message Operations
-^^^^^^^^^^^^^^^^^^
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|name |default value |description
-
-|CamelFop.Output.Format |  | Overrides the output format for that message
-
-|CamelFop.Encrypt.userPassword |  | PDF user password
-
-|CamelFop.Encrypt.ownerPassword |  | PDF owner passoword
-
-|CamelFop.Encrypt.allowPrint | true |Allows printing the PDF
-
-|CamelFop.Encrypt.allowCopyContent |true |Allows copying content of the PDF
-
-|CamelFop.Encrypt.allowEditContent |true |Allows editing content of the PDF
-
-|CamelFop.Encrypt.allowEditAnnotations |true |Allows editing annotation of the PDF
-
-|CamelFop.Render.producer |Apache FOP |Metadata element for the system/software that produces the document
-
-|CamelFop.Render.creator |  | Metadata element for the user that created the document
-
-|CamelFop.Render.creationDate |  | Creation Date
-
-|CamelFop.Render.author |  | Author of the content of the document
-
-|CamelFop.Render.title |  | Title of the document
-
-|CamelFop.Render.subject |  | Subject of the document
-
-|CamelFop.Render.keywords |  | Set of keywords applicable to this document
-|=======================================================================
-
-[[FOP-Example]]
-Example
-^^^^^^^
-
-Below is an example route that renders PDFs from xml data and xslt
-template and saves the PDF files in target folder:
-
-[source,java]
----------------------------------
-from("file:source/data/xml")
-    .to("xslt:xslt/template.xsl")
-    .to("fop:application/pdf")
-    .to("file:target/data");
----------------------------------
-
-For more information, see these resources...
-
-[[FOP-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/9c0b7baf/components/camel-freemarker/src/main/docs/freemarker-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-freemarker/src/main/docs/freemarker-component.adoc b/components/camel-freemarker/src/main/docs/freemarker-component.adoc
new file mode 100644
index 0000000..7e54a523
--- /dev/null
+++ b/components/camel-freemarker/src/main/docs/freemarker-component.adoc
@@ -0,0 +1,247 @@
+[[FreeMarker-FreeMarker]]
+FreeMarker
+~~~~~~~~~~
+
+The *freemarker:* component allows for processing a message using a
+http://freemarker.org/[FreeMarker] 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-freemarker</artifactId>
+    <version>x.x.x</version> <!-- use the same version as your Camel core version -->
+</dependency>
+-------------------------------------------------------------------------------------
+
+[[FreeMarker-URIformat]]
+URI format
+^^^^^^^^^^
+
+[source,java]
+---------------------------------
+freemarker: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.ftl[file://folder/myfile.ftl]).
+
+You can append query options to the URI in the following format,
+`?option=value&option=value&...`
+
+[[FreeMarker-Options]]
+Options
+^^^^^^^
+
+
+
+// component options: START
+The Freemarker component supports 1 options which are listed below.
+
+
+
+{% raw %}
+[width="100%",cols="2s,1m,8",options="header"]
+|=======================================================================
+| Name | Java Type | Description
+| configuration | Configuration | To use an existing freemarker.template.Configuration instance as the configuration.
+|=======================================================================
+{% endraw %}
+// component options: END
+
+
+
+
+// endpoint options: START
+The Freemarker component supports 7 endpoint options which are listed below:
+
+{% raw %}
+[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
+| configuration | producer |  | Configuration | Sets the Freemarker configuration to use
+| contentCache | producer | false | boolean | Sets whether to use resource content cache or not
+| encoding | producer |  | String | Sets the encoding to be used for loading the template file.
+| templateUpdateDelay | producer |  | int | Number of seconds the loaded template resource will remain in the cache.
+| 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).
+|=======================================================================
+{% endraw %}
+// endpoint options: END
+
+
+
+[[FreeMarker-Headers]]
+Headers
+^^^^^^^
+
+Headers set during the FreeMarker evaluation are returned to the message
+and added as headers. This provides a mechanism for the FreeMarker
+component to return values to the Message.
+
+An example: Set the header value of `fruit` in the FreeMarker template:
+
+[source,java]
+--------------------------------------
+${request.setHeader('fruit', 'Apple')}
+--------------------------------------
+
+The header, `fruit`, is now accessible from the `message.out.headers`.
+
+[[FreeMarker-FreeMarkerContext]]
+FreeMarker Context
+^^^^^^^^^^^^^^^^^^
+
+Camel will provide exchange information in the FreeMarker context (just
+a `Map`). The `Exchange` is transferred as:
+
+[width="100%",cols="50%,50%",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).
+|=======================================================================
+
+From Camel 2.14, you can setup your custom FreeMarker context in the
+message header with the key "*CamelFreemarkerDataModel*" just like this
+
+[source,java]
+--------------------------------------------------------------------
+Map<String, Object> variableMap = new HashMap<String, Object>();
+variableMap.put("headers", headersMap);
+variableMap.put("body", "Monday");
+variableMap.put("exchange", exchange);
+exchange.getIn().setHeader("CamelFreemarkerDataModel", variableMap);
+--------------------------------------------------------------------
+
+[[FreeMarker-Hotreloading]]
+Hot reloading
+^^^^^^^^^^^^^
+
+The FreeMarker template resource is by default *not* hot reloadable for
+both file and classpath resources (expanded jar). If you set
+`contentCache=false`, then Camel will not cache the resource and hot
+reloading is thus enabled. This scenario can be used in development.
+
+[[FreeMarker-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
+
+|FreemarkerConstants.FREEMARKER_RESOURCE |org.springframework.core.io.Resource |The template resource | <= 2.1
+
+|FreemarkerConstants.FREEMARKER_RESOURCE_URI |String |A URI for the template resource to use instead of the endpoint
+configured. | >= 2.1
+
+|FreemarkerConstants.FREEMARKER_TEMPLATE |String |The template to use instead of the endpoint configured. | >= 2.1
+|=======================================================================
+
+[[FreeMarker-Samples]]
+Samples
+^^^^^^^
+
+For example you could use something like:
+
+[source,java]
+-------------------------------------------
+from("activemq:My.Queue").
+  to("freemarker:com/acme/MyResponse.ftl");
+-------------------------------------------
+
+To use a FreeMarker 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("freemarker:com/acme/MyResponse.ftl").
+  to("activemq:Another.Queue");
+-------------------------------------------
+
+And to disable the content cache, e.g. for development usage where the
+`.ftl` template should be hot reloaded:
+
+[source,java]
+--------------------------------------------------------------
+from("activemq:My.Queue").
+  to("freemarker:com/acme/MyResponse.ftl?contentCache=false").
+  to("activemq:Another.Queue");
+--------------------------------------------------------------
+
+And a file-based resource:
+
+[source,java]
+---------------------------------------------------------------------
+from("activemq:My.Queue").
+  to("freemarker:file://myfolder/MyResponse.ftl?contentCache=false").
+  to("activemq:Another.Queue");
+---------------------------------------------------------------------
+
+In *Camel 2.1* it's possible to specify what template the component
+should use dynamically via a header, so for example:
+
+[source,java]
+---------------------------------------------------------------------------------------------
+from("direct:in").
+  setHeader(FreemarkerConstants.FREEMARKER_RESOURCE_URI).constant("path/to/my/template.ftl").
+  to("freemarker:dummy");
+---------------------------------------------------------------------------------------------
+
+[[FreeMarker-TheEmailSample]]
+The Email Sample
+^^^^^^^^^^^^^^^^
+
+In this sample we want to use FreeMarker templating for an order
+confirmation email. The email template is laid out in FreeMarker as:
+
+[source,java]
+----------------------------------------------
+Dear ${headers.lastName}, ${headers.firstName}
+
+Thanks for the order of ${headers.item}.
+
+Regards Camel Riders Bookstore
+${body}
+----------------------------------------------
+
+And the java code:
+
+[[FreeMarker-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/9c0b7baf/components/camel-freemarker/src/main/docs/freemarker.adoc
----------------------------------------------------------------------
diff --git a/components/camel-freemarker/src/main/docs/freemarker.adoc b/components/camel-freemarker/src/main/docs/freemarker.adoc
deleted file mode 100644
index 7e54a523..0000000
--- a/components/camel-freemarker/src/main/docs/freemarker.adoc
+++ /dev/null
@@ -1,247 +0,0 @@
-[[FreeMarker-FreeMarker]]
-FreeMarker
-~~~~~~~~~~
-
-The *freemarker:* component allows for processing a message using a
-http://freemarker.org/[FreeMarker] 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-freemarker</artifactId>
-    <version>x.x.x</version> <!-- use the same version as your Camel core version -->
-</dependency>
--------------------------------------------------------------------------------------
-
-[[FreeMarker-URIformat]]
-URI format
-^^^^^^^^^^
-
-[source,java]
----------------------------------
-freemarker: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.ftl[file://folder/myfile.ftl]).
-
-You can append query options to the URI in the following format,
-`?option=value&option=value&...`
-
-[[FreeMarker-Options]]
-Options
-^^^^^^^
-
-
-
-// component options: START
-The Freemarker component supports 1 options which are listed below.
-
-
-
-{% raw %}
-[width="100%",cols="2s,1m,8",options="header"]
-|=======================================================================
-| Name | Java Type | Description
-| configuration | Configuration | To use an existing freemarker.template.Configuration instance as the configuration.
-|=======================================================================
-{% endraw %}
-// component options: END
-
-
-
-
-// endpoint options: START
-The Freemarker component supports 7 endpoint options which are listed below:
-
-{% raw %}
-[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
-| configuration | producer |  | Configuration | Sets the Freemarker configuration to use
-| contentCache | producer | false | boolean | Sets whether to use resource content cache or not
-| encoding | producer |  | String | Sets the encoding to be used for loading the template file.
-| templateUpdateDelay | producer |  | int | Number of seconds the loaded template resource will remain in the cache.
-| 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).
-|=======================================================================
-{% endraw %}
-// endpoint options: END
-
-
-
-[[FreeMarker-Headers]]
-Headers
-^^^^^^^
-
-Headers set during the FreeMarker evaluation are returned to the message
-and added as headers. This provides a mechanism for the FreeMarker
-component to return values to the Message.
-
-An example: Set the header value of `fruit` in the FreeMarker template:
-
-[source,java]
---------------------------------------
-${request.setHeader('fruit', 'Apple')}
---------------------------------------
-
-The header, `fruit`, is now accessible from the `message.out.headers`.
-
-[[FreeMarker-FreeMarkerContext]]
-FreeMarker Context
-^^^^^^^^^^^^^^^^^^
-
-Camel will provide exchange information in the FreeMarker context (just
-a `Map`). The `Exchange` is transferred as:
-
-[width="100%",cols="50%,50%",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).
-|=======================================================================
-
-From Camel 2.14, you can setup your custom FreeMarker context in the
-message header with the key "*CamelFreemarkerDataModel*" just like this
-
-[source,java]
---------------------------------------------------------------------
-Map<String, Object> variableMap = new HashMap<String, Object>();
-variableMap.put("headers", headersMap);
-variableMap.put("body", "Monday");
-variableMap.put("exchange", exchange);
-exchange.getIn().setHeader("CamelFreemarkerDataModel", variableMap);
---------------------------------------------------------------------
-
-[[FreeMarker-Hotreloading]]
-Hot reloading
-^^^^^^^^^^^^^
-
-The FreeMarker template resource is by default *not* hot reloadable for
-both file and classpath resources (expanded jar). If you set
-`contentCache=false`, then Camel will not cache the resource and hot
-reloading is thus enabled. This scenario can be used in development.
-
-[[FreeMarker-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
-
-|FreemarkerConstants.FREEMARKER_RESOURCE |org.springframework.core.io.Resource |The template resource | <= 2.1
-
-|FreemarkerConstants.FREEMARKER_RESOURCE_URI |String |A URI for the template resource to use instead of the endpoint
-configured. | >= 2.1
-
-|FreemarkerConstants.FREEMARKER_TEMPLATE |String |The template to use instead of the endpoint configured. | >= 2.1
-|=======================================================================
-
-[[FreeMarker-Samples]]
-Samples
-^^^^^^^
-
-For example you could use something like:
-
-[source,java]
--------------------------------------------
-from("activemq:My.Queue").
-  to("freemarker:com/acme/MyResponse.ftl");
--------------------------------------------
-
-To use a FreeMarker 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("freemarker:com/acme/MyResponse.ftl").
-  to("activemq:Another.Queue");
--------------------------------------------
-
-And to disable the content cache, e.g. for development usage where the
-`.ftl` template should be hot reloaded:
-
-[source,java]
---------------------------------------------------------------
-from("activemq:My.Queue").
-  to("freemarker:com/acme/MyResponse.ftl?contentCache=false").
-  to("activemq:Another.Queue");
---------------------------------------------------------------
-
-And a file-based resource:
-
-[source,java]
----------------------------------------------------------------------
-from("activemq:My.Queue").
-  to("freemarker:file://myfolder/MyResponse.ftl?contentCache=false").
-  to("activemq:Another.Queue");
----------------------------------------------------------------------
-
-In *Camel 2.1* it's possible to specify what template the component
-should use dynamically via a header, so for example:
-
-[source,java]
----------------------------------------------------------------------------------------------
-from("direct:in").
-  setHeader(FreemarkerConstants.FREEMARKER_RESOURCE_URI).constant("path/to/my/template.ftl").
-  to("freemarker:dummy");
----------------------------------------------------------------------------------------------
-
-[[FreeMarker-TheEmailSample]]
-The Email Sample
-^^^^^^^^^^^^^^^^
-
-In this sample we want to use FreeMarker templating for an order
-confirmation email. The email template is laid out in FreeMarker as:
-
-[source,java]
-----------------------------------------------
-Dear ${headers.lastName}, ${headers.firstName}
-
-Thanks for the order of ${headers.item}.
-
-Regards Camel Riders Bookstore
-${body}
-----------------------------------------------
-
-And the java code:
-
-[[FreeMarker-SeeAlso]]
-See Also
-^^^^^^^^
-
-* link:configuring-camel.html[Configuring Camel]
-* link:component.html[Component]
-* link:endpoint.html[Endpoint]
-* link:getting-started.html[Getting Started]
-