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&binary=true&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&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][¶m2=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¬ifyForOperations=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"><route>
+ <from uri="activemq:queue:order.in"/>
+ <to uri="bean:orderService?method=validate"/>
+ <to uri="direct-vm:processOrder"/>
+</route>
+
+<route>
+ <from uri="direct-vm:processOrder"/>
+ <to uri="bean:orderService?method=process"/>
+ <to uri="activemq:queue:order.out"/>
+</route></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 (` `).
+an XML encoded newline (`+ +`).
[source,xml]
----------------------------------------------
--
To stop receiving notification emails like this one, please contact
acosentino@apache.org.