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 2018/03/02 11:01:20 UTC

[camel] branch master updated (c76760e -> e764f42)

This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git.


    from c76760e  Use the AWSKMS interface for our AWS Lambda client mock
     new b6bce66  CAMEL-12297 Miscellaneous fixes to AsciiDoc format and layout
     new c994fa9  CAMEL-12297 Fixed formatting error in ssh-component.adoc
     new e764f42  CAMEL-12297 Sorted out missing images in doc

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 camel-core/src/main/docs/ControlBus.gif            | Bin 0 -> 3705 bytes
 .../src/main/docs}/camel-direct-vm.png             | Bin
 camel-core/src/main/docs/controlbus-component.adoc |   3 +-
 camel-core/src/main/docs/direct-vm-component.adoc  |   2 +-
 camel-core/src/main/docs/direct-vm-component.html  | 704 +++++++++++++++++++++
 camel-core/src/main/docs/file-component.adoc       |   2 +-
 .../camel-amqp/src/main/docs/amqp-component.adoc   |  40 +-
 .../src/main/docs/azure-blob-component.adoc        |   2 +-
 .../src/main/docs/azure-queue-component.adoc       |   4 +-
 .../src/main/docs/barcode-dataformat.adoc          |   2 +-
 .../camel-barcode/src/main/docs}/qr-code.png       | Bin
 .../src/main/docs/cql-component.adoc               |  16 +-
 components/camel-cdi/src/main/docs/cdi.adoc        |   4 +-
 .../src/main/docs/eventadmin-component.adoc        |   1 +
 .../camel-ftp/src/main/docs/ftp-component.adoc     | 142 ++---
 .../src/main/docs/ganglia-component.adoc           |  30 +-
 .../camel-http/src/main/docs/http-component.adoc   | 126 ++--
 .../camel-ignite/src/main/docs/apache-ignite.png   | Bin 0 -> 919833 bytes
 components/camel-ignite/src/main/docs/ignite.adoc  |  15 +-
 .../src/main/docs/influxdb-component.adoc          |   2 +-
 .../src/main/docs/jetty-component.adoc             |   2 +-
 .../camel-jms/src/main/docs/jms-component.adoc     |   4 +-
 .../camel-jmx/src/main/docs/jmx-component.adoc     |  70 +-
 .../src/main/docs/kubernetes-component.adoc        |  18 +-
 .../camel-kubernetes/src/main/docs/kubernetes.adoc |   4 +-
 .../camel-mina2/src/main/docs/mina2-component.adoc |   4 +-
 .../camel-mllp/src/main/docs/mllp-component.adoc   |  17 +-
 .../src/main/docs/mongodb-component.adoc           |  62 +-
 .../src/main/docs/mongodb3-component.adoc          |  62 +-
 .../camel-netty/src/main/docs/netty-component.adoc |   3 +-
 .../src/main/docs/netty4-component.adoc            |   3 +-
 .../src/main/docs/olingo4-component.adoc           |   2 -
 .../src/main/docs/salesforce-component.adoc        | 121 ++--
 .../camel-sjms/src/main/docs/sjms-component.adoc   |   2 +-
 .../camel-sjms2/src/main/docs/sjms2-component.adoc |   2 +-
 .../src/main/docs}/camel_spark_cluster.png         | Bin
 .../src/main/docs}/camel_spark_driver.png          | Bin
 .../camel-spark/src/main/docs/spark-component.adoc |   4 +-
 .../camel-sql/src/main/docs/sql-component.adoc     |  10 +-
 .../camel-ssh/src/main/docs/ssh-component.adoc     |   2 +-
 .../src/main/docs/syslog-dataformat.adoc           |   8 +-
 .../src/main/docs/tidyMarkup-dataformat.adoc       |   3 +-
 .../src/main/docs/thrift-dataformat.adoc           |  25 +-
 43 files changed, 1105 insertions(+), 418 deletions(-)
 create mode 100644 camel-core/src/main/docs/ControlBus.gif
 copy {docs/user-manual/en/direct-vm.data => camel-core/src/main/docs}/camel-direct-vm.png (100%)
 create mode 100644 camel-core/src/main/docs/direct-vm-component.html
 copy {docs/user-manual/en/barcode-data-format.data => components/camel-barcode/src/main/docs}/qr-code.png (100%)
 create mode 100644 components/camel-ignite/src/main/docs/apache-ignite.png
 copy {docs/user-manual/en/apache-spark.data => components/camel-spark/src/main/docs}/camel_spark_cluster.png (100%)
 copy {docs/user-manual/en/apache-spark.data => components/camel-spark/src/main/docs}/camel_spark_driver.png (100%)

-- 
To stop receiving notification emails like this one, please contact
acosentino@apache.org.

[camel] 01/03: CAMEL-12297 Miscellaneous fixes to AsciiDoc format and layout

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit b6bce66ffe55517e42c1addac8c1c0485422fddf
Author: Fintan Bolton <fb...@redhat.com>
AuthorDate: Wed Feb 28 16:46:29 2018 +0100

    CAMEL-12297 Miscellaneous fixes to AsciiDoc format and layout
---
 camel-core/src/main/docs/controlbus-component.adoc |   1 -
 camel-core/src/main/docs/file-component.adoc       |   2 +-
 .../camel-amqp/src/main/docs/amqp-component.adoc   |  40 +++---
 .../src/main/docs/azure-blob-component.adoc        |   2 +-
 .../src/main/docs/azure-queue-component.adoc       |   4 +-
 .../src/main/docs/cql-component.adoc               |  16 +--
 components/camel-cdi/src/main/docs/cdi.adoc        |   4 +-
 .../src/main/docs/eventadmin-component.adoc        |   1 +
 .../camel-ftp/src/main/docs/ftp-component.adoc     | 142 ++++++++++-----------
 .../src/main/docs/ganglia-component.adoc           |  30 ++---
 .../camel-http/src/main/docs/http-component.adoc   | 126 +++++++++---------
 components/camel-ignite/src/main/docs/ignite.adoc  |  13 +-
 .../src/main/docs/influxdb-component.adoc          |   2 +-
 .../src/main/docs/jetty-component.adoc             |   2 +-
 .../camel-jmx/src/main/docs/jmx-component.adoc     |  70 +++++-----
 .../src/main/docs/kubernetes-component.adoc        |  18 +--
 .../camel-kubernetes/src/main/docs/kubernetes.adoc |   4 +-
 .../camel-mina2/src/main/docs/mina2-component.adoc |   4 +-
 .../camel-mllp/src/main/docs/mllp-component.adoc   |  17 +--
 .../src/main/docs/mongodb-component.adoc           |  62 ++++-----
 .../src/main/docs/mongodb3-component.adoc          |  62 ++++-----
 .../camel-netty/src/main/docs/netty-component.adoc |   3 +-
 .../src/main/docs/netty4-component.adoc            |   3 +-
 .../src/main/docs/olingo4-component.adoc           |   2 -
 .../src/main/docs/salesforce-component.adoc        | 121 +++++++++---------
 .../camel-sql/src/main/docs/sql-component.adoc     |  10 +-
 .../src/main/docs/syslog-dataformat.adoc           |   8 +-
 .../src/main/docs/thrift-dataformat.adoc           |  25 ++--
 28 files changed, 390 insertions(+), 404 deletions(-)

diff --git a/camel-core/src/main/docs/controlbus-component.adoc b/camel-core/src/main/docs/controlbus-component.adoc
index f283c20..c227f98 100644
--- a/camel-core/src/main/docs/controlbus-component.adoc
+++ b/camel-core/src/main/docs/controlbus-component.adoc
@@ -106,7 +106,6 @@ with the following path and query parameters:
 You can append query options to the URI in the following format,
 `?option=value&option=value&...`
 
-=== Samples
 
 === Using route command
 
diff --git a/camel-core/src/main/docs/file-component.adoc b/camel-core/src/main/docs/file-component.adoc
index d6b7ae3..11a00c2 100644
--- a/camel-core/src/main/docs/file-component.adoc
+++ b/camel-core/src/main/docs/file-component.adoc
@@ -272,7 +272,7 @@ The following headers are supported by this component:
 
 |`CamelFileName` |Specifies the name of the file to write (relative to the endpoint
 directory). This name can be a `String`; a `String` with a
-<<file-language,File Language>> or <<file-language,Simple>>
+<<file-language,File Language>> or <<simple-language,Simple>>
 expression; or an Expression object. If it's
 `null` then Camel will auto-generate a filename based on the message
 unique ID.
diff --git a/components/camel-amqp/src/main/docs/amqp-component.adoc b/components/camel-amqp/src/main/docs/amqp-component.adoc
index 36bf08c..230c7cc 100644
--- a/components/camel-amqp/src/main/docs/amqp-component.adoc
+++ b/components/camel-amqp/src/main/docs/amqp-component.adoc
@@ -15,20 +15,20 @@ 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-amqp</artifactId>
     <version>${camel.version}</version> <!-- use the same version as your Camel core version -->
 </dependency>
-------------------------------------------------------------------------------------------------
+----
 
 ### URI format
 
 [source,java]
----------------------------------------------
+----
 amqp:[queue:|topic:]destinationName[?options]
----------------------------------------------
+----
 
 ### AMQP Options
 
@@ -264,7 +264,7 @@ former is almost identical to the latter:
 *Using AMQP component*
 
 [source,java]
-------------------------------------
+----
 // Consuming from AMQP queue
 from("amqp:queue:incoming").
   to(...);
@@ -272,7 +272,7 @@ from("amqp:queue:incoming").
 // Sending message to the AMQP topic
 from(...).
   to("amqp:topic:notify");
-------------------------------------
+----
 
 ### Configuring AMQP component
 
@@ -283,9 +283,9 @@ return the AMQP 1.0 component with the pre-configured topic prefix: 
 *Creating AMQP 1.0 component*
 
 [source,java]
------------------------------------------------------------------------------------------
+----
  AMQPComponent amqp = AMQPComponent.amqp10Component("amqp://guest:guest@localhost:5672");
------------------------------------------------------------------------------------------
+----
 
 Keep in mind that starting from the
 Camel 2.17 the `AMQPComponent#amqp10Component(String connectionURI)` factory
@@ -295,11 +295,11 @@ method has been deprecated on the behalf of the
 *Creating AMQP 1.0 component*
 
 [source,java]
---------------------------------------------------------------------------------------------------------
+----
 AMQPComponent amqp = AMQPComponent.amqpComponent("amqp://localhost:5672");
  
 AMQPComponent authorizedAmqp = AMQPComponent.amqpComponent("amqp://localhost:5672", "user", "password");
---------------------------------------------------------------------------------------------------------
+----
 
 Starting from Camel 2.17, in order to automatically configure the AMQP
 component, you can also add an instance
@@ -309,7 +309,7 @@ registry. For example for Spring Boot you just have to define bean:
 *AMQP connection details auto-configuration*
 
 [source,java]
--------------------------------------------------------------------------------------
+----
 @Bean
 AMQPConnectionDetails amqpConnection() {
   return new AMQPConnectionDetails("amqp://localhost:5672"); 
@@ -319,19 +319,19 @@ AMQPConnectionDetails amqpConnection() {
 AMQPConnectionDetails securedAmqpConnection() {
   return new AMQPConnectionDetails("amqp://lcoalhost:5672", "username", "password"); 
 }
--------------------------------------------------------------------------------------
+----
 
 Likewise, you can also use CDI producer methods when using Camel-CDI
 
 *AMQP connection details auto-configuration for CDI*
 
 [source,java]
--------------------------------------------------------------------------------------
+----
 @Produces
 AMQPConnectionDetails amqpConnection() {
   return new AMQPConnectionDetails("amqp://localhost:5672");
 }
--------------------------------------------------------------------------------------
+----
 
 You can also rely on the <<properties-component,Camel properties>> to read
 the AMQP connection details. Factory
@@ -342,7 +342,7 @@ snippet below:
 *AMQP connection details auto-configuration*
 
 [source,java]
------------------------------------------------
+----
 export AMQP_SERVICE_HOST = "mybroker.com"
 export AMQP_SERVICE_PORT = "6666"
 export AMQP_SERVICE_USERNAME = "username"
@@ -354,16 +354,16 @@ export AMQP_SERVICE_PASSWORD = "password"
 AMQPConnectionDetails amqpConnection() {
   return AMQPConnectionDetails.discoverAMQP(); 
 }
------------------------------------------------
+----
 
 *Enabling AMQP specific options*
 
 If you, for example, need to enable `amqp.traceFrames` you can do that by appending the option to your URI, like the following example:
 
 [source,java]
---------------------------------------------------------------------------------------------------------
+----
 AMQPComponent amqp = AMQPComponent.amqpComponent("amqp://localhost:5672?amqp.traceFrames=true");
---------------------------------------------------------------------------------------------------------
+----
 
 For reference take a look at the https://qpid.apache.org/releases/qpid-jms-0.29.0/docs/index.html[QPID JMS client configuration]
 
@@ -373,7 +373,7 @@ To have using topics working with `camel-amqp` you need to configure the
 component to use `topic://` as topic prefix, as shown below:
 
 [source,java]
--------------------------------------------------------------------------------------------------------------------------------
+----
  <bean id="amqp" class="org.apache.camel.component.amqp.AmqpComponent">
    <property name="connectionFactory">
      <bean class="org.apache.qpid.jms.JmsConnectionFactory" factory-method="createFromURL">
@@ -382,7 +382,7 @@ component to use `topic://` as topic prefix, as shown below:
      </bean>
    </property>
  </bean>
--------------------------------------------------------------------------------------------------------------------------------
+----
 
 Keep in mind that both  `AMQPComponent#amqpComponent()` methods and
 `AMQPConnectionDetails` pre-configure the component with the topic
diff --git a/components/camel-azure/src/main/docs/azure-blob-component.adoc b/components/camel-azure/src/main/docs/azure-blob-component.adoc
index 7fa3ee9..44352db 100644
--- a/components/camel-azure/src/main/docs/azure-blob-component.adoc
+++ b/components/camel-azure/src/main/docs/azure-blob-component.adoc
@@ -108,7 +108,7 @@ You have to provide the containerOrBlob name and the credentials if the private
 [width="100%",cols="10%,10%,80%",options="header",]
 |=======================================================================
 |Header |Type |Description
-
+| | |
 |=======================================================================
 
 #### Message headers set by the Azure Storage Blob Service producer
diff --git a/components/camel-azure/src/main/docs/azure-queue-component.adoc b/components/camel-azure/src/main/docs/azure-queue-component.adoc
index e17f11b..d27fb1c 100644
--- a/components/camel-azure/src/main/docs/azure-queue-component.adoc
+++ b/components/camel-azure/src/main/docs/azure-queue-component.adoc
@@ -99,7 +99,7 @@ You have to provide the containerAndQueue URI  and the credentials.
 [width="100%",cols="10%,10%,80%",options="header",]
 |=======================================================================
 |Header |Type |Description
-
+| | |
 |=======================================================================
 
 #### Message headers set by the Azure Storage Queue Service producer
@@ -107,6 +107,7 @@ You have to provide the containerAndQueue URI  and the credentials.
 [width="100%",cols="10%,10%,80%",options="header",]
 |=======================================================================
 |Header |Type |Description
+| | |
 |=======================================================================
 
 #### Message headers set by the Azure Storage Queue Service producer consumer
@@ -114,6 +115,7 @@ You have to provide the containerAndQueue URI  and the credentials.
 [width="100%",cols="10%,10%,80%",options="header",]
 |=======================================================================
 |Header |Type |Description
+| | |
 |=======================================================================
 
 #### Azure Queue Client configuration
diff --git a/components/camel-cassandraql/src/main/docs/cql-component.adoc b/components/camel-cassandraql/src/main/docs/cql-component.adoc
index 0aa4e6b..9a0b8a1 100644
--- a/components/camel-cassandraql/src/main/docs/cql-component.adoc
+++ b/components/camel-cassandraql/src/main/docs/cql-component.adoc
@@ -31,7 +31,7 @@ Maven users will need to add the following dependency to their
 </dependency>
 ------------------------------------------------------------
 
-### URI format
+=== URI format
 
 The endpoint can initiate the Cassandra connection or use an existing
 one.
@@ -51,7 +51,7 @@ To fine tune the Cassandra connection (SSL options, pooling options,
 load balancing policy, retry policy, reconnection policy...), create
 your own Cluster instance and give it to the Camel endpoint.
 
-### Cassandra Options
+=== Cassandra Options
 
 
 // component options: START
@@ -121,9 +121,9 @@ with the following path and query parameters:
 // endpoint options: END
 
 
-### Messages
+=== Messages
 
-### Incoming Message
+==== Incoming Message
 
 The Camel Cassandra endpoint expects a bunch of simple objects (`Object`
 or `Object[]` or `Collection<Object>`) which will be bound to the CQL
@@ -135,7 +135,7 @@ Headers:
 * `CamelCqlQuery` (optional, `String` or `RegularStatement`): CQL query
 either as a plain String or built using the `QueryBuilder`.
 
-### Outgoing Message
+==== Outgoing Message
 
 The Camel Cassandra endpoint produces one or many a Cassandra Row
 objects depending on the `resultSetConversionStrategy`:
@@ -148,7 +148,7 @@ objects depending on the `resultSetConversionStrategy`:
 * Anything else, if `resultSetConversionStrategy` is a custom
 implementation of the `ResultSetConversionStrategy`
 
-### Repositories
+=== Repositories
 
 Cassandra can be used to store message keys or messages for the
 idempotent and aggregation EIP.
@@ -159,7 +159,7 @@ anti-patterns queues and queue like datasets]. It's advised to use
 LeveledCompaction and a small GC grace setting for these tables to allow
 tombstoned rows to be removed quickly.
 
-### Idempotent repository
+=== Idempotent repository
 
 The `NamedCassandraIdempotentRepository` stores messages keys in a
 Cassandra table like this:
@@ -201,7 +201,7 @@ Alternatively, the `CassandraIdempotentRepository` does not have a
 `LOCAL_QUORUM`…
 |=======================================================================
 
-### Aggregation repository
+=== Aggregation repository
 
 The `NamedCassandraAggregationRepository` stores exchanges by
 correlation key in a Cassandra table like this:
diff --git a/components/camel-cdi/src/main/docs/cdi.adoc b/components/camel-cdi/src/main/docs/cdi.adoc
index f1b61da..b270022 100644
--- a/components/camel-cdi/src/main/docs/cdi.adoc
+++ b/components/camel-cdi/src/main/docs/cdi.adoc
@@ -538,8 +538,8 @@ from("direct:inbound").bean("foo");
 ==== Referring beans from Endpoint URIs
 
 When configuring endpoints using the URI syntax you can refer to beans
-in the Registry using the `#` notation. If the URI
-parameter value starts with a `#` sign then Camel CDI will lookup for a
+in the Registry using the `pass:[#]` notation. If the URI
+parameter value starts with a `pass:[#]` sign then Camel CDI will lookup for a
 bean of the given type by name, e.g.:
 
 [source,java]
diff --git a/components/camel-eventadmin/src/main/docs/eventadmin-component.adoc b/components/camel-eventadmin/src/main/docs/eventadmin-component.adoc
index 00628c3..16ff012 100644
--- a/components/camel-eventadmin/src/main/docs/eventadmin-component.adoc
+++ b/components/camel-eventadmin/src/main/docs/eventadmin-component.adoc
@@ -84,6 +84,7 @@ with the following path and query parameters:
 [width="100%",cols="10%,10%,80%",options="header",]
 |=======================================================================
 |Name |Type |Message |Description
+| | |
 |=======================================================================
 
 ### Message body
diff --git a/components/camel-ftp/src/main/docs/ftp-component.adoc b/components/camel-ftp/src/main/docs/ftp-component.adoc
index d35d44e..9f2b097 100644
--- a/components/camel-ftp/src/main/docs/ftp-component.adoc
+++ b/components/camel-ftp/src/main/docs/ftp-component.adoc
@@ -17,24 +17,24 @@ 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-ftp</artifactId>
     <version>x.x.x</version>See the documentation of the Apache Commons
     <!-- use the same version as your Camel core version -->
 </dependency>
------------------------------------------------------------------------
+----
 
 
-### URI format
+=== URI format
 
 [source,java]
----------------------------------------------------------
+----
 ftp://[username@]hostname[:port]/directoryname[?options]
 sftp://[username@]hostname[:port]/directoryname[?options]
 ftps://[username@]hostname[:port]/directoryname[?options]
----------------------------------------------------------
+----
 
 Where *directoryname* represents the underlying directory. The directory
 name is a relative path. Absolute path's is *not* supported. The
@@ -68,7 +68,7 @@ The FTPS component is only available in Camel 2.2 or newer. +
 support for the Transport Layer Security (TLS) and the Secure Sockets
 Layer (SSL) cryptographic protocols.
 
-### URI Options
+=== URI Options
 
 The options below are exclusive for the FTP component.
 
@@ -219,7 +219,7 @@ with the following path and query parameters:
 
 
 
-### FTPS component default trust store
+=== FTPS component default trust store
 
 When using the `ftpClient.` properties related to SSL with the FTPS
 component, the trust store accept all certificates. If you only want
@@ -238,17 +238,17 @@ For example to set the `setDataTimeout` on the `FTPClient` to 30 seconds
 you can do:
 
 [source,java]
---------------------------------------------------------------------------------------
+----
 from("ftp://foo@myserver?password=secret&ftpClient.dataTimeout=30000").to("bean:foo");
---------------------------------------------------------------------------------------
+----
 
 You can mix and match and have use both prefixes, for example to
 configure date format or timezones.
 
 [source,java]
-----------------------------------------------------------------------------------------------------------------------------
+----
 from("ftp://foo@myserver?password=secret&ftpClient.dataTimeout=30000&ftpClientConfig.serverLanguageCode=fr").to("bean:foo");
-----------------------------------------------------------------------------------------------------------------------------
+----
 
 You can have as many of these options as you like.
 
@@ -263,32 +263,33 @@ lookup in the Registry for it.
 For example:
 
 [source,java]
---------------------------------------------------------------------------
+----
    <bean id="myConfig" class="org.apache.commons.net.ftp.FTPClientConfig">
        <property name="lenientFutureDates" value="true"/>
        <property name="serverLanguageCode" value="fr"/>
    </bean>
---------------------------------------------------------------------------
+----
 
 And then let Camel lookup this bean when you use the # notation in the
 url.
 
 [source,java]
-------------------------------------------------------------------------------------
+----
 from("ftp://foo@myserver?password=secret&ftpClientConfig=#myConfig").to("bean:foo");
-------------------------------------------------------------------------------------
+----
 
-### More URI options
+// REVISIT - Empty sections are bad!
+//=== More URI options
 
 
-### Examples
+=== Examples
 
 `ftp://someone@someftpserver.com/public/upload/images/holiday2008?password=secret&binary=true` +
 
 `ftp://someoneelse@someotherftpserver.co.uk:12049/reports/2008/password=secret&binary=false` +
  `ftp://publicftpserver.com/download`
 
-### Concurrency
+=== Concurrency
 
 FTP Consumer does not support concurrency
 
@@ -299,15 +300,13 @@ is only a single endpoint that does not support concurrent consumers.
 
 The FTP producer does *not* have this issue, it supports concurrency.
 
-### More information
+=== More information
 
 This component is an extension of the File component.
 So there are more samples and details on the File
 component page.
 
-====
-
-### Default when consuming files
+=== Default when consuming files
 
 The FTP consumer will by default leave the consumed
 files untouched on the remote FTP server. You have to configure it
@@ -320,7 +319,7 @@ default move files to a `.camel` sub directory. The reason Camel does
 *not* do this by default for the FTP consumer is that it may lack
 permissions by default to be able to move or delete files.
 
-#### limitations
+==== limitations
 
 The option *readLock* can be used to force Camel *not* to consume files
 that is currently in the progress of being written. However, this option
@@ -336,7 +335,7 @@ restricted to the FTP_ROOT folder. That prevents you from moving files
 outside the FTP area. If you want to move files to another area you can
 use soft links and move files into a soft linked folder.
 
-### Message Headers
+=== Message Headers
 
 The following message headers can be used to affect the behavior of the
 component
@@ -375,7 +374,7 @@ In addition the FTP/FTPS consumer and producer will enrich the Camel
 |`CamelFtpReplyString` | *Camel 2.11.1:* The FTP client reply string
 |=======================================================================
 
-### About timeouts
+=== About timeouts
 
 The two set of libraries (see top) has different API for setting
 timeout. You can use the `connectTimeout` option for both of them to set
@@ -386,7 +385,7 @@ a timeout in millis to establish a network connection. An individual
 for FTP/FTSP as the data timeout, which corresponds to the
 `ftpClient.dataTimeout` value. All timeout values are in millis.
 
-### Using Local Work Directory
+=== Using Local Work Directory
 
 Camel supports consuming from remote FTP servers and downloading the
 files directly into a local work directory. This avoids reading the
@@ -403,26 +402,19 @@ So if you want to download files from a remote FTP server and store it
 as files then you need to route to a file endpoint such as:
 
 [source,java]
-------------------------------------------------------------------------------------------------
+----
 from("ftp://someone@someserver.com?password=secret&localWorkDirectory=/tmp").to("file://inbox");
-------------------------------------------------------------------------------------------------
+----
 
-[Tip]
+[TIP, caption='Optimization by renaming work file']
 ====
- *Optimization by renaming work file*
-
-The route above is ultra efficient as it avoids reading the entire file
-content into memory. It will download the remote file directly to a
-local file stream. The `java.io.File` handle is then used as the
-Exchange body. The file producer leverages this fact
-and can work directly on the work file `java.io.File` handle and perform
-a `java.io.File.rename` to the target filename. As Camel knows it's a
-local work file, it can optimize and use a rename instead of a file
-copy, as the work file is meant to be deleted anyway.
-
+The route above is ultra efficient as it avoids reading the entire file content into memory.
+It will download the remote file directly to a local file stream.
+The `java.io.File` handle is then used as the Exchange body. The file producer leverages this fact and can work directly on the work file `java.io.File` handle and perform a `java.io.File.rename` to the target filename.
+As Camel knows it's a local work file, it can optimize and use a rename instead of a file copy, as the work file is meant to be deleted anyway.
 ====
 
-### Stepwise changing directories
+=== Stepwise changing directories
 
 Camel FTP can operate in two modes in terms of
 traversing directories when consuming files (eg downloading) or
@@ -453,21 +445,21 @@ example. Suppose we have the following directory structure on the remote
 FTP server we need to traverse and download files:
 
 [source,java]
---------------
+----
 /
 /one
 /one/two
 /one/two/sub-a
 /one/two/sub-b
---------------
+----
 
 And that we have a file in each of sub-a (a.txt) and sub-b (b.txt)
 folder.
 
-#### Using stepwise=true (default mode)
+==== Using stepwise=true (default mode)
 
 [source,java]
-----------------------------------------------------------
+----
 TYPE A
 200 Type set to A
 PWD
@@ -549,15 +541,15 @@ CWD /
 QUIT
 221 Goodbye
 disconnected.
-----------------------------------------------------------
+----
 
 As you can see when stepwise is enabled, it will traverse the directory
 structure using CD xxx.
 
-#### Using stepwise=false
+==== Using stepwise=false
 
 [source,java]
--------------------------------------------
+----
 230 Logged on
 TYPE A
 200 Type set to A
@@ -596,12 +588,12 @@ RETR one/two/sub-b/b.txt
 QUIT
 221 Goodbye
 disconnected.
--------------------------------------------
+----
 
 As you can see when not using stepwise, there are no CD operation
 invoked at all.
 
-### Samples
+=== Samples
 
 In the sample below we set up Camel to download all the reports from the
 FTP server once every hour (60 min) as BINARY content and store it as
@@ -610,32 +602,32 @@ files on the local file system.
 And the route using Spring DSL:
 
 [source,xml]
-------------------------------------------------------------------------------------------------------
+----
   <route>
      <from uri="ftp://scott@localhost/public/reports?password=tiger&amp;binary=true&amp;delay=60000"/>
      <to uri="file://target/test-reports"/>
   </route>
-------------------------------------------------------------------------------------------------------
+----
 
-#### Consuming a remote FTPS server (implicit SSL) and client authentication
+==== Consuming a remote FTPS server (implicit SSL) and client authentication
 
 [source,java]
---------------------------------------------------------------------------------------------------
+----
 from("ftps://admin@localhost:2222/public/camel?password=admin&securityProtocol=SSL&isImplicit=true
       &ftpClient.keyStore.file=./src/test/resources/server.jks
       &ftpClient.keyStore.password=password&ftpClient.keyStore.keyPassword=password")
   .to("bean:foo");
---------------------------------------------------------------------------------------------------
+----
 
-#### Consuming a remote FTPS server (explicit TLS) and a custom trust store configuration
+==== Consuming a remote FTPS server (explicit TLS) and a custom trust store configuration
 
 [source,java]
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
+----
 from("ftps://admin@localhost:2222/public/camel?password=admin&ftpClient.trustStore.file=./src/test/resources/server.jks&ftpClient.trustStore.password=password")
   .to("bean:foo");
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
+----
 
-### Filter using `org.apache.camel.component.file.GenericFileFilter`
+=== Filter using `org.apache.camel.component.file.GenericFileFilter`
 
 Camel supports pluggable filtering strategies. This strategy it to use
 the build in `org.apache.camel.component.file.GenericFileFilter` in
@@ -650,7 +642,7 @@ reference our filter (using `#` notation) that we have defined in the
 spring XML file:
 
 [source,xml]
----------------------------------------------------------------------------------------
+----
    <!-- define our sorter as a plain spring bean -->
    <bean id="myFilter" class="com.mycompany.MyFileFilter"/>
 
@@ -658,9 +650,9 @@ spring XML file:
     <from uri="ftp://someuser@someftpserver.com?password=secret&amp;filter=#myFilter"/>
     <to uri="bean:processInbox"/>
   </route>
----------------------------------------------------------------------------------------
+----
 
-### Filtering using ANT path matcher
+=== Filtering using ANT path matcher
 
 The ANT path matcher is a filter that is shipped out-of-the-box in the
 *camel-spring* jar. So you need to depend on *camel-spring* if you are
@@ -677,13 +669,13 @@ The file paths are matched with the following rules:
 
 The sample below demonstrates how to use it:
 
-### Using a proxy with SFTP
+=== Using a proxy with SFTP
 
 To use an HTTP proxy to connect to your remote host, you can configure
 your route in the following way:
 
 [source,xml]
--------------------------------------------------------------------------------------
+----
 <!-- define our sorter as a plain spring bean -->
 <bean id="proxy" class="com.jcraft.jsch.ProxyHTTP">
   <constructor-arg value="localhost"/>
@@ -694,13 +686,13 @@ your route in the following way:
   <from uri="sftp://localhost:9999/root?username=admin&password=admin&proxy=#proxy"/>
   <to uri="bean:processFile"/>
 </route>
--------------------------------------------------------------------------------------
+----
 
 You can also assign a user name and password to the proxy, if necessary.
 Please consult the documentation for `com.jcraft.jsch.Proxy` to discover
 all options.
 
-### Setting preferred SFTP authentication method
+=== Setting preferred SFTP authentication method
 
 If you want to explicitly specify the list of authentication methods
 that should be used by `sftp` component, use `preferredAuthentications`
@@ -710,12 +702,12 @@ in the case when no public key is available, use the following route
 configuration:
 
 [source,java]
--------------------------------------------------------------------------------------------------------------
+----
 from("sftp://localhost:9999/root?username=admin&password=admin&preferredAuthentications=publickey,password").
   to("bean:processFile");
--------------------------------------------------------------------------------------------------------------
+----
 
-### Consuming a single file using a fixed name
+=== Consuming a single file using a fixed name
 
 When you want to download a single file and knows the file name, you can
 use `fileName=myFileName.txt` to tell Camel the name of the file to
@@ -735,10 +727,10 @@ For example to have a Camel route that pickup a single file, and delete
 it after use you can do
 
 [source,java]
--------------------------------------------------------------------------------------------------------------------------------------------------------------
+----
 from("ftp://admin@localhost:21/nolist/?password=admin&stepwise=false&useList=false&ignoreFileNotFoundOrPermissionError=true&fileName=report.txt&delete=true")
   .to("activemq:queue:report");
--------------------------------------------------------------------------------------------------------------------------------------------------------------
+----
 
 Notice that we have use all the options we talked above above.
 
@@ -746,16 +738,16 @@ You can also use this with `ConsumerTemplate`. For example to download a
 single file (if it exists) and grab the file content as a String type:
 
 [source,java]
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+----
 String data = template.retrieveBodyNoWait("ftp://admin@localhost:21/nolist/?password=admin&stepwise=false&useList=false&ignoreFileNotFoundOrPermissionError=true&fileName=report.txt&delete=true", String.class);
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+----
 
-### Debug logging
+=== Debug logging
 
 This component has log level *TRACE* that can be helpful if you have
 problems.
 
-### See Also
+=== See Also
 
 * Configuring Camel
 * Component
diff --git a/components/camel-ganglia/src/main/docs/ganglia-component.adoc b/components/camel-ganglia/src/main/docs/ganglia-component.adoc
index 1f079bc..1032a59 100644
--- a/components/camel-ganglia/src/main/docs/ganglia-component.adoc
+++ b/components/camel-ganglia/src/main/docs/ganglia-component.adoc
@@ -25,26 +25,26 @@ for this component:
  
 
 [source,xml]
-------------------------------------------------------------
+----
 <dependency>
     <groupId>org.apache.camel</groupId>
     <artifactId>camel-ganglia</artifactId>
     <version>x.x.x</version>
     <!-- use the same version as your Camel core version -->
 </dependency>
-------------------------------------------------------------
+----
 
-### URI format
+=== URI format
 
 [source,java]
-------------------------------
+----
 ganglia:address:port[?options]
-------------------------------
+----
 
 You can append query options to the URI in the following format,
 `?option=value&option=value&...`
 
-### Ganglia component and endpoint URI options
+=== Ganglia component and endpoint URI options
 
 
 
@@ -112,19 +112,19 @@ with the following path and query parameters:
 
 
 
-### Message body
+=== Message body
 
 Any value (such as a string or numeric type) in the body is sent to the
 Ganglia system.
 
-### Return value / response
+=== Return value / response
 
 Ganglia sends metrics using unidirectional UDP or multicast.  There is
 no response or change to the message body.
 
-### Examples
+=== Examples
 
-### Sending a String metric
+==== Sending a String metric
 
 The message body will be converted to a String and sent as a metric
 value.  Unlike numeric metrics, String values can't be charted but
@@ -132,7 +132,7 @@ Ganglia makes them available for reporting.  The os_version string at
 the top of every Ganglia host page is an example of a String metric.
 
 [source,java]
-------------------------------------------------------------------------
+----
 from("direct:string.for.ganglia")
     .setHeader(GangliaConstants.METRIC_NAME, simple("my_string_metric"))
     .setHeader(GangliaConstants.METRIC_TYPE, GMetricType.STRING)
@@ -140,12 +140,12 @@ from("direct:string.for.ganglia")
 
 from("direct:ganglia.tx")
     .to("ganglia:239.2.11.71:8649?mode=MULTICAST&prefix=test");
-------------------------------------------------------------------------
+----
 
-### Sending a numeric metric
+==== Sending a numeric metric
 
 [source,java]
-------------------------------------------------------------------------
+----
 from("direct:value.for.ganglia")
     .setHeader(GangliaConstants.METRIC_NAME, simple("widgets_in_stock"))
     .setHeader(GangliaConstants.METRIC_TYPE, GMetricType.UINT32)
@@ -154,4 +154,4 @@ from("direct:value.for.ganglia")
 
 from("direct:ganglia.tx")
     .to("ganglia:239.2.11.71:8649?mode=MULTICAST&prefix=test");
-------------------------------------------------------------------------
+----
diff --git a/components/camel-http/src/main/docs/http-component.adoc b/components/camel-http/src/main/docs/http-component.adoc
index 0bae22f..a4436a9 100644
--- a/components/camel-http/src/main/docs/http-component.adoc
+++ b/components/camel-http/src/main/docs/http-component.adoc
@@ -11,21 +11,21 @@ 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-http</artifactId>
     <version>x.x.x</version>
     <!-- use the same version as your Camel core version -->
 </dependency>
-------------------------------------------------------------
+----
 
-### URI format
+=== URI format
 
 [source,java]
-------------------------------------------------------------------
+----
 http:hostname[:port][/resourceUri][?param1=value1][&param2=value2]
-------------------------------------------------------------------
+----
 
 Will by default use port 80 for HTTP and 443 for HTTPS.
 
@@ -38,7 +38,7 @@ route, you can use the <<jetty-component,Jetty Component>> or the
 <<servlet-component,Servlet Component>>
 
 
-### Examples
+=== Examples
 
 Call the url with the body using POST and return response as out
 message. If body is null call URL using GET and return response as out
@@ -49,16 +49,16 @@ Java DSL
 Spring DSL
 
 [source,java]
-------------------------------
+----
 from("direct:start")
   .to("http://myhost/mypath");
-------------------------------
+----
 
 [source,xml]
---------------------------
+----
 <from uri="direct:start"/>
 <to uri="http://oldhost"/>
---------------------------
+----
 
 You can override the HTTP endpoint URI by adding a header. Camel will
 call the http://newhost. This is very handy for e.g. REST urls.
@@ -66,11 +66,11 @@ call the http://newhost. This is very handy for e.g. REST urls.
 Java DSL
 
 [source,java]
------------------------------------------------------------------------------------
+----
 from("direct:start")
   .setHeader(Exchange.HTTP_URI, simple("http://myserver/orders/${header.orderId}"))
   .to("http://dummyhost");
------------------------------------------------------------------------------------
+----
 
 URI parameters can either be set directly on the endpoint URI or as a
 header
@@ -78,13 +78,13 @@ header
 Java DSL
 
 [source,java]
----------------------------------------------------------------------
+----
 from("direct:start")
   .to("http://oldhost?order=123&detail=short");
 from("direct:start")
   .setHeader(Exchange.HTTP_QUERY, constant("order=123&detail=short"))
   .to("http://oldhost");
----------------------------------------------------------------------
+----
 
 Set the HTTP request method to POST
 
@@ -93,23 +93,23 @@ Java DSL
 Spring DSL
 
 [source,java]
-----------------------------------------------------
+----
 from("direct:start")
   .setHeader(Exchange.HTTP_METHOD, constant("POST"))
   .to("http://www.google.com");
-----------------------------------------------------
+----
 
 [source,xml]
-----------------------------------------
+----
 <from uri="direct:start"/>
 <setHeader headerName="CamelHttpMethod">
   <constant>POST</constant>
 </setHeader>
 <to uri="http://www.google.com"/>
 <to uri="mock:results"/>
-----------------------------------------
+----
 
-### Http Options
+=== Http Options
 
 
 
@@ -212,7 +212,7 @@ with the following path and query parameters:
 
 
 
-### Message Headers
+=== Message Headers
 
 [width="100%",cols="10%,10%,80%",options="header",]
 |=======================================================================
@@ -257,14 +257,14 @@ default value "HTTP/1.1"
 The header name above are constants. For the spring DSL you have to use
 the value of the constant instead of the name.
 
-### Message Body
+=== Message Body
 
 Camel will store the HTTP response from the external server on the OUT
 body. All headers from the IN message will be copied to the OUT message,
 so headers are preserved during routing. Additionally Camel will add the
 HTTP response headers as well to the OUT message headers.
 
-### Response code
+=== Response code
 
 Camel will handle according to the HTTP response code:
 
@@ -284,7 +284,7 @@ codes. This allows you to get any response from the remote server. +
 There is a sample below demonstrating this.
 
 
-### HttpOperationFailedException
+=== HttpOperationFailedException
 
 This exception contains the following information:
 
@@ -294,7 +294,7 @@ This exception contains the following information:
 * Response body as a `java.lang.String`, if server provided a body as
 response
 
-### Which HTTP method will be used
+=== Which HTTP method will be used
 
 The following algorithm is used to determine what HTTP method should be used: +
  1. Use method provided as endpoint configuration (`httpMethod`). +
@@ -304,90 +304,90 @@ The following algorithm is used to determine what HTTP method should be used: +
  5. `POST` if there is data to send (body is not `null`). +
  6. `GET` otherwise.
 
-### How to get access to HttpServletRequest and HttpServletResponse
+=== How to get access to HttpServletRequest and HttpServletResponse
 
 You can get access to these two using the Camel type converter system
 using
 
 [source,java]
-----------------------------------------------------------------------------------
+----
 HttpServletRequest request = exchange.getIn().getBody(HttpServletRequest.class);
 HttpServletRequest response = exchange.getIn().getBody(HttpServletResponse.class);
-----------------------------------------------------------------------------------
+----
 
-### Using client timeout - SO_TIMEOUT
+=== Using client timeout - SO_TIMEOUT
 
 See the unit test in
 http://svn.apache.org/viewvc?view=rev&revision=781775[this link]
 
-### More Examples
+=== More Examples
 
-### Configuring a Proxy
+==== Configuring a Proxy
 
 Java DSL
 
 [source,java]
----------------------------------------------------------------
+----
 from("direct:start")
   .to("http://oldhost?proxyHost=www.myproxy.com&proxyPort=80");
----------------------------------------------------------------
+----
 
 There is also support for proxy authentication via the `proxyUsername`
 and `proxyPassword` options.
 
-#### Using proxy settings outside of URI
+==== Using proxy settings outside of URI
 
 Java DSL
 
 Spring DSL
 
 [source,java]
----------------------------------------------------------------
+----
  context.getProperties().put("http.proxyHost", "172.168.18.9");
  context.getProperties().put("http.proxyPort" "8080");
----------------------------------------------------------------
+----
 
-[source,java]
-----------------------------------------------------------------
+[source,xml]
+----
    <camelContext>
        <properties>
            <property key="http.proxyHost" value="172.168.18.9"/>
            <property key="http.proxyPort" value="8080"/>
       </properties>
    </camelContext>
-----------------------------------------------------------------
+----
 
 Options on Endpoint will override options on the context.
 
-### Configuring charset
+=== Configuring charset
 
 If you are using `POST` to send data you can configure the `charset`
 
 [source,java]
--------------------------------------------------
+----
 setProperty(Exchange.CHARSET_NAME, "iso-8859-1");
--------------------------------------------------
+----
 
-### Sample with scheduled poll
+=== Sample with scheduled poll
 
 The sample polls the Google homepage every 10 seconds and write the page
 to the file `message.html`:
 
 [source,java]
-----------------------------------------------------------------------------------------
+----
 from("timer://foo?fixedRate=true&delay=0&period=10000")
     .to("http://www.google.com")
     .setHeader(FileComponent.HEADER_FILE_NAME, "message.html").to("file:target/google");
-----------------------------------------------------------------------------------------
+----
 
-### Getting the Response Code
+=== Getting the Response Code
 
 You can get the HTTP response code from the HTTP component by getting
 the value from the Out message header with
 `Exchange.HTTP_RESPONSE_CODE`.
 
 [source,java]
-----------------------------------------------------------------------------------------------
+----
    Exchange exchange = template.send("http://www.google.com/search", new Processor() {
             public void process(Exchange exchange) throws Exception {
                 exchange.getIn().setHeader(Exchange.HTTP_QUERY, constant("hl=en&q=activemq"));
@@ -395,9 +395,9 @@ the value from the Out message header with
    });
    Message out = exchange.getOut();
    int responseCode = out.getHeader(Exchange.HTTP_RESPONSE_CODE, Integer.class);
-----------------------------------------------------------------------------------------------
+----
 
-### Using `throwExceptionOnFailure=false` to get any response back
+=== Using `throwExceptionOnFailure=false` to get any response back
 
 In the route below we want to route a message that we
 enrich with data returned from a remote HTTP
@@ -406,19 +406,19 @@ call. As we want any response from the remote server, we set the
 the `AggregationStrategy`. As the code is based on a unit test that
 simulates a HTTP status code 404, there is some assertion code etc.
 
-### Disabling Cookies
+=== Disabling Cookies
 
 To disable cookies you can set the HTTP Client to ignore cookies by
 adding this URI option: +
  `httpClient.cookiePolicy=ignoreCookies`
 
-### Advanced Usage
+=== Advanced Usage
 
 If you need more control over the HTTP producer you should use the
 `HttpComponent` where you can set various classes to give you custom
 behavior.
 
-#### Setting MaxConnectionsPerHost
+==== Setting MaxConnectionsPerHost
 
 The <<http-component,HTTP>> Component has a
 `org.apache.commons.httpclient.HttpConnectionManager` where you can
@@ -437,7 +437,7 @@ connection to 5 instead of the default of 2.
 
 And then we can just use it as we normally do in our routes:
 
-#### Using preemptive authentication
+==== Using preemptive authentication
 
 An end user reported that he had problem with authenticating with HTTPS.
 The problem was eventually resolved when he discovered the HTTPS server
@@ -445,14 +445,14 @@ did not return a HTTP code 401 Authorization Required. The solution was
 to set the following URI option:
 `httpClient.authenticationPreemptive=true`
 
-#### Accepting self signed certificates from remote server
+==== Accepting self signed certificates from remote server
 
 See this
 http://www.nabble.com/Using-HTTPS-in-camel-http-when-remote-side-has-self-signed-cert-td25916878.html[link]
 from a mailing list discussion with some code to outline how to do this
 with the Apache Commons HTTP API.
 
-#### Setting up SSL for HTTP Client
+==== Setting up SSL for HTTP Client
 
 [[HTTP-UsingtheJSSEConfigurationUtility]]
 Using the JSSE Configuration Utility
@@ -474,7 +474,7 @@ demonstrates how to configure the protocol registry and use the
 registered protocol information in a route.
 
 [source,java]
-----------------------------------------------------------------
+----
 KeyStoreParameters ksp = new KeyStoreParameters();
 ksp.setResource("/users/home/server/keystore.jks");
 ksp.setPassword("keystorePassword");
@@ -497,7 +497,7 @@ Protocol.registerProtocol("https",
 
 from("direct:start")
         .to("https://mail.google.com/mail/").to("mock:results");
-----------------------------------------------------------------
+----
 
 [[HTTP-ConfiguringApacheHTTPClientDirectly]]
 Configuring Apache HTTP Client Directly
@@ -511,13 +511,13 @@ However if you _just_ want to specify the keystore and truststore you
 can do this with Apache HTTP `HttpClientConfigurer`, for example:
 
 [source,java]
-----------------------------------------------------------------------------
+----
 Protocol authhttps = new Protocol("https", new AuthSSLProtocolSocketFactory(
   new URL("file:my.keystore"), "mypassword",
   new URL("file:my.truststore"), "mypassword"), 443);
 
 Protocol.registerProtocol("https", authhttps);
-----------------------------------------------------------------------------
+----
 
 And then you need to create a class that implements
 `HttpClientConfigurer`, and registers https protocol providing a
@@ -525,27 +525,27 @@ keystore or truststore per example above. Then, from your camel route
 builder class you can hook it up like so:
 
 [source,java]
--------------------------------------------------------------------------------------
+----
 HttpComponent httpComponent = getContext().getComponent("http", HttpComponent.class);
 httpComponent.setHttpClientConfigurer(new MyHttpClientConfigurer());
--------------------------------------------------------------------------------------
+----
 
 If you are doing this using the Spring DSL, you can specify your
 `HttpClientConfigurer` using the URI. For example:
 
 [source,java]
--------------------------------------------------------------------------------------------
+----
 <bean id="myHttpClientConfigurer"
  class="my.https.HttpClientConfigurer">
 </bean>
 
 <to uri="https://myhostname.com:443/myURL?httpClientConfigurerRef=myHttpClientConfigurer"/>
--------------------------------------------------------------------------------------------
+----
 
 As long as you implement the HttpClientConfigurer and configure your
 keystore and truststore as described above, it will work fine.
 
-### See Also
+=== See Also
 
 * Configuring Camel
 * Component
diff --git a/components/camel-ignite/src/main/docs/ignite.adoc b/components/camel-ignite/src/main/docs/ignite.adoc
index f165706..a37cfe7 100644
--- a/components/camel-ignite/src/main/docs/ignite.adoc
+++ b/components/camel-ignite/src/main/docs/ignite.adoc
@@ -1,4 +1,4 @@
-## Ignite endpoints Component
+== Ignite endpoints Component
 
 *Available as of Camel version 2.17*
 
@@ -34,7 +34,7 @@ If running in an OSGi container, please don't miss the <<Ignite-OsgiSupport,OSGi
 
 
 
-### Initializing the Ignite component
+=== Initializing the Ignite component
 
 Each instance of the Ignite component is associated with an underlying org.apache.ignite.Ignite instance. You can interact with two Ignite clusters by initializing two instances of the Ignite component and binding them to different IgniteConfigurations. There are 3 ways to initialize the Ignite component:
 
@@ -79,7 +79,7 @@ Additionally, if using Camel programmatically, there are several convenience sta
 
 You may use those methods to quickly create an IgniteComponent with your chosen configuration technique.
 
-### General options
+=== General options
 
 All endpoints share the following options:
 [width="100%",cols="1,1,1,4,1,1",options="header"]
@@ -92,7 +92,8 @@ If the underlying Ignite operation returns void (no return type), this flag dete
 Some Ignite operations can deal with multiple elements at once, if passed a Collection. Enabling this option will treat Collections as a single object, invoking the operation variant for cardinality 1.
 |=======================================================================
 
-### OSGi Support
+[[Ignite-OsgiSupport]]
+=== OSGi Support
 
 TIP: Apache Ignite supports OSGi from version 1.5.0.final onwards.
 
@@ -103,9 +104,9 @@ When installing on Apache Karaf:
 
 Please refer to the OSGi section in the Ignite documentation for more information.
 
-### See Also
+=== See Also
 
 * http://camel.apache.org/configuring-camel.html[Configuring Camel]
 * http://camel.apache.org/component.html[Component]
 * http://camel.apache.org/endpoint.html[Endpoint]
-* http://camel.apache.org/getting-started.html[Getting Started]
\ No newline at end of file
+* http://camel.apache.org/getting-started.html[Getting Started]
diff --git a/components/camel-influxdb/src/main/docs/influxdb-component.adoc b/components/camel-influxdb/src/main/docs/influxdb-component.adoc
index 19df57c..0729ba2 100644
--- a/components/camel-influxdb/src/main/docs/influxdb-component.adoc
+++ b/components/camel-influxdb/src/main/docs/influxdb-component.adoc
@@ -91,7 +91,7 @@ with the following path and query parameters:
 |=======================================================================
 |Name |Default Value |Type |Context |Description
 
-
+| | | | |
 |=======================================================================
 
 ### Example
diff --git a/components/camel-jetty9/src/main/docs/jetty-component.adoc b/components/camel-jetty9/src/main/docs/jetty-component.adoc
index c6e23b7..4ca422b 100644
--- a/components/camel-jetty9/src/main/docs/jetty-component.adoc
+++ b/components/camel-jetty9/src/main/docs/jetty-component.adoc
@@ -275,7 +275,7 @@ Jetty component will copy the HTTP request parameter, `one` to the
 exchange's `in.header`. We can then use the `simple` language to route
 exchanges that contain this header to a specific endpoint and all others
 to another. If we used a language more powerful than
-<<simple-language,Simple>> (such as <<simple-language,EL>> or
+<<simple-language,Simple>> (such as <<el-language,EL>> or
 <<ognl-language,OGNL>>) we could also test for the parameter value and do
 routing based on the header value as well.
 
diff --git a/components/camel-jmx/src/main/docs/jmx-component.adoc b/components/camel-jmx/src/main/docs/jmx-component.adoc
index 8b61a1a..3e03c70 100644
--- a/components/camel-jmx/src/main/docs/jmx-component.adoc
+++ b/components/camel-jmx/src/main/docs/jmx-component.adoc
@@ -10,7 +10,7 @@ ifdef::env-github[]
 :warning-caption: :warning:
 endif::[]
 
-### Camel JMX
+=== Camel JMX
 
 Apache Camel has extensive support for JMX to allow you to monitor and
 control the Camel managed objects with a JMX client.
@@ -20,7 +20,7 @@ subscribe to MBean notifications. This page is about how to manage and
 monitor Camel using JMX.
 
 
-### Options
+=== Options
 
 // component options: START
 The JMX component has no options.
@@ -83,7 +83,7 @@ with the following path and query parameters:
 |===
 // endpoint options: END
 
-### Activating JMX in Camel
+=== Activating JMX in Camel
 
 [NOTE]
 ====
@@ -99,7 +99,7 @@ From *Camel 2.9* onwards, the Spring JARs are *no* longer required to
 run Camel in JMX mode.
 ====
 
-#### Using JMX to manage Apache Camel
+==== Using JMX to manage Apache Camel
 
 By default, JMX instrumentation agent is enabled in Camel, which means
 that Camel runtime creates and registers MBean management objects with a
@@ -142,7 +142,7 @@ Spring configuration:
 Spring configuration always takes precedence over system properties when
 they both present. It is true for all JMX related configurations.
 
-#### Disabling JMX instrumentation agent in Camel
+==== Disabling JMX instrumentation agent in Camel
 
 You can disable JMX instrumentation agent by setting the Java VM system
 property as follow:
@@ -174,7 +174,7 @@ CamelContext camel = new DefaultCamelContext();
 camel.disableJMX();
 ----
 
-#### Locating a MBeanServer in the Java VM
+==== Locating a MBeanServer in the Java VM
 
 Each CamelContext can have an instance of
 http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/spi/InstrumentationAgent.html[`InstrumentationAgent`]
@@ -242,7 +242,7 @@ Spring configuration:
 </camelContext>
 ----
 
-#### Creating JMX RMI Connector Server
+==== Creating JMX RMI Connector Server
 
 JMX connector server enables MBeans to be remotely managed by a JMX
 client such as JConsole; Camel JMX RMI connector server can be
@@ -265,7 +265,7 @@ Spring configuration:
 </camelContext>
 ----
 
-#### JMX Service URL
+==== JMX Service URL
 
 The default JMX Service URL has the format:
 
@@ -360,7 +360,7 @@ When the connector port option is set, the JMX service URL will become:
 service:jmx:rmi://localhost:<connectorPort>/jndi/rmi://localhost:<registryPort>/<serviceUrlPath>
 ----
 
-#### The System Properties for Camel JMX support
+==== The System Properties for Camel JMX support
 
 [width="100%",cols="1m,1,3",options="header",]
 |=======================================================================
@@ -372,7 +372,7 @@ feature in Camel
 See more system properties in this section below: _jmxAgent Properties
 Reference_.
 
-#### How to use authentication with JMX
+==== How to use authentication with JMX
 
 JMX in the JDK have features for authentication and also for using
 secure connections over SSL. You have to refer to the SUN documentation
@@ -381,9 +381,9 @@ how to use this:
 * http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html
 * http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html
 
-#### JMX inside an Application Server
+==== JMX inside an Application Server
 
-#### Tomcat 6
+===== Tomcat 6
 
 See http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html[this page]
 for details about enabling JMX in Tomcat.
@@ -399,7 +399,7 @@ set the following options...
     -Dcom.sun.management.jmxremote.authenticate=false
 ----
 
-#### JBoss AS 4
+===== JBoss AS 4
 
 By default JBoss creates its own `MBeanServer`. To allow Camel to expose
 to the same server follow these steps:
@@ -419,7 +419,7 @@ Add the following property to your `JAVA_OPTS` by editing `run.sh` or
 `run.conf` `-Djboss.platform.mbeanserver`. See
 http://wiki.jboss.org/wiki/JBossMBeansInJConsole
 
-#### WebSphere
+===== WebSphere
 
 Alter the `mbeanServerDefaultDomain` to be `WebSphere`:
 
@@ -428,7 +428,7 @@ Alter the `mbeanServerDefaultDomain` to be `WebSphere`:
 <camel:jmxAgent id="agent" createConnector="true" mbeanObjectDomainName="org.yourname" usePlatformMBeanServer="false" mbeanServerDefaultDomain="WebSphere"/>
 ----
 
-#### Oracle OC4j
+===== Oracle OC4j
 
 The Oracle OC4J J2EE application server will not allow Camel to access
 the platform `MBeanServer`. You can identify this in the log as Camel
@@ -445,13 +445,13 @@ java.lang.SecurityException: Unauthorized access from application: xx to MBean:
 To resolve this you should disable the JMX agent in Camel, see section
 _Disabling JMX instrumentation agent in Camel_.
 
-#### Advanced JMX Configuration
+==== Advanced JMX Configuration
 
 The Spring configuration file allows you to configure how Camel is
 exposed to JMX for management. In some cases, you could specify more
 information here, like the connector's port or the path name.
 
-#### Example:
+==== Example:
 
 [source,xml]
 ----
@@ -484,7 +484,7 @@ SUNJMX=-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=1
 for Camel, as additional startup parameters for the JVM. If you start
 Camel directly, you'll have to pass these parameters yourself.)
 
-#### `jmxAgent` Properties Reference
+==== `jmxAgent` Properties Reference
 
 [width="100%",cols="25%,25%,25%,25%",options="header",]
 |=======================================================================
@@ -550,7 +550,7 @@ usage of each incoming and outgoing endpoints).
 |=======================================================================
 
 
-#### Configuring whether to register MBeans always, for new routes or just by default
+==== Configuring whether to register MBeans always, for new routes or just by default
 
 
 *Available as of Camel 2.7*
@@ -581,9 +581,9 @@ also be registered. This could potential lead to system degration due
 the rising number of mbeans in the registry. A MBean is not a
 light-weight object and thus consumes memory.
 
-### Monitoring Camel using JMX
+=== Monitoring Camel using JMX
 
-#### Using JConsole to monitor Camel
+==== Using JConsole to monitor Camel
 
 The `CamelContext` should appear in the list of local connections, if
 you are running JConsole on the same host as Camel.
@@ -596,7 +596,7 @@ Using the Apache Camel with JConsole:
 
 image:camel-jmx.png[image]
 
-#### Which endpoints are registered
+==== Which endpoints are registered
 
 In *Camel 2.1* onwards *only* `singleton` endpoints are registered as
 the overhead for non singleton will be substantial in cases where
@@ -604,11 +604,11 @@ thousands or millions of endpoints are used. This can happens when using
 a Recipient List EIP or from a
 `ProducerTemplate` that sends a lot of messages.
 
-#### Which processors are registered
+==== Which processors are registered
 
 See this FAQ.
 
-#### How to use the JMX NotificationListener to listen the camel events?
+==== How to use the JMX NotificationListener to listen the camel events?
 
 The Camel notification events give a coarse grained overview what is
 happening. You can see lifecycle event from context and endpoints and
@@ -651,7 +651,7 @@ context.getManagementStrategy().getManagementAgent().getMBeanServer().addNotific
     }, null);
 ----
 
-#### Using the Tracer MBean to get fine grained tracing
+==== Using the Tracer MBean to get fine grained tracing
 
 Additionally to the coarse grained notifications above *Camel 2.9.0*
 support JMX Notification for fine grained trace events.
@@ -672,9 +672,9 @@ route with all exchange and message details:
 
 image:jconsole_trace_notifications.png[image]
 
-### Using JMX for your own Camel Code
+=== Using JMX for your own Camel Code
 
-#### Registering your own Managed Endpoints
+==== Registering your own Managed Endpoints
 
 *Available as of Camel 2.0* +
 You can decorate your own endpoints with Spring managed annotations
@@ -729,7 +729,7 @@ Notice from *Camel 2.9* onwards its encouraged to use the
 the `org.apache.camel.api.management` package. This allows your custom
 code to not depend on Spring JARs.
 
-#### Programming your own Managed Services
+==== Programming your own Managed Services
 
 *Available as of Camel 2.1*
 
@@ -783,7 +783,7 @@ types such as:
 
 And in the future we will add additional wrappers for more EIP patterns.
 
-#### ManagementNamingStrategy
+==== ManagementNamingStrategy
 
 *Available as of Camel 2.1*
 
@@ -792,7 +792,7 @@ Camel provides a pluggable API for naming strategy by
 implementation is used to compute the MBean names that all MBeans are
 registered with.
 
-#### Management naming pattern
+==== Management naming pattern
 
 *Available as of Camel 2.10*
 
@@ -934,7 +934,7 @@ install a 2nd Camel application that has the same `CamelContext` id and
 `managementNamePattern` then Camel will fail upon starting, and report a
 MBean already exists exception.
 
-#### ManagementStrategy
+==== ManagementStrategy
 
 *Available as of Camel 2.1*
 
@@ -947,7 +947,7 @@ does, for example, is make it easier to provide an adapter for other
 management products. In addition, it also allows you to provide more
 details and features that are provided out of the box at Apache.
 
-#### Configuring level of granularity for performance statistics
+==== Configuring level of granularity for performance statistics
 
 *Available as of Camel 2.1*
 
@@ -1008,7 +1008,7 @@ And from Spring DSL you do:
 </camelContext>
 ----
 
-### Hiding sensitive information
+=== Hiding sensitive information
 
 *Available as of Camel 2.12*
 
@@ -1040,7 +1040,7 @@ And from Spring DSL you do:
 This will mask URIs having options such as password and
 passphrase, and use `xxxxxx` as the replacement value.
 
-#### Declaring which JMX attributes and operations to mask
+==== Declaring which JMX attributes and operations to mask
 
 On the `org.apache.camel.api.management.ManagedAttribute` and
 `org.apache.camel.api.management.ManagedOperation`, the attribute `mask`
@@ -1058,7 +1058,7 @@ declared that the `EndpointUri` JMX attribute is masked:
 String getEndpointUri();
 ----
 
-### See Also
+=== See Also
 
 * Management Example
 * link:why-is-my-processor-not-showing-up-in-jconsole.html[Why is my
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-component.adoc
index 55285ca..72c8c09 100644
--- a/components/camel-kubernetes/src/main/docs/kubernetes-component.adoc
+++ b/components/camel-kubernetes/src/main/docs/kubernetes-component.adoc
@@ -9,7 +9,7 @@ The composite kubernetes component has been deprecated. Use individual
 component splitted as following.
 
 * <<kubernetes-component,Kubernetes Components>>
-  ** <<kubernetes-build-configs-component,Kubernetes Build Config>>
+  ** <<openshift-build-configs-component,Kubernetes Build Config>>
   ** Kubernetes Build
   ** <<kubernetes-config-maps-component,Kubernetes ConfigMap>>
   ** <<kubernetes-namespaces-component,Kubernetes Namespace>>
@@ -40,7 +40,7 @@ their `pom.xml` for this component:
 </dependency>
 ------------------------------------------------------------
 
-### URI format
+=== URI format
 
 [source,java]
 ------------------------------
@@ -50,7 +50,7 @@ kubernetes:masterUrl[?options]
 You can append query options to the URI in the following
 format, `?option=value&option=value&...`
 
-### Options
+=== Options
 
 
 // component options: START
@@ -126,7 +126,7 @@ with the following path and query parameters:
 
 
 
-### Headers
+=== Headers
 
 [width="100%",cols="10%,10%,80%",options="header",]
 |=======================================================================
@@ -210,7 +210,7 @@ with the following path and query parameters:
 |=======================================================================
 
 
-### Categories
+=== Categories
 
 Actually the camel-kubernetes component supports the following Kubernetes resources
 
@@ -231,13 +231,13 @@ In Openshift also
 - Builds
 - BuildConfigs
 
-### Usage
+=== Usage
 
-#### Producer examples
+==== Producer examples
 
 Here we show some examples of producer using camel-kubernetes.
 
-#### Create a pod
+==== Create a pod
 
 [source,java]
 -------------------------------------------------------------
@@ -247,7 +247,7 @@ from("direct:createPod")
 
 By using the KubernetesConstants.KUBERNETES_POD_SPEC header you can specify your PodSpec and pass it to this operation.
 
-#### Delete a pod
+==== Delete a pod
 
 [source,java]
 -------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/docs/kubernetes.adoc b/components/camel-kubernetes/src/main/docs/kubernetes.adoc
index d21ef2f..0b1eb65 100644
--- a/components/camel-kubernetes/src/main/docs/kubernetes.adoc
+++ b/components/camel-kubernetes/src/main/docs/kubernetes.adoc
@@ -20,7 +20,7 @@ The camel-kubernetes consists of 13 components:
 
 In OpenShift, also:
 
-* <<kubernetes-build-configs-component,Kubernetes Build Config>>
+* <<openshift-build-configs-component,Kubernetes Build Config>>
 * Kubernetes Build
 
 
@@ -146,4 +146,4 @@ from("direct:createPod")
     .toF("kubernetes-pods://%s?oauthToken=%s&operation=deletePod", host, authToken);
 -------------------------------------------------------------
 
-By using the KubernetesConstants.KUBERNETES_POD_NAME header you can specify your Pod name and pass it to this operation.
\ No newline at end of file
+By using the KubernetesConstants.KUBERNETES_POD_NAME header you can specify your Pod name and pass it to this operation.
diff --git a/components/camel-mina2/src/main/docs/mina2-component.adoc b/components/camel-mina2/src/main/docs/mina2-component.adoc
index b95ceb5..fad2535 100644
--- a/components/camel-mina2/src/main/docs/mina2-component.adoc
+++ b/components/camel-mina2/src/main/docs/mina2-component.adoc
@@ -206,7 +206,7 @@ assertEquals("Bye World", response);
 
 ### Sample with Spring DSL
 
-Spring DSL can, of course, also be used for <<mina-component,MINA>>. In the
+Spring DSL can, of course, also be used for <<mina2-component,MINA>>. In the
 sample below we expose a TCP server on port 5555:
 
 [source,xml]
@@ -272,6 +272,4 @@ is, after `codec` and `logger`.
 * Component
 * Endpoint
 * Getting Started
-
-* <<mina-component,MINA>>
 * <<netty-component,Netty>>
diff --git a/components/camel-mllp/src/main/docs/mllp-component.adoc b/components/camel-mllp/src/main/docs/mllp-component.adoc
index 5664b4a..47255ae 100644
--- a/components/camel-mllp/src/main/docs/mllp-component.adoc
+++ b/components/camel-mllp/src/main/docs/mllp-component.adoc
@@ -36,7 +36,7 @@ for this component:
 </dependency>
 ---------------------------------------------------------
 
-### MLLP Options
+=== MLLP Options
 
 
 
@@ -125,7 +125,7 @@ with the following path and query parameters:
 
 
 
-### MLLP Consumer
+=== MLLP Consumer
 
 The MLLP Consumer supports receiving MLLP-framed messages and sending
 HL7 Acknowledgements.  The MLLP Consumer can automatically generate the
@@ -135,7 +135,7 @@ the CamelMllpAcknowledgement exchange property.  Additionally, the type
 of acknowledgement that will be generated can be controlled by setting
 the CamelMllpAcknowledgementType exchange property.
 
-### *Message Headers*
+=== *Message Headers*
 
 The MLLP Consumer adds these headers on the Camel message:
 
@@ -162,7 +162,7 @@ The MLLP Consumer adds these headers on the Camel message:
 All headers are String types. If a header value is missing, its value
 is null.
 
-### *Exchange Properties*
+=== *Exchange Properties*
 
 The type of acknowledgment the MLLP Consumer generates and state of the TCP Socket can be controlled
 by these properties on the Camel exchange:
@@ -181,9 +181,10 @@ by these properties on the Camel exchange:
 |CamelMllpResetConnectionAfterSend | Boolean | If true, the Socket will be reset immediately after sending any data
 |====================================
 
-### Consumer Configuration
+// REVISIT - Empty section is bad for AsciiDoc build
+//=== Consumer Configuration
 
-### MLLP Producer
+=== MLLP Producer
 
 The MLLP Producer supports sending MLLP-framed messages and receiving
 HL7 Acknowledgements.  The MLLP Producer interrogates the HL7
@@ -191,7 +192,7 @@ Acknowledgments and raises exceptions if a negative acknowledgement is
 received.  The received acknowledgement is interrogated and an exception
 is raised in the event of a negative acknowledgement.
 
-### *Message Headers*
+=== *Message Headers*
 
 The MLLP Producer adds these headers on the Camel message:
 
@@ -205,7 +206,7 @@ The MLLP Producer adds these headers on the Camel message:
 |CamelMllpAcknowledgementType | The HL7 acknowledgement type (AA, AE, AR, etc)
 |===================================
 
-### *Exchange Properties*
+=== *Exchange Properties*
 
 The state of the TCP Socket can be controlled by these properties on the Camel exchange:
 
diff --git a/components/camel-mongodb/src/main/docs/mongodb-component.adoc b/components/camel-mongodb/src/main/docs/mongodb-component.adoc
index 0f114ae..dbbff25 100644
--- a/components/camel-mongodb/src/main/docs/mongodb-component.adoc
+++ b/components/camel-mongodb/src/main/docs/mongodb-component.adoc
@@ -41,14 +41,14 @@ for this component:
 </dependency>
 ------------------------------------------------------------
 
-### URI format
+=== URI format
 
 [source,java]
 ---------------------------------------------------------------------------------------------------------------
 mongodb:connectionBean?database=databaseName&collection=collectionName&operation=operationName[&moreOptions...]
 ---------------------------------------------------------------------------------------------------------------
 
-### MongoDB options
+=== MongoDB options
 
 
 // component options: START
@@ -116,7 +116,7 @@ with the following path and query parameters:
 
 
 
-### Configuration of database in Spring XML
+=== Configuration of database in Spring XML
 
 The following Spring XML creates a bean defining the connection to a
 MongoDB instance.
@@ -134,7 +134,7 @@ MongoDB instance.
 </beans>
 ----------------------------------------------------------------------------------------------------------------------------------
 
-### Sample route
+=== Sample route
 
 The following route defined in Spring XML executes the operation
 <<mongodb-component,*dbStats*>> on a collection.
@@ -151,11 +151,11 @@ The following route defined in Spring XML executes the operation
 </route>
 ---------------------------------------------------------------------------------------------------------------------------
 
-### MongoDB operations - producer endpoints
+=== MongoDB operations - producer endpoints
 
-### Query operations
+==== Query operations
 
-#### findById
+===== findById
 
 This operation retrieves only one element from the collection whose _id
 field matches the content of the IN message body. The incoming object
@@ -175,7 +175,7 @@ from("direct:findById")
 TIP: *Supports optional parameters*. This operation supports specifying a fields filter. See
 <<mongodb-component,Specifying optional parameters>>.
 
-#### findOneByQuery
+===== findOneByQuery
 
 Use this operation to retrieve just one element from the collection that
 matches a MongoDB query. *The query object is extracted from the IN
@@ -205,7 +205,7 @@ from("direct:findOneByQuery")
 TIP: *Supports optional parameters*. This operation supports specifying a fields filter and/or a sort clause. See
 <<mongodb-component,Specifying optional parameters>>.
 
-#### findAll
+===== findAll
 
 The `findAll` operation returns all documents matching a query, or none
 at all, in which case all documents contained in the collection are
@@ -292,7 +292,7 @@ consideration. |int/Integer
 TIP: *Supports optional parameters*. This operation supports specifying a fields filter and/or a sort clause. See
 <<mongodb-component,Specifying optional parameters>>.
 
-#### count
+===== count
 
 Returns the total number of objects in a collection, returning a Long as
 the OUT message body. +
@@ -321,7 +321,7 @@ DBObject query = ...
 Long count = template.requestBodyAndHeader("direct:count", query, MongoDbConstants.COLLECTION, "dynamicCollectionName");
 ------------------------------------------------------------------------------------------------------------------------
 
-#### Specifying a fields filter (projection)
+===== Specifying a fields filter (projection)
 
 Query operations will, by default, return the matching objects in their
 entirety (with all their fields). If your documents are large and you
@@ -342,7 +342,7 @@ DBObject fieldFilter = BasicDBObjectBuilder.start().add("_id", 0).add("boringFie
 Object result = template.requestBodyAndHeader("direct:findAll", (Object) null, MongoDbConstants.FIELDS_FILTER, fieldFilter);
 ----------------------------------------------------------------------------------------------------------------------------
 
-#### Specifying a sort clause
+===== Specifying a sort clause
 
 There is a often a requirement to fetch the min/max record from a 
 collection based on sorting by a particular field. In Mongo the 
@@ -375,9 +375,9 @@ to a single field, based on the `documentTimestamp` field:
 ----------------------------------------------------------------------------------------------------------------------------
 
 
-### Create/update operations
+==== Create/update operations
 
-#### insert
+===== insert
 
 Inserts an new object into the MongoDB collection, taken from the IN
 message body. Type conversion is attempted to turn it into `DBObject` or
@@ -424,7 +424,7 @@ constant). The value stored is `org.bson.types.ObjectId` for single
 insert or `java.util.List<org.bson.types.ObjectId>` if multiple records
 have been inserted.
 
-#### save
+===== save
 
 The save operation is equivalent to an _upsert_ (UPdate, inSERT)
 operation, where the record will be updated, and if it doesn't exist, it
@@ -454,7 +454,7 @@ from("direct:insert")
     .to("mongodb:myDb?database=flights&collection=tickets&operation=save");
 ---------------------------------------------------------------------------
 
-#### update
+===== update
 
 Update one or multiple records on the collection. Requires a
 List<DBObject> as the IN message body containing exactly 2 elements:
@@ -498,9 +498,9 @@ DBObject updateObj = new BasicDBObject("$set", new BasicDBObject("scientist", "D
 Object result = template.requestBodyAndHeader("direct:update", new Object[] {filterField, updateObj}, MongoDbConstants.MULTIUPDATE, true);
 ------------------------------------------------------------------------------------------------------------------------------------------
 
-### Delete operations
+==== Delete operations
 
-#### remove
+===== remove
 
 Remove matching records from the collection. The IN message body will
 act as the removal filter query, and is expected to be of type
@@ -521,9 +521,9 @@ A header with key `CamelMongoDbRecordsAffected` is returned
 containing the number of records deleted (copied from
 `WriteResult.getN()`).
 
-### Other operations
+==== Other operations
 
-#### aggregate
+===== aggregate
 
 *Available as of Camel 2.14*
 
@@ -569,7 +569,7 @@ from("direct:aggregate")
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
 
-#### getDbStats
+===== getDbStats
 
 Equivalent of running the `db.stats()` command in the MongoDB shell,
 which displays useful statistic figures about the database. +
@@ -606,7 +606,7 @@ assertTrue("Result is not of type DBObject", result instanceof DBObject);
 The operation will return a data structure similar to the one displayed
 in the shell, in the form of a `DBObject` in the OUT message body.
 
-#### getColStats
+===== getColStats
 
 Equivalent of running the `db.collection.stats()` command in the MongoDB
 shell, which displays useful statistic figures about the collection. +
@@ -646,7 +646,7 @@ assertTrue("Result is not of type DBObject", result instanceof DBObject);
 The operation will return a data structure similar to the one displayed
 in the shell, in the form of a `DBObject` in the OUT message body.
 
-#### command
+===== command
 
 *Available as of Camel 2.15*
 
@@ -662,7 +662,7 @@ DBObject commandBody = new BasicDBObject("hostInfo", "1");
 Object result = template.requestBody("direct:command", commandBody);
 --------------------------------------------------------------------------------
 
-### Dynamic operations
+==== Dynamic operations
 
 An Exchange can override the endpoint's fixed operation by setting the
 `CamelMongoDbOperation` header, defined by the
@@ -680,7 +680,7 @@ Object result = template.requestBodyAndHeader("direct:insert", "irrelevantBody",
 assertTrue("Result is not of type Long", result instanceof Long);
 -----------------------------------------------------------------------------------------------------------------------------
 
-### Tailable Cursor Consumer
+=== Tailable Cursor Consumer
 
 MongoDB offers a mechanism to instantaneously consume ongoing data from
 a collection, by keeping the cursor open just like the `tail -f` command
@@ -702,7 +702,7 @@ new objects are inserted, MongoDB will push them as DBObjects in natural
 order to your tailable cursor consumer, who will transform them to an
 Exchange and will trigger your route logic.
 
-### How the tailable cursor consumer works
+=== How the tailable cursor consumer works
 
 To turn a cursor into a tailable cursor, a few special flags are to be
 signalled to MongoDB when first generating the cursor. Once created, the
@@ -753,7 +753,7 @@ The above route will consume from the "flights.cancellations" capped
 collection, using "departureTime" as the increasing field, with a
 default regeneration cursor delay of 1000ms.
 
-### Persistent tail tracking
+=== Persistent tail tracking
 
 Standard tail tracking is volatile and the last value is only kept in
 memory. However, in practice you will need to restart your Camel
@@ -773,7 +773,7 @@ persisting at regular intervals too in the future (flush every 5
 seconds) for added robustness if the demand is there. To request this
 feature, please open a ticket in the Camel JIRA.
 
-### Enabling persistent tail tracking
+=== Enabling persistent tail tracking
 
 To enable this function, set at least the following options on the
 endpoint URI:
@@ -819,7 +819,7 @@ from("mongodb:myDb?database=flights&collection=cancellations&tailTrackIncreasing
     .to("mock:test");
 -----------------------------------------------------------------------------------------------------------------------------------
 
-### Oplog Tail Tracking
+=== Oplog Tail Tracking
 
 The *oplog* collection tracking feature allows to implement trigger like functionality in MongoDB.
 In order to activate this collection you will have first to activate a replica set. For more
@@ -933,7 +933,7 @@ public class MongoDbTracker {
 -----------------------------------------------------------------------------------------------------------------------------------
 
 
-### Type conversions
+=== Type conversions
 
 The `MongoDbBasicConverters` type converter included with the
 camel-mongodb component provides the following conversions:
@@ -957,7 +957,7 @@ object to a `Map`, which is in turn used to initialise a new
 This type converter is auto-discovered, so you don't need to configure
 anything manually.
 
-### See also
+=== See also
 
 * http://www.mongodb.org/[MongoDB website]
 * http://en.wikipedia.org/wiki/NoSQL[NoSQL Wikipedia article]
diff --git a/components/camel-mongodb3/src/main/docs/mongodb3-component.adoc b/components/camel-mongodb3/src/main/docs/mongodb3-component.adoc
index ea8c775..aef5bf0 100644
--- a/components/camel-mongodb3/src/main/docs/mongodb3-component.adoc
+++ b/components/camel-mongodb3/src/main/docs/mongodb3-component.adoc
@@ -43,14 +43,14 @@ for this component:
 </dependency>
 ------------------------------------------------------------
 
-### URI format
+=== URI format
 
 [source,java]
 ---------------------------------------------------------------------------------------------------------------
 mongodb3:connectionBean?database=databaseName&collection=collectionName&operation=operationName[&moreOptions...]
 ---------------------------------------------------------------------------------------------------------------
 
-### MongoDB options
+=== MongoDB options
 
 
 // component options: START
@@ -118,8 +118,8 @@ readPreference *Remove in camel 2.19.* See Mongo client options <<MongoDB-Config
 
 
 
-
-### Configuration of database in Spring XML
+[[MongoDB-ConfigurationofdatabaseinSpringXML]]
+=== Configuration of database in Spring XML
 
 The following Spring XML creates a bean defining the connection to a
 MongoDB instance.
@@ -145,7 +145,7 @@ xsi:schemaLocation="http://www.springframework.org/schema/context
 </beans>
 ----------------------------------------------------------------------------------------------------------------------------------
 
-### Sample route
+=== Sample route
 
 The following route defined in Spring XML executes the operation
 <<mongodb3-component,*dbStats*>> on a collection.
@@ -162,11 +162,11 @@ The following route defined in Spring XML executes the operation
 </route>
 ---------------------------------------------------------------------------------------------------------------------------
 
-### MongoDB operations - producer endpoints
+=== MongoDB operations - producer endpoints
 
-### Query operations
+==== Query operations
 
-#### findById
+===== findById
 
 This operation retrieves only one element from the collection whose _id
 field matches the content of the IN message body. The incoming object
@@ -186,7 +186,7 @@ from("direct:findById")
 TIP: *Supports optional parameters*. This operation supports specifying a fields filter. See
 <<mongodb3-component,Specifying optional parameters>>.
 
-#### findOneByQuery
+===== findOneByQuery
 
 Use this operation to retrieve just one element (the first) from the collection that
 matches a MongoDB query. *The query object is extracted `CamelMongoDbCriteria` header*.
@@ -217,7 +217,7 @@ from("direct:findOneByQuery")
 TIP: *Supports optional parameters*. This operation supports specifying a fields projection and/or a sort clause. See
 <<mongodb3-component,Specifying optional parameters>>.
 
-#### findAll
+===== findAll
 
 The `findAll` operation returns all documents matching a query, or none
 at all, in which case all documents contained in the collection are
@@ -300,7 +300,7 @@ consideration. |int/Integer
 TIP: *Supports optional parameters*. This operation supports specifying a fields projection and/or a sort clause. See
 <<mongodb3-component,Specifying optional parameters>>.
 
-#### count
+===== count
 
 Returns the total number of objects in a collection, returning a Long as
 the OUT message body. +
@@ -330,7 +330,7 @@ Document query = ...
 Long count = template.requestBodyAndHeader("direct:count", query, MongoDbConstants.COLLECTION, "dynamicCollectionName");
 ------------------------------------------------------------------------------------------------------------------------
 
-#### Specifying a fields filter (projection)
+===== Specifying a fields filter (projection)
 
 Query operations will, by default, return the matching objects in their
 entirety (with all their fields). If your documents are large and you
@@ -362,7 +362,7 @@ Bson fieldProjection = Projection.exclude("_id", "boringField");
 Object result = template.requestBodyAndHeader("direct:findAll", ObjectUtils.NULL, MongoDbConstants.FIELDS_PROJECTION, fieldProjection);
 ----------------------------------------------------------------------------------------------------------------------------
 
-#### Specifying a sort clause
+===== Specifying a sort clause
 
 There is a often a requirement to fetch the min/max record from a 
 collection based on sorting by a particular field
@@ -396,9 +396,9 @@ to a single field, based on the `documentTimestamp` field:
 ;
 ----------------------------------------------------------------------------------------------------------------------------
 
-### Create/update operations
+==== Create/update operations
 
-#### insert
+===== insert
 
 Inserts an new object into the MongoDB collection, taken from the IN
 message body. Type conversion is attempted to turn it into `Document` or
@@ -445,7 +445,7 @@ have been inserted.
 In MongoDB Java Driver 3.x the insertOne and insertMany operation return void.
 The Camel insert operation return the Document or List of Documents inserted. Note that each Documents are Updated by a new OID if need.
 
-#### save
+===== save
 
 The save operation is equivalent to an _upsert_ (UPdate, inSERT)
 operation, where the record will be updated, and if it doesn't exist, it
@@ -477,7 +477,7 @@ from("direct:insert")
     .to("mongodb3:myDb?database=flights&collection=tickets&operation=save");
 ---------------------------------------------------------------------------
 
-#### update
+===== update
 
 Update one or multiple records on the collection. Requires a filter query and 
 a update rules.
@@ -546,9 +546,9 @@ Object result = template.requestBodyAndHeader("direct:update", updateObj, MongoD
 
 ------------------------------------------------------------------------------------------------------------------------------------------
 
-### Delete operations
+==== Delete operations
 
-#### remove
+===== remove
 
 Remove matching records from the collection. The IN message body will
 act as the removal filter query, and is expected to be of type
@@ -569,9 +569,9 @@ A header with key `CamelMongoDbRecordsAffected` is returned
 containing the number of records deleted (copied from
 `WriteResult.getN()`).
 
-### Other operations
+==== Other operations
 
-#### aggregate
+===== aggregate
 
 Perform a aggregation with the given pipeline contained in the
 body. *Aggregations could be long and heavy operations. Use with care.*
@@ -620,7 +620,7 @@ from("direct:aggregate")
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
 
-#### getDbStats
+===== getDbStats
 
 Equivalent of running the `db.stats()` command in the MongoDB shell,
 which displays useful statistic figures about the database. +
@@ -657,7 +657,7 @@ assertTrue("Result is not of type Document", result instanceof Document);
 The operation will return a data structure similar to the one displayed
 in the shell, in the form of a `Document` in the OUT message body.
 
-#### getColStats
+===== getColStats
 
 Equivalent of running the `db.collection.stats()` command in the MongoDB
 shell, which displays useful statistic figures about the collection. +
@@ -697,7 +697,7 @@ assertTrue("Result is not of type Document", result instanceof Document);
 The operation will return a data structure similar to the one displayed
 in the shell, in the form of a `Document` in the OUT message body.
 
-#### command
+===== command
 
 Run the body as a command on database. Usefull for admin operation as
 getting host informations, replication or sharding status.
@@ -711,7 +711,7 @@ DBObject commandBody = new BasicDBObject("hostInfo", "1");
 Object result = template.requestBody("direct:command", commandBody);
 --------------------------------------------------------------------------------
 
-### Dynamic operations
+==== Dynamic operations
 
 An Exchange can override the endpoint's fixed operation by setting the
 `CamelMongoDbOperation` header, defined by the
@@ -729,7 +729,7 @@ Object result = template.requestBodyAndHeader("direct:insert", "irrelevantBody",
 assertTrue("Result is not of type Long", result instanceof Long);
 -----------------------------------------------------------------------------------------------------------------------------
 
-### Tailable Cursor Consumer
+=== Tailable Cursor Consumer
 
 MongoDB offers a mechanism to instantaneously consume ongoing data from
 a collection, by keeping the cursor open just like the `tail -f` command
@@ -751,7 +751,7 @@ new objects are inserted, MongoDB will push them as `Document` in natural
 order to your tailable cursor consumer, who will transform them to an
 Exchange and will trigger your route logic.
 
-### How the tailable cursor consumer works
+=== How the tailable cursor consumer works
 
 To turn a cursor into a tailable cursor, a few special flags are to be
 signalled to MongoDB when first generating the cursor. Once created, the
@@ -802,7 +802,7 @@ The above route will consume from the "flights.cancellations" capped
 collection, using "departureTime" as the increasing field, with a
 default regeneration cursor delay of 1000ms.
 
-### Persistent tail tracking
+=== Persistent tail tracking
 
 Standard tail tracking is volatile and the last value is only kept in
 memory. However, in practice you will need to restart your Camel
@@ -822,7 +822,7 @@ persisting at regular intervals too in the future (flush every 5
 seconds) for added robustness if the demand is there. To request this
 feature, please open a ticket in the Camel JIRA.
 
-### Enabling persistent tail tracking
+=== Enabling persistent tail tracking
 
 To enable this function, set at least the following options on the
 endpoint URI:
@@ -868,7 +868,7 @@ from("mongodb3:myDb?database=flights&collection=cancellations&tailTrackIncreasin
     .to("mock:test");
 -----------------------------------------------------------------------------------------------------------------------------------
 
-### Type conversions
+=== Type conversions
 
 The `MongoDbBasicConverters` type converter included with the
 camel-mongodb component provides the following conversions:
@@ -889,7 +889,7 @@ object to a `Map`, which is in turn used to initialise a new
 This type converter is auto-discovered, so you don't need to configure
 anything manually.
 
-### See also
+=== See also
 
 * http://www.mongodb.org/[MongoDB website]
 * http://en.wikipedia.org/wiki/NoSQL[NoSQL Wikipedia article]
diff --git a/components/camel-netty/src/main/docs/netty-component.adoc b/components/camel-netty/src/main/docs/netty-component.adoc
index 00189a9..5c78120 100644
--- a/components/camel-netty/src/main/docs/netty-component.adoc
+++ b/components/camel-netty/src/main/docs/netty-component.adoc
@@ -628,6 +628,5 @@ And if we have another route we can refer to the shared worker pool:
 * Component
 * Endpoint
 * Getting Started
-
 * <<netty-http-component,Netty HTTP>>
-* <<mina-component,MINA>>
+* <<mina2-component,MINA>>
diff --git a/components/camel-netty4/src/main/docs/netty4-component.adoc b/components/camel-netty4/src/main/docs/netty4-component.adoc
index 9b3f62a..d1c909b 100644
--- a/components/camel-netty4/src/main/docs/netty4-component.adoc
+++ b/components/camel-netty4/src/main/docs/netty4-component.adoc
@@ -696,6 +696,5 @@ And if we have another route we can refer to the shared worker pool:
 * Component
 * Endpoint
 * Getting Started
-
 * <<netty-http-component,Netty HTTP>>
-* <<mina-component,MINA>>
+* <<mina2-component,MINA>>
diff --git a/components/camel-olingo4/camel-olingo4-component/src/main/docs/olingo4-component.adoc b/components/camel-olingo4/camel-olingo4-component/src/main/docs/olingo4-component.adoc
index c0a914e..7a5c775 100644
--- a/components/camel-olingo4/camel-olingo4-component/src/main/docs/olingo4-component.adoc
+++ b/components/camel-olingo4/camel-olingo4-component/src/main/docs/olingo4-component.adoc
@@ -253,5 +253,3 @@ The following route creates People entity using the
 from("direct:...")
     .to("olingo4://create/People");
 ------------------------------------------------------------
-
----------------------------------------------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc b/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc
index e1d469a..5926d6f 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc
@@ -12,20 +12,20 @@ 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-salesforce</artifactId>
     <version>x.x.x</version>
     <!-- use the same version as your Camel core version -->
 </dependency>
-------------------------------------------------------------
+----
 
 NOTE: Developers wishing to contribute to the component are instructed
 to look at the README.md file on instructions on how to get started and
 setup your environment for running integration tests.
 
-## Authenticating to Salesforce
+=== Authenticating to Salesforce
 
 The component supports three OAuth authentication flows:
 
@@ -56,27 +56,27 @@ NOTE: The certificate used in JWT Bearer Token Flow can be a selfsigned
 certificate. The KeyStore holding the certificate and the private key
 must contain only single certificate-private key entry.
 
-### URI format
+=== URI format
 
 When used as a consumer, receiving streaming events, the URI scheme is:
 
 [source,java]
-------------------------
+----
 salesforce:topic?options
-------------------------
+----
 
 When used as a producer, invoking the Salesforce RSET APIs, the URI
 scheme is:
 
 [source,java]
-------------------------
+----
 salesforce:operationName?options
-------------------------
+----
 
 You can append query options to the URI in the following format,
 `?option=value&option=value&...`
 
-### Passing in Salesforce headers and fetching Salesforce response headers
+=== Passing in Salesforce headers and fetching Salesforce response headers
 
 With Camel 2.21 there is support to pass https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/headers.htm[Salesforce headers]
 via inbound message headers, header names that start with `Sforce` or
@@ -87,7 +87,7 @@ message headers.
 For example to fetch API limits you can specify:
 
 [source,java]
-------------------------
+----
 // in your Camel route set the header before Salesforce endpoint
 //...
   .setHeader("Sforce-Limit-Info", constant("api-usage"))
@@ -102,16 +102,16 @@ class MyProcessor implements Processor {
         String apiLimits = in.getHeader("Sforce-Limit-Info", String.class);
    }
 }
-------------------------
+----
 
-### Supported Salesforce APIs
+=== Supported Salesforce APIs
 
 The component supports the following Salesforce APIs
 
 Producer endpoints can use the following APIs. Most of the APIs process
 one record at a time, the Query API can retrieve multiple Records.
 
-#### Rest API
+==== Rest API
 
 You can use the following for `operationName`:
 
@@ -151,11 +151,11 @@ updated, or `CreateSObjectResult` with an id of the new record, or a
 list of errors while creating the new object.
 
 [source,java]
------------------------------------------------------------
+----
 ...to("salesforce:upsertSObject?sObjectIdName=Name")...
------------------------------------------------------------
+----
 
-#### Rest Bulk API
+==== Rest Bulk API
 
 Producer endpoints can use the following APIs. All Job data formats,
 i.e. xml, csv, zip/xml, and zip/csv are supported.  +
@@ -189,11 +189,11 @@ will contain `BatchInfo` on success, or throw a `SalesforceException` on
 error.
 
 [source,java]
-----------------------------------------
+----
 ...to("salesforce:createBatchJob")..
-----------------------------------------
+----
 
-#### Rest Streaming API
+==== Rest Streaming API
 
 Consumer endpoints can use the following sytax for streaming endpoints
 to receive Salesforce notifications on create/update.
@@ -201,25 +201,25 @@ to receive Salesforce notifications on create/update.
 To create and subscribe to a topic
 
 [source,java]
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+----
 from("salesforce:CamelTestTopic?notifyForFields=ALL&notifyForOperations=ALL&sObjectName=Merchandise__c&updateTopic=true&sObjectQuery=SELECT Id, Name FROM Merchandise__c")...
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+----
 
 To subscribe to an existing topic
 
 [source,java]
--------------------------------------------------------------------
+----
 from("salesforce:CamelTestTopic&sObjectName=Merchandise__c")...
--------------------------------------------------------------------
+----
 
-### Examples
+=== Examples
 
-### Uploading a document to a ContentWorkspace
+==== Uploading a document to a ContentWorkspace
 
 Create the ContentVersion in Java, using a Processor instance:
 
 [source,java]
------------------------------------------------------------------------------------
+----
 public class ContentProcessor implements Processor {
     public void process(Exchange exchange) throws Exception {
         Message message = exchange.getIn();
@@ -242,19 +242,19 @@ public class ContentProcessor implements Processor {
         ....
     }
 } 
------------------------------------------------------------------------------------
+----
 
 Give the output from the processor to the Salesforce component:
 
 [source,java]
------------------------------------------------------------------------------------------------------
+----
 from("file:///home/camel/library")
     .to(new ContentProcessor())     // convert bytes from the file into a ContentVersion SObject 
                                     // for the salesforce component
     .to("salesforce:createSObject"); 
------------------------------------------------------------------------------------------------------
+----
 
-### Using Salesforce Limits API
+=== Using Salesforce Limits API
 
 With `salesforce:limits` operation you can fetch of API limits from Salesforce and then act upon that data received.
 The result of `salesforce:limits` operation is mapped to `org.apache.camel.component.salesforce.api.dto.Limits`
@@ -271,7 +271,7 @@ evaluate as with floating point arithmetic, without it - it would end up making
 with either `0` (some API limits consumed) or `1` (no API limits consumed).
 
 [source,java]
------------------------------------------------------------------------------------------------------
+----
 from("direct:querySalesforce")
     .to("salesforce:limits")
     .choice()
@@ -280,9 +280,9 @@ from("direct:querySalesforce")
     .otherwise()
         .setBody(constant("Used up Salesforce API limits, leaving 10% for critical routes"))
     .endChoice()
------------------------------------------------------------------------------------------------------
+----
 
-### Working with approvals
+=== Working with approvals
 
 All the properties are named exactly the same as in the Salesforce REST API prefixed with `approval.`. You can set
 approval properties by setting `approval.PropertyName` of the Endpoint these will be used as template -- meaning
@@ -305,7 +305,7 @@ For example to send one record for approval using values in headers use:
 Given a route:
 
 [source,java]
------------------------------------------------------------------------------------------------------
+----
 from("direct:example1")//
         .setHeader("approval.ContextId", simple("${body['contextId']}"))
         .setHeader("approval.NextApproverIds", simple("${body['nextApproverIds']}"))
@@ -314,20 +314,20 @@ from("direct:example1")//
             + "&approval.comments=this is a test"//
             + "&approval.processDefinitionNameOrId=Test_Account_Process"//
             + "&approval.skipEntryCriteria=true");
------------------------------------------------------------------------------------------------------
+----
 
 You could send a record for approval using:
 
 [source,java]
------------------------------------------------------------------------------------------------------
+----
 final Map<String, String> body = new HashMap<>();
 body.put("contextId", accountIds.iterator().next());
 body.put("nextApproverIds", userId);
 
 final ApprovalResult result = template.requestBody("direct:example1", body, ApprovalResult.class);
------------------------------------------------------------------------------------------------------
+----
 
-### Using Salesforce Recent Items API
+=== Using Salesforce Recent Items API
 
 To fetch the recent items use `salesforce:recent` operation. This operation returns an `java.util.List` of
 `org.apache.camel.component.salesforce.api.dto.RecentItem` objects (`List<RecentItem>`) that in turn contain
@@ -335,14 +335,14 @@ the `Id`, `Name` and `Attributes` (with `type` and `url` properties). You can li
 by specifying `limit` parameter set to maximum number of records to return. For example:
 
 [source,java]
------------------------------------------------------------------------------------------------------
+----
 from("direct:fetchRecentItems")
     to("salesforce:recent")
         .split().body()
             .log("${body.name} at ${body.attributes.url}");
------------------------------------------------------------------------------------------------------
+----
 
-### Working with approvals
+=== Working with approvals
 
 All the properties are named exactly the same as in the Salesforce REST API prefixed with `approval.`. You can set
 approval properties by setting `approval.PropertyName` of the Endpoint these will be used as template -- meaning
@@ -365,7 +365,7 @@ For example to send one record for approval using values in headers use:
 Given a route:
 
 [source,java]
------------------------------------------------------------------------------------------------------
+----
 from("direct:example1")//
         .setHeader("approval.ContextId", simple("${body['contextId']}"))
         .setHeader("approval.NextApproverIds", simple("${body['nextApproverIds']}"))
@@ -374,20 +374,20 @@ from("direct:example1")//
             + "&approvalComments=this is a test"//
             + "&approvalProcessDefinitionNameOrId=Test_Account_Process"//
             + "&approvalSkipEntryCriteria=true");
------------------------------------------------------------------------------------------------------
+----
 
 You could send a record for approval using:
 
 [source,java]
------------------------------------------------------------------------------------------------------
+----
 final Map<String, String> body = new HashMap<>();
 body.put("contextId", accountIds.iterator().next());
 body.put("nextApproverIds", userId);
 
 final ApprovalResult result = template.requestBody("direct:example1", body, ApprovalResult.class);
------------------------------------------------------------------------------------------------------
+----
 
-### Using Salesforce Composite API to submit SObject tree
+=== Using Salesforce Composite API to submit SObject tree
 
 To create up to 200 records including parent-child relationships use `salesforce:composite-tree` operation. This
 requires an instance of `org.apache.camel.component.salesforce.api.dto.composite.SObjectTree` in the input 
@@ -405,7 +405,7 @@ from your database.
 Lets look at an example:
 
 [source,java]
------------------------------------------------------------------------------------------------------
+----
 Account account = ...
 Contact president = ...
 Contact marketing = ...
@@ -427,9 +427,9 @@ final List<SObjectNode> withErrors = result.get(true);
 final List<SObjectNode> succeeded = result.get(false);
 
 final String firstId = succeeded.get(0).getId();
------------------------------------------------------------------------------------------------------
+----
 
-### Using Salesforce Composite API to submit multiple requests in a batch
+=== Using Salesforce Composite API to submit multiple requests in a batch
 The Composite API batch operation (`composite-batch`) allows you to accumulate multiple requests in a batch and then
 submit them in one go, saving the round trip cost of multiple individual requests. Each response is then received in a
 list of responses with the order preserved, so that the n-th requests response is in the n-th place of the response.
@@ -444,7 +444,7 @@ handling code.
 Lets look at an example:
 
 [source,java]
------------------------------------------------------------------------------------------------------
+----
 final String acountId = ...
 final SObjectBatch batch = new SObjectBatch("38.0");
 
@@ -483,10 +483,9 @@ final String accountBillingPostalCode = retrieveData.get("BillingPostalCode"); /
 final SObjectBatchResult deleteResult = results.get(3); // delete result
 final int updateStatus = deleteResult.getStatusCode(); // probably 204
 final Object updateResultData = deleteResult.getResult(); // probably null
+----
 
------------------------------------------------------------------------------------------------------
-
-### Using Salesforce Composite API to submit multiple chained requests
+=== Using Salesforce Composite API to submit multiple chained requests
 The `composite` operation allows submitting up to 25 requests that can be chained together, for instance identifier
 generated in previous request can be used in subsequent request. Individual requests and responses are linked with the
 provided _reference_.
@@ -501,7 +500,7 @@ strings and what values are numbers), so in general those will be more type frie
 Lets look at an example:
 
 [source,java]
------------------------------------------------------------------------------------------------------
+----
 SObjectComposite composite = new SObjectComposite("38.0", true);
 
 // first insert operation via an external id
@@ -531,17 +530,15 @@ final int statusCode = accountUpdateResult.getHttpStatusCode(); // should be 200
 final Map<String, ?> accountUpdateBody = accountUpdateResult.getBody();
 
 final SObjectCompositeResult contactCreationResult = results.stream().filter(r -> "JunctionRecord".equals(r.getReferenceId())).findFirst().get()
-// ...
-
------------------------------------------------------------------------------------------------------
+----
 
 
-### Camel Salesforce Maven Plugin
+=== Camel Salesforce Maven Plugin
 
 This Maven plugin generates DTOs for the Camel
 <<salesforce-component,Salesforce>>.
 
-### Options
+=== Options
 
 
 
@@ -680,16 +677,16 @@ The plugin should be configured for the rest of the properties, and can
 be executed using the following command:
 
 [source,java]
----------------------------------------------------------------------------------------------------------------------------------
+----
 mvn camel-salesforce:generate -DcamelSalesforce.clientId=<clientid> -DcamelSalesforce.clientSecret=<clientsecret> \
     -DcamelSalesforce.userName=<username> -DcamelSalesforce.password=<password>
----------------------------------------------------------------------------------------------------------------------------------
+----
 
 The generated DTOs use Jackson and XStream annotations. All Salesforce
 field types are supported. Date and time fields are mapped to Joda
 DateTime, and picklist fields are mapped to generated Java Enumerations.
 
-### See Also
+=== See Also
 
 * Configuring Camel
 * Component
diff --git a/components/camel-sql/src/main/docs/sql-component.adoc b/components/camel-sql/src/main/docs/sql-component.adoc
index 61bc566..acc55c2 100644
--- a/components/camel-sql/src/main/docs/sql-component.adoc
+++ b/components/camel-sql/src/main/docs/sql-component.adoc
@@ -72,7 +72,7 @@ sql:select * from table where id=:#${property.myId} order by name[?options]
 ---------------------------------------------------------------------------
 
 Notice that the standard `?` symbol that denotes the parameters to an
-SQL query is substituted with the `#` symbol, because the `?` symbol is
+SQL query is substituted with the `pass:[#]` symbol, because the `?` symbol is
 used to specify options for the endpoint. The `?` symbol replacement can
 be configured on endpoint basis.
 
@@ -202,15 +202,15 @@ with the following path and query parameters:
 
 The SQL component tries to convert the message body to an object of
 `java.util.Iterator` type and then uses this iterator to fill the query
-parameters (where each query parameter is represented by a `#` symbol
+parameters (where each query parameter is represented by a `pass:[#]` symbol
 (or configured placeholder) in the endpoint URI). If the message body is
 not an array or collection, the conversion results in an iterator that
 iterates over only one object, which is the body itself.
 
 For example, if the message body is an instance of `java.util.List`, the
-first item in the list is substituted into the first occurrence of `#`
+first item in the list is substituted into the first occurrence of `pass:[#]`
 in the SQL query, the second item in the list is substituted into the
-second occurrence of `#`, and so on.
+second occurrence of `pass:[#]`, and so on.
 
 If `batch` is set to `true`, then the interpretation of the inbound
 message body changes slightly – instead of an iterator of parameters,
@@ -285,7 +285,7 @@ outputType=StreamList.
 
 |`CamelSqlQuery` |*Camel 2.8:* Query to execute. This query takes precedence over the
 query specified in the endpoint URI. Note that query parameters in the
-header _are_ represented by a `?` instead of a `#` symbol
+header _are_ represented by a `?` instead of a `pass:[#]` symbol
 |=======================================================================
 
 When performing `insert` operations, the SQL Component stores the rows
diff --git a/components/camel-syslog/src/main/docs/syslog-dataformat.adoc b/components/camel-syslog/src/main/docs/syslog-dataformat.adoc
index 3fae97d..2944c48 100644
--- a/components/camel-syslog/src/main/docs/syslog-dataformat.adoc
+++ b/components/camel-syslog/src/main/docs/syslog-dataformat.adoc
@@ -13,7 +13,7 @@ This component supports the following:
 SyslogMessage model objects.
 * Type Converter from/to SyslogMessage and
 String
-* Integration with the <<mina-component,camel-mina>> component.
+* Integration with the <<mina2-component,camel-mina>> component.
 * Integration with the <<netty-component,camel-netty>> component.
 * *Camel 2.14:* Encoder and decoder for
 the <<netty-component,camel-netty>> component.
@@ -40,7 +40,7 @@ as its underlying transport layer mechanism.
 The UDP port that has been assigned to syslog is 514.
 
 To expose a Syslog listener service we reuse the existing
-<<mina-component,camel-mina>> component or <<mina-component,camel-netty>>
+<<mina2-component,camel-mina>> component or <<mina2-component,camel-netty>>
 where we just use the `Rfc3164SyslogDataFormat` to marshal and unmarshal
 messages. Notice that from *Camel 2.14* onwards the syslog dataformat is
 renamed to `SyslogDataFormat`.
@@ -64,7 +64,7 @@ The Syslog dataformat supports 1 options which are listed below.
 *Available as of Camel 2.14*
 
 To expose a Syslog listener service we reuse the
-existing <<mina-component,camel-mina>> component
+existing <<mina2-component,camel-mina>> component
 or <<netty-component,camel-netty>> where we just use
 the `SyslogDataFormat` to marshal and unmarshal messages
 
@@ -93,7 +93,7 @@ as an InputStream:
 </camelContext>
 ------------------------------------------------------------------------------------------
 
-The same route using <<mina-component,camel-mina>>
+The same route using <<mina2-component,camel-mina>>
 
 [source,xml]
 -------------------------------------------------------------------------
diff --git a/components/camel-thrift/src/main/docs/thrift-dataformat.adoc b/components/camel-thrift/src/main/docs/thrift-dataformat.adoc
index 74865a7..d3cd66e 100644
--- a/components/camel-thrift/src/main/docs/thrift-dataformat.adoc
+++ b/components/camel-thrift/src/main/docs/thrift-dataformat.adoc
@@ -39,12 +39,12 @@ The simple JSON format is write-only (marshal) and produces a simple output form
 The sample code shows below:
 
 [source,java]
---------------------------------------------------------------------------------------------------
+----
 from("direct:marshal")
     .unmarshal()
     .thrift("org.apache.camel.dataformat.thrift.generated.Work", "json")
     .to("mock:reverse");
---------------------------------------------------------------------------------------------------
+----
 
 ### Thrift overview
 
@@ -59,7 +59,7 @@ This is defined in a .thrift file as so:
 *tutorial.thrift*
 
 [source,java]
-------------------------------------------------------------
+----
 namespace java org.apache.camel.dataformat.thrift.generated
 
 enum Operation {
@@ -75,7 +75,7 @@ struct Work {
   3: Operation op,
   4: optional string comment,
 }
-------------------------------------------------------------
+----
 
 ### Generating Java classes
 
@@ -101,18 +101,18 @@ You can use create the ThriftDataFormat instance and pass it to Camel
 DataFormat marshal and unmarshal API like this.
 
 [source,java]
------------------------------------------------------------------------------------
+----
    ThriftDataFormat format = new ThriftDataFormat(new Work());
 
    from("direct:in").marshal(format);
    from("direct:back").unmarshal(format).to("mock:reverse");
------------------------------------------------------------------------------------
+----
 
 Or use the DSL thrift() passing the unmarshal default instance or
 default instance class name like this.
 
 [source,java]
---------------------------------------------------------------------------------------------------
+----
    // You don't need to specify the default instance for the thrift marshaling               
    from("direct:marshal").marshal().thrift();
    from("direct:unmarshalA").unmarshal()
@@ -120,7 +120,7 @@ default instance class name like this.
        .to("mock:reverse");
                 
    from("direct:unmarshalB").unmarshal().thrift(new Work()).to("mock:reverse");
---------------------------------------------------------------------------------------------------
+----
 
 ### Spring DSL
 
@@ -128,7 +128,7 @@ The following example shows how to use Thrift to unmarshal using Spring
 configuring the thrift data type
 
 [source,java]
-----------------------------------------------------------------------------------------------------------
+----
 <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
   <route>
     <from uri="direct:start"/>
@@ -138,7 +138,7 @@ configuring the thrift data type
     <to uri="mock:result"/>
   </route>
 </camelContext>
-----------------------------------------------------------------------------------------------------------
+----
 
 ### Dependencies
 
@@ -146,12 +146,11 @@ To use Thrift in your camel routes you need to add the a dependency on
 *camel-thrift* which implements this data format.
 
 [source,xml]
------------------------------------------
+----
 <dependency>
   <groupId>org.apache.camel</groupId>
   <artifactId>camel-thrift</artifactId>
   <version>x.x.x</version>
   <!-- use the same version as your Camel core version -->
 </dependency>
------------------------------------------
-### See Also
+----

-- 
To stop receiving notification emails like this one, please contact
acosentino@apache.org.

[camel] 03/03: CAMEL-12297 Sorted out missing images in doc

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit e764f426f38f0cedeafbb06523ef690a265bd34c
Author: Fintan Bolton <fb...@redhat.com>
AuthorDate: Fri Mar 2 11:37:44 2018 +0100

    CAMEL-12297 Sorted out missing images in doc
---
 camel-core/src/main/docs/ControlBus.gif            | Bin 0 -> 3705 bytes
 camel-core/src/main/docs/camel-direct-vm.png       | Bin 0 -> 129236 bytes
 camel-core/src/main/docs/controlbus-component.adoc |   2 +-
 camel-core/src/main/docs/direct-vm-component.adoc  |   2 +-
 camel-core/src/main/docs/direct-vm-component.html  | 704 +++++++++++++++++++++
 .../src/main/docs/barcode-dataformat.adoc          |   2 +-
 components/camel-barcode/src/main/docs/qr-code.png | Bin 0 -> 307 bytes
 .../camel-ignite/src/main/docs/apache-ignite.png   | Bin 0 -> 919833 bytes
 components/camel-ignite/src/main/docs/ignite.adoc  |   2 +-
 .../camel-jms/src/main/docs/jms-component.adoc     |   4 +-
 .../camel-sjms/src/main/docs/sjms-component.adoc   |   2 +-
 .../camel-sjms2/src/main/docs/sjms2-component.adoc |   2 +-
 .../src/main/docs/camel_spark_cluster.png          | Bin 0 -> 172359 bytes
 .../src/main/docs/camel_spark_driver.png           | Bin 0 -> 293927 bytes
 .../camel-spark/src/main/docs/spark-component.adoc |   4 +-
 .../src/main/docs/tidyMarkup-dataformat.adoc       |   3 +-
 16 files changed, 714 insertions(+), 13 deletions(-)

diff --git a/camel-core/src/main/docs/ControlBus.gif b/camel-core/src/main/docs/ControlBus.gif
new file mode 100644
index 0000000..c8b4681
Binary files /dev/null and b/camel-core/src/main/docs/ControlBus.gif differ
diff --git a/camel-core/src/main/docs/camel-direct-vm.png b/camel-core/src/main/docs/camel-direct-vm.png
new file mode 100644
index 0000000..d15f185
Binary files /dev/null and b/camel-core/src/main/docs/camel-direct-vm.png differ
diff --git a/camel-core/src/main/docs/controlbus-component.adoc b/camel-core/src/main/docs/controlbus-component.adoc
index c227f98..883c74b 100644
--- a/camel-core/src/main/docs/controlbus-component.adoc
+++ b/camel-core/src/main/docs/controlbus-component.adoc
@@ -8,7 +8,7 @@ EIP patterns allows for the
 integration system to be monitored and managed from within the
 framework.
 
-image:http://www.eaipatterns.com/img/ControlBus.gif[image]
+image:ControlBus.gif[image]
 
 Use a Control Bus to manage an enterprise integration system. The
 Control Bus uses the same messaging mechanism used by the application
diff --git a/camel-core/src/main/docs/direct-vm-component.adoc b/camel-core/src/main/docs/direct-vm-component.adoc
index a25015f..16a204f 100644
--- a/camel-core/src/main/docs/direct-vm-component.adoc
+++ b/camel-core/src/main/docs/direct-vm-component.adoc
@@ -25,7 +25,7 @@ bundles, the camel routes will use +
  the same thread. That autorises to develop applications using
 Transactions - Tx.
 
-image:direct-vm.data/camel-direct-vm.png[image]
+image:camel-direct-vm.png[image]
 
 === URI format
 
diff --git a/camel-core/src/main/docs/direct-vm-component.html b/camel-core/src/main/docs/direct-vm-component.html
new file mode 100644
index 0000000..39e8539
--- /dev/null
+++ b/camel-core/src/main/docs/direct-vm-component.html
@@ -0,0 +1,704 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]-->
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 1.5.4">
+<title>Direct VM Component</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<style>
+/* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */
+/* Remove comment around @import statement below when using as a custom stylesheet */
+/*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/
+article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}
+audio,canvas,video{display:inline-block}
+audio:not([controls]){display:none;height:0}
+[hidden],template{display:none}
+script{display:none!important}
+html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
+body{margin:0}
+a{background:transparent}
+a:focus{outline:thin dotted}
+a:active,a:hover{outline:0}
+h1{font-size:2em;margin:.67em 0}
+abbr[title]{border-bottom:1px dotted}
+b,strong{font-weight:bold}
+dfn{font-style:italic}
+hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
+mark{background:#ff0;color:#000}
+code,kbd,pre,samp{font-family:monospace;font-size:1em}
+pre{white-space:pre-wrap}
+q{quotes:"\201C" "\201D" "\2018" "\2019"}
+small{font-size:80%}
+sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
+sup{top:-.5em}
+sub{bottom:-.25em}
+img{border:0}
+svg:not(:root){overflow:hidden}
+figure{margin:0}
+fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
+legend{border:0;padding:0}
+button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
+button,input{line-height:normal}
+button,select{text-transform:none}
+button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
+button[disabled],html input[disabled]{cursor:default}
+input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
+input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}
+input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}
+button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
+textarea{overflow:auto;vertical-align:top}
+table{border-collapse:collapse;border-spacing:0}
+*,*:before,*:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
+html,body{font-size:100%}
+body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto}
+a:hover{cursor:pointer}
+img,object,embed{max-width:100%;height:auto}
+object,embed{height:100%}
+img{-ms-interpolation-mode:bicubic}
+.left{float:left!important}
+.right{float:right!important}
+.text-left{text-align:left!important}
+.text-right{text-align:right!important}
+.text-center{text-align:center!important}
+.text-justify{text-align:justify!important}
+.hide{display:none}
+body{-webkit-font-smoothing:antialiased}
+img,object,svg{display:inline-block;vertical-align:middle}
+textarea{height:auto;min-height:50px}
+select{width:100%}
+.center{margin-left:auto;margin-right:auto}
+.spread{width:100%}
+p.lead,.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{font-size:1.21875em;line-height:1.6}
+.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
+div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
+a{color:#2156a5;text-decoration:underline;line-height:inherit}
+a:hover,a:focus{color:#1d4b8f}
+a img{border:none}
+p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
+p aside{font-size:.875em;line-height:1.35;font-style:italic}
+h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
+h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
+h1{font-size:2.125em}
+h2{font-size:1.6875em}
+h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
+h4,h5{font-size:1.125em}
+h6{font-size:1em}
+hr{border:solid #ddddd8;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
+em,i{font-style:italic;line-height:inherit}
+strong,b{font-weight:bold;line-height:inherit}
+small{font-size:60%;line-height:inherit}
+code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
+ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
+ul,ol,ul.no-bullet,ol.no-bullet{margin-left:1.5em}
+ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
+ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
+ul.square{list-style-type:square}
+ul.circle{list-style-type:circle}
+ul.disc{list-style-type:disc}
+ul.no-bullet{list-style:none}
+ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
+dl dt{margin-bottom:.3125em;font-weight:bold}
+dl dd{margin-bottom:1.25em}
+abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
+abbr{text-transform:none}
+blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
+blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
+blockquote cite:before{content:"\2014 \0020"}
+blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
+blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
+@media only screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
+h1{font-size:2.75em}
+h2{font-size:2.3125em}
+h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
+h4{font-size:1.4375em}}
+table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
+table thead,table tfoot{background:#f7f8f7;font-weight:bold}
+table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
+table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
+table tr.even,table tr.alt,table tr:nth-of-type(even){background:#f8f8f7}
+table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
+body{tab-size:4}
+h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
+h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
+.clearfix:before,.clearfix:after,.float-group:before,.float-group:after{content:" ";display:table}
+.clearfix:after,.float-group:after{clear:both}
+*:not(pre)>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background-color:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}
+pre,pre>code{line-height:1.45;color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;text-rendering:optimizeSpeed}
+.keyseq{color:rgba(51,51,51,.8)}
+kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
+.keyseq kbd:first-child{margin-left:0}
+.keyseq kbd:last-child{margin-right:0}
+.menuseq,.menu{color:rgba(0,0,0,.8)}
+b.button:before,b.button:after{position:relative;top:-1px;font-weight:400}
+b.button:before{content:"[";padding:0 3px 0 2px}
+b.button:after{content:"]";padding:0 2px 0 3px}
+p a>code:hover{color:rgba(0,0,0,.9)}
+#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
+#header:before,#header:after,#content:before,#content:after,#footnotes:before,#footnotes:after,#footer:before,#footer:after{content:" ";display:table}
+#header:after,#content:after,#footnotes:after,#footer:after{clear:both}
+#content{margin-top:1.25em}
+#content:before{content:none}
+#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
+#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #ddddd8}
+#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #ddddd8;padding-bottom:8px}
+#header .details{border-bottom:1px solid #ddddd8;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
+#header .details span:first-child{margin-left:-.125em}
+#header .details span.email a{color:rgba(0,0,0,.85)}
+#header .details br{display:none}
+#header .details br+span:before{content:"\00a0\2013\00a0"}
+#header .details br+span.author:before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
+#header .details br+span#revremark:before{content:"\00a0|\00a0"}
+#header #revnumber{text-transform:capitalize}
+#header #revnumber:after{content:"\00a0"}
+#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #ddddd8;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
+#toc{border-bottom:1px solid #efefed;padding-bottom:.5em}
+#toc>ul{margin-left:.125em}
+#toc ul.sectlevel0>li>a{font-style:italic}
+#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
+#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
+#toc li{line-height:1.3334;margin-top:.3334em}
+#toc a{text-decoration:none}
+#toc a:active{text-decoration:underline}
+#toctitle{color:#7a2518;font-size:1.2em}
+@media only screen and (min-width:768px){#toctitle{font-size:1.375em}
+body.toc2{padding-left:15em;padding-right:0}
+#toc.toc2{margin-top:0!important;background-color:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #efefed;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
+#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
+#toc.toc2>ul{font-size:.9em;margin-bottom:0}
+#toc.toc2 ul ul{margin-left:0;padding-left:1em}
+#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
+body.toc2.toc-right{padding-left:0;padding-right:15em}
+body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #efefed;left:auto;right:0}}
+@media only screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
+#toc.toc2{width:20em}
+#toc.toc2 #toctitle{font-size:1.375em}
+#toc.toc2>ul{font-size:.95em}
+#toc.toc2 ul ul{padding-left:1.25em}
+body.toc2.toc-right{padding-left:0;padding-right:20em}}
+#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
+#content #toc>:first-child{margin-top:0}
+#content #toc>:last-child{margin-bottom:0}
+#footer{max-width:100%;background-color:rgba(0,0,0,.8);padding:1.25em}
+#footer-text{color:rgba(255,255,255,.8);line-height:1.44}
+.sect1{padding-bottom:.625em}
+@media only screen and (min-width:768px){.sect1{padding-bottom:1.25em}}
+.sect1+.sect1{border-top:1px solid #efefed}
+#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
+#content h1>a.anchor:before,h2>a.anchor:before,h3>a.anchor:before,#toctitle>a.anchor:before,.sidebarblock>.content>.title>a.anchor:before,h4>a.anchor:before,h5>a.anchor:before,h6>a.anchor:before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
+#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
+#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
+#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
+.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
+.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
+table.tableblock>caption.title{white-space:nowrap;overflow:visible;max-width:0}
+.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{color:rgba(0,0,0,.85)}
+table.tableblock #preamble>.sectionbody>.paragraph:first-of-type p{font-size:inherit}
+.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
+.admonitionblock>table td.icon{text-align:center;width:80px}
+.admonitionblock>table td.icon img{max-width:none}
+.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
+.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #ddddd8;color:rgba(0,0,0,.6)}
+.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
+.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
+.exampleblock>.content>:first-child{margin-top:0}
+.exampleblock>.content>:last-child{margin-bottom:0}
+.sidebarblock{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
+.sidebarblock>:first-child{margin-top:0}
+.sidebarblock>:last-child{margin-bottom:0}
+.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
+.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
+.literalblock pre,.listingblock pre:not(.highlight),.listingblock pre[class="highlight"],.listingblock pre[class^="highlight "],.listingblock pre.CodeRay,.listingblock pre.prettyprint{background:#f7f7f8}
+.sidebarblock .literalblock pre,.sidebarblock .listingblock pre:not(.highlight),.sidebarblock .listingblock pre[class="highlight"],.sidebarblock .listingblock pre[class^="highlight "],.sidebarblock .listingblock pre.CodeRay,.sidebarblock .listingblock pre.prettyprint{background:#f2f1f1}
+.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;padding:1em;font-size:.8125em}
+.literalblock pre.nowrap,.literalblock pre[class].nowrap,.listingblock pre.nowrap,.listingblock pre[class].nowrap{overflow-x:auto;white-space:pre;word-wrap:normal}
+@media only screen and (min-width:768px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:.90625em}}
+@media only screen and (min-width:1280px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:1em}}
+.literalblock.output pre{color:#f7f7f8;background-color:rgba(0,0,0,.9)}
+.listingblock pre.highlightjs{padding:0}
+.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
+.listingblock pre.prettyprint{border-width:0}
+.listingblock>.content{position:relative}
+.listingblock code[data-lang]:before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:#999}
+.listingblock:hover code[data-lang]:before{display:block}
+.listingblock.terminal pre .command:before{content:attr(data-prompt);padding-right:.5em;color:#999}
+.listingblock.terminal pre .command:not([data-prompt]):before{content:"$"}
+table.pyhltable{border-collapse:separate;border:0;margin-bottom:0;background:none}
+table.pyhltable td{vertical-align:top;padding-top:0;padding-bottom:0;line-height:1.45}
+table.pyhltable td.code{padding-left:.75em;padding-right:0}
+pre.pygments .lineno,table.pyhltable td:not(.code){color:#999;padding-left:0;padding-right:.5em;border-right:1px solid #ddddd8}
+pre.pygments .lineno{display:inline-block;margin-right:.25em}
+table.pyhltable .linenodiv{background:none!important;padding-right:0!important}
+.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
+.quoteblock>.title{margin-left:-1.5em;margin-bottom:.75em}
+.quoteblock blockquote,.quoteblock blockquote p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
+.quoteblock blockquote{margin:0;padding:0;border:0}
+.quoteblock blockquote:before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
+.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
+.quoteblock .attribution{margin-top:.5em;margin-right:.5ex;text-align:right}
+.quoteblock .quoteblock{margin-left:0;margin-right:0;padding:.5em 0;border-left:3px solid rgba(0,0,0,.6)}
+.quoteblock .quoteblock blockquote{padding:0 0 0 .75em}
+.quoteblock .quoteblock blockquote:before{display:none}
+.verseblock{margin:0 1em 1.25em 1em}
+.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
+.verseblock pre strong{font-weight:400}
+.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
+.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
+.quoteblock .attribution br,.verseblock .attribution br{display:none}
+.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
+.quoteblock.abstract{margin:0 0 1.25em 0;display:block}
+.quoteblock.abstract blockquote,.quoteblock.abstract blockquote p{text-align:left;word-spacing:0}
+.quoteblock.abstract blockquote:before,.quoteblock.abstract blockquote p:first-of-type:before{display:none}
+table.tableblock{max-width:100%;border-collapse:separate}
+table.tableblock td>.paragraph:last-child p>p:last-child,table.tableblock th>p:last-child,table.tableblock td>p:last-child{margin-bottom:0}
+table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
+table.grid-all th.tableblock,table.grid-all td.tableblock{border-width:0 1px 1px 0}
+table.grid-all tfoot>tr>th.tableblock,table.grid-all tfoot>tr>td.tableblock{border-width:1px 1px 0 0}
+table.grid-cols th.tableblock,table.grid-cols td.tableblock{border-width:0 1px 0 0}
+table.grid-all *>tr>.tableblock:last-child,table.grid-cols *>tr>.tableblock:last-child{border-right-width:0}
+table.grid-rows th.tableblock,table.grid-rows td.tableblock{border-width:0 0 1px 0}
+table.grid-all tbody>tr:last-child>th.tableblock,table.grid-all tbody>tr:last-child>td.tableblock,table.grid-all thead:last-child>tr>th.tableblock,table.grid-rows tbody>tr:last-child>th.tableblock,table.grid-rows tbody>tr:last-child>td.tableblock,table.grid-rows thead:last-child>tr>th.tableblock{border-bottom-width:0}
+table.grid-rows tfoot>tr>th.tableblock,table.grid-rows tfoot>tr>td.tableblock{border-width:1px 0 0 0}
+table.frame-all{border-width:1px}
+table.frame-sides{border-width:0 1px}
+table.frame-topbot{border-width:1px 0}
+th.halign-left,td.halign-left{text-align:left}
+th.halign-right,td.halign-right{text-align:right}
+th.halign-center,td.halign-center{text-align:center}
+th.valign-top,td.valign-top{vertical-align:top}
+th.valign-bottom,td.valign-bottom{vertical-align:bottom}
+th.valign-middle,td.valign-middle{vertical-align:middle}
+table thead th,table tfoot th{font-weight:bold}
+tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
+tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
+p.tableblock>code:only-child{background:none;padding:0}
+p.tableblock{font-size:1em}
+td>div.verse{white-space:pre}
+ol{margin-left:1.75em}
+ul li ol{margin-left:1.5em}
+dl dd{margin-left:1.125em}
+dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
+ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
+ul.unstyled,ol.unnumbered,ul.checklist,ul.none{list-style-type:none}
+ul.unstyled,ol.unnumbered,ul.checklist{margin-left:.625em}
+ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1em;font-size:.85em}
+ul.checklist li>p:first-child>input[type="checkbox"]:first-child{width:1em;position:relative;top:1px}
+ul.inline{margin:0 auto .625em auto;margin-left:-1.375em;margin-right:0;padding:0;list-style:none;overflow:hidden}
+ul.inline>li{list-style:none;float:left;margin-left:1.375em;display:block}
+ul.inline>li>*{display:block}
+.unstyled dl dt{font-weight:400;font-style:normal}
+ol.arabic{list-style-type:decimal}
+ol.decimal{list-style-type:decimal-leading-zero}
+ol.loweralpha{list-style-type:lower-alpha}
+ol.upperalpha{list-style-type:upper-alpha}
+ol.lowerroman{list-style-type:lower-roman}
+ol.upperroman{list-style-type:upper-roman}
+ol.lowergreek{list-style-type:lower-greek}
+.hdlist>table,.colist>table{border:0;background:none}
+.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
+td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
+td.hdlist1{font-weight:bold;padding-bottom:1.25em}
+.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
+.colist>table tr>td:first-of-type{padding:0 .75em;line-height:1}
+.colist>table tr>td:last-of-type{padding:.25em 0}
+.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
+.imageblock.left,.imageblock[style*="float: left"]{margin:.25em .625em 1.25em 0}
+.imageblock.right,.imageblock[style*="float: right"]{margin:.25em 0 1.25em .625em}
+.imageblock>.title{margin-bottom:0}
+.imageblock.thumb,.imageblock.th{border-width:6px}
+.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
+.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
+.image.left{margin-right:.625em}
+.image.right{margin-left:.625em}
+a.image{text-decoration:none;display:inline-block}
+a.image object{pointer-events:none}
+sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
+sup.footnote a,sup.footnoteref a{text-decoration:none}
+sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
+#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
+#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em 0;border-width:1px 0 0 0}
+#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;text-indent:-1.05em;margin-bottom:.2em}
+#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none}
+#footnotes .footnote:last-of-type{margin-bottom:0}
+#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
+.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
+.gist .file-data>table td.line-data{width:99%}
+div.unbreakable{page-break-inside:avoid}
+.big{font-size:larger}
+.small{font-size:smaller}
+.underline{text-decoration:underline}
+.overline{text-decoration:overline}
+.line-through{text-decoration:line-through}
+.aqua{color:#00bfbf}
+.aqua-background{background-color:#00fafa}
+.black{color:#000}
+.black-background{background-color:#000}
+.blue{color:#0000bf}
+.blue-background{background-color:#0000fa}
+.fuchsia{color:#bf00bf}
+.fuchsia-background{background-color:#fa00fa}
+.gray{color:#606060}
+.gray-background{background-color:#7d7d7d}
+.green{color:#006000}
+.green-background{background-color:#007d00}
+.lime{color:#00bf00}
+.lime-background{background-color:#00fa00}
+.maroon{color:#600000}
+.maroon-background{background-color:#7d0000}
+.navy{color:#000060}
+.navy-background{background-color:#00007d}
+.olive{color:#606000}
+.olive-background{background-color:#7d7d00}
+.purple{color:#600060}
+.purple-background{background-color:#7d007d}
+.red{color:#bf0000}
+.red-background{background-color:#fa0000}
+.silver{color:#909090}
+.silver-background{background-color:#bcbcbc}
+.teal{color:#006060}
+.teal-background{background-color:#007d7d}
+.white{color:#bfbfbf}
+.white-background{background-color:#fafafa}
+.yellow{color:#bfbf00}
+.yellow-background{background-color:#fafa00}
+span.icon>.fa{cursor:default}
+.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
+.admonitionblock td.icon .icon-note:before{content:"\f05a";color:#19407c}
+.admonitionblock td.icon .icon-tip:before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
+.admonitionblock td.icon .icon-warning:before{content:"\f071";color:#bf6900}
+.admonitionblock td.icon .icon-caution:before{content:"\f06d";color:#bf3400}
+.admonitionblock td.icon .icon-important:before{content:"\f06a";color:#bf0000}
+.conum[data-value]{display:inline-block;color:#fff!important;background-color:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
+.conum[data-value] *{color:#fff!important}
+.conum[data-value]+b{display:none}
+.conum[data-value]:after{content:attr(data-value)}
+pre .conum[data-value]{position:relative;top:-.125em}
+b.conum *{color:inherit!important}
+.conum:not([data-value]):empty{display:none}
+dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
+h1,h2,p,td.content,span.alt{letter-spacing:-.01em}
+p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
+p,blockquote,dt,td.content,span.alt{font-size:1.0625rem}
+p{margin-bottom:1.25rem}
+.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
+.exampleblock>.content{background-color:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
+.print-only{display:none!important}
+@media print{@page{margin:1.25cm .75cm}
+*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
+a{color:inherit!important;text-decoration:underline!important}
+a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
+a[href^="http:"]:not(.bare):after,a[href^="https:"]:not(.bare):after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
+abbr[title]:after{content:" (" attr(title) ")"}
+pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
+thead{display:table-header-group}
+svg{max-width:100%}
+p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
+h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
+#toc,.sidebarblock,.exampleblock>.content{background:none!important}
+#toc{border-bottom:1px solid #ddddd8!important;padding-bottom:0!important}
+.sect1{padding-bottom:0!important}
+.sect1+.sect1{border:0!important}
+#header>h1:first-child{margin-top:1.25rem}
+body.book #header{text-align:center}
+body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em 0}
+body.book #header .details{border:0!important;display:block;padding:0!important}
+body.book #header .details span:first-child{margin-left:0!important}
+body.book #header .details br{display:block}
+body.book #header .details br+span:before{content:none!important}
+body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
+body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
+.listingblock code[data-lang]:before{display:block}
+#footer{background:none!important;padding:0 .9375em}
+#footer-text{color:rgba(0,0,0,.6)!important;font-size:.9em}
+.hide-on-print{display:none!important}
+.print-only{display:block!important}
+.hide-for-print{display:none!important}
+.show-for-print{display:inherit!important}}
+</style>
+</head>
+<body class="article">
+<div id="header">
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="direct-vm-component">Direct VM Component</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p><strong>Available as of Camel version 2.10</strong></p>
+</div>
+<div class="paragraph">
+<p>The <strong>direct-vm:</strong> component provides direct, synchronous invocation of
+any consumers in the JVM when a producer sends a message exchange.<br>
+ This endpoint can be used to connect existing routes in the same camel
+context, as well from other camel contexts in the <strong>same</strong> JVM.</p>
+</div>
+<div class="paragraph">
+<p>This component differs from the <a href="#direct-component">Direct</a> component in
+that <a href="#direct-vm-component">Direct-VM</a> supports communication across
+CamelContext instances - so you can use this mechanism to communicate
+across web applications (provided that camel-core.jar is on the
+system/boot classpath).</p>
+</div>
+<div class="paragraph">
+<p>At runtime you can swap in new consumers, by stopping the existing
+consumer(s) and start new consumers.<br>
+ But at any given time there can be at most only one active consumer for
+a given endpoint.</p>
+</div>
+<div class="paragraph">
+<p>This component allows also to connect routes deployed in different OSGI
+Bundles as you can see here after. Even if they are running in different
+bundles, the camel routes will use<br>
+ the same thread. That autorises to develop applications using
+Transactions - Tx.</p>
+</div>
+<div class="paragraph">
+<p><span class="image"><img src="camel-direct-vm.png" alt="image"></span></p>
+</div>
+<div class="sect2">
+<h3 id="_uri_format">URI format</h3>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code>direct-vm:someName</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Where <strong>someName</strong> can be any string to uniquely identify the endpoint</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_options">Options</h3>
+<div class="paragraph">
+<p>The Direct VM component supports 5 options which are listed below.</p>
+</div>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 20%;">
+<col style="width: 50%;">
+<col style="width: 10%;">
+<col style="width: 20%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Name</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-center valign-top">Default</th>
+<th class="tableblock halign-left valign-top">Type</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>block</strong> (producer)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">If sending a message to a direct endpoint which has no active consumer, then we can tell the producer to block and wait for the consumer to become active.</p></td>
+<td class="tableblock halign-center valign-top"><p class="tableblock">true</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>timeout</strong> (producer)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The timeout value to use if block is enabled.</p></td>
+<td class="tableblock halign-center valign-top"><p class="tableblock">30000</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">long</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>headerFilterStrategy</strong> (advanced)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Sets a HeaderFilterStrategy that will only be applied on producer endpoints (on both directions: request and response). Default value: none.</p></td>
+<td class="tableblock halign-center valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">HeaderFilterStrategy</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>propagateProperties</strong> (advanced)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether to propagate or not properties from the producer side to the consumer side, and vice versa. Default value: true.</p></td>
+<td class="tableblock halign-center valign-top"><p class="tableblock">true</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>resolveProperty Placeholders</strong> (advanced)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders.</p></td>
+<td class="tableblock halign-center valign-top"><p class="tableblock">true</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>The Direct VM endpoint is configured using URI syntax:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>direct-vm:name</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>with the following path and query parameters:</p>
+</div>
+<div class="sect3">
+<h4 id="_path_parameters_1_parameters">Path Parameters (1 parameters):</h4>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 20%;">
+<col style="width: 50%;">
+<col style="width: 10%;">
+<col style="width: 20%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Name</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-center valign-top">Default</th>
+<th class="tableblock halign-left valign-top">Type</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>name</strong></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Required</strong> Name of direct-vm endpoint</p></td>
+<td class="tableblock halign-center valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect3">
+<h4 id="_query_parameters_9_parameters">Query Parameters (9 parameters):</h4>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 20%;">
+<col style="width: 50%;">
+<col style="width: 10%;">
+<col style="width: 20%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Name</th>
+<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-center valign-top">Default</th>
+<th class="tableblock halign-left valign-top">Type</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>bridgeErrorHandler</strong> (consumer)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">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.</p></td>
+<td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>exceptionHandler</strong> (consumer)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">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.</p></td>
+<td class="tableblock halign-center valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ExceptionHandler</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>exchangePattern</strong> (consumer)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Sets the default exchange pattern when creating an exchange.</p></td>
+<td class="tableblock halign-center valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ExchangePattern</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>block</strong> (producer)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">If sending a message to a direct endpoint which has no active consumer, then we can tell the producer to block and wait for the consumer to become active.</p></td>
+<td class="tableblock halign-center valign-top"><p class="tableblock">true</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>failIfNoConsumers</strong> (producer)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether the producer should fail by throwing an exception, when sending to a Direct-VM endpoint with no active consumers.</p></td>
+<td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>timeout</strong> (producer)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The timeout value to use if block is enabled.</p></td>
+<td class="tableblock halign-center valign-top"><p class="tableblock">30000</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">long</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>headerFilterStrategy</strong> (producer)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Sets a HeaderFilterStrategy that will only be applied on producer endpoints (on both directions: request and response). Default value: none.</p></td>
+<td class="tableblock halign-center valign-top"></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">HeaderFilterStrategy</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>propagateProperties</strong> (advanced)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Whether to propagate or not properties from the producer side to the consumer side, and vice versa. Default value: true.</p></td>
+<td class="tableblock halign-center valign-top"><p class="tableblock">true</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>synchronous</strong> (advanced)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported).</p></td>
+<td class="tableblock halign-center valign-top"><p class="tableblock">false</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_samples">Samples</h3>
+<div class="paragraph">
+<p>In the route below we use the direct component to link the two routes
+together:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java" data-lang="java">from("activemq:queue:order.in")
+    .to("bean:orderServer?method=validate")
+    .to("direct-vm:processOrder");</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>And now in another CamelContext, such as another OSGi bundle</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-java" data-lang="java">from("direct-vm:processOrder")
+    .to("bean:orderService?method=process")
+    .to("activemq:queue:order.out");</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>And the sample using spring DSL:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;route&gt;
+ &lt;from uri="activemq:queue:order.in"/&gt;
+ &lt;to uri="bean:orderService?method=validate"/&gt;
+ &lt;to uri="direct-vm:processOrder"/&gt;
+&lt;/route&gt;
+
+&lt;route&gt;
+ &lt;from uri="direct-vm:processOrder"/&gt;
+ &lt;to uri="bean:orderService?method=process"/&gt;
+ &lt;to uri="activemq:queue:order.out"/&gt;
+&lt;/route&gt;</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_see_also">See Also</h3>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="#direct-component">Direct</a></p>
+</li>
+<li>
+<p><a href="#seda-component">SEDA</a></p>
+</li>
+<li>
+<p><a href="#vm-component">VM</a></p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div id="footer">
+<div id="footer-text">
+Last updated 2018-03-02 11:06:36 CET
+</div>
+</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/components/camel-barcode/src/main/docs/barcode-dataformat.adoc b/components/camel-barcode/src/main/docs/barcode-dataformat.adoc
index bba0c8c..21d3a1e 100644
--- a/components/camel-barcode/src/main/docs/barcode-dataformat.adoc
+++ b/components/camel-barcode/src/main/docs/barcode-dataformat.adoc
@@ -99,7 +99,7 @@ template.sendBody("direct://code", "This is a testmessage!");
 
 You should find inside the 'barcode_out' folder this image:
 
-image:barcode-data-format.data/qr-code.png[image]
+image:qr-code.png[image]
 
 #### Unmarshalling
 
diff --git a/components/camel-barcode/src/main/docs/qr-code.png b/components/camel-barcode/src/main/docs/qr-code.png
new file mode 100644
index 0000000..be0e7c8
Binary files /dev/null and b/components/camel-barcode/src/main/docs/qr-code.png differ
diff --git a/components/camel-ignite/src/main/docs/apache-ignite.png b/components/camel-ignite/src/main/docs/apache-ignite.png
new file mode 100644
index 0000000..0f7cf4a
Binary files /dev/null and b/components/camel-ignite/src/main/docs/apache-ignite.png differ
diff --git a/components/camel-ignite/src/main/docs/ignite.adoc b/components/camel-ignite/src/main/docs/ignite.adoc
index a37cfe7..ca027ec 100644
--- a/components/camel-ignite/src/main/docs/ignite.adoc
+++ b/components/camel-ignite/src/main/docs/ignite.adoc
@@ -4,7 +4,7 @@
 
 https://ignite.apache.org/[Apache Ignite] In-Memory Data Fabric is a high-performance, integrated and distributed in-memory platform for computing and transacting on large-scale data sets in real-time, orders of magnitude faster than possible with traditional disk-based or flash technologies. It is designed to deliver uncompromised performance for a wide set of in-memory computing use cases from high performance computing, to the industry most advanced data grid, highly available service [...]
 
-image:https://ignite.apache.org/images/apache-ignite.png[]
+image:apache-ignite.png[]
 
 This component offers seven endpoints to cover much of Ignite's functionality:
 
diff --git a/components/camel-jms/src/main/docs/jms-component.adoc b/components/camel-jms/src/main/docs/jms-component.adoc
index 1bdbd2a..0fba007 100644
--- a/components/camel-jms/src/main/docs/jms-component.adoc
+++ b/components/camel-jms/src/main/docs/jms-component.adoc
@@ -3,7 +3,6 @@
 ifdef::env-github[]
 *Available as of Camel version 1.0.0*
 
-:icon-smile: :smiley:
 :caution-caption: :boom:
 :important-caption: :exclamation:
 :note-caption: :information_source:
@@ -13,7 +12,6 @@ endif::[]
 
 ifndef::env-github[]
 :icons: font
-:icon-smile: icon:smile-o[fw,role=yellow]
 endif::[]
 
 
@@ -108,7 +106,7 @@ some caching in the JMS provider to avoid
 http://activemq.apache.org/jmstemplate-gotchas.html[poor performance].
 
 If you intend to use http://activemq.apache.org/[Apache ActiveMQ] as
-your Message Broker - which is a good choice as ActiveMQ rocks {icon-smile},
+your Message Broker - which is a good choice as ActiveMQ rocks,
 then we recommend that you either:
 
 * Use the ActiveMQ component, which is already
diff --git a/components/camel-sjms/src/main/docs/sjms-component.adoc b/components/camel-sjms/src/main/docs/sjms-component.adoc
index dc75b6c..df75d3c 100644
--- a/components/camel-sjms/src/main/docs/sjms-component.adoc
+++ b/components/camel-sjms/src/main/docs/sjms-component.adoc
@@ -28,7 +28,7 @@ Transactions only)
 *Why the S in SJMS*
 
 S stands for Simple and Standard and Springless. Also camel-jms was
-already taken. {icon-smile}
+already taken.
 ====
 
 Maven users will need to add the following dependency to their `pom.xml`
diff --git a/components/camel-sjms2/src/main/docs/sjms2-component.adoc b/components/camel-sjms2/src/main/docs/sjms2-component.adoc
index d74d355..052201a 100644
--- a/components/camel-sjms2/src/main/docs/sjms2-component.adoc
+++ b/components/camel-sjms2/src/main/docs/sjms2-component.adoc
@@ -28,7 +28,7 @@ Transactions only)
 *Why the S in SJMS*
 
 S stands for Simple and Standard and Springless. Also camel-jms was
-already taken. {icon-smile}
+already taken.
 ====
 
 Maven users will need to add the following dependency to their `pom.xml`
diff --git a/components/camel-spark/src/main/docs/camel_spark_cluster.png b/components/camel-spark/src/main/docs/camel_spark_cluster.png
new file mode 100644
index 0000000..c550bf5
Binary files /dev/null and b/components/camel-spark/src/main/docs/camel_spark_cluster.png differ
diff --git a/components/camel-spark/src/main/docs/camel_spark_driver.png b/components/camel-spark/src/main/docs/camel_spark_driver.png
new file mode 100644
index 0000000..17b6b67
Binary files /dev/null and b/components/camel-spark/src/main/docs/camel_spark_driver.png differ
diff --git a/components/camel-spark/src/main/docs/spark-component.adoc b/components/camel-spark/src/main/docs/spark-component.adoc
index fd5348f..7e5f1d6 100644
--- a/components/camel-spark/src/main/docs/spark-component.adoc
+++ b/components/camel-spark/src/main/docs/spark-component.adoc
@@ -16,12 +16,12 @@ results of the execution back to the Camel pipeline.
 Spark component can be used as a driver application deployed into an
 application server (or executed as a fat jar).
 
-image:apache-spark.data/camel_spark_driver.png[image] +
+image:camel_spark_driver.png[image]
 
 Spark component can also be submitted as a job directly into the Spark
 cluster.
 
-image:apache-spark.data/camel_spark_cluster.png[image] +
+image:camel_spark_cluster.png[image]
 
 While Spark component is primary designed to work as a _long running
 job_ serving as an bridge between Spark cluster and the other endpoints,
diff --git a/components/camel-tagsoup/src/main/docs/tidyMarkup-dataformat.adoc b/components/camel-tagsoup/src/main/docs/tidyMarkup-dataformat.adoc
index e1a0740..c6a850c 100644
--- a/components/camel-tagsoup/src/main/docs/tidyMarkup-dataformat.adoc
+++ b/components/camel-tagsoup/src/main/docs/tidyMarkup-dataformat.adoc
@@ -15,8 +15,7 @@ data format to tidy up the wiki html pages that are used as base for
 rendering the pdf manuals. And then the mysterious symbols vanished.
 
 TidyMarkup only supports the *unmarshal* operation
-as we really don't want to turn well formed HTML into ugly HTML
-image:https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/smile.png[(smile)]
+as we really don't want to turn well formed HTML into ugly HTML.
 
 ### TidyMarkup Options
 

-- 
To stop receiving notification emails like this one, please contact
acosentino@apache.org.

[camel] 02/03: CAMEL-12297 Fixed formatting error in ssh-component.adoc

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit c994fa9599c3c16cd65c4c1cd755c3799177ff93
Author: Fintan Bolton <fb...@redhat.com>
AuthorDate: Fri Mar 2 10:40:04 2018 +0100

    CAMEL-12297 Fixed formatting error in ssh-component.adoc
---
 components/camel-ssh/src/main/docs/ssh-component.adoc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/components/camel-ssh/src/main/docs/ssh-component.adoc b/components/camel-ssh/src/main/docs/ssh-component.adoc
index 7f571c7..438ef52 100644
--- a/components/camel-ssh/src/main/docs/ssh-component.adoc
+++ b/components/camel-ssh/src/main/docs/ssh-component.adoc
@@ -121,7 +121,7 @@ will send the message body as the command to execute on the remote SSH
 server.
 
 Here is an example of this within the XML DSL. Note that the command has
-an XML encoded newline (`&#10;`).
+an XML encoded newline (`+&#10;+`).
 
 [source,xml]
 ----------------------------------------------

-- 
To stop receiving notification emails like this one, please contact
acosentino@apache.org.