You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gi...@apache.org on 2019/05/20 09:47:30 UTC

[camel-website] branch asf-site updated: Website updated to 23616e4

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

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/camel-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new cfcfe19  Website updated to 23616e4
cfcfe19 is described below

commit cfcfe19fe26d41495049d3cceb055493638f054e
Author: jenkins <bu...@apache.org>
AuthorDate: Mon May 20 09:47:24 2019 +0000

    Website updated to 23616e4
---
 .../controlbus-component.data/ControlBus.gif       | Bin 0 -> 3705 bytes
 components/latest/controlbus-component.html        |   2 +-
 components/latest/soroush-component.html           |   2 +-
 components/latest/swagger-java.html                |   2 +-
 manual/latest/aggregate-eip.html                   | 186 +++++
 .../annotation-based-expression-language.html      |   2 +-
 manual/latest/architecture.html                    |   2 +-
 manual/latest/async.html                           |   2 +-
 manual/latest/asynchronous-routing-engine.html     |   2 +-
 manual/latest/backlog-tracer.html                  |   2 +-
 manual/latest/backlogdebugger.html                 |   2 +-
 manual/latest/bam-example.html                     |   2 +-
 manual/latest/bam.html                             |   2 +-
 manual/latest/batch-config-eip.html                |   1 +
 manual/latest/batch-consumer.html                  |   2 +-
 manual/latest/bean-eip.html                        |  14 +
 manual/latest/bean-integration.html                |   2 +-
 manual/latest/bean-language.html                   |  31 +
 manual/latest/binding.html                         |   2 +-
 manual/latest/book-getting-started.html            |   2 +-
 manual/latest/books.html                           |   2 +-
 manual/latest/browsable-endpoint.html              |   2 +-
 manual/latest/building.html                        |   2 +-
 manual/latest/camel-boot.html                      |   2 +-
 manual/latest/camel-configuration-utilities.html   |   2 +-
 manual/latest/camel-core.html                      |   2 +-
 manual/latest/camel-jar-dependencies.html          |   2 +-
 manual/latest/camelcontext.html                    |   2 +-
 manual/latest/cep.html                             |   2 +-
 manual/latest/choice-eip.html                      |  29 +
 manual/latest/circuitBreaker-eip.html              |  24 +
 manual/latest/claimCheck-eip.html                  |  67 ++
 manual/latest/clustering.html                      |  79 +++
 manual/latest/commercial-camel-offerings.html      |   2 +-
 manual/latest/component.html                       |   2 +-
 manual/latest/componentconfiguration.html          |   2 +-
 manual/latest/configuring-camel.html               |   2 +-
 ...ing-route-startup-ordering-and-autostartup.html |   2 +-
 manual/latest/constant-language.html               |   9 +
 manual/latest/content-based-router-eip.html        |  31 +
 manual/latest/content-filter-eip.html              |   9 +
 manual/latest/convertBodyTo-eip.html               |   1 +
 manual/latest/correlation-identifier.html          |   7 +
 manual/latest/customLoadBalancer-eip.html          |  42 ++
 manual/latest/data-format.html                     |   2 +-
 manual/latest/dead-letter-channel.html             |  31 +
 manual/latest/debugger.html                        |   2 +-
 manual/latest/defaulterrorhandler.html             |   2 +-
 manual/latest/delay-eip.html                       |  58 ++
 manual/latest/delay-interceptor.html               |   2 +-
 manual/latest/dependency-injection.html            |   2 +-
 manual/latest/download-archives.html               |   2 +-
 manual/latest/download.html                        |   2 +-
 manual/latest/dozer-type-conversion.html           |   2 +-
 manual/latest/dsl.html                             |   2 +-
 manual/latest/dynamic-router.html                  |  82 +++
 manual/latest/dynamicRouter-eip.html               |  82 +++
 manual/latest/endpoint-completer.html              |   2 +-
 manual/latest/endpoint.html                        |   2 +-
 manual/latest/enrich-eip.html                      |  82 +++
 manual/latest/enterprise-integration-patterns.html |   2 +-
 manual/latest/error-handler.html                   |   2 +-
 manual/latest/error-handling-in-camel.html         |   2 +-
 manual/latest/event-message.html                   |  10 +
 manual/latest/eventDrivenConsumer-eip.html         |   5 +
 manual/latest/examples.html                        |   2 +-
 manual/latest/exception-clause.html                |   2 +-
 manual/latest/exchange-pattern.html                |   2 +-
 manual/latest/exchange.html                        |   2 +-
 manual/latest/exchangeProperty-language.html       |   6 +
 manual/latest/expression.html                      |   2 +-
 manual/latest/failover-eip.html                    |  12 +
 manual/latest/faq.html                             |   2 +-
 manual/latest/file-language.html                   |  24 +
 manual/latest/filter-eip.html                      |  25 +
 manual/latest/fluent-builders.html                 |   2 +-
 manual/latest/from-eip.html                        |   3 +
 manual/latest/getting-started.html                 |   2 +-
 manual/latest/graceful-shutdown.html               |   2 +-
 manual/latest/groovy-dsl.html                      |   2 +-
 manual/latest/guaranteed-delivery.html             |   5 +
 manual/latest/guice-jms-example.html               |   2 +-
 manual/latest/guice-maven-plugin.html              |   2 +-
 manual/latest/guice.html                           |   2 +-
 manual/latest/header-language.html                 |   1 +
 manual/latest/health-check.html                    |  86 +++
 manual/latest/http-session-handling.html           |   2 +-
 manual/latest/http-session.html                    |   2 +-
 manual/latest/hystrix-eip.html                     |  35 +
 manual/latest/hystrixConfiguration-eip.html        |   1 +
 manual/latest/idempotentConsumer-eip.html          |   1 +
 manual/latest/inOnly-eip.html                      |   1 +
 manual/latest/inOut-eip.html                       |   1 +
 manual/latest/index.html                           |   2 +-
 manual/latest/injector.html                        |   2 +-
 manual/latest/intercept.html                       |   2 +-
 .../inversion-of-control-with-smart-defaults.html  |   2 +-
 manual/latest/irc-room.html                        |   2 +-
 manual/latest/java-dsl.html                        |   2 +-
 manual/latest/jmx.html                             |   2 +-
 manual/latest/jndi.html                            |   2 +-
 manual/latest/json.html                            |   2 +-
 manual/latest/karaf.html                           |   2 +-
 manual/latest/languages.html                       |   2 +-
 manual/latest/lifecycle.html                       |   2 +-
 manual/latest/loadBalance-eip.html                 | 100 +++
 manual/latest/log-eip.html                         |  42 ++
 manual/latest/loop-eip.html                        |  59 ++
 manual/latest/mailing-lists.html                   |   2 +-
 manual/latest/marshal-eip.html                     |   7 +
 manual/latest/message-bus.html                     |   7 +
 manual/latest/message-channel.html                 |   5 +
 manual/latest/message-endpoint.html                |   1 +
 manual/latest/message-router.html                  |  29 +
 manual/latest/message-translator.html              |  10 +
 manual/latest/message.html                         |   9 +
 manual/latest/multicast-eip.html                   |  39 ++
 manual/latest/onFallback-eip.html                  |  45 ++
 manual/latest/oncompletion.html                    |   2 +-
 manual/latest/otherwise-eip.html                   |  29 +
 manual/latest/pipeline-eip.html                    |  33 +
 manual/latest/point-to-point-channel.html          |   5 +
 manual/latest/pollEnrich-eip.html                  |  31 +
 manual/latest/predicate.html                       |   2 +-
 manual/latest/process-eip.html                     |  13 +
 manual/latest/processor.html                       |   2 +-
 manual/latest/producertemplate.html                |   2 +-
 manual/latest/publish-subscribe-channel.html       |  15 +
 manual/latest/random-eip.html                      |   1 +
 manual/latest/recipientList-eip.html               |  98 +++
 manual/latest/ref-language.html                    |   9 +
 manual/latest/registry.html                        |   2 +-
 manual/latest/release-guide.html                   |   2 +-
 manual/latest/removeHeader-eip.html                |   9 +
 manual/latest/removeHeaders-eip.html               |   3 +
 manual/latest/removeProperties-eip.html            |  13 +
 manual/latest/removeProperty-eip.html              |  13 +
 manual/latest/requestReply-eip.html                |   1 +
 manual/latest/resequence-eip.html                  |  76 +++
 manual/latest/rest-dsl.html                        | 202 ++++++
 manual/latest/return-address.html                  |  22 +
 manual/latest/rollback-eip.html                    |  31 +
 manual/latest/roundRobin-eip.html                  |  10 +
 manual/latest/route-builder.html                   |   2 +-
 manual/latest/route-policy.html                    |   2 +-
 manual/latest/routes.html                          |   2 +-
 manual/latest/routingSlip-eip.html                 |  24 +
 manual/latest/saga-eip.html                        | 138 ++++
 manual/latest/sample-eip.html                      |  42 ++
 manual/latest/scala-dsl-eip.html                   |   2 +-
 manual/latest/scala-dsl-getting-started.html       |   2 +-
 manual/latest/scala-dsl-supported-languages.html   |   2 +-
 manual/latest/scala-dsl.html                       |   2 +-
 manual/latest/script-eip.html                      |  27 +
 manual/latest/scripting-languages.html             |   2 +-
 manual/latest/security-advisories.html             |   2 +-
 manual/latest/security.html                        |   2 +-
 manual/latest/service-registry.html                |  28 +
 manual/latest/serviceCall-eip.html                 | 203 ++++++
 manual/latest/servicepool.html                     |   2 +-
 manual/latest/servlet-tomcat-example.html          |   2 +-
 manual/latest/setBody-eip.html                     |  13 +
 manual/latest/setFaultBody-eip.html                |  13 +
 manual/latest/setHeader-eip.html                   |  15 +
 manual/latest/setOutHeader-eip.html                |  15 +
 manual/latest/setProperty-eip.html                 |  15 +
 manual/latest/simple-language.html                 |  73 ++
 manual/latest/sort-eip.html                        |  19 +
 manual/latest/split-eip.html                       | 291 ++++++++
 manual/latest/spring-testing.html                  |   2 +-
 manual/latest/spring-xml-extensions.html           |   2 +-
 manual/latest/spring.html                          |   2 +-
 manual/latest/step-eip.html                        |  29 +
 manual/latest/sticky-eip.html                      |  14 +
 manual/latest/stop-eip.html                        |   7 +
 manual/latest/stream-caching.html                  |   2 +-
 manual/latest/stream-config-eip.html               |   1 +
 manual/latest/support.html                         |   2 +-
 manual/latest/team.html                            |   2 +-
 manual/latest/testing.html                         |   2 +-
 manual/latest/threading-model.html                 |   2 +-
 manual/latest/threads-eip.html                     |   9 +
 manual/latest/throttle-eip.html                    |  23 +
 manual/latest/to-eip.html                          |  25 +
 manual/latest/toD-eip.html                         |  28 +
 manual/latest/tokenize-language.html               |   1 +
 manual/latest/topic-eip.html                       |  10 +
 manual/latest/transactional-client.html            | 147 ++++
 manual/latest/transactionerrorhandler.html         |   2 +-
 manual/latest/transform-eip.html                   |   1 +
 manual/latest/transformer.html                     |  39 ++
 manual/latest/transport.html                       |   2 +-
 manual/latest/try-catch-finally.html               |   2 +-
 manual/latest/type-converter.html                  |   2 +-
 manual/latest/unmarshal-eip.html                   |   7 +
 manual/latest/uris.html                            |   2 +-
 manual/latest/user-stories.html                    |   2 +-
 manual/latest/using-osgi-blueprint-with-camel.html |   2 +-
 manual/latest/using-propertyplaceholder.html       |   2 +-
 manual/latest/uuidgenerator.html                   |   2 +-
 manual/latest/validate-eip.html                    |  23 +
 manual/latest/validator.html                       |  23 +
 manual/latest/weighted-eip.html                    |  10 +
 manual/latest/when-eip.html                        |  29 +
 manual/latest/wireTap-eip.html                     |  62 ++
 manual/latest/writing-components.html              |   2 +-
 manual/latest/xml-configuration.html               |   2 +-
 manual/latest/xml-reference.html                   |   2 +-
 sitemap-camel-k.xml                                |  42 +-
 sitemap-components.xml                             | 746 ++++++++++-----------
 sitemap-manual.xml                                 | 604 ++++++++++++++---
 211 files changed, 4453 insertions(+), 609 deletions(-)

diff --git a/components/latest/_images/images/controlbus-component.data/ControlBus.gif b/components/latest/_images/images/controlbus-component.data/ControlBus.gif
new file mode 100644
index 0000000..c8b4681
Binary files /dev/null and b/components/latest/_images/images/controlbus-component.data/ControlBus.gif differ
diff --git a/components/latest/controlbus-component.html b/components/latest/controlbus-component.html
index 178f540..b8891a4 100644
--- a/components/latest/controlbus-component.html
+++ b/components/latest/controlbus-component.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/components/latest/controlbus-component.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a cl [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/components/latest/controlbus-component.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a cl [...]
   &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
   &lt;artifactId&gt;camel-controlbus-starter&lt;/artifactId&gt;
   &lt;version&gt;x.x.x&lt;/version&gt;
diff --git a/components/latest/soroush-component.html b/components/latest/soroush-component.html
index 199965d..6373f90 100644
--- a/components/latest/soroush-component.html
+++ b/components/latest/soroush-component.html
@@ -37,4 +37,4 @@ SoroushMessage.setThumbnail(InputStream thumbnailStream)</code></pre></div></div
         response.setFile(new File("MyResponse.jpg"))
     })
     .to("soroush:uploadFile/YourAuthorizationToken")
-    .process(exchage-&gt;System.out.println(exchange.getIn().getBody(SoroushMessage.class).getFileUrl())</code></pre></div></div></div></div><div class="sect2"><h3 id="_error_handling"><a class="anchor" href="#_error_handling"></a>Error Handling</h3><div class="paragraph"><p>There are 3 types of exceptions that can be produced in Soroush Component.</p></div><table class="tableblock frame-all grid-all stretch"><colgroup><col style="width: 28.5714%;"><col style="width: 71.4286%;"></colgrou [...]
\ No newline at end of file
+    .process(exchage-&gt;System.out.println(exchange.getIn().getBody(SoroushMessage.class).getFileUrl())</code></pre></div></div></div><div class="sect3"><h4 id="_error_handling"><a class="anchor" href="#_error_handling"></a>Error Handling</h4><div class="paragraph"><p>There are 3 types of exceptions that can be produced in Soroush Component.</p></div><table class="tableblock frame-all grid-all stretch"><colgroup><col style="width: 28.5714%;"><col style="width: 71.4286%;"></colgroup><the [...]
\ No newline at end of file
diff --git a/components/latest/swagger-java.html b/components/latest/swagger-java.html
index 4aedfef..54e56b9 100644
--- a/components/latest/swagger-java.html
+++ b/components/latest/swagger-java.html
@@ -28,7 +28,7 @@
             .put().description("Updates or create a user").type(User.class)
                 .param().name("body").type(body).description("The user to update or create").endParam()
                 .to("bean:userService?method=updateUser")
-            .get("/findAll").description("Find all users").outTypeList(User.class)
+            .get("/findAll").description("Find all users").outType(User[].class)
                 .to("bean:userService?method=listUsers");
     }
 }</code></pre></div></div></div><div class="sect2"><h3 id="_options"><a class="anchor" href="#_options"></a>Options</h3><div class="paragraph"><p>The swagger module can be configured using the following options. To configure using a servlet you use the init-param as shown above. When configuring directly in the rest-dsl, you use the appropriate method, such as<code>enableCORS</code>, <code>host,contextPath</code>, dsl. The options with <code>api.xxx</code>is configured using <code>apiPro [...]
diff --git a/manual/latest/aggregate-eip.html b/manual/latest/aggregate-eip.html
new file mode 100644
index 0000000..ba0225f
--- /dev/null
+++ b/manual/latest/aggregate-eip.html
@@ -0,0 +1,186 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/aggregate-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar [...]
+class StringAggregationStrategy implements AggregationStrategy {
+
+    public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
+        if (oldExchange == null) {
+            return newExchange;
+        }
+
+        String oldBody = oldExchange.getIn().getBody(String.class);
+        String newBody = newExchange.getIn().getBody(String.class);
+        oldExchange.getIn().setBody(oldBody + "+" + newBody);
+        return oldExchange;
+    }
+}
+
+//simply combines Exchange body values into an ArrayList&lt;Object&gt;
+class ArrayListAggregationStrategy implements AggregationStrategy {
+
+    public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
+        Object newBody = newExchange.getIn().getBody();
+        ArrayList&lt;Object&gt; list = null;
+        if (oldExchange == null) {
+            list = new ArrayList&lt;Object&gt;();
+            list.add(newBody);
+            newExchange.getIn().setBody(list);
+            return newExchange;
+        } else {
+            list = oldExchange.getIn().getBody(ArrayList.class);
+            list.add(newBody);
+            return oldExchange;
+        }
+    }
+}</code></pre></div></div></div><div class="sect2"><h3 id="_about_completion"><a class="anchor" href="#_about_completion"></a>About completion</h3><div class="paragraph"><p>When aggregation<a href="exchange.html">Exchange</a>s at some point you need to indicate that the aggregated exchanges is complete, so they can be send out of the aggregator. Camel allows you to indicate completion in various ways as follows:</p></div><div class="ulist"><ul><li><p>completionTimeout - Is an inactivity  [...]
+     * Determines if the aggregation should complete the current group, and start a new group, or the aggregation
+     * should continue using the current group.
+     *
+     * @param oldExchange the oldest exchange (is &lt;tt&gt;null&lt;/tt&gt; on first aggregation as we only have the new exchange)
+     * @param newExchange the newest exchange (can be &lt;tt&gt;null&lt;/tt&gt; if there was no data possible to acquire)
+     * @return &lt;tt&gt;true&lt;/tt&gt; to complete current group and start a new group, or &lt;tt&gt;false&lt;/tt&gt; to keep using current
+     */
+    boolean preComplete(Exchange oldExchange, Exchange newExchange);</code></pre></div></div><div class="paragraph"><p>If the preComplete method returns true, then the existing groups is completed (without aggregating the incoming exchange (newExchange). And then the newExchange is used to start the correlation group from scratch so the group would contain only that new incoming exchange. This is known as pre-completion mode. And when the aggregation is in pre-completion mode, then only  [...]
+        @Override
+        public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
+            if (oldExchange == null) {
+                return newExchange;
+            }
+            String body = oldExchange.getIn().getBody(String.class) + "+"
+                + newExchange.getIn().getBody(String.class);
+            oldExchange.getIn().setBody(body);
+            if (body.length() &gt;= 5) {
+                oldExchange.setProperty(Exchange.AGGREGATION_COMPLETE_CURRENT_GROUP, true);
+            }
+            return oldExchange;
+        }
+    }</code></pre></div></div></div><div class="sect2"><h3 id="_completing_all_previous_group_decided_from_the_aggregationstrategy"><a class="anchor" href="#_completing_all_previous_group_decided_from_the_aggregationstrategy"></a>Completing all previous group decided from the AggregationStrategy</h3><div class="paragraph"><p><strong>Available as of Camel 2.21</strong></p></div><div class="paragraph"><p>The <code>AggregationStrategy</code>can now included a property on the returned <code> [...]
+        @Override
+        public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
+            if (oldExchange == null) {
+                // we start a new correlation group, so complete all previous groups
+                newExchange.setProperty(Exchange.AGGREGATION_COMPLETE_ALL_GROUPS, true);
+                return newExchange;
+            }
+
+            String body1 = oldExchange.getIn().getBody(String.class);
+            String body2 = newExchange.getIn().getBody(String.class);
+
+            oldExchange.getIn().setBody(body1 + body2);
+            return oldExchange;
+        }
+    }</code></pre></div></div></div><div class="sect2"><h3 id="_manually_force_the_completion_of_all_aggregated_exchanges_immediately"><a class="anchor" href="#_manually_force_the_completion_of_all_aggregated_exchanges_immediately"></a>Manually Force the Completion of All Aggregated Exchanges Immediately</h3><div class="paragraph"><p><strong>Available as of Camel 2.9</strong></p></div><div class="paragraph"><p>You can manually trigger completion of all current aggregated exchanges by sen [...]
+
+from("direct:start")
+   .aggregate(header("id"), new MyAggregationStrategy())
+      .completionSize(10).id("myAggregator")
+      .aggregateController(controller)
+      .to("mock:aggregated");</code></pre></div></div><div class="paragraph"><p>Then there is API on AggregateController to force completion. For example to complete a group with key foo</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">int groups = controller.forceCompletionOfGroup("foo");</code></pre></div></div><div class="paragraph"><p>The number return would be the number of groups completed.  [...]
+
+  &lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+        &lt;route&gt;
+            &lt;from uri="direct:start"/&gt;
+            &lt;aggregate strategyRef="myAppender" completionSize="10"
+                       aggregateControllerRef="myController"&gt;
+                &lt;correlationExpression&gt;
+                    &lt;header&gt;id&lt;/header&gt;
+                &lt;/correlationExpression&gt;
+                &lt;to uri="mock:result"/&gt;
+            &lt;/aggregate&gt;
+        &lt;/route&gt;
+    &lt;/camelContext&gt;</code></pre></div></div><div class="paragraph"><p>There is also JMX API on the aggregator which is available under the processors node in the Camel JMX tree.</p></div></div><div class="sect2"><h3 id="_using_groupedexchanges"><a class="anchor" href="#_using_groupedexchanges"></a>Using GroupedExchanges</h3><div class="paragraph"><p>In the route below we group all the exchanges together using<code>groupExchanges()</code>:</p></div><div class="listingblock"><div cla [...]
+    // aggregate all using same expression
+    .aggregate(constant(true))
+    // wait for 0.5 seconds to aggregate
+    .completionTimeout(500L)
+    // group the exchanges so we get one single exchange containing all the others
+    .groupExchanges()
+    .to("mock:result");</code></pre></div></div><div class="paragraph"><p>As a result we have one outgoing<code>Exchange</code>being routed the<code>"mock:result"</code>endpoint. The exchange is a holder containing all the incoming Exchanges.</p></div><div class="paragraph"><p>The output of the aggregator will then contain the exchanges grouped together in a list as shown below:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="langua [...]
+  return existing + next;
+}</code></pre></div></div><div class="paragraph"><p>In the method below, we have only 4 parameters, so the 1st parameter is the body of the<code>oldExchange</code>, and the 2nd is the Map of the<code>oldExchange</code>headers, and the 3rd is paired to the body of the<code>newExchange</code>, and the 4th parameter is the Map of the<code>newExchange</code>headers:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" dat [...]
+  return existing + next;
+}</code></pre></div></div><div class="paragraph"><p>And finally if we have 6 parameters the we also have the properties of the Exchanges:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public String append(String existing, Map existingHeaders, Map existingProperties,
+                     String next, Map nextHeaders, Map nextProperties) {
+  return existing + next;
+}</code></pre></div></div><div class="paragraph"><p>To use this with the Aggregate EIP we can use a POJO with the aggregate logic as follows:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public class MyBodyAppender {
+
+    public String append(String existing, String next) {
+        return next + existing;
+    }
+
+}</code></pre></div></div><div class="paragraph"><p>And then in the Camel route we create an instance of our bean, and then refer to the bean in the route using<code>bean</code>method from<code>org.apache.camel.builder.AggregationStrategies</code>as shown:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">private MyBodyAppender appender = new MyBodyAppender();
+
+public void configure() throws Exception {
+    from("direct:start")
+        .aggregate(constant(true), AggregationStrategies.bean(appender, "append"))
+            .completionSize(3)
+            .to("mock:result");
+}</code></pre></div></div><div class="paragraph"><p>We can also provide the bean type directly:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public void configure() throws Exception {
+    from("direct:start")
+        .aggregate(constant(true), AggregationStrategies.bean(MyBodyAppender.class, "append"))
+            .completionSize(3)
+            .to("mock:result");
+}</code></pre></div></div><div class="paragraph"><p>And if the bean has only one method we do not need to specify the name of the method:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public void configure() throws Exception {
+    from("direct:start")
+        .aggregate(constant(true), AggregationStrategies.bean(MyBodyAppender.class))
+            .completionSize(3)
+            .to("mock:result");
+}</code></pre></div></div><div class="paragraph"><p>And the<code>append</code>method could be static:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public class MyBodyAppender {
+
+    public static String append(String existing, String next) {
+        return next + existing;
+    }
+
+}</code></pre></div></div><div class="paragraph"><p>If you are using XML DSL then we need to declare a &lt;bean&gt; with the POJO:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;bean id="myAppender" class="com.foo.MyBodyAppender"/&gt;</code></pre></div></div><div class="paragraph"><p>And in the Camel route we use<code>strategyRef</code>to refer to the bean by its id, and the<code>strategyMetho [...]
+    &lt;route&gt;
+        &lt;from uri="direct:start"/&gt;
+        &lt;aggregate strategyRef="myAppender" strategyMethodName="append" completionSize="3"&gt;
+            &lt;correlationExpression&gt;
+                &lt;constant&gt;true&lt;/constant&gt;
+            &lt;/correlationExpression&gt;
+            &lt;to uri="mock:result"/&gt;
+        &lt;/aggregate&gt;
+    &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div><div class="paragraph"><p>When using XML DSL you must define the POJO as a &lt;bean&gt;.</p></div></div><div class="sect2"><h3 id="_aggregating_when_no_data"><a class="anchor" href="#_aggregating_when_no_data"></a>Aggregating when no data</h3><div class="paragraph"><p>By default when using POJOs as AggregationStrategy, then the method is<strong>only</strong>invoked when there is data to be aggregated (by default). You can use the option<code> [...]
+    AggregationStrategyBeanAdapter myStrategy = new AggregationStrategyBeanAdapter(appender, "append");
+    myStrategy.setAllowNullOldExchange(true);
+    myStrategy.setAllowNullNewExchange(true);
+
+    from("direct:start")
+        .pollEnrich("seda:foo", 1000, myStrategy)
+            .to("mock:result");
+}</code></pre></div></div><div class="paragraph"><p>This can be configured a bit easier using the<code>beanAllowNull</code>method from<code>AggregationStrategies</code>as shown:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public void configure() throws Exception {
+    from("direct:start")
+        .pollEnrich("seda:foo", 1000, AggregationStrategies.beanAllowNull(appender, "append"))
+            .to("mock:result");
+}</code></pre></div></div><div class="paragraph"><p>Then the<code>append</code>method in the POJO would need to deal with the situation that<code>newExchange</code>can be null:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public class MyBodyAppender {
+
+    public String append(String existing, String next) {
+        if (next == null) {
+            return "NewWasNull" + existing;
+        } else {
+            return existing + next;
+        }
+    }
+
+}</code></pre></div></div><div class="paragraph"><p>In the example above we use the<a href="content-enricher.html">Content Enricher</a>EIP using<code>pollEnrich</code>. The<code>newExchange</code>will be null in the situation we could not get any data from the "seda:foo" endpoint, and therefore the timeout was hit after 1 second. So if we need to do some special merge logic we would need to set<code>setAllowNullNewExchange=true</code>, so the<code>append</code>method will be invoked. If  [...]
+    &lt;route&gt;
+        &lt;from uri="direct:start"/&gt;
+        &lt;aggregate strategyRef="myAppender"
+                   strategyMethodName="append"
+                   strategyMethodAllowNull="true"
+                   completionSize="3"&gt;
+            &lt;correlationExpression&gt;
+                &lt;constant&gt;true&lt;/constant&gt;
+            &lt;/correlationExpression&gt;
+            &lt;to uri="mock:result"/&gt;
+        &lt;/aggregate&gt;
+    &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_different_body_types"><a class="anchor" href="#_different_body_types"></a>Different body types</h3><div class="paragraph"><p>When for example using<code>strategyMethodAllowNull</code>as true, then the parameter types of the message bodies does not have to be the same. For example suppose we want to aggregate from a<code>com.foo.User</code>type to a<code>List&lt;String&gt;</code>that contains the user name. We [...]
+
+    public List addUsers(List names, User user) {
+        if (names == null) {
+            names = new ArrayList();
+        }
+        names.add(user.getName());
+        return names;
+    }
+}</code></pre></div></div><div class="paragraph"><p>Notice that the return type is a List which we want to contain the user names. The 1st parameter is the list of names, and then notice the 2nd parameter is the incoming<code>com.foo.User</code>type.</p></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../.. [...]
\ No newline at end of file
diff --git a/manual/latest/annotation-based-expression-language.html b/manual/latest/annotation-based-expression-language.html
index 74f4ddc..9545933 100644
--- a/manual/latest/annotation-based-expression-language.html
+++ b/manual/latest/annotation-based-expression-language.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/annotation-based-expression-language.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar- [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/annotation-based-expression-language.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar- [...]
 
     @MessageDriven(uri = "activemq:my.queue")
     public void doSomething(@XPath("/foo/bar/text()") String correlationID, @Body String body) {
diff --git a/manual/latest/architecture.html b/manual/latest/architecture.html
index ebfed03..3a52fa2 100644
--- a/manual/latest/architecture.html
+++ b/manual/latest/architecture.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/architecture.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar- [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/architecture.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar- [...]
\ No newline at end of file
diff --git a/manual/latest/async.html b/manual/latest/async.html
index 1d3bf36..b3d8756 100644
--- a/manual/latest/async.html
+++ b/manual/latest/async.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/async.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item na [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/async.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item na [...]
 from("direct:name")
   .transform(constant("Claus"))
   .to("mock:result");
diff --git a/manual/latest/asynchronous-routing-engine.html b/manual/latest/asynchronous-routing-engine.html
index 235b5d7..c0d574f 100644
--- a/manual/latest/asynchronous-routing-engine.html
+++ b/manual/latest/asynchronous-routing-engine.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/asynchronous-routing-engine.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/asynchronous-routing-engine.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a [...]
\ No newline at end of file
diff --git a/manual/latest/backlog-tracer.html b/manual/latest/backlog-tracer.html
index 156b974..43dc7af 100644
--- a/manual/latest/backlog-tracer.html
+++ b/manual/latest/backlog-tracer.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/backlog-tracer.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navba [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/backlog-tracer.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navba [...]
\ No newline at end of file
diff --git a/manual/latest/backlogdebugger.html b/manual/latest/backlogdebugger.html
index 1c56c82..104356a 100644
--- a/manual/latest/backlogdebugger.html
+++ b/manual/latest/backlogdebugger.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/backlogdebugger.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navb [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/backlogdebugger.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navb [...]
\ No newline at end of file
diff --git a/manual/latest/bam-example.html b/manual/latest/bam-example.html
index 6cc2a58..a0ebfd4 100644
--- a/manual/latest/bam-example.html
+++ b/manual/latest/bam-example.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/bam-example.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-i [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/bam-example.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-i [...]
     public void configure() throws Exception {
 
         // let's define some activities, correlating on an XPath on the message bodies
diff --git a/manual/latest/bam.html b/manual/latest/bam.html
index a487fee..78b3cb2 100644
--- a/manual/latest/bam.html
+++ b/manual/latest/bam.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/bam.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item nav- [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/bam.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item nav- [...]
     public void configure() throws Exception {
 
         // let's define some activities, correlating on an XPath on the message bodies
diff --git a/manual/latest/batch-config-eip.html b/manual/latest/batch-config-eip.html
new file mode 100644
index 0000000..2b6478b
--- /dev/null
+++ b/manual/latest/batch-config-eip.html
@@ -0,0 +1 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/batch-config-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="nav [...]
\ No newline at end of file
diff --git a/manual/latest/batch-consumer.html b/manual/latest/batch-consumer.html
index 7f63a5a..f31d527 100644
--- a/manual/latest/batch-consumer.html
+++ b/manual/latest/batch-consumer.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/batch-consumer.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navba [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/batch-consumer.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navba [...]
\ No newline at end of file
diff --git a/manual/latest/bean-eip.html b/manual/latest/bean-eip.html
new file mode 100644
index 0000000..5957065
--- /dev/null
+++ b/manual/latest/bean-eip.html
@@ -0,0 +1,14 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/bean-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
+// and invoke method resolved using Bean Binding.
+from("direct:start").beanRef("beanName");
+
+// Send message to the bean endpoint
+// and invoke given method.
+from("direct:start").beanRef("beanName", "methodName");</code></pre></div></div><div class="paragraph"><p>Instead of passing name of the reference to the bean (so that Camel will lookup for it in the registry), you can specify the bean itself:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">// Send message to the given bean instance.
+from("direct:start").bean(new ExampleBean());
+
+// Explicit selection of bean method to be invoked.
+from("direct:start").bean(new ExampleBean(), "methodName");
+
+// Camel will create the instance of bean and cache it for you.
+from("direct:start").bean(ExampleBean.class);</code></pre></div></div></div><div class="sect2"><h3 id="_bean_binding"><a class="anchor" href="#_bean_binding"></a>Bean binding</h3><div class="paragraph"><p>How bean methods to be invoked are chosen (if they are not specified explicitly through the<strong>method</strong>parameter) and how parameter values are constructed from the<a href="message.html">Message</a>are all defined by the<a href="bean-binding.html">Bean Binding</a>mechanism whi [...]
\ No newline at end of file
diff --git a/manual/latest/bean-integration.html b/manual/latest/bean-integration.html
index 136d4ac..41419cd 100644
--- a/manual/latest/bean-integration.html
+++ b/manual/latest/bean-integration.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/bean-integration.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="nav [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/bean-integration.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="nav [...]
\ No newline at end of file
diff --git a/manual/latest/bean-language.html b/manual/latest/bean-language.html
new file mode 100644
index 0000000..f360b15
--- /dev/null
+++ b/manual/latest/bean-language.html
@@ -0,0 +1,31 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/bean-language.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar [...]
+  filter().method("myBean", "isGoldCustomer").
+    to("activemq:BigSpendersQueue");</code></pre></div></div></div><div class="sect2"><h3 id="_using_bean_expressions_from_xml"><a class="anchor" href="#_using_bean_expressions_from_xml"></a>Using Bean Expressions from XML</h3><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="activemq:topic:OrdersTopic"/&gt;
+  &lt;filter&gt;
+    &lt;method ref="myBean" method="isGoldCustomer"/&gt;
+    &lt;to uri="activemq:BigSpendersQueue"/&gt;
+  &lt;/filter&gt;
+&lt;/route&gt;</code></pre></div></div><div class="admonitionblock caution"><table><tr><td class="icon"><i class="fa icon-caution" title="Caution"></i></td><td class="content">Bean attribute is now deprecated. The<code>bean</code>attribute of the method expression element is now deprecated. You should now make use of<code>ref</code>attribute instead.</td></tr></table></div></div><div class="sect2"><h3 id="_writing_the_expression_bean"><a class="anchor" href="#_writing_the_expression_bean [...]
+  public boolean isGoldCustomer(Exchange exchange) {
+    ...
+  }
+}</code></pre></div></div><div class="paragraph"><p>We can also use the Bean Integration annotations. For example you could do&#8230;&#8203;</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public boolean isGoldCustomer(String body) {
+  // do something
+}</code></pre></div></div><div class="paragraph"><p>or</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public boolean isGoldCustomer(@Header(name = "foo") Integer fooHeader) {
+  // do something
+}</code></pre></div></div><div class="paragraph"><p>So you can bind parameters of the method to the Exchange, the Message or individual headers, properties, the body or other expressions.</p></div></div><div class="sect2"><h3 id="_non_registry_beans"><a class="anchor" href="#_non_registry_beans"></a>Non registry beans</h3><div class="paragraph"><p>The<a href="#bean-language">Bean Language</a>also supports invoking beans that isn&#8217;t registered in the Registry. This is usable for quic [...]
+        filter().expression(BeanLanguage(MyBean.class, "isGoldCustomer")).
+        to("activemq:BigSpendersQueue");</code></pre></div></div><div class="paragraph"><p>The 2nd parameter<code>isGoldCustomer</code>is an optional parameter to explicit set the method name to invoke. If not provided Camel will try to invoke the best suited method. If case of ambiguity Camel will thrown an Exception. In these situations the 2nd parameter can solve this problem. Also the code is more readable if the method name is provided. The 1st parameter can also be an existing inst [...]
+
+    from("activemq:topic:OrdersTopic").
+        filter().expression(BeanLanguage.bean(my, "isGoldCustomer")).
+            to("activemq:BigSpendersQueue");</code></pre></div></div><div class="paragraph"><p>In Camel 2.2 onwards you can avoid the<code>BeanLanguage</code>and have it just as:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">private MyBean my;
+
+    from("activemq:topic:OrdersTopic").
+        filter().expression(bean(my, "isGoldCustomer")).
+            to("activemq:BigSpendersQueue");</code></pre></div></div><div class="paragraph"><p>Which also can be done in a bit shorter and nice way:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">private MyBean my;
+
+    from("activemq:topic:OrdersTopic").
+        filter().method(my, "isGoldCustomer").
+            to("activemq:BigSpendersQueue");</code></pre></div></div></div><div class="sect2"><h3 id="_dependencies"><a class="anchor" href="#_dependencies"></a>Dependencies</h3><div class="paragraph"><p>The Bean language is part of<strong>camel-core</strong>.</p></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script  [...]
\ No newline at end of file
diff --git a/manual/latest/binding.html b/manual/latest/binding.html
index 1bfa5d5..8ae6fbd 100644
--- a/manual/latest/binding.html
+++ b/manual/latest/binding.html
@@ -1,2 +1,2 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/binding.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item  [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/binding.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item  [...]
         context.bind("jsonmq", new BindingComponent(new DataFormatBinding(format), "activemq:foo."));</code></pre></div></div><div class="paragraph"><p>Then you could use the endpoint as if it were any other endpoint.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("jsonmq:myQueue").to("jsonmq:anotherQueue")</code></pre></div></div><div class="paragraph"><p>This would use the queues "foo.myQ [...]
\ No newline at end of file
diff --git a/manual/latest/book-getting-started.html b/manual/latest/book-getting-started.html
index f21ba29..428d79a 100644
--- a/manual/latest/book-getting-started.html
+++ b/manual/latest/book-getting-started.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/book-getting-started.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class= [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/book-getting-started.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class= [...]
 myCamelContext.addComponent("pop3", mailComponent);
 myCamelContext.addComponent("imap", mailComponent);
 myCamelContext.addComponent("smtp", mailComponent);</code></pre></div></div><div class="paragraph"><p>The second (and preferred) way to populate the map of named<code>Component</code>objects in the<code>CamelContext</code>object is to let the<code>CamelContext</code>object perform lazy initialization. This approach relies on developers following a convention when they write a class that implements the<code>Component</code>interface. I illustrate the convention by an example. Let&#8217;s  [...]
diff --git a/manual/latest/books.html b/manual/latest/books.html
index 128697c..b943410 100644
--- a/manual/latest/books.html
+++ b/manual/latest/books.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/books.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item na [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/books.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item na [...]
\ No newline at end of file
diff --git a/manual/latest/browsable-endpoint.html b/manual/latest/browsable-endpoint.html
index 5485b0c..3b4c7ab 100644
--- a/manual/latest/browsable-endpoint.html
+++ b/manual/latest/browsable-endpoint.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/browsable-endpoint.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="n [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/browsable-endpoint.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="n [...]
\ No newline at end of file
diff --git a/manual/latest/building.html b/manual/latest/building.html
index bd73e76..7cf1e71 100644
--- a/manual/latest/building.html
+++ b/manual/latest/building.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/building.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/building.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
 -Xms4G
 -Xmx4G</code></pre></div></div><div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content">For a better experience some users set 8 GB when all projects are loaded and opened.</td></tr></table></div><div id="Building-CloningtheGitRepository" class="paragraph"><p>Cloning the Git Repository</p></div><div class="paragraph"><p>Either follow instructions about getting the latest source, or clone the Git repository with Eclipse b [...]
     &lt;profile&gt;
diff --git a/manual/latest/camel-boot.html b/manual/latest/camel-boot.html
index d88616e..9e02d9b 100644
--- a/manual/latest/camel-boot.html
+++ b/manual/latest/camel-boot.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/camel-boot.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-it [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/camel-boot.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-it [...]
\ No newline at end of file
diff --git a/manual/latest/camel-configuration-utilities.html b/manual/latest/camel-configuration-utilities.html
index d09bfbf..f0d8a8e 100644
--- a/manual/latest/camel-configuration-utilities.html
+++ b/manual/latest/camel-configuration-utilities.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/camel-configuration-utilities.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"> [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/camel-configuration-utilities.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"> [...]
 ksp.setResource("/users/home/server/keystore.jks");
 ksp.setPassword("keystorePassword");
 
diff --git a/manual/latest/camel-core.html b/manual/latest/camel-core.html
index 5f4aa2d..0dbe4c7 100644
--- a/manual/latest/camel-core.html
+++ b/manual/latest/camel-core.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/camel-core.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-it [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/camel-core.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-it [...]
\ No newline at end of file
diff --git a/manual/latest/camel-jar-dependencies.html b/manual/latest/camel-jar-dependencies.html
index 9628fce..d49df8e 100644
--- a/manual/latest/camel-jar-dependencies.html
+++ b/manual/latest/camel-jar-dependencies.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/camel-jar-dependencies.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a clas [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/camel-jar-dependencies.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a clas [...]
\ No newline at end of file
diff --git a/manual/latest/camelcontext.html b/manual/latest/camelcontext.html
index f8be471..cbf5307 100644
--- a/manual/latest/camelcontext.html
+++ b/manual/latest/camelcontext.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/camelcontext.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar- [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/camelcontext.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar- [...]
\ No newline at end of file
diff --git a/manual/latest/cep.html b/manual/latest/cep.html
index 82d1cca..944fe34 100644
--- a/manual/latest/cep.html
+++ b/manual/latest/cep.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/cep.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item nav- [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/cep.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item nav- [...]
\ No newline at end of file
diff --git a/manual/latest/choice-eip.html b/manual/latest/choice-eip.html
new file mode 100644
index 0000000..be2f280
--- /dev/null
+++ b/manual/latest/choice-eip.html
@@ -0,0 +1,29 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/choice-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-it [...]
+    public void configure() {
+        from("direct:a")
+            .choice()
+                .when(simple("${header.foo} == 'bar'"))
+                    .to("direct:b")
+                .when(simple("${header.foo} == 'cheese'"))
+                    .to("direct:c")
+                .otherwise()
+                    .to("direct:d");
+    }
+};</code></pre></div></div><div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content">See<a href="why-can-i-not-use-when-or-otherwise-in-a-java-camel-route.html">Why can I not use when or otherwise in a Java Camel route</a>if you have problems with the Java DSL, accepting using<code>when</code>or<code>otherwise</code>.</td></tr></table></div><div class="paragraph"><p>And the same example using XML:</p></div><div class="lis [...]
+    &lt;route&gt;
+        &lt;from uri="direct:a"/&gt;
+        &lt;choice&gt;
+            &lt;when&gt;
+                &lt;simple&gt;${header.foo} == 'bar'&lt;/simple&gt;
+                &lt;to uri="direct:b"/&gt;
+            &lt;/when&gt;
+            &lt;when&gt;
+                &lt;simple&gt;${header.foo} == 'cheese'&lt;/simple&gt;
+                &lt;to uri="direct:c"/&gt;
+            &lt;/when&gt;
+            &lt;otherwise&gt;
+                &lt;to uri="direct:d"/&gt;
+            &lt;/otherwise&gt;
+        &lt;/choice&gt;
+    &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/circuitBreaker-eip.html b/manual/latest/circuitBreaker-eip.html
new file mode 100644
index 0000000..86e04d6
--- /dev/null
+++ b/manual/latest/circuitBreaker-eip.html
@@ -0,0 +1,24 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/circuitBreaker-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="n [...]
+    .onException(RejectedExecutionException.class)
+        .handled(true)
+        .to("mock:serviceUnavailable")
+    .end()
+    .loadBalance()
+        .circuitBreaker(2, 1000L, MyCustomException.class)
+        .to("mock:service")
+    .end();</code></pre></div></div><div class="paragraph"><p>And the same example using Spring XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"&gt;
+    &lt;route&gt;
+        &lt;from uri="direct:start"/&gt;
+        &lt;onException&gt;
+            &lt;exception&gt;java.util.concurrent.RejectedExecutionException&lt;/exception&gt;
+            &lt;handled&gt;&lt;constant&gt;true&lt;/constant&gt;&lt;/handled&gt;
+            &lt;to uri="mock:serviceUnavailable"/&gt;
+        &lt;/onException&gt;
+        &lt;loadBalance&gt;
+            &lt;circuitBreaker threshold="2" halfOpenAfter="1000"&gt;
+                &lt;exception&gt;MyCustomException&lt;/exception&gt;
+            &lt;/circuitBreaker&gt;
+            &lt;to uri="mock:service"/&gt;
+        &lt;/loadBalance&gt;
+    &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/claimCheck-eip.html b/manual/latest/claimCheck-eip.html
new file mode 100644
index 0000000..6a28452
--- /dev/null
+++ b/manual/latest/claimCheck-eip.html
@@ -0,0 +1,67 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/claimCheck-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navba [...]
+    .to("mock:a")
+    .claimCheck(ClaimCheckOperation.Push)
+    .transform().constant("Bye World")
+    .to("mock:b")
+    .claimCheck(ClaimCheckOperation.Pop)
+    .to("mock:c");</pre></div></div><div class="paragraph"><p>For example if the message body from the beginning is<code>Hello World</code>then that data is pushed on the stack of the Claim Check EIP. And then the message body is transformed to<code>Bye World</code>, which is what<code>mock:b</code>endpoint receives. When we<code>Pop</code>from the Claim Check EIP then the original message body is retrieved and merged back so<code>mock:c</code>will retrieve the message body with<code>Hel [...]
+    .to("mock:a")
+    .claimCheck(ClaimCheckOperation.Set, "foo")
+    .transform().constant("Bye World")
+    .to("mock:b")
+    .claimCheck(ClaimCheckOperation.Get, "foo")
+    .to("mock:c")
+    .transform().constant("Hi World")
+    .to("mock:d")
+    .claimCheck(ClaimCheckOperation.Get, "foo")
+    .to("mock:e");</pre></div></div><div class="paragraph"><p>Notice how we can<code>Get</code>the same data twice using the<code>Get</code>operation as it will not remove the data. If you only want to get the data once, you can use<code>GetAndRemove</code>.</p></div><div class="paragraph"><p>The last example shows how to use the<code>filter</code>option where we only want to get back header named<code>foo</code>or<code>bar</code>:</p></div><div class="listingblock"><div class="content"> [...]
+    .to("mock:a")
+    .claimCheck(ClaimCheckOperation.Push)
+    .transform().constant("Bye World")
+    .setHeader("foo", constant(456))
+    .removeHeader("bar")
+    .to("mock:b")
+    // only merge in the message headers foo or bar
+    .claimCheck(ClaimCheckOperation.Pop, null, "header:(foo|bar)")
+    .to("mock:c");</pre></div></div></div><div class="sect2"><h3 id="_xml_examples"><a class="anchor" href="#_xml_examples"></a>XML examples</h3><div class="paragraph"><p>The following example shows the<code>Push</code>and<code>Pop</code>operations in action;</p></div><div class="listingblock"><div class="content"><pre>&lt;route&gt;
+  &lt;from uri="direct:start"/&gt;
+  &lt;to uri="mock:a"/&gt;
+  &lt;claimCheck operation="Push"/&gt;
+  &lt;transform&gt;
+    &lt;constant&gt;Bye World&lt;/constant&gt;
+  &lt;/transform&gt;
+  &lt;to uri="mock:b"/&gt;
+  &lt;claimCheck operation="Pop"/&gt;
+  &lt;to uri="mock:c"/&gt;
+&lt;/route&gt;</pre></div></div><div class="paragraph"><p>For example if the message body from the beginning is<code>Hello World</code>then that data is pushed on the stack of the Claim Check EIP. And then the message body is transformed to<code>Bye World</code>, which is what<code>mock:b</code>endpoint receives. When we<code>Pop</code>from the Claim Check EIP then the original message body is retrieved and merged back so<code>mock:c</code>will retrieve the message body with<code>Hello W [...]
+  &lt;from uri="direct:start"/&gt;
+  &lt;to uri="mock:a"/&gt;
+  &lt;claimCheck operation="Set" key="foo"/&gt;
+  &lt;transform&gt;
+    &lt;constant&gt;Bye World&lt;/constant&gt;
+  &lt;/transform&gt;
+  &lt;to uri="mock:b"/&gt;
+  &lt;claimCheck operation="Get" key="foo"/&gt;
+  &lt;to uri="mock:c"/&gt;
+  &lt;transform&gt;
+    &lt;constant&gt;Hi World&lt;/constant&gt;
+  &lt;/transform&gt;
+  &lt;to uri="mock:d"/&gt;
+  &lt;claimCheck operation="Get" key="foo"/&gt;
+  &lt;to uri="mock:e"/&gt;
+&lt;/route&gt;</pre></div></div><div class="paragraph"><p>Notice how we can<code>Get</code>the same data twice using the<code>Get</code>operation as it will not remove the data. If you only want to get the data once, you can use<code>GetAndRemove</code>.</p></div><div class="paragraph"><p>The last example shows how to use the<code>filter</code>option where we only want to get back header named<code>foo</code>or<code>bar</code>:</p></div><div class="listingblock"><div class="content"><pre [...]
+  &lt;from uri="direct:start"/&gt;
+  &lt;to uri="mock:a"/&gt;
+  &lt;claimCheck operation="Push"/&gt;
+  &lt;transform&gt;
+    &lt;constant&gt;Bye World&lt;/constant&gt;
+  &lt;/transform&gt;
+  &lt;setHeader headerName="foo"&gt;
+    &lt;constant&gt;456&lt;/constant&gt;
+  &lt;/setHeader&gt;
+  &lt;removeHeader headerName="bar"/&gt;
+  &lt;to uri="mock:b"/&gt;
+  &lt;!-- only merge in the message headers foo or bar --&gt;
+  &lt;claimCheck operation="Pop" filter="header:(foo|bar)"/&gt;
+  &lt;to uri="mock:c"/&gt;
+&lt;/route&gt;</pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/clustering.html b/manual/latest/clustering.html
new file mode 100644
index 0000000..7ce6bff
--- /dev/null
+++ b/manual/latest/clustering.html
@@ -0,0 +1,79 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/clustering.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-it [...]
+
+context.addService(service);</code></pre></div></div><div class="paragraph"><p>The configuration of the<em>Cluster Service</em>depends on the implementation you have choosed. Out of the box camel provides the following implementations:</p></div><table class="tableblock frame-all grid-all stretch"><colgroup><col style="width: 25%;"><col style="width: 25%;"><col style="width: 50%;"></colgroup><thead><tr><th class="tableblock halign-left valign-top">Type</th><th class="tableblock halign-lef [...]
+camel.component.file.cluster.service.id = ${random.uuid}
+camel.component.file.cluster.service.root = ${java.io.tmpdir}</code></pre></div></div></li><li><p><strong>Spring XML</strong></p><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+         http://www.springframework.org/schema/beans
+         http://www.springframework.org/schema/beans/spring-beans.xsd
+         http://camel.apache.org/schema/spring
+         http://camel.apache.org/schema/spring/camel-spring.xsd"&gt;
+
+
+  &lt;bean id="zx" class="org.apache.camel.component.zookeeper.cluster.ZooKeeperClusterService"&gt;
+    &lt;property name="id" value="node-1"/&gt;
+    &lt;property name="basePath" value="/camel/cluster"/&gt;
+    &lt;property name="nodes" value="localhost:2181"/&gt;
+  &lt;/bean&gt;
+
+  &lt;camelContext xmlns="http://camel.apache.org/schema/spring" autoStartup="false"&gt;
+    ...
+  &lt;/camelContext&gt;
+
+&lt;/beans&gt;</code></pre></div></div></li></ul></div></div><div class="sect2"><h3 id="_cluster_spi_usage"><a class="anchor" href="#_cluster_spi_usage"></a>Cluster SPI Usage</h3><div class="paragraph"><p>The<em>Cluster SPI</em>is leveraged by the folowing new implementations:</p></div><div class="ulist"><ul><li><p><strong>ClusteredRoutePolicy</strong></p><div class="paragraph"><p>This is an implementation of a RoutePolicy that starts the routes it is associated to when the Cluster View  [...]
+    @Override
+    public void configure() throws Exception {
+        // Create the route policy
+        RoutePolicy policy = ClusteredRoutePolicy.forNamespace("my-ns");
+
+        // bind the policy to one or more routes
+        from("timer:clustered?delay=1s&amp;period=1s")
+            .routePolicy(policy)
+            .log("Route ${routeId} is running ...");
+    }
+});</code></pre></div></div><div class="paragraph"><p>To apply the same policy to all the rooutes a dedicated<em>RoutePolicyFactory</em>can be used:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">// add the clustered route policy factory to context
+context.addRoutePolicyFactory(ClusteredRoutePolicyFactory.forNamespace("my-ns"));
+
+context.addRoutes(new RouteBuilder {
+    @Override
+    public void configure() throws Exception {
+        // bind the policy to one or more routes
+        from("timer:clustered?delay=1s&amp;period=1s")
+            .log("Route ${routeId} is running ...");
+    }
+});</code></pre></div></div></li><li><p><strong>ClusteredRouteController</strong></p><div class="paragraph"><p>This is an implementation of the<em>RouteController SPI</em>that lets the camel context start then starts/stops the routes when the leadership is taken/lost. This is well integrated with spring-boot apps so assuming you have tour routes set-up like:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-la [...]
+public RouteBuilder routeBuilder() {
+    return new RouteBuilder() {
+        @Override
+        public void configure() throws Exception {
+            from("timer:heartbeat?period=10s")
+                .routeId("heartbeat")
+                .log("HeartBeat route (timer) ...");
+            from("timer:clustered?period=5s")
+                .routeId("clustered")
+                .log("Clustered route (timer) ...");
+        }
+    };
+}</code></pre></div></div><div class="paragraph"><p>You can then leverage spring-boot configuration to make them clustered:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-properties hljs" data-lang="properties"># enable the route controller
+camel.clustered.controller.enabled = true
+
+# define the default namespace for routes
+camel.clustered.controller.namespace = my-ns
+
+# exlude the route with id 'heartbeat' from the clustered ones
+camel.clustered.controller.routes[heartbeat].clustered = false</code></pre></div></div></li><li><p><strong>Master Component</strong></p><div class="paragraph"><p>The master component is similar to a<em>ClusteredRoutePolicy</em>but it works on consumer level so it ensure the only a single endpoint in a cluster is consuming resources at any point in time. Set it up is very easy and all you need is to prefix singleton endpoints according to the master component syntax:</p></div><div class=" [...]
+public RouteBuilder routeBuilder() {
+    return new RouteBuilder() {
+        @Override
+        public void configure() throws Exception {
+            from("timer:heartbeat?period=10s")
+                .routeId("heartbeat")
+                .log("HeartBeat route (timer) ...");
+            from("master:my-ns:timer:clustered?period=5s")
+                .routeId("clustered")
+                .log("Clustered route (timer) ...");
+        }
+    };
+}</code></pre></div></div></li></ul></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/commercial-camel-offerings.html b/manual/latest/commercial-camel-offerings.html
index e231b0b..a8a7053 100644
--- a/manual/latest/commercial-camel-offerings.html
+++ b/manual/latest/commercial-camel-offerings.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/commercial-camel-offerings.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a  [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/commercial-camel-offerings.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a  [...]
\ No newline at end of file
diff --git a/manual/latest/component.html b/manual/latest/component.html
index c5890ae..061df1f 100644
--- a/manual/latest/component.html
+++ b/manual/latest/component.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/component.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-ite [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/component.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-ite [...]
\ No newline at end of file
diff --git a/manual/latest/componentconfiguration.html b/manual/latest/componentconfiguration.html
index 62117d9..7172ee8 100644
--- a/manual/latest/componentconfiguration.html
+++ b/manual/latest/componentconfiguration.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/componentconfiguration.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a clas [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/componentconfiguration.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a clas [...]
 ComponentConfiguration configuration = component.createComponentConfiguration();
 
 // now lets introspect the available parameters...
diff --git a/manual/latest/configuring-camel.html b/manual/latest/configuring-camel.html
index 5a89f2b..dd30528 100644
--- a/manual/latest/configuring-camel.html
+++ b/manual/latest/configuring-camel.html
@@ -1,2 +1,2 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/configuring-camel.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="na [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/configuring-camel.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="na [...]
 context.addComponent("foo", new FooComponent(context));</code></pre></div></div><div class="paragraph"><p>However you can use the auto-discovery feature of Camel where by Camel will automatically add a<a href="component.adoc">Component</a>when an endpoint URI is used. To do this you would create a file called:</p></div><div class="literalblock"><div class="content"><pre>/META-INF/services/org/apache/camel/component/foo</pre></div></div><div class="paragraph"><p>with contents:</p></div><d [...]
\ No newline at end of file
diff --git a/manual/latest/configuring-route-startup-ordering-and-autostartup.html b/manual/latest/configuring-route-startup-ordering-and-autostartup.html
index 0121851..3442eb3 100644
--- a/manual/latest/configuring-route-startup-ordering-and-autostartup.html
+++ b/manual/latest/configuring-route-startup-ordering-and-autostartup.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/configuring-route-startup-ordering-and-autostartup.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div  [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/configuring-route-startup-ordering-and-autostartup.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div  [...]
         &lt;route&gt;
             &lt;from uri="direct:start"/&gt;
             &lt;to uri="mock:result"/&gt;
diff --git a/manual/latest/constant-language.html b/manual/latest/constant-language.html
new file mode 100644
index 0000000..6e537b1
--- /dev/null
+++ b/manual/latest/constant-language.html
@@ -0,0 +1,9 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/constant-language.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="na [...]
+  &lt;from uri="seda:a"/&gt;
+  &lt;setHeader headerName="theHeader"&gt;
+    &lt;constant&gt;the value&lt;/constant&gt;
+  &lt;/setHeader&gt;
+  &lt;to uri="mock:b"/&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>in this case, the Message coming from the seda:a Endpoint will have 'theHeader' header set to the constant value 'the value'.</p></div><div class="paragraph"><p>And the same example using Java DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("seda:a")
+  .setHeader("theHeader", constant("the value"))
+  .to("mock:b");</code></pre></div></div></div><div class="sect2"><h3 id="_dependencies"><a class="anchor" href="#_dependencies"></a>Dependencies</h3><div class="paragraph"><p>The Constant language is part of<strong>camel-core</strong>.</p></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js" [...]
\ No newline at end of file
diff --git a/manual/latest/content-based-router-eip.html b/manual/latest/content-based-router-eip.html
new file mode 100644
index 0000000..3ecb77c
--- /dev/null
+++ b/manual/latest/content-based-router-eip.html
@@ -0,0 +1,31 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/content-based-router-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a cl [...]
+    public void configure() {
+        errorHandler(deadLetterChannel("mock:error"));
+
+        from("direct:a")
+            .choice()
+                .when(header("foo").isEqualTo("bar"))
+                    .to("direct:b")
+                .when(header("foo").isEqualTo("cheese"))
+                    .to("direct:c")
+                .otherwise()
+                    .to("direct:d");
+    }
+};</code></pre></div></div><div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p>See<a href="why-can-i-not-use-when-or-otherwise-in-a-java-camel-route.html">Why can I not use when or otherwise in a Java Camel route</a>if you have problems with the Java DSL, accepting using<code>when</code>or<code>otherwise</code>.</p></div></td></tr></table></div></div><div class="sect2"><h3 id="_using_the_sp [...]
+    &lt;route&gt;
+        &lt;from uri="direct:a"/&gt;
+        &lt;choice&gt;
+            &lt;when&gt;
+                &lt;xpath&gt;$foo = 'bar'&lt;/xpath&gt;
+                &lt;to uri="direct:b"/&gt;
+            &lt;/when&gt;
+            &lt;when&gt;
+                &lt;xpath&gt;$foo = 'cheese'&lt;/xpath&gt;
+                &lt;to uri="direct:c"/&gt;
+            &lt;/when&gt;
+            &lt;otherwise&gt;
+                &lt;to uri="direct:d"/&gt;
+            &lt;/otherwise&gt;
+        &lt;/choice&gt;
+    &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div><div class="paragraph"><p>For further examples of this pattern in use you could look at the<a href="https://github.com/apache/camel/blob/master/camel-core/src/test/java/org/apache/camel/processor/ChoiceTest.java">junit test case</a>.</p></div></div><div class="sect2"><h3 id="ContentBasedRouter-UsingThisPattern"><a class="anchor" href="#ContentBasedRouter-UsingThisPattern"></a>Using This Pattern</h3><div class="paragraph"><p>If you would like  [...]
\ No newline at end of file
diff --git a/manual/latest/content-filter-eip.html b/manual/latest/content-filter-eip.html
new file mode 100644
index 0000000..67c6ce5
--- /dev/null
+++ b/manual/latest/content-filter-eip.html
@@ -0,0 +1,9 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/content-filter-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="n [...]
+  &lt;from uri="activemq:Input"/&gt;
+  &lt;bean ref="myBeanName" method="doTransform"/&gt;
+  &lt;to uri="activemq:Output"/&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>You can also use XPath to filter out part of the message you are interested in:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="activemq:Input"/&gt;
+  &lt;setBody&gt;&lt;xpath resultType="org.w3c.dom.Document"&gt;//foo:bar&lt;/xpath&gt;&lt;/setBody&gt;
+  &lt;to uri="activemq:Output"/&gt;
+&lt;/route&gt;</code></pre></div></div></div><div class="sect2"><h3 id="ContentFilter-UsingThisPattern"><a class="anchor" href="#ContentFilter-UsingThisPattern"></a>Using This Pattern</h3><div class="paragraph"><p>If you would like to use this EIP Pattern then please read the<a href="#GettingStarted-GettingStarted">Getting Started</a>, you may also find the<a href="#Architecture-Architecture">Architecture</a>useful particularly the description of<a href="#Endpoint-Endpoints">Endpoint</a> [...]
\ No newline at end of file
diff --git a/manual/latest/convertBodyTo-eip.html b/manual/latest/convertBodyTo-eip.html
new file mode 100644
index 0000000..7d42ea2
--- /dev/null
+++ b/manual/latest/convertBodyTo-eip.html
@@ -0,0 +1 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/convertBodyTo-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="na [...]
\ No newline at end of file
diff --git a/manual/latest/correlation-identifier.html b/manual/latest/correlation-identifier.html
new file mode 100644
index 0000000..4c5a33c
--- /dev/null
+++ b/manual/latest/correlation-identifier.html
@@ -0,0 +1,7 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/correlation-identifier.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a clas [...]
+    .to(ExchangePattern.InOut, "jms:queue:foo?useMessageIDAsCorrelationID=true")
+    .to("mock:result");</code></pre></div></div><div class="paragraph"><p>And with XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+    &lt;from uri="direct:start"/&gt;
+    &lt;to pattern="InOut" uri="jms:queue:foo?useMessageIDAsCorrelationID=true"/&gt;
+    &lt;to uri="mock:result"/&gt;
+&lt;/route&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/customLoadBalancer-eip.html b/manual/latest/customLoadBalancer-eip.html
new file mode 100644
index 0000000..9d0b902
--- /dev/null
+++ b/manual/latest/customLoadBalancer-eip.html
@@ -0,0 +1,42 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/customLoadBalancer-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a clas [...]
+    // using our custom load balancer
+    .loadBalance(new MyLoadBalancer())
+    .to("mock:x", "mock:y", "mock:z");</code></pre></div></div><div class="paragraph"><p>And the same example using XML DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;!-- this is the implementation of our custom load balancer --&gt;
+&lt;bean id="myBalancer" class="org.apache.camel.processor.CustomLoadBalanceTest$MyLoadBalancer"/&gt;
+
+&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+  &lt;route&gt;
+    &lt;from uri="direct:start"/&gt;
+    &lt;loadBalance&gt;
+      &lt;!-- refer to my custom load balancer --&gt;
+      &lt;custom ref="myBalancer"/&gt;
+      &lt;!-- these are the endpoints to balancer --&gt;
+      &lt;to uri="mock:x"/&gt;
+      &lt;to uri="mock:y"/&gt;
+      &lt;to uri="mock:z"/&gt;
+    &lt;/loadBalance&gt;
+  &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div><div class="paragraph"><p>Notice in the XML DSL above we use<code>&lt;custom&gt;</code>which is only available in<strong>Camel 2.8</strong>onwards. In older releases you would have to do as follows instead:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;loadBalance ref="myBalancer"&gt;
+  &lt;!-- these are the endpoints to balancer --&gt;
+  &lt;to uri="mock:x"/&gt;
+  &lt;to uri="mock:y"/&gt;
+  &lt;to uri="mock:z"/&gt;
+&lt;/loadBalance&gt;</code></pre></div></div><div class="paragraph"><p>To implement a custom load balancer you can extend some support classes such as<code>LoadBalancerSupport</code>and<code>SimpleLoadBalancerSupport</code>. The former supports the asynchronous routing engine, and the latter does not. Here is an example of a custom load balancer implementation:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data [...]
+
+    public boolean process(Exchange exchange, AsyncCallback callback) {
+        String body = exchange.getIn().getBody(String.class);
+        try {
+            if ("x".equals(body)) {
+                getProcessors().get(0).process(exchange);
+            } else if ("y".equals(body)) {
+                getProcessors().get(1).process(exchange);
+            } else {
+                getProcessors().get(2).process(exchange);
+            }
+        } catch (Throwable e) {
+            exchange.setException(e);
+        }
+        callback.done(true);
+        return true;
+    }
+}</code></pre></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/data-format.html b/manual/latest/data-format.html
index a9f261b..340cec2 100644
--- a/manual/latest/data-format.html
+++ b/manual/latest/data-format.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/data-format.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-i [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/data-format.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-i [...]
 
 from("activemq:My.Queue").
   unmarshal(jaxb).
diff --git a/manual/latest/dead-letter-channel.html b/manual/latest/dead-letter-channel.html
new file mode 100644
index 0000000..27c7fe8
--- /dev/null
+++ b/manual/latest/dead-letter-channel.html
@@ -0,0 +1,31 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/dead-letter-channel.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class=" [...]
+    .maximumRedeliveries(3).redeliveryDelay(5000));</code></pre></div></div><div class="paragraph"><p>And in XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route errorHandlerRef="myDeadLetterErrorHandler"&gt;
+   ...
+&lt;/route&gt;
+
+&lt;bean id="myDeadLetterErrorHandler" class="org.apache.camel.builder.DeadLetterChannelBuilder"&gt;
+    &lt;property name="deadLetterUri" value="jms:queue:dead"/&gt;
+    &lt;property name="redeliveryPolicy" ref="myRedeliveryPolicyConfig"/&gt;
+&lt;/bean&gt;
+
+&lt;bean id="myRedeliveryPolicyConfig" class="org.apache.camel.processor.RedeliveryPolicy"&gt;
+    &lt;property name="maximumRedeliveries" value="3"/&gt;
+    &lt;property name="redeliveryDelay" value="5000"/&gt;
+&lt;/bean&gt;</code></pre></div></div><div class="paragraph"><p>The<a href="#deadLetterChannel-eip">Dead Letter Channel</a>above will clear the caused exception (<code>setException(null)</code>), by moving the caused exception to a property on the<a href="exchange.html">Exchange</a>, with the key<code>Exchange.EXCEPTION_CAUGHT</code>. Then the<a href="exchange.html">Exchange</a>is moved to the<code>"jms:queue:dead"</code>destination and the client will not notice the failure.</p></div></ [...]
+   .to("bean:validateOrder")
+   .to("bean:transformOrder")
+   .to("bean:handleOrder");</code></pre></div></div><div class="paragraph"><p>The route listen for JMS messages and validates, transforms and handle it. During this the<a href="exchange.html">Exchange</a>payload is transformed/modified. So in case something goes wrong and we want to move the message to another JMS destination, then we can configure our<a href="#deadLetterChannel-eip">Dead Letter Channel</a>with the<strong>useOriginalMessage</strong>option. But when we move the<a href="ex [...]
+errorHandler(deadLetterChannel("jms:queue:dead")
+   .useOriginalMessage().maximumRedeliveries(5).redeliveryDelay(5000);</code></pre></div></div><div class="paragraph"><p>Then the messages routed to the<code>jms:queue:dead</code>is the original input. If we want to manually retry we can move the JMS message from the failed to the input queue, with no problem as the message is the same as the original we received.</p></div></div><div class="sect2"><h3 id="deadLetterChannel-OnRedelivery"><a class="anchor" href="#deadLetterChannel-OnRedeli [...]
+    .to("http://someserver/somepath")
+    .beanRef("foo");</code></pre></div></div><div class="paragraph"><p>Now suppose the route above and a failure happens in the<code>foo</code>bean. Then the<code>Exchange.TO_ENDPOINT</code>and<code>Exchange.FAILURE_ENDPOINT</code>will still contain the value of<code><a href="http://someserver/somepath" class="bare">http://someserver/somepath</a></code>.</p></div></div><div class="sect2"><h3 id="deadLetterChannel-OnPrepareFailure"><a class="anchor" href="#deadLetterChannel-OnPrepareFailu [...]
+    @Override
+    public void process(Exchange exchange) throws Exception {
+        Exception cause = exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Exception.class);
+        exchange.getIn().setHeader("FailedBecause", cause.getMessage());
+    }
+}</code></pre></div></div><div class="paragraph"><p>Then configure the error handler to use the processor as follows:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">errorHandler(deadLetterChannel("jms:dead").onPrepareFailure(new MyPrepareProcessor()));</code></pre></div></div><div class="paragraph"><p>Configuring this from XML DSL is as shown:</p></div><div class="listingblock"><div class="conte [...]
+      class="org.apache.camel.processor.DeadLetterChannelOnPrepareTest.MyPrepareProcessor"/&gt;
+
+
+&lt;errorHandler id="dlc" type="DeadLetterChannel" deadLetterUri="jms:dead" onPrepareFailureRef="myPrepare"/&gt;</code></pre></div></div><div class="paragraph"><p>The onPrepare is also available using the default error handler.</p></div></div><div class="sect2"><h3 id="deadLetterChannel-Whichroutefailed"><a class="anchor" href="#deadLetterChannel-Whichroutefailed"></a>Which route failed</h3><div class="paragraph"><p><strong>Available as of Camel 2.10.4/2.11</strong></p></div><div class=" [...]
\ No newline at end of file
diff --git a/manual/latest/debugger.html b/manual/latest/debugger.html
index 9a78491..d0b2359 100644
--- a/manual/latest/debugger.html
+++ b/manual/latest/debugger.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/debugger.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/debugger.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
 protected RouteBuilder createRouteBuilder() throws Exception {
     return new RouteBuilder() {
         @Override
diff --git a/manual/latest/defaulterrorhandler.html b/manual/latest/defaulterrorhandler.html
index bf034bd..54b2010 100644
--- a/manual/latest/defaulterrorhandler.html
+++ b/manual/latest/defaulterrorhandler.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/defaulterrorhandler.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class=" [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/defaulterrorhandler.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class=" [...]
   .to("bean:validateOrder")
   .to("jms:queue:order");</code></pre></div></div><div class="paragraph"><p>We can add an<strong>onException</strong>in case we want to catch certain exceptions and route them differently, for instance to catch a<strong>ValidationException</strong>and return a fixed response to the caller.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">onException(ValidationException.class)
   .handled(true)
diff --git a/manual/latest/delay-eip.html b/manual/latest/delay-eip.html
new file mode 100644
index 0000000..2a75aaf
--- /dev/null
+++ b/manual/latest/delay-eip.html
@@ -0,0 +1,58 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/delay-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-ite [...]
+  .delay(1000)
+  .to("mock:result");</code></pre></div></div><div class="paragraph"><p>You can just delay things a fixed amount of time from the point at which the delayer receives the message. For example to delay things 2 seconds</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">delayer(2000)</code></pre></div></div><div class="paragraph"><p>The above assume that the delivery order is maintained and that the me [...]
+  .resequencer(header("MyDeliveryTime"))
+  .delay("MyRedeliveryTime")
+  .to("activemq:aDelayedQueue");</code></pre></div></div><div class="paragraph"><p>You can of course use many different Expression languages such as XPath, XQuery, SQL or various Scripting Languages. For example to delay the message for the time period specified in the header, use the following syntax:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("activemq:someQueue")
+  .delay(header("delayValue"))
+  .to("activemq:aDelayedQueue");</code></pre></div></div><div class="paragraph"><p>And to delay processing using the Simple language you can use the following DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("activemq:someQueue")
+  .delay(simple("${body.delayProperty}"))
+  .to("activemq:aDelayedQueue");</code></pre></div></div><div class="sect3"><h4 id="_spring_dsl"><a class="anchor" href="#_spring_dsl"></a>Spring DSL</h4><div class="paragraph"><p>The sample below demonstrates the delay in Spring DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;bean id="myDelayBean" class="org.apache.camel.processor.MyDelayCalcBean"/&gt;
+&lt;bean id="exchangeAwareBean" class="org.apache.camel.processor.ExchangeAwareDelayCalcBean"/&gt;
+
+&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+    &lt;route&gt;
+        &lt;from uri="seda:a"/&gt;
+        &lt;delay&gt;
+            &lt;header&gt;MyDelay&lt;/header&gt;
+        &lt;/delay&gt;
+        &lt;to uri="mock:result"/&gt;
+    &lt;/route&gt;
+    &lt;route&gt;
+        &lt;from uri="seda:b"/&gt;
+        &lt;delay&gt;
+            &lt;constant&gt;1000&lt;/constant&gt;
+        &lt;/delay&gt;
+        &lt;to uri="mock:result"/&gt;
+    &lt;/route&gt;
+    &lt;route&gt;
+        &lt;from uri="seda:c"/&gt;
+        &lt;delay&gt;
+            &lt;method ref="myDelayBean" method="delayMe"/&gt;
+        &lt;/delay&gt;
+        &lt;to uri="mock:result"/&gt;
+    &lt;/route&gt;
+    &lt;route&gt;
+        &lt;from uri="seda:d"/&gt;
+        &lt;delay&gt;
+            &lt;method ref="exchangeAwareBean" method="delayMe"/&gt;
+        &lt;/delay&gt;
+        &lt;to uri="mock:result"/&gt;
+    &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div></div><div class="sect2"><h3 id="_asynchronous_delaying"><a class="anchor" href="#_asynchronous_delaying"></a>Asynchronous delaying</h3><div class="paragraph"><p><strong>Available as of Camel 2.4</strong></p></div><div class="paragraph"><p>You can let the Delayer use non blocking asynchronous delaying, which means Camel will use a scheduler to schedule a task to be executed in the future. The task will then continue routing. This allows [...]
+  .delay(1000).asyncDelayed()
+  .to("activemq:aDelayedQueue");</code></pre></div></div></div><div class="sect3"><h4 id="_from_spring_xml"><a class="anchor" href="#_from_spring_xml"></a>From Spring XML</h4><div class="paragraph"><p>You use the<code>asyncDelayed="true"</code>attribute to enable the async behavior.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+   &lt;from uri="activemq:queue:foo"/&gt;
+   &lt;delay asyncDelayed="true"&gt;
+       &lt;constant&gt;1000&lt;/constant&gt;
+   &lt;/delay&gt;
+   &lt;to uri="activemq:aDealyedQueue"/&gt;
+&lt;/route&gt;</code></pre></div></div></div></div><div class="sect2"><h3 id="_creating_a_custom_delay"><a class="anchor" href="#_creating_a_custom_delay"></a>Creating a custom delay</h3><div class="paragraph"><p>You can use an expression, such as calling a method on a bean, to determine when to send a message using something like this</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("activem [...]
+  delay().method("someBean", "computeDelay").
+  to("activemq:bar");</code></pre></div></div><div class="paragraph"><p>then the bean would look like this&#8230;&#8203;</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public class SomeBean {
+  public long computeDelay() {
+     long delay = 0;
+     // use java code to compute a delay value in millis
+     return delay;
+ }
+}</code></pre></div></div></div><div class="sect2"><h3 id="_see_also"><a class="anchor" href="#_see_also"></a>See Also</h3><div class="ulist"><ul><li><p>Delay Interceptor</p></li></ul></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js">< [...]
\ No newline at end of file
diff --git a/manual/latest/delay-interceptor.html b/manual/latest/delay-interceptor.html
index e03c7c1..d5530f4 100644
--- a/manual/latest/delay-interceptor.html
+++ b/manual/latest/delay-interceptor.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/delay-interceptor.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="na [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/delay-interceptor.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="na [...]
         &lt;route&gt;
             &lt;from uri="direct:start"/&gt;
             &lt;to uri="mock:result"/&gt;
diff --git a/manual/latest/dependency-injection.html b/manual/latest/dependency-injection.html
index 81b9220..1830dc6 100644
--- a/manual/latest/dependency-injection.html
+++ b/manual/latest/dependency-injection.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/dependency-injection.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class= [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/dependency-injection.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class= [...]
\ No newline at end of file
diff --git a/manual/latest/download-archives.html b/manual/latest/download-archives.html
index 683c59e..3b402fc 100644
--- a/manual/latest/download-archives.html
+++ b/manual/latest/download-archives.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/download-archives.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="na [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/download-archives.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="na [...]
\ No newline at end of file
diff --git a/manual/latest/download.html b/manual/latest/download.html
index 23e22e4..5138546 100644
--- a/manual/latest/download.html
+++ b/manual/latest/download.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/download.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/download.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
   &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
   &lt;artifactId&gt;camel-core&lt;/artifactId&gt;
   &lt;version&gt;2.20.2&lt;/version&gt;
diff --git a/manual/latest/dozer-type-conversion.html b/manual/latest/dozer-type-conversion.html
index ceabf47..64e2702 100644
--- a/manual/latest/dozer-type-conversion.html
+++ b/manual/latest/dozer-type-conversion.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/dozer-type-conversion.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/dozer-type-conversion.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class [...]
     private String firstName;
     private String lastName;
     private String street;
diff --git a/manual/latest/dsl.html b/manual/latest/dsl.html
index f34e455..b625e8e 100644
--- a/manual/latest/dsl.html
+++ b/manual/latest/dsl.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/dsl.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item nav- [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/dsl.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item nav- [...]
\ No newline at end of file
diff --git a/manual/latest/dynamic-router.html b/manual/latest/dynamic-router.html
new file mode 100644
index 0000000..c6b7073
--- /dev/null
+++ b/manual/latest/dynamic-router.html
@@ -0,0 +1,82 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/dynamic-router.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navba [...]
+    // use a bean as the dynamic router
+    .dynamicRouter(method(DynamicRouterTest.class, "slip"));</code></pre></div></div><div class="paragraph"><p>Which will leverage a<a href="#bean-component">Bean</a>to compute the slip<em>on-the-fly</em>, which could be implemented as follows:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">/**
+ * Use this method to compute dynamic where we should route next.
+ *
+ * @param body the message body
+ * @return endpoints to go, or &lt;tt&gt;null&lt;/tt&gt; to indicate the end
+ */
+public String slip(String body) {
+    bodies.add(body);
+    invoked++;
+
+    if (invoked == 1) {
+        return "mock:a";
+    } else if (invoked == 2) {
+        return "mock:b,mock:c";
+    } else if (invoked == 3) {
+        return "direct:foo";
+    } else if (invoked == 4) {
+        return "mock:result";
+    }
+
+    // no more so return null
+    return null;
+}</code></pre></div></div><div class="paragraph"><p>Mind that this example is only for show and tell. The current implementation is not thread safe. You would have to store the state on the Exchange, to ensure thread safety, as shown below:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">/**
+ * Use this method to compute dynamic where we should route next.
+ *
+ * @param body the message body
+ * @param properties the exchange properties where we can store state between invocations
+ * @return endpoints to go, or &lt;tt&gt;null&lt;/tt&gt; to indicate the end
+ */
+public String slip(String body, @Properties Map&lt;String, Object&gt; properties) {
+    bodies.add(body);
+
+    // get the state from the exchange properties and keep track how many times
+    // we have been invoked
+    int invoked = 0;
+    Object current = properties.get("invoked");
+    if (current != null) {
+        invoked = Integer.valueOf(current.toString());
+    }
+    invoked++;
+    // and store the state back on the properties
+    properties.put("invoked", invoked);
+
+    if (invoked == 1) {
+        return "mock:a";
+    } else if (invoked == 2) {
+        return "mock:b,mock:c";
+    } else if (invoked == 3) {
+        return "direct:foo";
+    } else if (invoked == 4) {
+        return "mock:result";
+    }
+
+    // no more so return null
+    return null;
+}</code></pre></div></div><div class="paragraph"><p>You could also store state as message headers, but they are not guaranteed to be preserved during routing, where as properties on the Exchange are. Although there was a bug in the method call expression, see the warning below.</p></div><div class="paragraph"><p>WARNING:*Using beans to store state* Mind that in Camel 2.9.2 or older, when using a<a href="#bean-component">Bean</a>the state is not propagated, so you will have to use a Proce [...]
+
+&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+    &lt;route&gt;
+        &lt;from uri="direct:start"/&gt;
+        &lt;dynamicRouter&gt;
+            &lt;!-- use a method call on a bean as dynamic router --&gt;
+            &lt;method ref="mySlip" method="slip"/&gt;
+        &lt;/dynamicRouter&gt;
+    &lt;/route&gt;
+
+    &lt;route&gt;
+        &lt;from uri="direct:foo"/&gt;
+        &lt;transform&gt;&lt;constant&gt;Bye World&lt;/constant&gt;&lt;/transform&gt;
+    &lt;/route&gt;
+
+&lt;/camelContext&gt;</code></pre></div></div></div><div class="sect2"><h3 id="DynamicRouter-DynamicRouterannotation"><a class="anchor" href="#DynamicRouter-DynamicRouterannotation"></a>@DynamicRouter annotation</h3><div class="paragraph"><p>You can also use the<code>@DynamicRouter</code>annotation, for example the Camel 2.4 example below could be written as follows. The<code>route</code>method would then be invoked repeatedly as the message is processed dynamically. The idea is to retur [...]
+
+    @Consume(uri = "activemq:foo")
+    @DynamicRouter
+    public String route(@XPath("/customer/id") String customerId, @Header("Location") String location, Document body) {
+        // query a database to find the best match of the endpoint based on the input parameteres
+        // return the next endpoint uri, where to go. Return null to indicate the end.
+    }
+}</code></pre></div></div><div class="paragraph"><p>In the above we can use the Parameter Binding Annotations to bind different parts of the Message to method parameters or use an Expression such as using<a href="#xpath-language">XPath</a>or<a href="#xpath-language">XQuery</a>.</p></div><div class="paragraph"><p>The method can be invoked in a number of ways as described in the Bean Integration such as</p></div><div class="ulist"><ul><li><p>POJO Producing</p></li><li><p>Spring Remoting</p [...]
\ No newline at end of file
diff --git a/manual/latest/dynamicRouter-eip.html b/manual/latest/dynamicRouter-eip.html
new file mode 100644
index 0000000..172c547
--- /dev/null
+++ b/manual/latest/dynamicRouter-eip.html
@@ -0,0 +1,82 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/dynamicRouter-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="na [...]
+    // use a bean as the dynamic router
+    .dynamicRouter(method(DynamicRouterTest.class, "slip"));</code></pre></div></div><div class="paragraph"><p>Which will leverage a Bean to compute the slip<em>on-the-fly</em>, which could be implemented as follows:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">/**
+ * Use this method to compute dynamic where we should route next.
+ *
+ * @param body the message body
+ * @return endpoints to go, or &lt;tt&gt;null&lt;/tt&gt; to indicate the end
+ */
+public String slip(String body) {
+    bodies.add(body);
+    invoked++;
+
+    if (invoked == 1) {
+        return "mock:a";
+    } else if (invoked == 2) {
+        return "mock:b,mock:c";
+    } else if (invoked == 3) {
+        return "direct:foo";
+    } else if (invoked == 4) {
+        return "mock:result";
+    }
+
+    // no more so return null
+    return null;
+}</code></pre></div></div><div class="paragraph"><p>Mind that this example is only for show and tell. The current implementation is not thread safe. You would have to store the state on the Exchange, to ensure thread safety, as shown below:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">/**
+ * Use this method to compute dynamic where we should route next.
+ *
+ * @param body the message body
+ * @param properties the exchange properties where we can store state between invocations
+ * @return endpoints to go, or &lt;tt&gt;null&lt;/tt&gt; to indicate the end
+ */
+public String slip(String body, @Properties Map&lt;String, Object&gt; properties) {
+    bodies.add(body);
+
+    // get the state from the exchange properties and keep track how many times
+    // we have been invoked
+    int invoked = 0;
+    Object current = properties.get("invoked");
+    if (current != null) {
+        invoked = Integer.valueOf(current.toString());
+    }
+    invoked++;
+    // and store the state back on the properties
+    properties.put("invoked", invoked);
+
+    if (invoked == 1) {
+        return "mock:a";
+    } else if (invoked == 2) {
+        return "mock:b,mock:c";
+    } else if (invoked == 3) {
+        return "direct:foo";
+    } else if (invoked == 4) {
+        return "mock:result";
+    }
+
+    // no more so return null
+    return null;
+}</code></pre></div></div><div class="paragraph"><p>You could also store state as message headers, but they are not guaranteed to be preserved during routing, where as properties on the Exchange are. Although there was a bug in the method call expression, see the warning below.</p></div><div class="admonitionblock warning"><table><tr><td class="icon"><i class="fa icon-warning" title="Warning"></i></td><td class="content"><div class="title">Using beans to store state</div><div class="para [...]
+
+&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+    &lt;route&gt;
+        &lt;from uri="direct:start"/&gt;
+        &lt;dynamicRouter&gt;
+            &lt;!-- use a method call on a bean as dynamic router --&gt;
+            &lt;method ref="mySlip" method="slip"/&gt;
+        &lt;/dynamicRouter&gt;
+    &lt;/route&gt;
+
+    &lt;route&gt;
+        &lt;from uri="direct:foo"/&gt;
+        &lt;transform&gt;&lt;constant&gt;Bye World&lt;/constant&gt;&lt;/transform&gt;
+    &lt;/route&gt;
+
+&lt;/camelContext&gt;</code></pre></div></div></div></div><div class="sect2"><h3 id="_dynamicrouter_annotation"><a class="anchor" href="#_dynamicrouter_annotation"></a>@DynamicRouter annotation</h3><div class="paragraph"><p>You can also use the<code>@DynamicRouter</code>annotation, for example the Camel 2.4 example below could be written as follows. The<code>route</code>method would then be invoked repeatedly as the message is processed dynamically. The idea is to return the next endpoin [...]
+
+    @Consume(uri = "activemq:foo")
+    @DynamicRouter
+    public String route(@XPath("/customer/id") String customerId, @Header("Location") String location, Document body) {
+        // query a database to find the best match of the endpoint based on the input parameteres
+        // return the next endpoint uri, where to go. Return null to indicate the end.
+    }
+}</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/endpoint-completer.html b/manual/latest/endpoint-completer.html
index 02ad496..a798bbe 100644
--- a/manual/latest/endpoint-completer.html
+++ b/manual/latest/endpoint-completer.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/endpoint-completer.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="n [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/endpoint-completer.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="n [...]
\ No newline at end of file
diff --git a/manual/latest/endpoint.html b/manual/latest/endpoint.html
index ebd0340..3b4e2da 100644
--- a/manual/latest/endpoint.html
+++ b/manual/latest/endpoint.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/endpoint.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/endpoint.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
\ No newline at end of file
diff --git a/manual/latest/enrich-eip.html b/manual/latest/enrich-eip.html
new file mode 100644
index 0000000..08a0500
--- /dev/null
+++ b/manual/latest/enrich-eip.html
@@ -0,0 +1,82 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/enrich-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-it [...]
+  to("velocity:com/acme/MyResponse.vm").
+  to("activemq:Another.Queue");</code></pre></div></div><div class="paragraph"><p>If you want to use InOut (request-reply) semantics to process requests on the<strong>My.Queue</strong>queue on ActiveMQ with a template generated response, then sending responses back to the JMSReplyTo Destination you could use this:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("activemq:My.Queue").
+  to("velocity:com/acme/MyResponse.vm");</code></pre></div></div><div class="paragraph"><p>Here is a simple example using the DSL directly to transform the message body</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start").setBody(body().append(" World!")).to("mock:result");</code></pre></div></div><div class="paragraph"><p>In this example we add our own Processor using explicit Ja [...]
+    public void process(Exchange exchange) {
+        Message in = exchange.getIn();
+        in.setBody(in.getBody(String.class) + " World!");
+    }
+}).to("mock:result");</code></pre></div></div><div class="paragraph"><p>Finally we can use Bean Integration to use any Java method on any bean to act as the transformer</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("activemq:My.Queue").
+  beanRef("myBeanName", "myMethodName").
+  to("activemq:Another.Queue");</code></pre></div></div><div class="sect3"><h4 id="_using_spring_xml"><a class="anchor" href="#_using_spring_xml"></a>Using Spring XML</h4><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="activemq:Input"/&gt;
+  &lt;bean ref="myBeanName" method="doTransform"/&gt;
+  &lt;to uri="activemq:Output"/&gt;
+&lt;/route&gt;</code></pre></div></div></div></div><div class="sect2"><h3 id="_content_enrichment_using_the_enrich_dsl_element"><a class="anchor" href="#_content_enrichment_using_the_enrich_dsl_element"></a>Content enrichment using the<code>enrich</code>DSL element</h3><div class="paragraph"><p>Camel comes with flavor<code>enrich</code>as a choice of content enricher in the DSL. The other one is<code>pollEnrich</code></p></div><div class="paragraph"><p><code>enrich</code>uses a Producer  [...]
+
+from("direct:start")
+  .enrich("direct:resource", aggregationStrategy)
+  .to("direct:result");
+
+from("direct:resource")
+...</code></pre></div></div><div class="paragraph"><p>The content enricher (<code>enrich</code>) retrieves additional data from a<em>resource endpoint</em>in order to enrich an incoming message (contained in the<em>original exchange</em>). An aggregation strategy is used to combine the original exchange and the<em>resource exchange</em>. The first parameter of the<code>AggregationStrategy.aggregate(Exchange, Exchange)</code>method corresponds to the original exchange, the second paramete [...]
+
+    public Exchange aggregate(Exchange original, Exchange resource) {
+        Object originalBody = original.getIn().getBody();
+        Object resourceResponse = resource.getIn().getBody();
+        Object mergeResult = ... // combine original body and resource response
+        if (original.getPattern().isOutCapable()) {
+            original.getOut().setBody(mergeResult);
+        } else {
+            original.getIn().setBody(mergeResult);
+        }
+        return original;
+    }
+
+}</code></pre></div></div><div class="paragraph"><p>Using this template the original exchange can be of any pattern. The resource exchange created by the enricher is always an in-out exchange.</p></div><div class="sect3"><h4 id="_enrich_example_using_xml"><a class="anchor" href="#_enrich_example_using_xml"></a>Enrich example using XML</h4><div class="paragraph"><p>The same example in the Spring DSL (Camel 2.15 or older)</p></div><div class="listingblock"><div class="content"><pre class=" [...]
+  &lt;route&gt;
+    &lt;from uri="direct:start"/&gt;
+    &lt;enrich uri="direct:resource" strategyRef="aggregationStrategy"/&gt;
+    &lt;to uri="direct:result"/&gt;
+  &lt;/route&gt;
+  &lt;route&gt;
+    &lt;from uri="direct:resource"/&gt;
+    ...
+  &lt;/route&gt;
+&lt;/camelContext&gt;
+
+&lt;bean id="aggregationStrategy" class="..." /&gt;</code></pre></div></div><div class="paragraph"><p>The same example in the Spring DSL (Camel 2.16 or newer)</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"&gt;
+  &lt;route&gt;
+    &lt;from uri="direct:start"/&gt;
+    &lt;enrich strategyRef="aggregationStrategy"&gt;
+      &lt;constant&gt;direct:resource&lt;/constant&gt;
+    &lt;/enrich&gt;
+    &lt;to uri="direct:result"/&gt;
+  &lt;/route&gt;
+  &lt;route&gt;
+    &lt;from uri="direct:resource"/&gt;
+    ...
+  &lt;/route&gt;
+&lt;/camelContext&gt;
+
+&lt;bean id="aggregationStrategy" class="..." /&gt;</code></pre></div></div></div></div><div class="sect2"><h3 id="_aggregation_strategy_is_optional"><a class="anchor" href="#_aggregation_strategy_is_optional"></a>Aggregation strategy is optional</h3><div class="paragraph"><p>The aggregation strategy is optional. If you do not provide it Camel will by default just use the body obtained from the resource.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs high [...]
+  .enrich("direct:resource")
+  .to("direct:result");</code></pre></div></div><div class="paragraph"><p>In the route above the message sent to the direct:result endpoint will contain the output from the direct:resource as we do not use any custom aggregation. And for Spring DSL (Camel 2.15 or older) just omit the strategyRef attribute:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="direct:start"/&gt;
+  &lt;enrich uri="direct:resource"/&gt;
+  &lt;to uri="direct:result"/&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>And for Spring DSL (Camel 2.16 or newer) just omit the strategyRef attribute:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="direct:start"/&gt;
+  &lt;enrich&gt;
+    &lt;constant&gt;direct:resource&lt;/constant&gt;
+  &lt;/enrich&gt;
+  &lt;to uri="direct:result"/&gt;
+&lt;/route&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_using_dynamic_uris"><a class="anchor" href="#_using_dynamic_uris"></a>Using dynamic uris</h3><div class="paragraph"><p><strong>Available as of Camel 2.16</strong></p></div><div class="paragraph"><p>From Camel 2.16 onwards<code>enrich</code>and<code>pollEnrich</code>supports using dynamic uris computed based on information from the current Exchange. For example to enrich from a HTTP endpoint where the header with key [...]
+  .enrich().simple("http:myserver/${header.orderId}/order")
+  .to("direct:result");</code></pre></div></div><div class="paragraph"><p>And in XML DSL</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="direct:start"/&gt;
+  &lt;enrich&gt;
+    &lt;simple&gt;http:myserver/${header.orderId}/order&lt;/simple&gt;
+  &lt;/enrich&gt;
+  &lt;to uri="direct:result"/&gt;
+&lt;/route&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/enterprise-integration-patterns.html b/manual/latest/enterprise-integration-patterns.html
index c76a034..3268c93 100644
--- a/manual/latest/enterprise-integration-patterns.html
+++ b/manual/latest/enterprise-integration-patterns.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/enterprise-integration-patterns.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/enterprise-integration-patterns.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand [...]
\ No newline at end of file
diff --git a/manual/latest/error-handler.html b/manual/latest/error-handler.html
index b30d83e..027985a 100644
--- a/manual/latest/error-handler.html
+++ b/manual/latest/error-handler.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/error-handler.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/error-handler.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar [...]
   &lt;property name="deadLetterUri" value="log:dead"/&gt;
 &lt;/bean&gt;
 
diff --git a/manual/latest/error-handling-in-camel.html b/manual/latest/error-handling-in-camel.html
index 3213ac8..7fea34e 100644
--- a/manual/latest/error-handling-in-camel.html
+++ b/manual/latest/error-handling-in-camel.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/error-handling-in-camel.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a cla [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/error-handling-in-camel.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a cla [...]
 
 from("seda:newOrder")
    .to("bean:validateOrder")
diff --git a/manual/latest/event-message.html b/manual/latest/event-message.html
new file mode 100644
index 0000000..028ae4c
--- /dev/null
+++ b/manual/latest/event-message.html
@@ -0,0 +1,10 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/event-message.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar [...]
+  setExchangePattern(ExchangePattern.InOnly).
+  bean(Foo.class);</code></pre></div></div><div class="paragraph"><p>or you can invoke an endpoint with an explicit pattern</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("mq:someQueue").
+  inOnly("mq:anotherQueue");</code></pre></div></div><div class="paragraph"><p>And with XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+    &lt;from uri="mq:someQueue"/&gt;
+    &lt;inOnly uri="bean:foo"/&gt;
+&lt;/route&gt;</code></pre></div></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+    &lt;from uri="mq:someQueue"/&gt;
+    &lt;inOnly uri="mq:anotherQueue"/&gt;
+&lt;/route&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/eventDrivenConsumer-eip.html b/manual/latest/eventDrivenConsumer-eip.html
new file mode 100644
index 0000000..19b0f8f
--- /dev/null
+++ b/manual/latest/eventDrivenConsumer-eip.html
@@ -0,0 +1,5 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/eventDrivenConsumer-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a cla [...]
+    .processRef("processor");</code></pre></div></div><div class="paragraph"><p><strong>Using the <a href="#SpringXMLExtensions-SpringXMLExtensions">Spring XML Extensions</a></strong></p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+    &lt;from uri="jms:queue:foo"/&gt;
+    &lt;to uri="processor"/&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>For more details see:</p></div><div class="ulist"><ul><li><p><a href="#message-eip">Message</a></p></li><li><p><a href="#messageEndpoint-eip">Message Endpoint</a></p></li></ul></div></div><div class="sect2"><h3 id="eventDrivenConsumer-UsingThisPattern"><a class="anchor" href="#eventDrivenConsumer-UsingThisPattern"></a>Using This Pattern</h3><div class="paragraph"><p>If you would like to use this EIP Pattern then please read [...]
\ No newline at end of file
diff --git a/manual/latest/examples.html b/manual/latest/examples.html
index 40c637c..b970d3a 100644
--- a/manual/latest/examples.html
+++ b/manual/latest/examples.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/examples.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/examples.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
\ No newline at end of file
diff --git a/manual/latest/exception-clause.html b/manual/latest/exception-clause.html
index d316e4c..932fc6b 100644
--- a/manual/latest/exception-clause.html
+++ b/manual/latest/exception-clause.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/exception-clause.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="nav [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/exception-clause.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="nav [...]
     .to("activemq:validationFailed");
 
 from("seda:inputA")
diff --git a/manual/latest/exchange-pattern.html b/manual/latest/exchange-pattern.html
index 6fd92a8..7abc26f 100644
--- a/manual/latest/exchange-pattern.html
+++ b/manual/latest/exchange-pattern.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/exchange-pattern.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="nav [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/exchange-pattern.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="nav [...]
\ No newline at end of file
diff --git a/manual/latest/exchange.html b/manual/latest/exchange.html
index 81f06bf..f430fb4 100644
--- a/manual/latest/exchange.html
+++ b/manual/latest/exchange.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/exchange.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/exchange.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
\ No newline at end of file
diff --git a/manual/latest/exchangeProperty-language.html b/manual/latest/exchangeProperty-language.html
new file mode 100644
index 0000000..bc8aa70
--- /dev/null
+++ b/manual/latest/exchangeProperty-language.html
@@ -0,0 +1,6 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/exchangeProperty-language.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a c [...]
+  &lt;from uri="direct:a" /&gt;
+  &lt;recipientList&gt;
+    &lt;exchangeProperty&gt;myProperty&lt;/exchangeProperty&gt;
+  &lt;/recipientList&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>And the same example in Java DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:a").recipientList(exchangeProperty("myProperty"));</code></pre></div></div><div class="paragraph"><p>And with a slightly different syntax where you use the builder to the fullest (i.e. avoid using parameters but using stacked operations, n [...]
\ No newline at end of file
diff --git a/manual/latest/expression.html b/manual/latest/expression.html
index 505ea14..66e52ea 100644
--- a/manual/latest/expression.html
+++ b/manual/latest/expression.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/expression.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-it [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/expression.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-it [...]
 
     /**
      * Returns the value of the expression on the given exchange
diff --git a/manual/latest/failover-eip.html b/manual/latest/failover-eip.html
new file mode 100644
index 0000000..9440f87
--- /dev/null
+++ b/manual/latest/failover-eip.html
@@ -0,0 +1,12 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/failover-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar- [...]
+    .loadBalance()
+    .failover(MyException.class)
+    .to("seda:x", "seda:y", "seda:z");</code></pre></div></div><div class="paragraph"><p>In XML you&#8217;ll have a route like this</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;from uri="direct:start"/&gt;
+    &lt;loadBalance&gt;
+       &lt;failover&gt;
+           &lt;exception&gt;com.example.camel.MyException&lt;/exception&gt;
+       &lt;/failover&gt;
+       &lt;to uri="seda:x"/&gt;
+       &lt;to uri="seda:y"/&gt;
+       &lt;to uri="seda:z"/&gt;
+    &lt;/loadBalance&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/faq.html b/manual/latest/faq.html
index dcdd178..381b45d 100644
--- a/manual/latest/faq.html
+++ b/manual/latest/faq.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/faq.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item nav- [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/faq.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item nav- [...]
\ No newline at end of file
diff --git a/manual/latest/file-language.html b/manual/latest/file-language.html
new file mode 100644
index 0000000..43f4cbb
--- /dev/null
+++ b/manual/latest/file-language.html
@@ -0,0 +1,24 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/file-language.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar [...]
+   &lt;choice&gt;
+     &lt;when&gt;
+         &lt;simple&gt;${file:ext} == 'txt'&lt;/simple&gt;
+         &lt;to uri="bean:orderService?method=handleTextFiles"/&gt;
+     &lt;/when&gt;
+     &lt;when&gt;
+         &lt;simple&gt;${file:ext} == 'xml'&lt;/simple&gt;
+         &lt;to uri="bean:orderService?method=handleXmlFiles"/&gt;
+     &lt;/when&gt;
+     &lt;otherwise&gt;
+         &lt;to uri="bean:orderService?method=handleOtherFiles"/&gt;
+     &lt;/otherwise&gt;
+  &lt;/choice&gt;</code></pre></div></div><div class="paragraph"><p>If you use the<code>fileName</code>option on the File endpoint to set a dynamic filename using the<a href="#file-language">File Language</a>then make sure you<br>use the alternative syntax (available from Camel 2.5 onwards) to avoid clashing with Springs<code>PropertyPlaceholderConfigurer</code>.</p></div><div class="paragraph"><p><strong>bundle-context.xml</strong></p></div><div class="listingblock"><div class="content" [...]
+    &lt;property name="location" value="classpath:bundle-context.cfg" /&gt;
+&lt;/bean&gt;
+
+&lt;bean id="sampleRoute" class="SampleRoute"&gt;
+    &lt;property name="fromEndpoint" value="${fromEndpoint}" /&gt;
+    &lt;property name="toEndpoint" value="${toEndpoint}" /&gt;
+&lt;/bean&gt;</code></pre></div></div><div class="paragraph"><p><strong>bundle-context.cfg</strong></p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code>fromEndpoint=activemq:queue:test
+toEndpoint=file://fileRoute/out?fileName=test-$simple{date:now:yyyyMMdd}.txt</code></pre></div></div><div class="paragraph"><p>Notice how we use the $simple\{ } syntax in the<code>toEndpoint</code>above.<br>If you don&#8217;t do this, there is a clash and Spring will throw an exception like</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">org.springframework.beans.factory.BeanDefinitionStoreException:
+Invalid bean definition with name 'sampleRoute' defined in class path resource [bundle-context.xml]:
+Could not resolve placeholder 'date:now:yyyyMMdd'</code></pre></div></div></div><div class="sect2"><h3 id="_dependencies"><a class="anchor" href="#_dependencies"></a>Dependencies</h3><div class="paragraph"><p>The File language is part of<strong>camel-core</strong>.</p></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><sc [...]
\ No newline at end of file
diff --git a/manual/latest/filter-eip.html b/manual/latest/filter-eip.html
new file mode 100644
index 0000000..2f923e2
--- /dev/null
+++ b/manual/latest/filter-eip.html
@@ -0,0 +1,25 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/filter-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-it [...]
+    .filter(simple("${header.foo} == 'bar'"))
+        .to("direct:b");</code></pre></div></div><div class="paragraph"><p>You can use many different languages as the predicate, such as XPath:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start").
+        filter().xpath("/person[@name='James']").
+        to("mock:result");</code></pre></div></div><div class="paragraph"><p>Here is another example of using a bean to define the filter behavior</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start")
+    .filter().method(MyBean.class, "isGoldCustomer")
+      .to("mock:gold")
+    .end()
+    .to("mock:all");
+
+public static class MyBean {
+    public boolean isGoldCustomer(@Header("level") String level) {
+        return level.equals("gold");
+    }
+}</code></pre></div></div><div class="paragraph"><p>And the example in XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;bean id="myBean" class="com.foo.MyBean"/&gt;
+
+&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+    &lt;route&gt;
+        &lt;from uri="direct:a"/&gt;
+        &lt;filter&gt;
+            &lt;method ref="myBean" method="isGoldCustomer"/&gt;
+            &lt;to uri="direct:b"/&gt;
+        &lt;/filter&gt;
+    &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_using_stop"><a class="anchor" href="#_using_stop"></a>Using stop</h3><div class="paragraph"><p>Stop is a bit different than a message filter as it will filter out all messages and end the route entirely (filter only applies to its child processor). Stop is convenient to use in a<a href="content-based-router.html">Content Based Router</a>when you for example need to stop further processing in one of the predic [...]
\ No newline at end of file
diff --git a/manual/latest/fluent-builders.html b/manual/latest/fluent-builders.html
index c76b9a1..1db8841 100644
--- a/manual/latest/fluent-builders.html
+++ b/manual/latest/fluent-builders.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/fluent-builders.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navb [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/fluent-builders.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navb [...]
\ No newline at end of file
diff --git a/manual/latest/from-eip.html b/manual/latest/from-eip.html
new file mode 100644
index 0000000..05cc840
--- /dev/null
+++ b/manual/latest/from-eip.html
@@ -0,0 +1,3 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/from-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
+  &lt;from uri="file:c:/in" /&gt;
+&lt;/route&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/getting-started.html b/manual/latest/getting-started.html
index 10e95cf..6ffdc84 100644
--- a/manual/latest/getting-started.html
+++ b/manual/latest/getting-started.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/getting-started.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navb [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/getting-started.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navb [...]
\ No newline at end of file
diff --git a/manual/latest/graceful-shutdown.html b/manual/latest/graceful-shutdown.html
index 37ebdde..ed21490 100644
--- a/manual/latest/graceful-shutdown.html
+++ b/manual/latest/graceful-shutdown.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/graceful-shutdown.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="na [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/graceful-shutdown.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="na [...]
 (CamelContext:camel-1) is stopping 2009-12-20 10:56:53,056 [main ] INFO
 DefaultShutdownStrategy - Starting to graceful shutdown routes (timeout
 300 seconds) 2009-12-20 10:56:53,059 [1: ShutdownTask] INFO
diff --git a/manual/latest/groovy-dsl.html b/manual/latest/groovy-dsl.html
index 4177b0d..a761561 100644
--- a/manual/latest/groovy-dsl.html
+++ b/manual/latest/groovy-dsl.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/groovy-dsl.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-it [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/groovy-dsl.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-it [...]
    from('direct:test')
       .transform { it.in.body.reverse() }
       .process { println it.in.body }
diff --git a/manual/latest/guaranteed-delivery.html b/manual/latest/guaranteed-delivery.html
new file mode 100644
index 0000000..928c43c
--- /dev/null
+++ b/manual/latest/guaranteed-delivery.html
@@ -0,0 +1,5 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/guaranteed-delivery.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class=" [...]
+    .to("jms:queue:foo");</code></pre></div></div><div class="paragraph"><p>And in XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+    &lt;from uri="direct:start"/&gt;
+    &lt;to uri="jms:queue:foo"/&gt;
+&lt;/route&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/guice-jms-example.html b/manual/latest/guice-jms-example.html
index 6fe4535..a102792 100644
--- a/manual/latest/guice-jms-example.html
+++ b/manual/latest/guice-jms-example.html
@@ -1,2 +1,2 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/guice-jms-example.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="na [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/guice-jms-example.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="na [...]
 mvn compile exec:java</code></pre></div></div><div class="paragraph"><p>What this does is boot up the Guice based JNDI provider from<a href="https://github.com/apache/camel/blob/master/examples/camel-example-guice-jms/src/main/resources/guicejndi.properties">guicejndi.properties</a>file on the classpath. This then bootstraps the Guice injector and loads whatever Guice modules are defined in the guicejndi.properties file&#8201;&#8212;&#8201;then injects the remaining properties in the fil [...]
\ No newline at end of file
diff --git a/manual/latest/guice-maven-plugin.html b/manual/latest/guice-maven-plugin.html
index 38d2aba..2195b5d 100644
--- a/manual/latest/guice-maven-plugin.html
+++ b/manual/latest/guice-maven-plugin.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/guice-maven-plugin.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="n [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/guice-maven-plugin.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="n [...]
   &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
   &lt;artifactId&gt;guice-maven-plugin&lt;/artifactId&gt;
 &lt;/plugin&gt;</code></pre></div></div><div class="paragraph"><p>You can also specify what Main class to use when running the plugin. By default this is<code>org.apache.camel.guice.Main</code>.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;plugin&gt;
diff --git a/manual/latest/guice.html b/manual/latest/guice.html
index 4aafd44..3b1391f 100644
--- a/manual/latest/guice.html
+++ b/manual/latest/guice.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/guice.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item na [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/guice.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item na [...]
     &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
     &lt;artifactId&gt;camel-guice&lt;/artifactId&gt;
     &lt;version&gt;x.x.x&lt;/version&gt;
diff --git a/manual/latest/header-language.html b/manual/latest/header-language.html
new file mode 100644
index 0000000..61d93fd
--- /dev/null
+++ b/manual/latest/header-language.html
@@ -0,0 +1 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/header-language.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navb [...]
\ No newline at end of file
diff --git a/manual/latest/health-check.html b/manual/latest/health-check.html
new file mode 100644
index 0000000..d9931f4
--- /dev/null
+++ b/manual/latest/health-check.html
@@ -0,0 +1,86 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/health-check.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar- [...]
+camel.health.check.routes.enabled = true
+
+# Configure default thresholds
+camel.health.check.routes.thresholds.exchanges-failed = 10
+
+# Configure a different exchanges-failed  threshold for the route bar
+camel.health.check.routes.threshold[bar].exchanges-failed = 20
+
+# Configure different thresholds for the route slow without inherit global
+# thresholds
+camel.health.check.routes.threshold[slow].inherit = false
+camel.health.check.routes.threshold[slow].last-processing-time.threshold = 1s
+camel.health.check.routes.threshold[slow].last-processing-time.failures = 5</code></pre></div></div></li><li><p><strong>Spring XML DSL</strong>:</p><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+         http://www.springframework.org/schema/beans
+         http://www.springframework.org/schema/beans/spring-beans.xsd
+         http://camel.apache.org/schema/spring
+         http://camel.apache.org/schema/spring/camel-spring.xsd"&gt;
+
+  &lt;!--
+      This repository will automatically be added to Camel's health check
+      repository list.
+  --&gt;
+  &lt;bean id="hc-repo-routes" class="org.apache.camel.impl.health.RoutesHealthCheckRepository"&gt;
+    &lt;property name="evaluators"&gt;
+      &lt;list&gt;
+        &lt;!--
+            Set the checks that will be applied to every route if no per route
+            configuration is defined, see below.
+        --&gt;
+        &lt;bean class="org.apache.camel.impl.health.RoutePerformanceCounterEvaluators.ExchangesFailed"&gt;
+          &lt;constructor-arg value="10"/&gt;
+        &lt;/bean&gt;
+        &lt;bean class="org.apache.camel.impl.health.RoutePerformanceCounterEvaluators.LastProcessingTime"&gt;
+          &lt;constructor-arg value="1000"/&gt;
+          &lt;constructor-arg value="1"/&gt;
+        &lt;/bean&gt;
+      &lt;/list&gt;
+    &lt;/property&gt;
+    &lt;property name="routesEvaluators"&gt;
+      &lt;map&gt;
+        &lt;!--
+            Set the checks to be associated with the route named route-1, note that
+            default checks are not inherit so there will be only one check for this
+            route.
+        --&gt;
+        &lt;entry key="route-1"&gt;
+          &lt;list&gt;
+            &lt;bean class="org.apache.camel.impl.health.RoutePerformanceCounterEvaluators.ExchangesInflight"&gt;
+              &lt;constructor-arg value="10"/&gt;
+            &lt;/bean&gt;
+          &lt;/list&gt;
+        &lt;/entry&gt;
+      &lt;/map&gt;
+    &lt;/property&gt;
+  &lt;/bean&gt;
+
+  &lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+      ...
+  &lt;/camelContext&gt;
+
+&lt;/beans&gt;</code></pre></div></div></li></ul></div></div><div class="sect2"><h3 id="_writing_a_custom_check"><a class="anchor" href="#_writing_a_custom_check"></a>Writing a custom check:</h3><div class="paragraph"><p>As of version 2.20.0, there are a limited number of health checks provided by Camel out of the box so you may need to write your own check which you can do by implementing the<em>HealthCheck</em>interface or by extending<em>AbstractHealthCheck</em>which provides some usu [...]
+    public ContextHealthCheck() {
+        super("camel", "my-check");
+
+        // make this check enabled by default
+        getConfiguration().setEnabled(true);
+    }
+
+    @Override
+    protected void doCall(HealthCheckResultBuilder builder, Map&lt;String, Object&gt; options) {
+        // Default value
+        builder.unknown();
+
+        // Add some details to the check result
+        builder.detail("my.detail", camelContext.getName());
+
+        if (unhealtyCondition) {
+            builder.down();
+        } else {
+            builder.up();
+        }
+    }
+}</code></pre></div></div><div class="paragraph"><p>You can now make<em>MyHealthCheck</em>available to camel by adding an instance to the application context (Spring, Blueprint) or directly to the registry.</p></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_ [...]
\ No newline at end of file
diff --git a/manual/latest/http-session-handling.html b/manual/latest/http-session-handling.html
index efeac59..b7072f3 100644
--- a/manual/latest/http-session-handling.html
+++ b/manual/latest/http-session-handling.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/http-session-handling.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/http-session-handling.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class [...]
     serviceClass="org.apache.camel.component.cxf.jaxrs.testbean.EchoService"
     loggingFeatureEnabled="true" /&gt;
 
diff --git a/manual/latest/http-session.html b/manual/latest/http-session.html
index a34110f..1cd70bb 100644
--- a/manual/latest/http-session.html
+++ b/manual/latest/http-session.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/http-session.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar- [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/http-session.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar- [...]
     serviceClass="org.apache.camel.component.cxf.jaxrs.testbean.EchoService"
     loggingFeatureEnabled="true" /&gt;
 
diff --git a/manual/latest/hystrix-eip.html b/manual/latest/hystrix-eip.html
new file mode 100644
index 0000000..b300fac
--- /dev/null
+++ b/manual/latest/hystrix-eip.html
@@ -0,0 +1,35 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/hystrix-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-i [...]
+    &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
+    &lt;artifactId&gt;camel-hystrix&lt;/artifactId&gt;
+    &lt;version&gt;x.x.x&lt;/version&gt;&lt;!-- use the same version as your Camel core version --&gt;
+&lt;/dependency&gt;</code></pre></div></div><div class="sect2"><h3 id="_configuration_options"><a class="anchor" href="#_configuration_options"></a>Configuration options</h3><div class="paragraph"><p>The Hystrix EIP supports 2 options which are listed below:</p></div><table class="tableblock frame-all grid-all stretch"><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 valig [...]
+errorHandler(deadLetterChannel("mock:dead").maximumRedeliveries(3).redeliveryDelay(0));
+
+from("direct:start")
+    .to("log:start")
+    // turn on Camel's error handler on hystrix so it can do redeliveries
+    .hystrix().inheritErrorHandler(true)
+        .to("mock:a")
+        .throwException(new IllegalArgumentException("Forced"))
+    .end()
+    .to("log:result")
+    .to("mock:result");</code></pre></div></div><div class="paragraph"><p>This example is from an unit test, where you can see the Hystrix EIP block has been hardcoded to always fail by throwning an exception. Because the<code>inheritErrorHandler</code>has been enabled, then Camel&#8217;s error handler will attempt to call the Hystrix EIP block again.</p></div><div class="paragraph"><p>That means the<code>mock:a</code>endpoint will receive the message again, and a total of 1 + 3 = 4 mess [...]
+    .hystrix()
+        .to("http://fooservice.com/slow")
+    .onFallback()
+        .transform().constant("Fallback message")
+    .end()
+    .to("mock:result");</code></pre></div></div><div class="paragraph"><p>And in XML DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+  &lt;route&gt;
+    &lt;from uri="direct:start"/&gt;
+    &lt;hystrix&gt;
+      &lt;to uri="http://fooservice.com/slow"/&gt;
+      &lt;onFallback&gt;
+        &lt;transform&gt;
+          &lt;constant&gt;Fallback message&lt;/constant&gt;
+        &lt;/transform&gt;
+      &lt;/onFallback&gt;
+    &lt;/hystrix&gt;
+    &lt;to uri="mock:result"/&gt;
+  &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div><div class="paragraph"><p>See<a href="https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/onFallback-eip.adoc">onFallback</a></p></div></div><div class="sect2"><h3 id="_other_examples"><a class="anchor" href="#_other_examples"></a>Other examples</h3><div class="paragraph"><p>You can find an example with the source code:<a href="https://github.com/apache/camel/tree/master/examples/camel-example-hystrix">camel-example-hyst [...]
\ No newline at end of file
diff --git a/manual/latest/hystrixConfiguration-eip.html b/manual/latest/hystrixConfiguration-eip.html
new file mode 100644
index 0000000..6f45304
--- /dev/null
+++ b/manual/latest/hystrixConfiguration-eip.html
@@ -0,0 +1 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/hystrixConfiguration-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a cl [...]
\ No newline at end of file
diff --git a/manual/latest/idempotentConsumer-eip.html b/manual/latest/idempotentConsumer-eip.html
new file mode 100644
index 0000000..cedea10
--- /dev/null
+++ b/manual/latest/idempotentConsumer-eip.html
@@ -0,0 +1 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/idempotentConsumer-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a clas [...]
\ No newline at end of file
diff --git a/manual/latest/inOnly-eip.html b/manual/latest/inOnly-eip.html
new file mode 100644
index 0000000..341af38
--- /dev/null
+++ b/manual/latest/inOnly-eip.html
@@ -0,0 +1 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/inOnly-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-it [...]
\ No newline at end of file
diff --git a/manual/latest/inOut-eip.html b/manual/latest/inOut-eip.html
new file mode 100644
index 0000000..fcdffcf
--- /dev/null
+++ b/manual/latest/inOut-eip.html
@@ -0,0 +1 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/inOut-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-ite [...]
\ No newline at end of file
diff --git a/manual/latest/index.html b/manual/latest/index.html
index 2f999c6..0d7e2d8 100644
--- a/manual/latest/index.html
+++ b/manual/latest/index.html
@@ -3,4 +3,4 @@
 </style>
 <link rel="preload" href="../../_/css/site.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
 <noscript><link rel="stylesheet" href="../../_/css/site.css"></noscript>
-<script>!function(n){"use strict";n.loadCSS||(n.loadCSS=function(){});var o=loadCSS.relpreload={};if(o.support=function(){var e;try{e=n.document.createElement("link").relList.supports("preload")}catch(t){e=!1}return function(){return e}}(),o.bindMediaToggle=function(t){var e=t.media||"all";function a(){t.addEventListener?t.removeEventListener("load",a):t.attachEvent&&t.detachEvent("onload",a),t.setAttribute("onload",null),t.media=e}t.addEventListener?t.addEventListener("load",a):t.attach [...]
\ No newline at end of file
+<script>!function(n){"use strict";n.loadCSS||(n.loadCSS=function(){});var o=loadCSS.relpreload={};if(o.support=function(){var e;try{e=n.document.createElement("link").relList.supports("preload")}catch(t){e=!1}return function(){return e}}(),o.bindMediaToggle=function(t){var e=t.media||"all";function a(){t.addEventListener?t.removeEventListener("load",a):t.attachEvent&&t.detachEvent("onload",a),t.setAttribute("onload",null),t.media=e}t.addEventListener?t.addEventListener("load",a):t.attach [...]
\ No newline at end of file
diff --git a/manual/latest/injector.html b/manual/latest/injector.html
index 13678de..5f27e1c 100644
--- a/manual/latest/injector.html
+++ b/manual/latest/injector.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/injector.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/injector.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
\ No newline at end of file
diff --git a/manual/latest/intercept.html b/manual/latest/intercept.html
index 250516d..0fc54e6 100644
--- a/manual/latest/intercept.html
+++ b/manual/latest/intercept.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/intercept.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-ite [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/intercept.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-ite [...]
 
 from("jms:queue:order").to("bean:validateOrder").to("bean:processOrder");</code></pre></div></div><div class="paragraph"><p>What happens is that the Exchange is intercepted before each processing step, that means that it will be intercepted before</p></div><div class="ulist"><ul><li><p><code>.to("bean:validateOrder")</code></p></li><li><p><code>.to("bean:processOrder")</code></p></li></ul></div><div class="paragraph"><p>So in this sample we intercept the Exchange twice.</p></div><div cla [...]
     &lt;intercept&gt;
diff --git a/manual/latest/inversion-of-control-with-smart-defaults.html b/manual/latest/inversion-of-control-with-smart-defaults.html
index 1303e89..1dd9bdc 100644
--- a/manual/latest/inversion-of-control-with-smart-defaults.html
+++ b/manual/latest/inversion-of-control-with-smart-defaults.html
@@ -1,2 +1,2 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/inversion-of-control-with-smart-defaults.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="nav [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/inversion-of-control-with-smart-defaults.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="nav [...]
 &lt;/camelContext&gt;</code></pre></div></div><div class="paragraph"><p>If you explicitly want to configure the context; a component, an endpoint or dependent objects explicitly in XML you can; but all the common defaults are wired together for you.</p></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js [...]
\ No newline at end of file
diff --git a/manual/latest/irc-room.html b/manual/latest/irc-room.html
index 09d1d75..9c201b0 100644
--- a/manual/latest/irc-room.html
+++ b/manual/latest/irc-room.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/irc-room.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/irc-room.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
\ No newline at end of file
diff --git a/manual/latest/java-dsl.html b/manual/latest/java-dsl.html
index 8440d1a..ce22dcb 100644
--- a/manual/latest/java-dsl.html
+++ b/manual/latest/java-dsl.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/java-dsl.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/java-dsl.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
 
 /**
  * A Camel Java DSL Router
diff --git a/manual/latest/jmx.html b/manual/latest/jmx.html
index 7affde1..641d7a5 100644
--- a/manual/latest/jmx.html
+++ b/manual/latest/jmx.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/jmx.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item nav- [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/jmx.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item nav- [...]
   &lt;jmxAgent id="agent" mbeanObjectDomainName="your.domain.name"/&gt;
     ...
 &lt;/camelContext&gt;</code></pre></div></div><div class="paragraph"><p>Spring configuration always takes precedence over system properties when they both present. It is true for all JMX related configurations.</p></div></div><div class="sect3"><h4 id="_disabling_jmx_instrumentation_agent_in_camel"><a class="anchor" href="#_disabling_jmx_instrumentation_agent_in_camel"></a>Disabling JMX instrumentation agent in Camel</h4><div class="paragraph"><p>You can disable JMX instrumentation agent [...]
diff --git a/manual/latest/jndi.html b/manual/latest/jndi.html
index 00c1309..afba789 100644
--- a/manual/latest/jndi.html
+++ b/manual/latest/jndi.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/jndi.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item nav [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/jndi.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item nav [...]
\ No newline at end of file
diff --git a/manual/latest/json.html b/manual/latest/json.html
index fadf3ed..6ab321f 100644
--- a/manual/latest/json.html
+++ b/manual/latest/json.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/json.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item nav [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/json.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item nav [...]
 from("activemq:My.Queue").
   marshal().json().
   to("mqseries:Another.Queue");</code></pre></div></div></div><div class="sect3"><h4 id="JSON-UsingJSONdataformatwiththeJacksonlibrary"><a class="anchor" href="#JSON-UsingJSONdataformatwiththeJacksonlibrary"></a>Using JSON data format with the Jackson library</h4><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">// lets turn Object messages into json then send to MQSeries
diff --git a/manual/latest/karaf.html b/manual/latest/karaf.html
index 3bcc0ba..5e3664e 100644
--- a/manual/latest/karaf.html
+++ b/manual/latest/karaf.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/karaf.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item na [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/karaf.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item na [...]
 [uninstalled] [2.8.0          ] camel                         repo-0
 [uninstalled] [2.8.0          ] camel-core                    repo-0
 [uninstalled] [2.8.0          ] camel-spring                  repo-0
diff --git a/manual/latest/languages.html b/manual/latest/languages.html
index 51ab3ef..7ad368a 100644
--- a/manual/latest/languages.html
+++ b/manual/latest/languages.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/languages.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-ite [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/languages.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-ite [...]
\ No newline at end of file
diff --git a/manual/latest/lifecycle.html b/manual/latest/lifecycle.html
index a8fc994..6d8a5fd 100644
--- a/manual/latest/lifecycle.html
+++ b/manual/latest/lifecycle.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/lifecycle.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-ite [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/lifecycle.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-ite [...]
\ No newline at end of file
diff --git a/manual/latest/loadBalance-eip.html b/manual/latest/loadBalance-eip.html
new file mode 100644
index 0000000..291f931
--- /dev/null
+++ b/manual/latest/loadBalance-eip.html
@@ -0,0 +1,100 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/loadBalance-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navb [...]
+    .loadBalance().roundRobin()
+        .to("mock:x")
+        .to("mock:y")
+        .to("mock:z")
+    .end() // end load balancer</code></pre></div></div><div class="paragraph"><p>And in XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"&gt;
+  &lt;route&gt;
+    &lt;from uri="direct:start"/&gt;
+    &lt;loadBalance&gt;
+        &lt;roundRobin/&gt;
+        &lt;to uri="mock:x"/&gt;
+        &lt;to uri="mock:y"/&gt;
+        &lt;to uri="mock:z"/&gt;
+    &lt;/loadBalance&gt;
+  &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div><div class="paragraph"><p>The above example loads balance requests from<strong>direct:start</strong>to one of the available<strong>mock endpoint</strong>instances, in this case using a round robin policy.</p></div></div><div class="sect2"><h3 id="_failover"><a class="anchor" href="#_failover"></a>Failover</h3><div class="paragraph"><p>The failover load balancer is capable of trying the next processor in case an Exchange failed with an excepti [...]
+    // here we will load balance if IOException was thrown
+    // any other kind of exception will result in the Exchange as failed
+    // to failover over any kind of exception we can just omit the exception
+    // in the failOver DSL
+    .loadBalance().failover(IOException.class)
+        .to("mock:x")
+        .to("mock:y")
+        .to("mock:z");</code></pre></div></div><div class="paragraph"><p>You can specify multiple exceptions to failover as the option is varargs, for instance:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">// enable maximum redelivery so failover can react
+errorHandler(defaultErrorHandler().maximumRedeliveries(5));
+
+from("direct:foo").
+    loadBalance().failover(IOException.class, MyOtherException.class)
+        .to("direct:a")
+        .to("direct:b");</code></pre></div></div><div class="paragraph"><p>And in XML:</p></div><div class="paragraph"><p>Failover can also be used from Spring DSL and you configure it as:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route errorHandlerRef="myErrorHandler"&gt;
+   &lt;from uri="direct:foo"/&gt;
+   &lt;loadBalance&gt;
+       &lt;failover&gt;
+           &lt;exception&gt;java.io.IOException&lt;/exception&gt;
+           &lt;exception&gt;com.mycompany.MyOtherException&lt;/exception&gt;
+       &lt;/failover&gt;
+       &lt;to uri="direct:a"/&gt;
+       &lt;to uri="direct:b"/&gt;
+   &lt;/loadBalance&gt;
+ &lt;/route&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_using_failover_in_round_robin_mode"><a class="anchor" href="#_using_failover_in_round_robin_mode"></a>Using failover in round robin mode</h3><div class="paragraph"><p>An example using Java DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start")
+    // Use failover load balancer in stateful round robin mode
+    // which mean it will failover immediately in case of an exception
+    // as it does NOT inherit error handler. It will also keep retrying as
+    // its configured to newer exhaust.
+    .loadBalance().failover(-1, false, true)
+        .to("direct:bad")
+        .to("direct:bad2")
+        .to("direct:good")
+        .to("direct:good2");</code></pre></div></div><div class="paragraph"><p>And the same example using Spring XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+    &lt;from uri="direct:start"/&gt;
+    &lt;loadBalance&gt;
+        &lt;!-- failover using stateful round robin,
+             which will keep retrying forever those 4 endpoints until success.
+             You can set the maximumFailoverAttempt to break out after X attempts --&gt;
+        &lt;failover roundRobin="true"/&gt;
+        &lt;to uri="direct:bad"/&gt;
+        &lt;to uri="direct:bad2"/&gt;
+        &lt;to uri="direct:good"/&gt;
+        &lt;to uri="direct:good2"/&gt;
+    &lt;/loadBalance&gt;
+&lt;/route&gt;</code></pre></div></div><div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><strong>Disabled inheritErrorHandler</strong>: You can configure<code>inheritErrorHandler=false</code>if you want to failover to the next endpoint as fast as possible. By disabling the Error Handler you ensure it does not<em>intervene</em>which allows the<code>failover</code>load balancer to handle failover asap. By also enabl [...]
+distributionRatio.add(4);
+distributionRatio.add(2);
+distributionRatio.add(1);
+
+// round-robin
+from("direct:start")
+    .loadBalance().weighted(true, distributionRatio)
+    .to("mock:x", "mock:y", "mock:z");
+
+//random
+from("direct:start")
+    .loadBalance().weighted(false, distributionRatio)
+    .to("mock:x", "mock:y", "mock:z");</code></pre></div></div><div class="paragraph"><p>And the same example using Spring XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="direct:start"/&gt;
+  &lt;loadBalance&gt;
+    &lt;weighted roundRobin="false"
+              distributionRatio="4 2 1"/&gt;
+      &lt;to uri="mock:x"/&gt;
+      &lt;to uri="mock:y"/&gt;
+      &lt;to uri="mock:z"/&gt;
+  &lt;/loadBalance&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>An example using Java DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">// round-robin
+from("direct:start")
+    .loadBalance().weighted(true, "4:2:1" distributionRatioDelimiter=":")
+    .to("mock:x", "mock:y", "mock:z");
+
+//random
+from("direct:start")
+    .loadBalance().weighted(false, "4,2,1")
+    .to("mock:x", "mock:y", "mock:z");</code></pre></div></div><div class="paragraph"><p>And the same example using Spring XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="direct:start"/&gt;
+  &lt;loadBalance&gt;
+    &lt;weighted roundRobin="false"
+              distributionRatio="4-2-1" distributionRatioDelimiter="-" /&gt;
+      &lt;to uri="mock:x"/&gt;
+      &lt;to uri="mock:y"/&gt;
+      &lt;to uri="mock:z"/&gt;
+  &lt;/loadBalance&gt;
+&lt;/route&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/log-eip.html b/manual/latest/log-eip.html
new file mode 100644
index 0000000..4fc6b4a
--- /dev/null
+++ b/manual/latest/log-eip.html
@@ -0,0 +1,42 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/log-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item  [...]
+    .log("Processing ${id}")
+    .to("bean:foo");</code></pre></div></div><div class="paragraph"><p>Which will construct a String message at runtime using the Simple language. The log message will by logged at INFO level using the route id as the log name. By default a route is named route-1, route-2 etc. But you can use the routeId("myCoolRoute") to set a route name of choice.</p></div><div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><stron [...]
+    .log(LoggingLevel.DEBUG, "Processing ${id}")
+    .to("bean:foo");</code></pre></div></div><div class="paragraph"><p>and to set a logger name</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start")
+    .log(LoggingLevel.DEBUG, "com.mycompany.MyCoolRoute", "Processing ${id}")
+    .to("bean:foo");</code></pre></div></div><div class="paragraph"><p>Since<strong>Camel 2.12.4/2.13.1</strong>the logger instance may be used as well:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start")
+    .log(LoggingLeven.DEBUG, org.slf4j.LoggerFactory.getLogger("com.mycompany.mylogger"), "Processing ${id}")
+    .to("bean:foo");</code></pre></div></div><div class="paragraph"><p>For example you can use this to log the file name being processed if you consume files.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("file://target/files")
+    .log(LoggingLevel.DEBUG, "Processing file ${file:name}")
+    .to("bean:foo");</code></pre></div></div><div class="paragraph"><p>In Spring DSL it is also easy to use log DSL as shown below:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route id="foo"&gt;
+    &lt;from uri="direct:foo"/&gt;
+    &lt;log message="Got ${body}"/&gt;
+    &lt;to uri="mock:foo"/&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>The log tag has attributes to set the message, loggingLevel and logName. For example:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route id="baz"&gt;
+    &lt;from uri="direct:baz"/&gt;
+    &lt;log message="Me Got ${body}" loggingLevel="FATAL" logName="com.mycompany.MyCoolRoute"/&gt;
+    &lt;to uri="mock:baz"/&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>Since Camel<strong>2.12.4/2.13.1</strong>it is possible to reference logger instance. For example:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;bean id="myLogger" class="org.slf4j.LoggerFactory" factory-method="getLogger" xmlns="http://www.springframework.org/schema/beans"&gt;
+    &lt;constructor-arg value="com.mycompany.mylogger" /&gt;
+&lt;/bean&gt;
+
+&lt;route id="moo" xmlns="http://camel.apache.org/schema/spring"&gt;
+    &lt;from uri="direct:moo"/&gt;
+    &lt;log message="Me Got ${body}" loggingLevel="INFO" loggerRef="myLogger"/&gt;
+    &lt;to uri="mock:baz"/&gt;
+&lt;/route&gt;</code></pre></div></div><div class="sect3"><h4 id="_using_logger_instance_from_the_registry"><a class="anchor" href="#_using_logger_instance_from_the_registry"></a>Using Logger instance from the Registry</h4><div class="paragraph"><p>As of<strong>Camel 2.12.4/2.13.1</strong>, if no logger name or logger instance is passed to log DSL, there is a Registry lookup performed to find single instance of org.slf4j.Logger. If such an instance is found, it is used instead of creatin [...]
+  &lt;properties&gt;
+    &lt;property key="CamelLogEipName" value="com.foo.myapp"/&gt;
+  &lt;/properties&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_using_slf4j_marker"><a class="anchor" href="#_using_slf4j_marker"></a>Using slf4j Marker</h3><div class="paragraph"><p><strong>Available as of Camel 2.9</strong></p></div><div class="paragraph"><p>You can specify a marker name in the DSL</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route id="baz"&gt;
+    &lt;from uri="direct:baz"/&gt;
+    &lt;log loggingLevel="FATAL" logName="com.mycompany.MyCoolRoute" marker="myMarker"
+         message="Me Got ${body}"/&gt;
+    &lt;to uri="mock:baz"/&gt;
+&lt;/route&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_using_log_dsl_in_osgi"><a class="anchor" href="#_using_log_dsl_in_osgi"></a>Using log DSL in OSGi</h3><div class="paragraph"><p><strong>Improvement as of Camel 2.12.4/2.13.1</strong></p></div><div class="paragraph"><p>When using log DSL inside OSGi (e.g., in Karaf), the underlying logging mechanisms are provided by PAX logging. It searches for a bundle which invokes org.slf4j.LoggerFactory.getLogger() method and ass [...]
+...
+&lt;/camelContext&gt;</code></pre></div></div><div class="paragraph"><p>You can also turn it on|off at route level. To enable mask in Java DSL at route level:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start").logMask()
+    .log("Processing ${id}")
+    .to("bean:foo");</code></pre></div></div><div class="paragraph"><p>And in XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">&lt;route logMask="true"&gt;
+...
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p><code>org.apache.camel.support.processor.DefaultMaskingFormatter</code>is used for the masking by default. If you want to use a custom masking formatter, put it into registry with the name<code>CamelCustomLogMask</code>. Note that the masking formatter must implement<code>org.apache.camel.spi.MaskingFormatter</code>.</p></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the An [...]
\ No newline at end of file
diff --git a/manual/latest/loop-eip.html b/manual/latest/loop-eip.html
new file mode 100644
index 0000000..e3b9fe4
--- /dev/null
+++ b/manual/latest/loop-eip.html
@@ -0,0 +1,59 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/loop-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
+    .loop(8)
+        .to("mock:result");</code></pre></div></div><div class="paragraph"><p>Use expression to determine loop count</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:b")
+    .loop(header("loop"))
+        .to("mock:result");</code></pre></div></div><div class="paragraph"><p>Use expression to determine loop count</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:c")
+    .loop(xpath("/hello/@times"))
+        .to("mock:result");</code></pre></div></div><div class="paragraph"><p>And examples in XML:</p></div><div class="paragraph"><p>Pass loop count as an argument</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="direct:a"/&gt;
+  &lt;loop&gt;
+    &lt;constant&gt;8&lt;/constant&gt;
+    &lt;to uri="mock:result"/&gt;
+  &lt;/loop&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>Use expression to determine loop count</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="direct:b"/&gt;
+  &lt;loop&gt;
+    &lt;header&gt;loop&lt;/header&gt;
+    &lt;to uri="mock:result"/&gt;
+  &lt;/loop&gt;
+&lt;/route&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_using_copy_mode"><a class="anchor" href="#_using_copy_mode"></a>Using copy mode</h3><div class="paragraph"><p><strong>Available as of Camel 2.8</strong><br></p></div><div class="paragraph"><p>Now suppose we send a message to "direct:start" endpoint containing the letter A.<br>The output of processing this route will be that, each "mock:loop" endpoint will receive "AB" as message.</p></div><div class="listingblock">< [...]
+    // instruct loop to use copy mode, which mean it will use a copy of the input exchange
+    // for each loop iteration, instead of keep using the same exchange all over
+    .loop(3).copy()
+        .transform(body().append("B"))
+        .to("mock:loop")
+    .end() // end loop
+    .to("mock:result");</code></pre></div></div><div class="paragraph"><p>However if we do<strong>not</strong>enable copy mode then "mock:loop" will receive "AB", "ABB", "ABBB", etc. messages.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start")
+    // by default loop will keep using the same exchange so on the 2nd and 3rd iteration its
+    // the same exchange that was previous used that are being looped all over
+    .loop(3)
+        .transform(body().append("B"))
+        .to("mock:loop")
+    .end() // end loop
+    .to("mock:result");</code></pre></div></div><div class="paragraph"><p>The equivalent example in XML DSL in copy mode is as follows:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="direct:start"/&gt;
+  &lt;!-- enable copy mode for loop eip --&gt;
+  &lt;loop copy="true"&gt;
+    &lt;constant&gt;3&lt;/constant&gt;
+    &lt;transform&gt;
+      &lt;simple&gt;${body}B&lt;/simple&gt;
+    &lt;/transform&gt;
+    &lt;to uri="mock:loop"/&gt;
+  &lt;/loop&gt;
+  &lt;to uri="mock:result"/&gt;
+&lt;/route&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_using_while_mode"><a class="anchor" href="#_using_while_mode"></a>Using while mode</h3><div class="paragraph"><p><strong>Available as of Camel 2.17</strong><br></p></div><div class="paragraph"><p>The loop can act like a while loop that loops until the expression evaluates to false or null.<br>For example the route below loops while the length of the message body is 5 or less characters. Notice that the DSL uses<stro [...]
+    .loopDoWhile(simple("${body.length} &lt;= 5"))
+        .to("mock:loop")
+        .transform(body().append("A"))
+    .end() // end loop
+    .to("mock:result");</code></pre></div></div><div class="paragraph"><p>And the same example in XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="direct:start"/&gt;
+  &lt;loop doWhile="true"&gt;
+    &lt;simple&gt;${body.length} &amp;lt;= 5&lt;/simple&gt;
+    &lt;to uri="mock:loop"/&gt;
+    &lt;transform&gt;
+      &lt;simple&gt;A${body}&lt;/simple&gt;
+    &lt;/transform&gt;
+  &lt;/loop&gt;
+  &lt;to uri="mock:result"/&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>Notice in XML that the while loop is turned on using the<strong>doWhile</strong>attribute.</p></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.init [...]
\ No newline at end of file
diff --git a/manual/latest/mailing-lists.html b/manual/latest/mailing-lists.html
index 5af892e..34fc01b 100644
--- a/manual/latest/mailing-lists.html
+++ b/manual/latest/mailing-lists.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/mailing-lists.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/mailing-lists.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar [...]
\ No newline at end of file
diff --git a/manual/latest/marshal-eip.html b/manual/latest/marshal-eip.html
new file mode 100644
index 0000000..7e3f924
--- /dev/null
+++ b/manual/latest/marshal-eip.html
@@ -0,0 +1,7 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/marshal-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-i [...]
+  unmarshal().serialization().
+  marshal("jaxb").
+  to("activemq:Some.Queue");</code></pre></div></div><div class="sect3"><h4 id="DataFormat-UsingSpringXML"><a class="anchor" href="#DataFormat-UsingSpringXML"></a>Using Spring XML</h4><div class="paragraph"><p>This example shows how to configure the data type just once and reuse it on multiple routes</p></div><div class="paragraph"><p>You can also define reusable data formats as Spring beans</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code  [...]
+  &lt;property name="prettyPrint" value="true"/&gt;
+  &lt;property name="contextPath" value="org.apache.camel.example"/&gt;
+&lt;/bean&gt;</code></pre></div></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/message-bus.html b/manual/latest/message-bus.html
new file mode 100644
index 0000000..0613b54
--- /dev/null
+++ b/manual/latest/message-bus.html
@@ -0,0 +1,7 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/message-bus.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-i [...]
+    .pollEnrich("file:inbox?fileName=data.txt")
+    .to("jms:queue:foo");</code></pre></div></div><div class="paragraph"><p>And in XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+    &lt;from uri="direct:start"/&gt;
+    &lt;pollEnrich uri="file:inbox?fileName=data.txt"/&gt;
+    &lt;to uri="jms:queue:foo"/&gt;
+&lt;/route&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/message-channel.html b/manual/latest/message-channel.html
new file mode 100644
index 0000000..46b88ad
--- /dev/null
+++ b/manual/latest/message-channel.html
@@ -0,0 +1,5 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/message-channel.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navb [...]
+    .to("jms:queue:foo")</code></pre></div></div><div class="paragraph"><p>And in XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="direct:foo"&gt;
+  &lt;to uri="jms:queue:foo"/&gt;
+&lt;/route&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_see_also"><a class="anchor" href="#_see_also"></a>See Also</h3><div class="paragraph"><p>For more details see</p></div><div class="ulist"><ul><li><p><a href="message.html">Message</a></p></li><li><p><a href="#messageEndpoint-eip">Message Endpoint</a></p></li></ul></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI [...]
\ No newline at end of file
diff --git a/manual/latest/message-endpoint.html b/manual/latest/message-endpoint.html
new file mode 100644
index 0000000..937a167
--- /dev/null
+++ b/manual/latest/message-endpoint.html
@@ -0,0 +1 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/message-endpoint.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="nav [...]
\ No newline at end of file
diff --git a/manual/latest/message-router.html b/manual/latest/message-router.html
new file mode 100644
index 0000000..7e43d66
--- /dev/null
+++ b/manual/latest/message-router.html
@@ -0,0 +1,29 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/message-router.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navba [...]
+    public void configure() {
+        from("direct:a")
+            .choice()
+                .when(simple("${header.foo} == 'bar'"))
+                    .to("direct:b")
+                .when(simple("${header.foo} == 'cheese'"))
+                    .to("direct:c")
+                .otherwise()
+                    .to("direct:d");
+    }
+};</code></pre></div></div><div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content">See<a href="why-can-i-not-use-when-or-otherwise-in-a-java-camel-route.html">Why can I not use when or otherwise in a Java Camel route</a>if you have problems with the Java DSL, accepting using<code>when</code>or<code>otherwise</code>.</td></tr></table></div><div class="paragraph"><p>And the same example using XML:</p></div><div class="lis [...]
+    &lt;route&gt;
+        &lt;from uri="direct:a"/&gt;
+        &lt;choice&gt;
+            &lt;when&gt;
+                &lt;simple&gt;${header.foo} == 'bar'&lt;/simple&gt;
+                &lt;to uri="direct:b"/&gt;
+            &lt;/when&gt;
+            &lt;when&gt;
+                &lt;simple&gt;${header.foo} == 'cheese'&lt;/simple&gt;
+                &lt;to uri="direct:c"/&gt;
+            &lt;/when&gt;
+            &lt;otherwise&gt;
+                &lt;to uri="direct:d"/&gt;
+            &lt;/otherwise&gt;
+        &lt;/choice&gt;
+    &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div><div class="sect2"><h3 id="MessageRouter-Choicewithoutotherwise"><a class="anchor" href="#MessageRouter-Choicewithoutotherwise"></a>Choice without otherwise</h3><div class="paragraph"><p>If you use a<code>choice</code>without adding an<code>otherwise</code>, any unmatched exchanges will be dropped by default.</p></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p>< [...]
\ No newline at end of file
diff --git a/manual/latest/message-translator.html b/manual/latest/message-translator.html
new file mode 100644
index 0000000..c1f39fb
--- /dev/null
+++ b/manual/latest/message-translator.html
@@ -0,0 +1,10 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/message-translator.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="n [...]
+  .bean("myTransformerBean", "myMethodName")
+  .to("mqseries:AnotherQueue");</code></pre></div></div><div class="paragraph"><p>Where the "myTransformerBean" would be defined in a Spring XML file or defined in JNDI etc. You can omit the method name parameter from beanRef() and the<a href="bean-integration.html">Bean Integration</a>will try to deduce the method to invoke from the message exchange.</p></div><div class="paragraph"><p>or you can add your own explicit<a href="processor.html">Processor</a>to do the transformation</p></div [...]
+  &lt;from uri="activemq:SomeQueue"/&gt;
+  &lt;bean ref="myTransformerBean" method="myMethodName"/&gt;
+  &lt;to uri="mqseries:AnotherQueue"/&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>You can also use<a href="templating.html">Templating</a>to consume a message from one destination, transform it with something like<a href="#velocity-component">Velocity</a>or<a href="#velocity-component">XQuery</a>and then send it on to another destination. For example using InOnly (one way messaging)</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" [...]
+    .to("velocity:com/acme/MyResponse.vm")
+    .to("activemq:Another.Queue");</code></pre></div></div><div class="paragraph"><p>If you want to use InOut (request-reply) semantics to process requests on the<strong>My.Queue</strong>queue on<a href="activemq.html">ActiveMQ</a>with a template generated response, then sending responses back to the JMSReplyTo Destination you could use this.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from(" [...]
+    .to("velocity:com/acme/MyResponse.vm");</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/message.html b/manual/latest/message.html
new file mode 100644
index 0000000..d8b0c61
--- /dev/null
+++ b/manual/latest/message.html
@@ -0,0 +1,9 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/message.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item  [...]
+getContext().createProducerTemplate().sendBody("direct:startInOnly", "Hello World");
+
+//InOut
+Object result = getContext().createProducerTemplate().requestBody("direct:startInOut", "Hello World");</code></pre></div></div><div class="paragraph"><p>And an example with routes:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:startInOnly")
+  .inOnly("bean:process");
+
+from("direct:startInOut")
+  .inOut("bean:process");</code></pre></div></div><div class="paragraph"><p>See<a href="https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/to-eip.adoc">to-eip with pattern</a></p></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/hig [...]
\ No newline at end of file
diff --git a/manual/latest/multicast-eip.html b/manual/latest/multicast-eip.html
new file mode 100644
index 0000000..429f62d
--- /dev/null
+++ b/manual/latest/multicast-eip.html
@@ -0,0 +1,39 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/multicast-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar [...]
+  .multicast(new MyAggregationStrategy())
+  .parallelProcessing().timeout(500).to("direct:a", "direct:b", "direct:c")
+  .end()
+  .to("mock:result");</code></pre></div></div></div><div class="sect2"><h3 id="_stop_processing_in_case_of_exception"><a class="anchor" href="#_stop_processing_in_case_of_exception"></a>Stop processing in case of exception</h3><div class="paragraph"><p>The mutlicast EIP will by default continue to process the entire exchange even in case one of the multicasted messages will thrown an exception during routing. For example if you want to multicast to 3 destinations and the 2nd destination  [...]
+        .multicast()
+            .stopOnException().to("direct:foo", "direct:bar", "direct:baz")
+        .end()
+        .to("mock:result");
+
+        from("direct:foo").to("mock:foo");
+
+        from("direct:bar").process(new MyProcessor()).to("mock:bar");
+
+        from("direct:baz").to("mock:baz");</code></pre></div></div><div class="paragraph"><p>And using XML DSL you specify it as follows:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">        &lt;route&gt;
+            &lt;from uri="direct:start"/&gt;
+            &lt;multicast stopOnException="true"&gt;
+                &lt;to uri="direct:foo"/&gt;
+                &lt;to uri="direct:bar"/&gt;
+                &lt;to uri="direct:baz"/&gt;
+            &lt;/multicast&gt;
+            &lt;to uri="mock:result"/&gt;
+        &lt;/route&gt;
+
+        &lt;route&gt;
+            &lt;from uri="direct:foo"/&gt;
+            &lt;to uri="mock:foo"/&gt;
+        &lt;/route&gt;
+
+        &lt;route&gt;
+            &lt;from uri="direct:bar"/&gt;
+            &lt;process ref="myProcessor"/&gt;
+            &lt;to uri="mock:bar"/&gt;
+        &lt;/route&gt;
+
+        &lt;route&gt;
+            &lt;from uri="direct:baz"/&gt;
+            &lt;to uri="mock:baz"/&gt;
+        &lt;/route&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_using_onprepare_to_execute_custom_logic_when_preparing_messages"><a class="anchor" href="#_using_onprepare_to_execute_custom_logic_when_preparing_messages"></a>Using onPrepare to execute custom logic when preparing messages</h3><div class="paragraph"><p>The multicast EIP will copy the source exchange and multicast each copy. However the copy is a shallow copy, so in case you have mutateable message bodies, t [...]
\ No newline at end of file
diff --git a/manual/latest/onFallback-eip.html b/manual/latest/onFallback-eip.html
new file mode 100644
index 0000000..9f73925
--- /dev/null
+++ b/manual/latest/onFallback-eip.html
@@ -0,0 +1,45 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/onFallback-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navba [...]
+    .hystrix()
+        .hystrixConfiguration()
+             .executionTimeoutInMilliseconds(5000)
+             .circuitBreakerSleepWindowInMilliseconds(10000)
+        .end() // end Hystrix configuration
+        .to("http://fooservice.com/slow")
+    .onFallback()
+        .transform().constant("Fallback message")
+    .end()
+    .to("mock:result");</code></pre></div></div><div class="paragraph"><p>And in XML DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+  &lt;route&gt;
+    &lt;from uri="direct:start"/&gt;
+    &lt;hystrix&gt;
+      &lt;hystrixConfiguration executionTimeoutInMilliseconds="5000"
+                            circuitBreakerSleepWindowInMilliseconds="10000"/&gt;
+      &lt;to uri="http://fooservice.com/slow"/&gt;
+      &lt;onFallback&gt;
+        &lt;transform&gt;
+          &lt;constant&gt;Fallback message&lt;/constant&gt;
+        &lt;/transform&gt;
+      &lt;/onFallback&gt;
+    &lt;/hystrix&gt;
+    &lt;to uri="mock:result"/&gt;
+  &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div><div class="paragraph"><p>You can also configure Hystrix globally and then refer to that configuration:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+
+  &lt;!-- a shared config which you can refer to from all your Hystrix EIPs --&gt;
+  &lt;hystrixConfiguration id="sharedConfig"
+                        executionTimeoutInMilliseconds="5000"
+                        circuitBreakerSleepWindowInMilliseconds="10000"/&gt;
+
+  &lt;route&gt;
+    &lt;from uri="direct:start"/&gt;
+    &lt;hystrix hystrixConfigurationRef="sharedConfig"&gt;
+      &lt;to uri="http://fooservice.com/slow"/&gt;
+      &lt;onFallback&gt;
+        &lt;transform&gt;
+          &lt;constant&gt;Fallback message&lt;/constant&gt;
+        &lt;/transform&gt;
+      &lt;/onFallback&gt;
+    &lt;/hystrix&gt;
+    &lt;to uri="mock:result"/&gt;
+  &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/oncompletion.html b/manual/latest/oncompletion.html
index b5a7423..583c86a 100644
--- a/manual/latest/oncompletion.html
+++ b/manual/latest/oncompletion.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/oncompletion.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar- [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/oncompletion.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar- [...]
     .onCompletion()
         // this route is only invoked when the original route is complete as a kind
         // of completion callback
diff --git a/manual/latest/otherwise-eip.html b/manual/latest/otherwise-eip.html
new file mode 100644
index 0000000..aa0b88e
--- /dev/null
+++ b/manual/latest/otherwise-eip.html
@@ -0,0 +1,29 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/otherwise-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar [...]
+    public void configure() {
+        from("direct:a")
+            .choice()
+                .when(simple("${header.foo} == 'bar'"))
+                    .to("direct:b")
+                .when(simple("${header.foo} == 'cheese'"))
+                    .to("direct:c")
+                .otherwise()
+                    .to("direct:d");
+    }
+};</code></pre></div></div><div class="paragraph"><p>And the same example using XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+    &lt;route&gt;
+        &lt;from uri="direct:a"/&gt;
+        &lt;choice&gt;
+            &lt;when&gt;
+                &lt;simple&gt;${header.foo} == 'bar'&lt;/simple&gt;
+                &lt;to uri="direct:b"/&gt;
+            &lt;/when&gt;
+            &lt;when&gt;
+                &lt;simple&gt;${header.foo} == 'cheese'&lt;/simple&gt;
+                &lt;to uri="direct:c"/&gt;
+            &lt;/when&gt;
+            &lt;otherwise&gt;
+                &lt;to uri="direct:d"/&gt;
+            &lt;/otherwise&gt;
+        &lt;/choice&gt;
+    &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/pipeline-eip.html b/manual/latest/pipeline-eip.html
new file mode 100644
index 0000000..ff4075d
--- /dev/null
+++ b/manual/latest/pipeline-eip.html
@@ -0,0 +1,33 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/pipeline-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar- [...]
+    .pipeline()
+      .bean("foo")
+      .bean("bar")
+      .to("acitvemq:OutputQueueu");</code></pre></div></div><div class="paragraph"><p>The pipeline is the default mode, which can be omitted, and therefore you almost often write as:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("activemq:SomeQueue")
+    .bean("foo")
+    .bean("bar")
+    .to("acitvemq:OutputQueueu");</code></pre></div></div><div class="paragraph"><p>In XML you can use the<code>&lt;pipeline&gt;</code>element</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="activemq:SomeQueue"/&gt;
+  &lt;pipeline&gt;
+    &lt;bean ref="foo"/&gt;
+    &lt;bean ref="bar"/&gt;
+    &lt;to uri="activemq:OutputQueue"/&gt;
+  &lt;/pipeline&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>In the above the pipeline element is actually unnecessary, you could use this:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="activemq:SomeQueue"/&gt;
+  &lt;bean ref="foo"/&gt;
+  &lt;bean ref="bar"/&gt;
+  &lt;to uri="activemq:OutputQueue"/&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>Its just a bit more explicit. However if you wish to use<code>&lt;multicast/&gt;</code>to avoid a pipeline - to send the same message into multiple pipelines - then the<code>&lt;pipeline&gt;</code>element comes into its own.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="activemq:SomeQueue"/&gt;
+  &lt;multicast&gt;
+    &lt;pipeline&gt;
+      &lt;bean ref="something"/&gt;
+      &lt;to uri="log:Something"/&gt;
+    &lt;/pipeline&gt;
+    &lt;pipeline&gt;
+      &lt;bean ref="foo"/&gt;
+      &lt;bean ref="bar"/&gt;
+      &lt;to uri="activemq:OutputQueue"/&gt;
+    &lt;/pipeline&gt;
+  &lt;/multicast&gt;
+&lt;/route&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/point-to-point-channel.html b/manual/latest/point-to-point-channel.html
new file mode 100644
index 0000000..134b244
--- /dev/null
+++ b/manual/latest/point-to-point-channel.html
@@ -0,0 +1,5 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/point-to-point-channel.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a clas [...]
+    .to("jms:queue:foo");</code></pre></div></div><div class="paragraph"><p>And in XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+    &lt;from uri="direct:start"/&gt;
+    &lt;to uri="jms:queue:foo"/&gt;
+&lt;/route&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/pollEnrich-eip.html b/manual/latest/pollEnrich-eip.html
new file mode 100644
index 0000000..80a9f0c
--- /dev/null
+++ b/manual/latest/pollEnrich-eip.html
@@ -0,0 +1,31 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/pollEnrich-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navba [...]
+  .pollEnrich("file:inbox?fileName=data.txt")
+  .to("direct:result");</code></pre></div></div><div class="paragraph"><p>And in XML DSL (Camel 2.15 or older) you do:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="direct:start"/&gt;
+  &lt;pollEnrich uri="file:inbox?fileName=data.txt"/&gt;
+  &lt;to uri="direct:result"/&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>And in XML DSL (Camel 2.16 or newer) you do:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="direct:start"/&gt;
+  &lt;pollEnrich&gt;
+    &lt;constant&gt;file:inbox?fileName=data.txt&lt;/constant&gt;
+  &lt;/pollEnrich&gt;
+  &lt;to uri="direct:result"/&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>If there is no file then the message is empty. We can use a timeout to either wait (potentially forever) until a file exists, or use a timeout to wait a certain period.</p></div><div class="paragraph"><p>For example to wait up to 5 seconds you can do (Camel 2.15 or older):</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="direct:start"/&gt;
+  &lt;pollEnrich uri="file:inbox?fileName=data.txt" timeout="5000"/&gt;
+  &lt;to uri="direct:result"/&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>For example to wait up to 5 seconds you can do (Camel 2.16 or newer):</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="direct:start"/&gt;
+  &lt;pollEnrich timeout="5000"&gt;
+    &lt;constant&gt;file:inbox?fileName=data.txt&lt;/constant&gt;
+  &lt;/pollEnrich&gt;
+  &lt;to uri="direct:result"/&gt;
+&lt;/route&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_using_dynamic_uris"><a class="anchor" href="#_using_dynamic_uris"></a>Using dynamic uris</h3><div class="paragraph"><p><strong>Available as of Camel 2.16</strong></p></div><div class="paragraph"><p>From Camel 2.16 onwards<code>enrich</code>and<code>pollEnrich</code>supports using dynamic uris computed based on information from the current Exchange. For example to<code>pollEnrich</code>from an endpoint that uses a he [...]
+  .pollEnrich().simple("seda:${header.name}")
+  .to("direct:result");</code></pre></div></div><div class="paragraph"><p>And in XML DSL</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="direct:start"/&gt;
+  &lt;pollEnrich&gt;
+    &lt;simple&gt;seda:${header.name}&lt;/simple&gt;
+  &lt;/pollEnrich&gt;
+  &lt;to uri="direct:result"/&gt;
+&lt;/route&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/predicate.html b/manual/latest/predicate.html
index b148a31..5308ccb 100644
--- a/manual/latest/predicate.html
+++ b/manual/latest/predicate.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/predicate.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-ite [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/predicate.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-ite [...]
    .choice()
       .when(header("type").isEqualTo("widget")).to("bean:widgetOrder")
       .when(header("type").isEqualTo("wombat")).to("bean:wombatOrder")
diff --git a/manual/latest/process-eip.html b/manual/latest/process-eip.html
new file mode 100644
index 0000000..5711014
--- /dev/null
+++ b/manual/latest/process-eip.html
@@ -0,0 +1,13 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/process-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-i [...]
+  public void process(Exchange exchange) throws Exception {
+    // do something...
+  }
+}</code></pre></div></div><div class="paragraph"><p>You can then easily use this inside a route by declaring the bean in Spring, say via the XML (or registering it in JNDI if that is your<a href="https://github.com/apache/camel/blob/master/docs/user-manual/en/registry.adoc">Registry</a>)</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;bean id="myProcessor" class="com.acme.MyProcessor"/&gt;</cod [...]
+...
+from("activemq:myQueue").process(myProcessor);</code></pre></div></div><div class="paragraph"><p>If you need to lookup the processor in the<a href="https://github.com/apache/camel/blob/master/docs/user-manual/en/registry.adoc">Registry</a>then you should use the<strong>processRef</strong>DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("activemq:myQueue").processRef("myProcessor");</code [...]
+        public void process(Exchange exchange) throws Exception {
+            String payload = exchange.getIn().getBody(String.class);
+            // do something with the payload and/or exchange here
+           exchange.getIn().setBody("Changed body");
+       }
+    }).to("activemq:myOtherQueue");</code></pre></div></div><div class="paragraph"><p>This is usable for quickly whirling up some code. If the code in the inner class gets a bit more complicated it is of course advised to refactor it into a separate class.</p></div></div><div class="sect2"><h3 id="_turning_your_processor_into_a_full_component"><a class="anchor" href="#_turning_your_processor_into_a_full_component"></a>Turning your processor into a full Component</h3><div class="paragraph [...]
\ No newline at end of file
diff --git a/manual/latest/processor.html b/manual/latest/processor.html
index 6192e9a..50a0571 100644
--- a/manual/latest/processor.html
+++ b/manual/latest/processor.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/processor.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-ite [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/processor.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-ite [...]
     public void process(Exchange exchange) throws Exception {
         // do something...
     }
diff --git a/manual/latest/producertemplate.html b/manual/latest/producertemplate.html
index a924da7..6f742e5 100644
--- a/manual/latest/producertemplate.html
+++ b/manual/latest/producertemplate.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/producertemplate.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="nav [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/producertemplate.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="nav [...]
 
 // send to default endpoint
 template.sendBody("&lt;hello&gt;world!&lt;/hello&gt;");
diff --git a/manual/latest/publish-subscribe-channel.html b/manual/latest/publish-subscribe-channel.html
new file mode 100644
index 0000000..fe12172
--- /dev/null
+++ b/manual/latest/publish-subscribe-channel.html
@@ -0,0 +1,15 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/publish-subscribe-channel.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a c [...]
+    .multicast()
+      .to("direct:b")
+      .to("direct:c")
+      .to("direct:d")
+    .end() // end multicast</code></pre></div></div><div class="paragraph"><p>And in XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+    &lt;route&gt;
+        &lt;from uri="direct:a"/&gt;
+        &lt;multicast&gt;
+            &lt;to uri="direct:b"/&gt;
+            &lt;to uri="direct:c"/&gt;
+            &lt;to uri="direct:d"/&gt;
+        &lt;/multicast&gt;
+    &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/random-eip.html b/manual/latest/random-eip.html
new file mode 100644
index 0000000..83c693e
--- /dev/null
+++ b/manual/latest/random-eip.html
@@ -0,0 +1 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/random-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-it [...]
\ No newline at end of file
diff --git a/manual/latest/recipientList-eip.html b/manual/latest/recipientList-eip.html
new file mode 100644
index 0000000..0bc2bf5
--- /dev/null
+++ b/manual/latest/recipientList-eip.html
@@ -0,0 +1,98 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/recipientList-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="na [...]
+    .recipientList("direct:b,direct:c,direct:d");</code></pre></div></div><div class="paragraph"><p>And in XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+    &lt;route&gt;
+        &lt;from uri="jms:queue:a"/&gt;
+        &lt;recipientList&gt;
+            &lt;constant&gt;direct:b,direct:c,direct:d&lt;/constant&gt;
+        &lt;/recipientList&gt;
+    &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_dynamic_recipient_list"><a class="anchor" href="#_dynamic_recipient_list"></a>Dynamic Recipient List</h3><div class="paragraph"><p>Usually one of the main reasons for using the Recipient List pattern is that the list of recipients is dynamic and calculated at runtime. The following example demonstrates how to create a dynamic recipient list using an Expression (which in this case extracts a named header value [...]
+    .recipientList(header("foo"));</code></pre></div></div></div><div class="sect2"><h3 id="_iteratable_value"><a class="anchor" href="#_iteratable_value"></a>Iteratable value</h3><div class="paragraph"><p>The dynamic list of recipients that are defined in the header must be iterable such as:</p></div><div class="ulist"><ul><li><p><code>java.util.Collection</code></p></li><li><p><code>java.util.Iterator</code></p></li><li><p>arrays</p></li><li><p><code>org.w3c.dom.NodeList</code></p></li [...]
+  &lt;from uri="direct:a"/&gt;
+  &lt;!-- use semi-colon as a delimiter for String based values --&gt;
+  &lt;recipientList delimiter=";"&gt;
+    &lt;header&gt;myHeader&lt;/header&gt;
+  &lt;/recipientList&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>So if<strong>myHeader</strong>contains a<code>String</code>with the value<code>"activemq:queue:foo;activemq:topic:hello ; log:bar"</code>then Camel will split the<code>String</code>using the delimiter given in the XML that was comma, resulting into 3 endpoints to send to. You can use spaces between the endpoints as Camel will trim the value when it lookup the endpoint to send to.</p></div><div class="paragraph"><p>And in Ja [...]
+    .recipientList(header("myHeader"), ";");</code></pre></div></div></div><div class="sect2"><h3 id="_sending_to_multiple_recipients_in_parallel"><a class="anchor" href="#_sending_to_multiple_recipients_in_parallel"></a>Sending to multiple recipients in parallel</h3><div class="paragraph"><p>The Recipient List now supports<code>parallelProcessing</code>that for example Splitter also supports. You can use it to use a thread pool to have concurrent tasks sending the Exchange to multiple r [...]
+    .recipientList(header("myHeader")).parallelProcessing();</code></pre></div></div><div class="paragraph"><p>And in XML it is an attribute on the recipient list tag.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+    &lt;from uri="direct:a"/&gt;
+    &lt;recipientList parallelProcessing="true"&gt;
+        &lt;header&gt;myHeader&lt;/header&gt;
+    &lt;/recipientList&gt;
+&lt;/route&gt;</code></pre></div></div><div class="sect3"><h4 id="_using_custom_thread_pool"><a class="anchor" href="#_using_custom_thread_pool"></a>Using custom thread pool</h4><div class="paragraph"><p>A thread pool is only used for<code>parallelProcessing</code>. You supply your own custom thread pool via the<code>ExecutorServiceStrategy</code>(see Camel&#8217;s Threading Model), the same way you would do it for the<code>aggregationStrategy</code>. By default Camel uses a thread pool  [...]
+    .recipientList(header("myHeader")).stopOnException();</code></pre></div></div><div class="paragraph"><p>And in XML its an attribute on the recipient list tag.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+    &lt;from uri="direct:a"/&gt;
+    &lt;recipientList stopOnException="true"&gt;
+        &lt;header&gt;myHeader&lt;/header&gt;
+    &lt;/recipientList&gt;
+&lt;/route&gt;</code></pre></div></div><div class="admonitionblock note"><table><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content">You can combine parallelProcessing and stopOnException and have them both true.</td></tr></table></div></div><div class="sect2"><h3 id="_ignore_invalid_endpoints"><a class="anchor" href="#_ignore_invalid_endpoints"></a>Ignore invalid endpoints</h3><div class="paragraph"><p>The Recipient List now supports<code>ignoreInvalidE [...]
+    .recipientList(header("myHeader")).ignoreInvalidEndpoints();</code></pre></div></div><div class="paragraph"><p>And in XML it is an attribute on the recipient list tag.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+    &lt;from uri="direct:a"/&gt;
+    &lt;recipientList ignoreInvalidEndpoints="true"&gt;
+        &lt;header&gt;myHeader&lt;/header&gt;
+    &lt;/recipientList&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>Then let us say the<code>myHeader</code>contains the following two endpoints<code>direct:foo,xxx:bar</code>. The first endpoint is valid and works. However the second one is invalid and will just be ignored. Camel logs at DEBUG level about it, so you can see why the endpoint was invalid.</p></div></div><div class="sect2"><h3 id="_using_custom_aggregationstrategy"><a class="anchor" href="#_using_custom_aggregationstrategy">< [...]
+    .recipientList(header("myHeader")).aggregationStrategy(new MyOwnAggregationStrategy())
+    .to("direct:b");</code></pre></div></div><div class="paragraph"><p>And in XML it is again an attribute on the recipient list tag.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+    &lt;from uri="direct:a"/&gt;
+    &lt;recipientList strategyRef="myStrategy"&gt;
+        &lt;header&gt;myHeader&lt;/header&gt;
+    &lt;/recipientList&gt;
+    &lt;to uri="direct:b"/&gt;
+&lt;/route&gt;
+
+&lt;!-- bean with the custom aggregation strategy --&gt;
+&lt;bean id="myStrategy" class="com.mycompany.MyOwnAggregationStrategy"/&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_knowing_which_endpoint_when_using_custom_aggregationstrategy"><a class="anchor" href="#_knowing_which_endpoint_when_using_custom_aggregationstrategy"></a>Knowing which endpoint when using custom AggregationStrategy</h3><div class="paragraph"><p><strong>Available as of Camel 2.12</strong></p></div><div class="paragraph"><p>When using a custom<code>Aggregat [...]
+public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
+    String uri = newExchange.getProperty(Exchange.RECIPIENT_LIST_ENDPOINT, String.class);
+}</code></pre></div></div></div><div class="sect2"><h3 id="_using_method_call_as_recipient_list"><a class="anchor" href="#_using_method_call_as_recipient_list"></a>Using method call as recipient list</h3><div class="paragraph"><p>You can use a Bean to provide the recipients, for example:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("activemq:queue:test")
+    .recipientList().method(MessageRouter.class, "routeTo");</code></pre></div></div><div class="paragraph"><p>And then<code>MessageRouter</code>bean:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public class MessageRouter {
+
+    public String routeTo() {
+        String queueName = "activemq:queue:test2";
+        return queueName;
+    }
+}</code></pre></div></div><div class="admonitionblock caution"><table><tr><td class="icon"><i class="fa icon-caution" title="Caution"></i></td><td class="content">When you use a Bean then do<strong>not</strong>use the<code>@RecipientList</code>annotation as this will in fact add yet another recipient list, so you end up having two. Do<strong>not</strong>do the following:</td></tr></table></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class=" [...]
+
+    // do not use recipientList in the Camel route calling a bean with the @RecipientList annotation!
+    @RecipientList
+    public String routeTo() {
+        String queueName = "activemq:queue:test2";
+        return queueName;
+    }
+}</code></pre></div></div><div class="paragraph"><p>You should only use the snippet above (using<code>@RecipientList</code>) if you just route to a Bean which you then want to act as a recipient list. So the original route can be changed to:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("activemq:queue:test").bean(MessageRouter.class, "routeTo");</code></pre></div></div><div class="paragra [...]
+    .multicast(new AggregationStrategy() {
+            public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
+                if (oldExchange == null) {
+                    return newExchange;
+                }
+
+                String body = oldExchange.getIn().getBody(String.class);
+                oldExchange.getIn().setBody(body + newExchange.getIn().getBody(String.class));
+                return oldExchange;
+            }
+        })
+        .parallelProcessing().timeout(250).to("direct:a", "direct:b", "direct:c")
+    // use end to indicate end of multicast route
+    .end()
+    .to("mock:result");
+
+from("direct:a").delay(1000).to("mock:A").setBody(constant("A"));
+
+from("direct:b").to("mock:B").setBody(constant("B"));
+
+from("direct:c").to("mock:C").setBody(constant("C"));</code></pre></div></div><div class="admonitionblock note"><table><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content"><div class="title">Timeout in other EIPs</div><div class="paragraph"><p>This timeout feature is also supported by Splitter and both multicast and recipientList.</p></div></td></tr></table></div><div class="paragraph"><p>By default if a timeout occurs the<code>AggregationStrategy</code> [...]
+
+    /**
+     * A timeout occurred
+     *
+     * @param oldExchange  the oldest exchange (is &lt;tt&gt;null&lt;/tt&gt; on first aggregation as we only have the new exchange)
+     * @param index        the index
+     * @param total        the total
+     * @param timeout      the timeout value in millis
+     */
+    void timeout(Exchange oldExchange, int index, int total, long timeout);</code></pre></div></div><div class="paragraph"><p>This allows you to deal with the timeout in the<code>AggregationStrategy</code>if you really need to.</p></div><div class="admonitionblock note"><table><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content"><div class="title">Timeout is total</div><div class="paragraph"><p>The timeout is total, which means that after X time, Camel w [...]
+    // the exchange pattern is InOnly initially when using a file route
+    .recipientList().constant("activemq:queue:inbox?exchangePattern=InOut")
+    .to("file:outbox");</code></pre></div></div><div class="admonitionblock warning"><table><tr><td class="icon"><i class="fa icon-warning" title="Warning"></i></td><td class="content"><div class="paragraph"><p>The recipient list will not alter the original exchange pattern. So in the example above the exchange pattern will still be<code>InOnly</code>when the message is routed to the<code>file:outbox endpoint</code>. If you want to alter the exchange pattern permanently then use the<code [...]
\ No newline at end of file
diff --git a/manual/latest/ref-language.html b/manual/latest/ref-language.html
new file mode 100644
index 0000000..d0082e9
--- /dev/null
+++ b/manual/latest/ref-language.html
@@ -0,0 +1,9 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/ref-language.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar- [...]
+
+&lt;route&gt;
+  &lt;from uri="seda:a"/&gt;
+  &lt;split&gt;
+    &lt;ref&gt;myExpression&lt;/ref&gt;
+    &lt;to uri="mock:b"/&gt;
+  &lt;/split&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>in this case, the Message coming from the seda:a Endpoint will be splitted using a custom Expression which has the id<code>myExpression</code>in the Registry.</p></div><div class="paragraph"><p>And the same example using Java DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("seda:a").split().ref("myExpression").to("seda:b") [...]
\ No newline at end of file
diff --git a/manual/latest/registry.html b/manual/latest/registry.html
index 2b4fea8..58343a8 100644
--- a/manual/latest/registry.html
+++ b/manual/latest/registry.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/registry.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/registry.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
\ No newline at end of file
diff --git a/manual/latest/release-guide.html b/manual/latest/release-guide.html
index 3f2f27c..8a7e8c0 100644
--- a/manual/latest/release-guide.html
+++ b/manual/latest/release-guide.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/release-guide.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/release-guide.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar [...]
   ...
   &lt;servers&gt;
     &lt;!-- Per http://maven.apache.org/developers/committer-settings.html --&gt;
diff --git a/manual/latest/removeHeader-eip.html b/manual/latest/removeHeader-eip.html
new file mode 100644
index 0000000..fed8115
--- /dev/null
+++ b/manual/latest/removeHeader-eip.html
@@ -0,0 +1,9 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/removeHeader-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="nav [...]
+  .removeHeader("myHeader")
+  .to("mock:result");</code></pre></div></div><div class="sect3"><h4 id="_spring_dsl"><a class="anchor" href="#_spring_dsl"></a>Spring DSL</h4><div class="paragraph"><p>The sample below demonstrates the delay in Spring DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="seda:b"/&gt;
+  &lt;removeHeader&gt;
+     &lt;constant&gt;myHeader&lt;/constant&gt;
+  &lt;removeHeader/&gt;
+  &lt;to uri="mock:result"/&gt;
+&lt;/route&gt;</code></pre></div></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/removeHeaders-eip.html b/manual/latest/removeHeaders-eip.html
new file mode 100644
index 0000000..38441a6
--- /dev/null
+++ b/manual/latest/removeHeaders-eip.html
@@ -0,0 +1,3 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/removeHeaders-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="na [...]
+  .removeHeaders(map)
+  .to("mock:result");</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/removeProperties-eip.html b/manual/latest/removeProperties-eip.html
new file mode 100644
index 0000000..3fd92c7
--- /dev/null
+++ b/manual/latest/removeProperties-eip.html
@@ -0,0 +1,13 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/removeProperties-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class= [...]
+    public void configure() {
+        from("direct:a")
+            .removeProperties("myProperty", "myProperty1")
+            .to("direct:b");
+    }
+};</code></pre></div></div><div class="paragraph"><p>And the same example using XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+    &lt;route&gt;
+        &lt;from uri="direct:a"/&gt;
+           &lt;removeProperties pattern="myProperty*"/&gt;
+        &lt;to uri="direct:b"/&gt;
+    &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/removeProperty-eip.html b/manual/latest/removeProperty-eip.html
new file mode 100644
index 0000000..a1f6add
--- /dev/null
+++ b/manual/latest/removeProperty-eip.html
@@ -0,0 +1,13 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/removeProperty-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="n [...]
+    public void configure() {
+        from("direct:a")
+            .removeProperty("myProperty")
+            .to("direct:b");
+    }
+};</code></pre></div></div><div class="paragraph"><p>And the same example using XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+    &lt;route&gt;
+        &lt;from uri="direct:a"/&gt;
+           &lt;removeProperty propertyName="myProperty"/&gt;
+        &lt;to uri="direct:b"/&gt;
+    &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/requestReply-eip.html b/manual/latest/requestReply-eip.html
new file mode 100644
index 0000000..9928c55
--- /dev/null
+++ b/manual/latest/requestReply-eip.html
@@ -0,0 +1 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/requestReply-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="nav [...]
\ No newline at end of file
diff --git a/manual/latest/resequence-eip.html b/manual/latest/resequence-eip.html
new file mode 100644
index 0000000..40bf87a
--- /dev/null
+++ b/manual/latest/resequence-eip.html
@@ -0,0 +1,76 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/resequence-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navba [...]
+    .resequence().body()
+    .to("mock:result");</code></pre></div></div><div class="paragraph"><p>This is equivalent to</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start")
+    .resequence(body()).batch()
+    .to("mock:result");</code></pre></div></div><div class="paragraph"><p>The batch-processing resequencer can be further configured via the<code>size()</code>and<code>timeout()</code>methods.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start")
+    .resequence(body()).batch().size(300).timeout(4000L)
+    .to("mock:result")</code></pre></div></div><div class="paragraph"><p>This sets the batch size to 300 and the batch timeout to 4000 ms (by default, the batch size is 100 and the timeout is 1000 ms). Alternatively, you can provide a configuration object.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start")
+    .resequence(body()).batch(new BatchResequencerConfig(300, 4000L))
+    .to("mock:result")</code></pre></div></div><div class="paragraph"><p>So the above example will reorder messages from endpoint<strong>direct:a</strong>in order of their bodies, to the endpoint<strong>mock:result</strong>.<br>Typically you&#8217;d use a header rather than the body to order things; or maybe a part of the body. So you could replace this expression with</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hl [...]
+  &lt;route&gt;
+    &lt;from uri="direct:start" /&gt;
+    &lt;resequence&gt;
+      &lt;simple&gt;body&lt;/simple&gt;
+      &lt;to uri="mock:result" /&gt;
+      &lt;!--
+        batch-config can be ommitted for default (batch) resequencer settings
+      --&gt;
+      &lt;batch-config batchSize="300" batchTimeout="4000" /&gt;
+    &lt;/resequence&gt;
+  &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_allow_duplicates"><a class="anchor" href="#_allow_duplicates"></a>Allow Duplicates</h3><div class="paragraph"><p>In the<code>batch</code>mode, you can now allow duplicates. In Java DSL there is a<code>allowDuplicates()</code>method and in Spring XML there is an<code>allowDuplicates=true</code>attribute on the<code>&lt;batch-config/&gt;</code>you can use to enable it.</p></div></div><div class="sect2"><h3 id=" [...]
+    // sort by JMSPriority by allowing duplicates (message can have same JMSPriority)
+    // and use reverse ordering so 9 is first output (most important), and 0 is last
+    // use batch mode and fire every 3th second
+    .resequence(header("JMSPriority")).batch().timeout(3000).allowDuplicates().reverse()
+    .to("mock:result");</code></pre></div></div><div class="paragraph"><p>Notice this is<strong>only</strong>possible in the<code>batch</code>mode of the Resequencer.</p></div></div><div class="sect2"><h3 id="_ignore_invalid_exchanges"><a class="anchor" href="#_ignore_invalid_exchanges"></a>Ignore invalid exchanges</h3><div class="paragraph"><p><strong>Available as of Camel 2.9</strong></p></div><div class="paragraph"><p>The Resequencer EIP will from Camel 2.9 onwards throw a<code>CamelE [...]
+    .resequence(header("seqno")).batch().timeout(1000)
+        // ignore invalid exchanges (they are discarded)
+        .ignoreInvalidExchanges()
+    .to("mock:result");</code></pre></div></div><div class="paragraph"><p>This option is available for both batch and stream resequencer.</p></div></div><div class="sect2"><h3 id="_reject_old_exchanges"><a class="anchor" href="#_reject_old_exchanges"></a>Reject Old Exchanges</h3><div class="paragraph"><p><strong>Available as of Camel 2.11</strong></p></div><div class="paragraph"><p>This option can be used to prevent out of order messages from being sent regardless of the event that deliv [...]
+    .onException(MessageRejectedException.class).handled(true).to("mock:error").end()
+    .resequence(header("seqno")).stream().timeout(1000).rejectOld()
+    .to("mock:result");</code></pre></div></div><div class="paragraph"><p>This option is available for the stream resequencer only.</p></div></div><div class="sect2"><h3 id="_stream_resequencing"><a class="anchor" href="#_stream_resequencing"></a>Stream Resequencing</h3><div class="paragraph"><p>The next example shows how to use the stream-processing resequencer. Messages are re-ordered based on their sequence numbers given by a seqnum header using gap detection and timeouts on the level [...]
+    .resequence(header("seqnum")).stream().capacity(5000).timeout(4000L)
+    .to("mock:result")</code></pre></div></div><div class="paragraph"><p>This sets the resequencer&#8217;s capacity to 5000 and the timeout to 4000 ms (by default, the capacity is 1000 and the timeout is 1000 ms). Alternatively, you can provide a configuration object.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start")
+    .resequence(header("seqnum")).stream(new StreamResequencerConfig(5000, 4000L))
+    .to("mock:result")</code></pre></div></div><div class="paragraph"><p>The stream-processing resequencer algorithm is based on the detection of gaps in a message stream rather than on a fixed batch size. Gap detection in combination with timeouts removes the constraint of having to know the number of messages of a sequence (i.e. the batch size) in advance. Messages must contain a unique sequence number for which a predecessor and a successor is known. For example a message with the seq [...]
+
+    public String getFileName(Exchange exchange) {
+        return exchange.getIn().getBody(String.class);
+    }
+
+    public Object evaluate(Exchange exchange) {
+        // parser the file name with YYYYMMDD-DNNN pattern
+        String fileName = getFileName(exchange);
+        String[] files = fileName.split("-D");
+        Long answer = Long.parseLong(files[0]) * 1000 + Long.parseLong(files[1]);
+        return answer;
+    }
+
+    public &lt;T&gt; T evaluate(Exchange exchange, Class&lt;T&gt; type) {
+        Object result = evaluate(exchange);
+        return exchange.getContext().getTypeConverter().convertTo(type, result);
+    }
+
+}
+
+from("direct:start")
+    .resequence(new MyFileNameExpression()).stream().timeout(100).to("mock:result");</code></pre></div></div><div class="paragraph"><p>or custom comparator via the<code>comparator()</code>method</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">ExpressionResultComparator&lt;Exchange&gt; comparator = new MyComparator();
+from("direct:start")
+    .resequence(header("seqnum")).stream().comparator(comparator)
+    .to("mock:result");</code></pre></div></div><div class="paragraph"><p>or via a<code>StreamResequencerConfig</code>object.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">ExpressionResultComparator&lt;Exchange&gt; comparator = new MyComparator();
+StreamResequencerConfig config = new StreamResequencerConfig(100, 1000L, comparator);
+
+from("direct:start")
+    .resequence(header("seqnum")).stream(config)
+    .to("mock:result");</code></pre></div></div><div class="paragraph"><p>And an example in XML</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"&gt;
+  &lt;route&gt;
+    &lt;from uri="direct:start"/&gt;
+    &lt;resequence&gt;
+      &lt;simple&gt;in.header.seqnum&lt;/simple&gt;
+      &lt;to uri="mock:result" /&gt;
+      &lt;stream-config capacity="5000" timeout="4000"/&gt;
+    &lt;/resequence&gt;
+  &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/rest-dsl.html b/manual/latest/rest-dsl.html
new file mode 100644
index 0000000..af67a6a
--- /dev/null
+++ b/manual/latest/rest-dsl.html
@@ -0,0 +1,202 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/rest-dsl.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
+    return new RouteBuilder() {
+        @Override
+        public void configure() throws Exception {
+            rest("/say")
+                .get("/hello").to("direct:hello")
+                .get("/bye").consumes("application/json").to("direct:bye")
+                .post("/bye").to("mock:update");
+
+            from("direct:hello")
+                .transform().constant("Hello World");
+            from("direct:bye")
+                .transform().constant("Bye World");
+        }
+    };
+}</code></pre></div></div><div class="paragraph"><p>This defines a REST service with the following url mappings:</p></div><table class="tableblock frame-all grid-all stretch"><colgroup><col style="width: 25%;"><col style="width: 25%;"><col style="width: 25%;"><col style="width: 25%;"></colgroup><thead><tr><th class="tableblock halign-left valign-top">Base Path</th><th class="tableblock halign-left valign-top">Uri template</th><th class="tableblock halign-left valign-top">Verb</th><th cla [...]
+  &lt;rest path="/say"&gt;
+    &lt;get uri="/hello"&gt;
+      &lt;to uri="direct:hello"/&gt;
+    &lt;/get&gt;
+    &lt;get uri="/bye" consumes="application/json"&gt;
+      &lt;to uri="direct:bye"/&gt;
+    &lt;/get&gt;
+    &lt;post uri="/bye"&gt;
+      &lt;to uri="mock:update"/&gt;
+    &lt;/post&gt;
+  &lt;/rest&gt;
+  &lt;route&gt;
+    &lt;from uri="direct:hello"/&gt;
+    &lt;transform&gt;
+      &lt;constant&gt;Hello World&lt;/constant&gt;
+    &lt;/transform&gt;
+  &lt;/route&gt;
+  &lt;route&gt;
+    &lt;from uri="direct:bye"/&gt;
+    &lt;transform&gt;
+      &lt;constant&gt;Bye World&lt;/constant&gt;
+    &lt;/transform&gt;
+  &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_using_base_path"><a class="anchor" href="#_using_base_path"></a>Using base path</h3><div class="paragraph"><p>The REST DSL allows to define base path to make the DSL a bit more DRY. For example to define a customer path, we can set the base path in rest("/customer") and then provide the uri templates in the verbs, as shown below:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs  [...]
+    .get("/{id}").to("direct:customerDetail")
+    .get("/{id}/orders").to("direct:customerOrders")
+    .post("/neworder").to("direct:customerNewOrder");</code></pre></div></div><div class="paragraph"><p>And using XML DSL it becomes:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;rest path="/customers/"&gt;
+  &lt;get uri="/{id}"&gt;
+    &lt;to uri="direct:customerDetail"/&gt;
+  &lt;/get&gt;
+  &lt;get uri="/{id}/orders"&gt;
+    &lt;to uri="direct:customerOrders"/&gt;
+  &lt;/get&gt;
+  &lt;post uri="/neworder"&gt;
+    &lt;to uri="direct:customerNewOrder"/&gt;
+  &lt;/post&gt;
+&lt;/rest&gt;</code></pre></div></div><div class="paragraph"><p>TIP:The REST DSL will take care of duplicate path separators when using base path and uri templates. In the example above the rest base path ends with a slash ( / ) and the verb starts with a slash ( / ). But Apache Camel will take care of this and remove the duplicated slash.</p></div><div class="paragraph"><p>It is not required to use both base path and uri templates. You can omit the bast path and define the base path and [...]
+  &lt;get uri="/customers/{id}"&gt;
+    &lt;to uri="direct:customerDetail"/&gt;
+  &lt;/get&gt;
+  &lt;get uri="/customers/{id}/orders"&gt;
+    &lt;to uri="direct:customerOrders"/&gt;
+  &lt;/get&gt;
+  &lt;post uri="/customers/neworder"&gt;
+    &lt;to uri="direct:customerNewOrder"/&gt;
+  &lt;/post&gt;
+&lt;/rest&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_using_dynamic_to_in_rest_dsl"><a class="anchor" href="#_using_dynamic_to_in_rest_dsl"></a>Using Dynamic To in Rest DSL</h3><div class="paragraph"><p><strong>Available as of Camel 2.16</strong></p></div><div class="paragraph"><p>The Rest DSL supports the new .toD &lt;toD&gt; as dynamic to in the rest-dsl. For example to do a request/reply over <a href="#jms-component">JMS</a>where the queue name is dynamic defined</p> [...]
+   rest("/say")
+     .get("/hello/{language}").toD("jms:queue:hello-${header.language}");
+}</code></pre></div></div></div><div class="sect2"><h3 id="_and_in_xml_dsl"><a class="anchor" href="#_and_in_xml_dsl"></a>And in XML DSL</h3><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;rest uri="/say"&gt;
+  &lt;get uri="/hello//{language}"&gt;
+    &lt;toD uri="jms:queue:hello-${header.language}"/&gt;
+  &lt;/get&gt;
+&lt;rest&gt;</code></pre></div></div><div class="paragraph"><p>See more details at Message Endpoint about the dynamic to, and what syntax it supports. By default it uses the <a href="#simple-language">Simple</a>language, but it has more power than so.</p></div></div><div class="sect2"><h3 id="_embedding_camel_routes"><a class="anchor" href="#_embedding_camel_routes"></a>Embedding Camel routes</h3><div class="paragraph"><p>Each of the rest services becomes a Camel route, so in the first e [...]
+    return new RouteBuilder() {
+        @Override
+        public void configure() throws Exception {
+            rest("/say/hello")
+                .get().route().transform().constant("Hello World");
+            rest("/say/bye")
+                .get().consumes("application/json").route().transform().constant("Bye World").endRest()
+                .post().to("mock:update");
+    };
+}</code></pre></div></div><div class="paragraph"><p>In the example above, we are embedding routes directly in the rest service using .route(). Notice we need to use .endRest() to tell Camel where the route ends, so we can <em>go back</em>to the Rest DSL and continue defining REST services.</p></div></div><div class="sect2"><h3 id="_configuring_route_options"><a class="anchor" href="#_configuring_route_options"></a>Configuring route options</h3><div class="paragraph"><p>In the embedded ro [...]
+  .route().routeId("myRestRoute").autoStartup(false)
+  .transform().constant("Hello World");</code></pre></div></div></div><div class="sect2"><h3 id="_managing_rest_services"><a class="anchor" href="#_managing_rest_services"></a>Managing Rest services</h3><div class="paragraph"><p>Each of the rest services becomes a Camel route, so in the first example we have 2 x get and 1 x post REST service, which each become a Camel route. This makes it <em>the same</em>from Camel to manage and run these services - as they are just Camel routes. This m [...]
+// and enable auto binding mode
+restConfiguration().component("restlet").host("localhost").port(portNum).bindingMode(RestBindingMode.auto);
+
+// use the rest DSL to define the rest services
+rest("/users/")
+    .post().type(UserPojo.class)
+        .to("direct:newUser");</code></pre></div></div><div class="paragraph"><p>Notice we use <code>type</code>to define the incoming type. We can optionally define an outgoing type (which can be a good idea, to make it known from the DSL and also for tooling and JMX APIs to know both the incoming and outgoing types of the REST services.). To define the outgoing type, we use <code>outType</code>as shown below:</p></div><div class="listingblock"><div class="content"><pre class="highlight [...]
+// and enable auto binding mode
+restConfiguration().component("restlet").host("localhost").port(portNum).bindingMode(RestBindingMode.auto);
+
+// use the rest DSL to define the rest services
+rest("/users/")
+    .post().type(UserPojo.class).outType(CountryPojo.class)
+        .to("direct:newUser");</code></pre></div></div><div class="paragraph"><p>To specify input and/or output using an array, append<code>[]</code>to the end of the canonical class name as shown in the following Java DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">// configure to use restlet on localhost with the given port
+// and enable auto binding mode
+restConfiguration().component("restlet").host("localhost").port(portNum).bindingMode(RestBindingMode.auto);
+
+// use the rest DSL to define the rest services
+rest("/users/")
+    .post().type(UserPojo[].class).outType(CountryPojo[].class)
+        .to("direct:newUser");</code></pre></div></div><div class="paragraph"><p>The <code>UserPojo</code>is just a plain pojo with getter/setter as shown:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public class UserPojo {
+    private int id;
+    private String name;
+    public int getId() {
+        return id;
+    }
+    public void setId(int id) {
+        this.id = id;
+    }
+    public String getName() {
+        return name;
+    }
+    public void setName(String name) {
+        this.name = name;
+    }
+}</code></pre></div></div><div class="paragraph"><p>The <code>UserPojo</code>only supports json, as XML requires to use JAXB annotations, so we can add those annotations if we want to support XML also</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">@XmlRootElement(name = "user")
+@XmlAccessorType(XmlAccessType.FIELD)
+public class UserPojo {
+    @XmlAttribute
+    private int id;
+    @XmlAttribute
+    private String name;
+    public int getId() {
+        return id;
+    }
+    public void setId(int id) {
+        this.id = id;
+    }
+    public String getName() {
+        return name;
+    }
+    public void setName(String name) {
+        this.name = name;
+    }
+}</code></pre></div></div><div class="paragraph"><p>By having the JAXB annotations the POJO supports both json and xml bindings.</p></div></div><div class="sect2"><h3 id="_configuring_rest_dsl"><a class="anchor" href="#_configuring_rest_dsl"></a>Configuring Rest DSL</h3><table class="tableblock frame-all grid-all stretch"><colgroup><col style="width: 33.3333%;"><col style="width: 16.6666%;"><col style="width: 50.0001%;"></colgroup><thead><tr><th class="tableblock halign-left valign-top"> [...]
+  &lt;componentProperty key="foo" value="123"/&gt;
+&lt;/restConfiguration&gt;</code></pre></div></div><div class="paragraph"><p>If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if a org.apache.camel.spi.RestConsumerFactory is registered in the registry. If either one is found, then that is being used.</p></div><div class="paragraph"><p>You can configure properties on these levels.</p></div><div class="ulist"><ul><li><p>component - Is used to set any o [...]
+   .dataFormatProperty("json.in.disableFeatures", "FAIL_ON_UNKNOWN_PROPERTIES");</code></pre></div></div><div class="paragraph"><p>You can disable more features by separating the values using comma, such as:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">.dataFormatProperty("json.in.disableFeatures", "FAIL_ON_UNKNOWN_PROPERTIES,ADJUST_DATES_TO_CONTEXT_TIME_ZONE");</code></pre></div></div><div cl [...]
+   .dataFormatProperty("json.in.disableFeatures", "FAIL_ON_UNKNOWN_PROPERTIES,ADJUST_DATES_TO_CONTEXT_TIME_ZONE")
+   .dataFormatProperty("json.in.enableFeatures", "FAIL_ON_NUMBERS_FOR_ENUMS,USE_BIG_DECIMAL_FOR_FLOATS");</code></pre></div></div><div class="paragraph"><p>The values that can be used for enabling and disabling features on Jackson are the names of the enums from the following three Jackson classes</p></div><div class="ulist"><ul><li><p>com.fasterxml.jackson.databind.SerializationFeature</p></li><li><p>com.fasterxml.jackson.databind.DeserializationFeature</p></li><li><p>com.fasterxml.jack [...]
+  &lt;dataFormatProperty key="json.in.disableFeatures" value="FAIL_ON_UNKNOWN_PROPERTIES,ADJUST_DATES_TO_CONTEXT_TIME_ZONE"/&gt;
+  &lt;dataFormatProperty key="json.in.enableFeatures" value="FAIL_ON_NUMBERS_FOR_ENUMS,USE_BIG_DECIMAL_FOR_FLOATS"/&gt;
+&lt;/restConfiguration&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_default_cors_headers"><a class="anchor" href="#_default_cors_headers"></a>Default CORS headers</h3><div class="paragraph"><p><strong>Available as of Camel 2.14.1</strong></p></div><div class="paragraph"><p>If CORS is enabled then the follow headers is in use by default. You can configure custom CORS headers which takes precedence over the default value.</p></div><table class="tableblock frame-all grid-al [...]
+// use the rest DSL to define the rest services
+rest("/users/")
+    .post("lives").type(UserPojo.class).outType(CountryPojo.class)
+        .route()
+            .choice()
+                .when().simple("${body.id} &lt; 100")
+                    .bean(new UserErrorService(), "idToLowError")
+                .otherwise()
+                    .bean(new UserService(), "livesWhere");</code></pre></div></div><div class="paragraph"><p>In this example if the input id is a number that is below 100, we want to send back a custom error message, using the UserErrorService bean, which is implemented as shown:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public class UserErrorService {
+    public void idToLowError(Exchange exchange) {
+        exchange.getIn().setBody("id value is too low");
+        exchange.getIn().setHeader(Exchange.CONTENT_TYPE, "text/plain");
+        exchange.getIn().setHeader(Exchange.HTTP_RESPONSE_CODE, 400);
+    }
+}</code></pre></div></div><div class="paragraph"><p>In the UserErrorService bean we build our custom error message, and set the HTTP error code to 400. This is important, as that tells rest-dsl that this is a custom error message, and the message should not use the output pojo binding (eg would otherwise bind to CountryPojo).</p></div></div><div class="sect2"><h3 id="_catching_jsonparserexception_and_returning_a_custom_error_message"><a class="anchor" href="#_catching_jsonparserexception [...]
+    .handled(true)
+    .setHeader(Exchange.HTTP_RESPONSE_CODE, constant(400))
+    .setHeader(Exchange.CONTENT_TYPE, constant("text/plain"))
+    .setBody().constant("Invalid json data");</code></pre></div></div></div><div class="sect2"><h3 id="_query_parameter_default_values"><a class="anchor" href="#_query_parameter_default_values"></a>Query Parameter default Values</h3><div class="paragraph"><p>You can specify default values for parameters in the rest-dsl, such as the verbose parameter below:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang [...]
+      .get("/{id}").to("direct:customerDetail")
+      .get("/{id}/orders")
+        .param().name("verbose").type(RestParamType.query).defaultValue("false").description("Verbose order details").endParam()
+          .to("direct:customerOrders")
+      .post("/neworder").to("direct:customerNewOrder");</code></pre></div></div><div class="paragraph"><p>From <strong>Camel 2.17</strong>onwards then the default value is automatic set as header on the incoming Camel <code>Message</code>. So if the call the <code>/customers/id/orders</code>do not include a query parameter with key <code>verbose</code>then Camel will now include a header with key <code>verbose</code>and the value <code>false</code>because it was declared as the default v [...]
+    .clientRequestValidation(true);</code></pre></div></div></div><div class="sect2"><h3 id="_integrating_a_camel_component_with_rest_dsl"><a class="anchor" href="#_integrating_a_camel_component_with_rest_dsl"></a>Integrating a Camel component with Rest DSL</h3><div class="paragraph"><p>Any Apache Camel component can integrate with the Rest DSL if they can be used as a REST service (eg as a REST consumer in Camel lingo). To integrate with the Rest DSL, then the component should implement [...]
+&lt;get uri="/{id}" outType="org.apache.camel.example.rest.User"&gt;
+  &lt;description&gt;Find user by id&lt;/description&gt;
+  &lt;param name="id" type="path" description="The id of the user to get" dataType="int"/&gt;
+  &lt;to uri="bean:userService?method=getUser(${header.id})"/&gt;
+&lt;/get&gt;</code></pre></div></div><div class="paragraph"><p>And in Java DSL</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">.get("/{id}").description("Find user by id").outType(User.class)
+    .param().name("id").type(path).description("The id of the user to get").dataType("int").endParam()
+    .to("bean:userService?method=getUser(${header.id})")</code></pre></div></div><div class="paragraph"><p>The body parameter type requires to use body as well for the name. For example a REST PUT operation to create/update an user could be done as:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;!-- this is a rest PUT to create/update an user --&gt;
+&lt;put type="org.apache.camel.example.rest.User"&gt;
+  &lt;description&gt;Updates or create a user&lt;/description&gt;
+  &lt;param name="body" type="body" description="The user to update or create"/&gt;
+  &lt;to uri="bean:userService?method=updateUser"/&gt;
+&lt;/put&gt;</code></pre></div></div><div class="paragraph"><p>And in Java DSL</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">.put().description("Updates or create a user").type(User.class)
+    .param().name("body").type(body).description("The user to update or create").endParam()
+    .to("bean:userService?method=updateUser")</code></pre></div></div><div class="sect3"><h4 id="_vendor_extensions"><a class="anchor" href="#_vendor_extensions"></a>Vendor Extensions</h4><div class="paragraph"><p>The generated API documentation can be configured to include vendor extensions (<a href="https://swagger.io/specification/#specificationExtensions" class="bare">https://swagger.io/specification/#specificationExtensions</a>) which document the operations and definitions with add [...]
+    .component("servlet")
+    .bindingMode(RestBindingMode.json)
+    .dataFormatProperty("prettyPrint", "true")
+    .apiContextPath("api-doc")
+    .apiVendorExtension(true)
+        .apiProperty("api.title", "User API").apiProperty("api.version", "1.0.0")
+        .apiProperty("cors", "true");</code></pre></div></div><div class="paragraph"><p>And in XML DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"> &lt;restConfiguration component="servlet" bindingMode="json"
+                       apiContextPath="api-docs"
+                       apiVendorExtension="true"&gt;
+
+      &lt;!-- we want json output in pretty mode --&gt;
+      &lt;dataFormatProperty key="prettyPrint" value="true"/&gt;
+
+      &lt;!-- setup swagger api descriptions --&gt;
+      &lt;apiProperty key="api.version" value="1.0.0"/&gt;
+      &lt;apiProperty key="api.title" value="User API"/&gt;
+
+&lt;/restConfiguration&gt;</code></pre></div></div></div><div class="sect3"><h4 id="_supported_api_properties"><a class="anchor" href="#_supported_api_properties"></a>Supported API properties</h4><div class="paragraph"><p>The following table lists supported API properties and explains their effect. To set them use<code>apiProperty(String, String)</code>in the Java DSL or<code>&lt;apiProperty&gt;</code>when defining the REST API via XML configuration. Properties in<strong>bold</strong>are [...]
\ No newline at end of file
diff --git a/manual/latest/return-address.html b/manual/latest/return-address.html
new file mode 100644
index 0000000..01f6f39
--- /dev/null
+++ b/manual/latest/return-address.html
@@ -0,0 +1,22 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/return-address.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navba [...]
+
+template.sendBodyAndHeader("direct:start", "World", "JMSReplyTo", "queue:bar");</code></pre></div></div><div class="paragraph"><p><strong>Route Using the Fluent Builders</strong></p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start").to("activemq:queue:foo?preserveMessageQos=true");
+
+from("activemq:queue:foo").transform(body().prepend("Bye "));
+
+from("activemq:queue:bar?disableReplyTo=true").to("mock:bar");</code></pre></div></div><div class="paragraph"><p><strong>Route Using the Spring XML Extensions</strong></p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="direct:start"/&gt;
+  &lt;to uri="activemq:queue:foo?preserveMessageQos=true"/&gt;
+&lt;/route&gt;
+
+&lt;route&gt;
+  &lt;from uri="activemq:queue:foo"/&gt;
+  &lt;transform&gt;
+      &lt;simple&gt;Bye ${in.body}&lt;/simple&gt;
+  &lt;/transform&gt;
+&lt;/route&gt;
+
+&lt;route&gt;
+  &lt;from uri="activemq:queue:bar?disableReplyTo=true"/&gt;
+  &lt;to uri="mock:bar"/&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>For a complete example of this pattern, see this<a href="https://github.com/apache/camel/blob/master/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToAsHeaderTest.java">junit test case</a></p></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 licen [...]
\ No newline at end of file
diff --git a/manual/latest/rollback-eip.html b/manual/latest/rollback-eip.html
new file mode 100644
index 0000000..12c8e3b
--- /dev/null
+++ b/manual/latest/rollback-eip.html
@@ -0,0 +1,31 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/rollback-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar- [...]
+  &lt;property name="connectionFactory" ref="jmsConnectionFactory" /&gt;
+&lt;/bean&gt;
+&lt;bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"&gt;
+  &lt;property name="brokerURL" value="tcp://localhost:61616"/&gt;
+&lt;/bean&gt;</code></pre></div></div><div class="paragraph"><p>Then you look them up and use them to create the JmsComponent.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">PlatformTransactionManager transactionManager = (PlatformTransactionManager) spring.getBean("jmsTransactionManager");
+ConnectionFactory connectionFactory = (ConnectionFactory) spring.getBean("jmsConnectionFactory");
+JmsComponent component = JmsComponent.jmsComponentTransacted(connectionFactory, transactionManager);
+component.getConfiguration().setConcurrentConsumers(1);
+ctx.addComponent("activemq", component);</code></pre></div></div><div class="sect2"><h3 id="_options"><a class="anchor" href="#_options"></a>Options</h3><div class="paragraph"><p>The Rollback EIP supports 3 options which are listed below:</p></div><table class="tableblock frame-all grid-all stretch"><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  [...]
+  &lt;property name="transactionManager" ref="jmsTransactionManager"/&gt;
+&lt;/bean&gt;
+&lt;bean id="PROPAGATION_REQUIRES_NEW" class="org.apache.camel.spring.spi.SpringTransactionPolicy"&gt;
+  &lt;property name="transactionManager" ref="jmsTransactionManager"/&gt;
+  &lt;property name="propagationBehaviorName" value="PROPAGATION_REQUIRES_NEW"/&gt;
+&lt;/bean&gt;</code></pre></div></div><div class="paragraph"><p>Then in your<a href="http://camel.apache.org/maven/current/camel-spring/apidocs/org/apache/camel/spring/SpringRouteBuilder.html">SpringRouteBuilder</a>, you just need to create new SpringTransactionPolicy objects for each of the templates.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public void configure() {
+    ...
+    Policy required = bean(SpringTransactionPolicy.class, "PROPAGATION_REQUIRED"));
+    Policy requirenew = bean(SpringTransactionPolicy.class, "PROPAGATION_REQUIRES_NEW"));
+    ...
+}</code></pre></div></div><div class="paragraph"><p>Once created, you can use the Policy objects in your processing routes:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java"> // Send to bar in a new transaction
+from("activemq:queue:foo").policy(requirenew).to("activemq:queue:bar");
+// Send to bar without a transaction.
+from("activemq:queue:foo").policy(notsupported).to("activemq:queue:bar");</code></pre></div></div></div><div class="sect3"><h4 id="_osgi_blueprint"><a class="anchor" href="#_osgi_blueprint"></a>OSGi Blueprint</h4><div class="paragraph"><p>If you are using<a href="https://github.com/apache/camel/blob/master/docs/user-manual/en/using-osgi-blueprint-with-camel.adoc">OSGi Blueprint</a>then you most likely have to explicit declare a policy and refer to the policy from the transacted in the ro [...]
+  &lt;property name="transactionManager" ref="jmsTransactionManager"/&gt;
+  &lt;property name="propagationBehaviorName" value="PROPAGATION_REQUIRED"/&gt;
+&lt;/bean&gt;</code></pre></div></div><div class="paragraph"><p>And then refer to "required" from the route:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="activemq:queue:foo"/&gt;
+  &lt;transacted ref="required"/&gt;
+  &lt;to uri="activemq:queue:bar"/&gt;
+&lt;/route&gt;</code></pre></div></div></div></div><div class="sect2"><h3 id="_database_sample"><a class="anchor" href="#_database_sample"></a>Database Sample</h3><div class="paragraph"><p>In this sample we want to ensure that two endpoints is under transaction control. These two endpoints inserts data into a database.<br>The sample is in its full as a<a href="https://github.com/apache/camel/blob/master/components/camel-spring/src/test/java/org/apache/camel/spring/interceptor/Transaction [...]
\ No newline at end of file
diff --git a/manual/latest/roundRobin-eip.html b/manual/latest/roundRobin-eip.html
new file mode 100644
index 0000000..cf6945c
--- /dev/null
+++ b/manual/latest/roundRobin-eip.html
@@ -0,0 +1,10 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/roundRobin-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navba [...]
+    .loadBalance()
+    .roundRobin()
+    .to("seda:x", "seda:y", "seda:z");</code></pre></div></div><div class="paragraph"><p>In XML you&#8217;ll have a route like this</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;from uri="direct:start"/&gt;
+    &lt;loadBalance&gt;
+       &lt;roundRobin/&gt;
+       &lt;to uri="seda:x"/&gt;
+       &lt;to uri="seda:y"/&gt;
+       &lt;to uri="seda:z"/&gt;
+    &lt;/loadBalance&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/route-builder.html b/manual/latest/route-builder.html
index 0001114..996007c 100644
--- a/manual/latest/route-builder.html
+++ b/manual/latest/route-builder.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/route-builder.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/route-builder.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar [...]
\ No newline at end of file
diff --git a/manual/latest/route-policy.html b/manual/latest/route-policy.html
index dc68c6c..87cf1a5 100644
--- a/manual/latest/route-policy.html
+++ b/manual/latest/route-policy.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/route-policy.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar- [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/route-policy.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar- [...]
   from("seda:foo").routePolicy(myPolicy).to("mock:result");</code></pre></div></div><div class="paragraph"><p>In Spring XML its a bit different as follows using the<strong><code>routePolicyRef</code></strong>attribute:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">&lt;bean id="myPolicy" class="com.mycompany.MyRoutePolicy"/&gt;
 
 &lt;route routePolicyRef="myPolicy"&gt;
diff --git a/manual/latest/routes.html b/manual/latest/routes.html
index 61133c7..e7f7422 100644
--- a/manual/latest/routes.html
+++ b/manual/latest/routes.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/routes.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item n [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/routes.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item n [...]
     public void configure() {
         errorHandler(deadLetterChannel("mock:error"));
 
diff --git a/manual/latest/routingSlip-eip.html b/manual/latest/routingSlip-eip.html
new file mode 100644
index 0000000..00aa61f
--- /dev/null
+++ b/manual/latest/routingSlip-eip.html
@@ -0,0 +1,24 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/routingSlip-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navb [...]
+  .routingSlip("aRoutingSlipHeader");</code></pre></div></div><div class="paragraph"><p>Messages will be checked for the existence of the<code>aRoutingSlipHeader</code>header. The value of this header should be a comma-delimited list of endpoint URIs you wish the message to be routed to. The Message will be routed in a pipeline fashion, i.e., one after the other. From<strong>Camel 2.5</strong>the Routing Slip will set a property,<code>Exchange.SLIP_ENDPOINT</code>, on the Exchange which  [...]
+  &lt;route&gt;
+    &lt;from uri="direct:c"/&gt;
+    &lt;routingSlip uriDelimiter="#"&gt;
+       &lt;header&gt;aRoutingSlipHeader&lt;/header&gt;
+    &lt;/routingSlip&gt;
+  &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_ignore_invalid_endpoints"><a class="anchor" href="#_ignore_invalid_endpoints"></a>Ignore Invalid Endpoints</h3><div class="paragraph"><p><strong>Available as of Camel 2.3</strong></p></div><div class="paragraph"><p>The Routing Slip now supports ignoreInvalidEndpoints which the Recipient List also supports. You can use it to skip endpoints which are invalid.</p></div><div class="listingblock"><div class="conte [...]
+  .routingSlip("myHeader")
+  .ignoreInvalidEndpoints();</code></pre></div></div><div class="paragraph"><p>And in Spring XML its an attribute on the recipient list tag:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="direct:a"/&gt;
+  &lt;routingSlip ignoreInvalidEndpoints="true"/&gt;
+    &lt;header&gt;myHeader&lt;/header&gt;
+  &lt;/routingSlip&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>Then let&#8217;s say the myHeader contains the following two endpoints direct:foo,xxx:bar. The first endpoint is valid and works. However the second endpoint is invalid and will just be ignored. Camel logs at INFO level, so you can see why the endpoint was invalid.</p></div></div><div class="sect2"><h3 id="_expression_support"><a class="anchor" href="#_expression_support"></a>Expression Support</h3><div class="paragraph"><p [...]
+  .routingSlip(header("myHeader"))
+  .ignoreInvalidEndpoints();</code></pre></div></div><div class="paragraph"><p>And in Spring XML its an attribute on the recipient list tag.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="direct:a"/&gt;
+  &lt;!--NOTE from Camel 2.4.0, you need to specify the expression element inside of the routingSlip element --&gt;
+  &lt;routingSlip ignoreInvalidEndpoints="true"&gt;
+    &lt;header&gt;myHeader&lt;/header&gt;
+  &lt;/routingSlip&gt;
+&lt;/route&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_further_examples"><a class="anchor" href="#_further_examples"></a>Further Examples</h3><div class="paragraph"><p>For further examples of this pattern in use you could look at the routing slip test cases.</p></div></div><div class="sect2"><h3 id="_using_this_pattern"><a class="anchor" href="#_using_this_pattern"></a>Using This Pattern</h3><div class="paragraph"><p>If you would like to use this EIP Pattern then please [...]
\ No newline at end of file
diff --git a/manual/latest/saga-eip.html b/manual/latest/saga-eip.html
new file mode 100644
index 0000000..52043f8
--- /dev/null
+++ b/manual/latest/saga-eip.html
@@ -0,0 +1,138 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/saga-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
+ &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
+ &lt;artifactId&gt;camel-lra&lt;/artifactId&gt;
+ &lt;!-- use the same version as your Camel core version --&gt;
+ &lt;version&gt;x.y.z&lt;/version&gt;
+&lt;/dependency&gt;</code></pre></div></div><div class="paragraph"><p>A Camel REST context is also required to be present for the LRA implementation to work. You may add<code>camel-undertow</code>for example.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+ &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
+ &lt;artifactId&gt;camel-undertow&lt;/artifactId&gt;
+ &lt;!-- use the same version as your Camel core version --&gt;
+ &lt;version&gt;x.y.z&lt;/version&gt;
+&lt;/dependency&gt;</code></pre></div></div><div class="admonitionblock note"><table><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content"><div class="paragraph"><p>The LRA implementation of the Saga EIP will add some web endpoints under the "/lra-participant" path. Those endpoints will be used by the LRA coordinator for calling back the application.</p></div></td></tr></table></div><div class="listingblock"><div class="content"><pre class="highlightjs hi [...]
+org.apache.camel.service.lra.LRASagaService sagaService = new org.apache.camel.service.lra.LRASagaService();
+sagaService.setCoordinatorUrl("http://lra-service-host");
+sagaService.setLocalParticipantUrl("http://my-host-as-seen-by-lra-service:8080/context-path");
+
+// Add it to the Camel context
+context.addService(sagaService);</code></pre></div></div><div class="sect4"><h5 id="_using_the_lra_saga_service_in_spring_boot"><a class="anchor" href="#_using_the_lra_saga_service_in_spring_boot"></a>Using the LRA Saga Service in Spring Boot</h5><div class="paragraph"><p>Spring Boot users can use a simplified configuration model for the LRA Saga Service. Maven users can include the<strong>camel-lra-starter</strong>module in their project:</p></div><div class="listingblock"><div class="c [...]
+ &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
+ &lt;artifactId&gt;camel-lra-starter&lt;/artifactId&gt;
+ &lt;!-- use the same version as your Camel core version --&gt;
+ &lt;version&gt;x.y.z&lt;/version&gt;
+&lt;/dependency&gt;
+
+&lt;dependency&gt;
+ &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
+ &lt;artifactId&gt;camel-undertow-starter&lt;/artifactId&gt;
+ &lt;!-- use the same version as your Camel core version --&gt;
+ &lt;version&gt;x.y.z&lt;/version&gt;
+&lt;/dependency&gt;</code></pre></div></div><div class="paragraph"><p>Configuration can be done in the Spring Boot<code>application.yaml</code>file:</p></div><div class="listingblock"><div class="title">application.yaml</div><div class="content"><pre class="highlightjs highlight"><code class="language-yaml hljs" data-lang="yaml">camel:
+  service:
+    lra:
+      enabled: true
+      coordinator-url: http://lra-service-host
+      local-participant-url: http://my-host-as-seen-by-lra-service:8080/context-path</code></pre></div></div><div class="paragraph"><p>Once done, the Saga EIP can be directly used inside Camel routes and it will use the LRA Saga Service under the hood.</p></div></div></div></div><div class="sect2"><h3 id="_examples"><a class="anchor" href="#_examples"></a>Examples</h3><div class="paragraph"><p>Suppose you want to place a new order and you have two distinct services in your system: one ma [...]
+  .saga()
+    .to("direct:newOrder")
+    .to("direct:reserveCredit");</code></pre></div></div><div class="paragraph"><p><strong>That&#8217;s it</strong>. The buy action will not change for the rest of the examples. We&#8217;ll just see different options that can be used to model the "New Order" and "Reserve Credit" actions in the following.</p></div><div class="admonitionblock note"><table><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content">We have used a<em>direct</em>endpoint to model th [...]
+  .saga()
+  .propagation(SagaPropagation.MANDATORY)
+  .compensation("direct:cancelOrder")
+    .transform().header(Exchange.SAGA_LONG_RUNNING_ACTION)
+    .bean(orderManagerService, "newOrder")
+    .log("Order ${body} created");</code></pre></div></div><div class="paragraph"><p>Here the propagation mode is set to<em>MANDATORY</em>meaning that any exchange flowing in this route must be already part of a saga (and it is the case in this example, since the saga is created in the<em>direct:buy</em>route).</p></div><div class="paragraph"><p>The<em>direct:newOrder</em>route declares a compensating action that is called<em>direct:cancelOrder</em>, responsible for undoing the order in  [...]
+  .transform().header(Exchange.SAGA_LONG_RUNNING_ACTION)
+  .bean(orderManagerService, "cancelOrder")
+  .log("Order ${body} cancelled");</code></pre></div></div><div class="paragraph"><p>It is called automatically by the Saga EIP implementation when the order should be cancelled.</p></div><div class="paragraph"><p>It should not terminate with error. In case an error is thrown in the<em>direct:cancelOrder</em>route, the EIP implementation should periodically retry to execute the compensating action up to a certain limit. This means that<strong>any compensating action must be idempotent</s [...]
+from("direct:reserveCredit")
+  .saga()
+  .propagation(SagaPropagation.MANDATORY)
+  .compensation("direct:refundCredit")
+    .transform().header(Exchange.SAGA_LONG_RUNNING_ACTION)
+    .bean(creditService, "reserveCredit")
+    .log("Credit ${header.amount} reserved in action ${body}");
+
+// compensation
+from("direct:refundCredit")
+  .transform().header(Exchange.SAGA_LONG_RUNNING_ACTION)
+  .bean(creditService, "refundCredit")
+  .log("Credit for action ${body} refunded");</code></pre></div></div><div class="paragraph"><p>Here the compensating action for a credit reservation is a refund.</p></div><div class="paragraph"><p>This completes the example. It can be run with both implementations of the Saga EIP, as it does not involve remote endpoints.</p></div><div class="paragraph"><p>Further options will be shown next.</p></div><div class="sect3"><h4 id="_handling_completion_events"><a class="anchor" href="#_handli [...]
+  .saga()
+  .propagation(SagaPropagation.MANDATORY)
+  .compensation("direct:cancelOrder")
+  .completion("direct:completeOrder") // completion endpoint
+    .transform().header(Exchange.SAGA_LONG_RUNNING_ACTION)
+    .bean(orderManagerService, "newOrder")
+    .log("Order ${body} created");
+
+// direct:cancelOrder is the same as in the previous example
+
+// called on successful completion
+from("direct:completeOrder")
+  .transform().header(Exchange.SAGA_LONG_RUNNING_ACTION)
+  .bean(orderManagerService, "findExternalId")
+  .to("jms:prepareOrder")
+  .log("Order ${body} sent for preparation");</code></pre></div></div><div class="paragraph"><p>When the Saga is completed, the order is sent to a JMS queue for preparation.</p></div><div class="paragraph"><p>Like compensating actions, also completion actions may be called multiple times by the Saga coordinator (especially in case of errors, like network errors). In this example, the service listening to the<em>prepareOrder</em>JMS queue should be prepared to hold possible duplicates (se [...]
+from("direct:reserveCredit")
+  .bean(idService, "generateCustomId") // generate a custom Id and set it in the body
+  .to("direct:creditReservation")
+
+// delegate action
+from("direct:creditReservation")
+  .saga()
+  .propagation(SagaPropagation.SUPPORTS)
+  .option("CreditId", body()) // mark the current body as needed in the compensating action
+  .compensation("direct:creditRefund")
+    .bean(creditService, "reserveCredit")
+    .log("Credit ${header.amount} reserved. Custom Id used is ${body}");
+
+// called only if the saga is cancelled
+from("direct:creditRefund")
+  .transform(header("CreditId")) // retrieve the CreditId option from headers
+  .bean(creditService, "refundCredit")
+  .log("Credit for Custom Id ${body} refunded");</code></pre></div></div><div class="paragraph"><p><strong>Note how the previous listing is not using the<code>Exchange.SAGA_LONG_RUNNING_ACTION</code>header at all.</strong></p></div><div class="paragraph"><p>Since the<em>direct:creditReservation</em>endpoint can be now called also from outside a Saga, the propagation mode can be set to<strong>SUPPORTS</strong>.</p></div><div class="paragraph"><p><strong>Multiple options</strong>can be dec [...]
+  .saga()
+  .timeout(1, TimeUnit.MINUTES) // newOrder requires that the saga is completed within 1 minute
+  .propagation(SagaPropagation.MANDATORY)
+  .compensation("direct:cancelOrder")
+  .completion("direct:completeOrder")
+    // ...
+    .log("Order ${body} created");</code></pre></div></div><div class="paragraph"><p>All participants (e.g. credit service, order service) can set their own timeout. The minimum value of those timeouts is taken as timeout for the saga when they are composed together.</p></div><div class="paragraph"><p>A timeout can also be specified at saga level as follows:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-la [...]
+  .saga()
+  .timeout(5, TimeUnit.MINUTES) // timeout at saga level
+    .to("direct:newOrder")
+    .to("direct:reserveCredit");</code></pre></div></div></div><div class="sect3"><h4 id="_choosing_propagation"><a class="anchor" href="#_choosing_propagation"></a>Choosing Propagation</h4><div class="paragraph"><p>In the examples above, we have used the<em>MANDATORY</em>and<em>SUPPORTS</em>propagation modes, but also the<em>REQUIRED</em>propagation mode, that is the default propagation used when nothing else is specified.</p></div><div class="paragraph"><p>These propagation modes map 1 [...]
+  .saga()
+  .completionMode(SagaCompletionMode.MANUAL)
+  .completion("direct:finalize")
+  .timeout(2, TimeUnit.HOURS)
+    .to("seda:newOrder")
+    .to("seda:reserveCredit");
+
+// Put here asynchronous processing for seda:newOrder and seda:reserveCredit
+// They will send asynchronous callbacks to seda:operationCompleted
+
+from("seda:operationCompleted") // an asynchronous callback
+  .saga()
+  .propagation(SagaPropagation.MANDATORY)
+    .bean(controlService, "actionExecuted")
+    .choice()
+      .when(body().isEqualTo("ok"))
+        .to("saga:complete") // complete the current saga manually (saga component)
+    .end()
+
+// You can put here the direct:finalize endpoint to execute final actions</code></pre></div></div><div class="paragraph"><p>Setting the completion mode to<em>MANUAL</em>means that the saga is not completed when the exchange is processed in the route<em>direct:mysaga</em>but it will last longer (max duration is set to 2 hours).</p></div><div class="paragraph"><p>When both asynchronous actions are completed the saga is completed. The call to complete is done using the Camel Saga Component& [...]
+  &lt;from uri="direct:start"/&gt;
+  &lt;saga&gt;
+    &lt;compensation uri="direct:compensation" /&gt;
+    &lt;completion uri="direct:completion" /&gt;
+    &lt;option optionName="myOptionKey"&gt;
+      &lt;constant&gt;myOptionValue&lt;/constant&gt;
+    &lt;/option&gt;
+    &lt;option optionName="myOptionKey2"&gt;
+      &lt;constant&gt;myOptionValue2&lt;/constant&gt;
+    &lt;/option&gt;
+  &lt;/saga&gt;
+  &lt;to uri="direct:action1" /&gt;
+  &lt;to uri="direct:action2" /&gt;
+&lt;/route&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/sample-eip.html b/manual/latest/sample-eip.html
new file mode 100644
index 0000000..e4ce81d
--- /dev/null
+++ b/manual/latest/sample-eip.html
@@ -0,0 +1,42 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/sample-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-it [...]
+    .sample()
+    .to("mock:result");
+
+from("direct:sample-configured")
+    .sample(1, TimeUnit.SECONDS)
+    .to("mock:result");
+
+from("direct:sample-configured-via-dsl")
+    .sample().samplePeriod(1).timeUnits(TimeUnit.SECONDS)
+    .to("mock:result");
+
+from("direct:sample-messageFrequency")
+    .sample(10)
+    .to("mock:result");
+
+from("direct:sample-messageFrequency-via-dsl")
+    .sample().sampleMessageFrequency(5)
+    .to("mock:result");</code></pre></div></div><div class="paragraph"><p>And the same example in Spring XML is:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+    &lt;from uri="direct:sample"/&gt;
+    &lt;sample samplePeriod="1" units="seconds"&gt;
+        &lt;to uri="mock:result"/&gt;
+    &lt;/sample&gt;
+&lt;/route&gt;
+&lt;route&gt;
+    &lt;from uri="direct:sample-messageFrequency"/&gt;
+    &lt;sample messageFrequency="10"&gt;
+        &lt;to uri="mock:result"/&gt;
+    &lt;/sample&gt;
+&lt;/route&gt;
+&lt;route&gt;
+    &lt;from uri="direct:sample-messageFrequency-via-dsl"/&gt;
+    &lt;sample messageFrequency="5"&gt;
+        &lt;to uri="mock:result"/&gt;
+    &lt;/sample&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>And since it uses a default of 1 second you can omit this configuration in case you also want to use 1 second</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+    &lt;from uri="direct:sample"/&gt;
+    &lt;!-- will by default use 1 second period --&gt;
+    &lt;sample&gt;
+        &lt;to uri="mock:result"/&gt;
+    &lt;/sample&gt;
+&lt;/route&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/scala-dsl-eip.html b/manual/latest/scala-dsl-eip.html
index bfb67d4..269b8f1 100644
--- a/manual/latest/scala-dsl-eip.html
+++ b/manual/latest/scala-dsl-eip.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Scala DSL - EIP :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/scala-dsl-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class= [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Scala DSL - EIP :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/scala-dsl-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class= [...]
 "direct:c" to "mock:c" to "mock:d"</code></pre></div></div><div class="paragraph"><p>For more advanced use cases, you can also use a block-based syntax, where every step in the pipeline starts with either<code>to</code>or<code>→</code>.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">"direct:e" ==&gt; {
   --&gt; ("mock:e")
   --&gt; ("mock:f")
diff --git a/manual/latest/scala-dsl-getting-started.html b/manual/latest/scala-dsl-getting-started.html
index 3edbe6c..6d16801 100644
--- a/manual/latest/scala-dsl-getting-started.html
+++ b/manual/latest/scala-dsl-getting-started.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Scala DSL - Getting Started :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/scala-dsl-getting-started.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class= [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Scala DSL - Getting Started :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/scala-dsl-getting-started.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class= [...]
   "direct:a" --&gt; "mock:a"
   "direct:b" to "mock:b"
 }</code></pre></div></div><div class="paragraph"><p>INFO: From<strong>Camel 2.15</strong>onwards use org.apache.camel.scala.dsl.builder.ScalaRouteBuilder and pass in the CamelContext in the constructor, which will be used by the builder. The old class RouteBuilder is deprecated.</p></div><div class="paragraph"><p>If you compare this to the Java DSL, you notice:</p></div><div class="ulist"><ul><li><p>there is no configure() method to override</p></li><li><p>a route starts directly with a  [...]
\ No newline at end of file
diff --git a/manual/latest/scala-dsl-supported-languages.html b/manual/latest/scala-dsl-supported-languages.html
index 5bd41b5..6ab4654 100644
--- a/manual/latest/scala-dsl-supported-languages.html
+++ b/manual/latest/scala-dsl-supported-languages.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Scala DSL - Supported languages :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/scala-dsl-supported-languages.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><di [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Scala DSL - Supported languages :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/scala-dsl-supported-languages.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><di [...]
 `Exchange` to do XPath queries against the message. Just look at this
 Splitter example, where the `xpath` method is used in a
 `Exchange ⇒ Any*` function literal
diff --git a/manual/latest/scala-dsl.html b/manual/latest/scala-dsl.html
index 3d35a13..0576c66 100644
--- a/manual/latest/scala-dsl.html
+++ b/manual/latest/scala-dsl.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/scala-dsl.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-ite [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/scala-dsl.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-ite [...]
   &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
   &lt;artifactId&gt;camel-scala&lt;/artifactId&gt;
   &lt;version&gt;x.x.x&lt;/version&gt;
diff --git a/manual/latest/script-eip.html b/manual/latest/script-eip.html
new file mode 100644
index 0000000..7098937
--- /dev/null
+++ b/manual/latest/script-eip.html
@@ -0,0 +1,27 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/script-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-it [...]
+  .script().groovy("// some groovy code goes here")
+  .to("bean:MyServiceBean.processLine");</code></pre></div></div><div class="paragraph"><p>And from XML its easy as well</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="file://inbox"/&gt;
+  &lt;script&gt;
+    &lt;groovy&gt;// some groovy code goes here&lt;/groovy&gt;
+  &lt;/script&gt;
+  &lt;beanRef ref="myServiceBean" method="processLine"/&gt;
+&lt;/route&gt;
+
+&lt;bean id="myServiceBean" class="com.mycompany.MyServiceBean"/&gt;</code></pre></div></div><div class="paragraph"><p>Mind that you can use<em>CDATA</em>in XML if the groovy scrip uses<code>&lt; &gt;</code>etc</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="file://inbox"/&gt;
+  &lt;script&gt;
+    &lt;groovy&gt;&lt;![CDATA[ some groovy script here that can be multiple lines and whatnot ]]&gt;&lt;/groovy&gt;
+  &lt;/script&gt;
+  &lt;beanRef ref="myServiceBean" method="processLine"/&gt;
+&lt;/route&gt;
+
+&lt;bean id="myServiceBean" class="com.mycompany.MyServiceBean"/&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_using_external_script_files"><a class="anchor" href="#_using_external_script_files"></a>Using external script files</h3><div class="paragraph"><p>You can refer to external script files instead of inlining the script. For example to load a groovy script from the classpath you need to prefix the value with<code>resource:</code>as shown:</p></div><div class="listing [...]
+  &lt;from uri="file://inbox"/&gt;
+  &lt;script&gt;
+    &lt;groovy&gt;resource:classpath:com/foo/myscript.groovy&lt;/groovy&gt;
+  &lt;/script&gt;
+  &lt;beanRef ref="myServiceBean" method="processLine"/&gt;
+&lt;/route&gt;
+
+&lt;bean id="myServiceBean" class="com.mycompany.MyServiceBean"/&gt;</code></pre></div></div><div class="paragraph"><p>You can also refer to the script from the file system with<code>file:</code>instead of<code>classpath:</code>such as<code>file:/var/myscript.groovy</code></p></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></fo [...]
\ No newline at end of file
diff --git a/manual/latest/scripting-languages.html b/manual/latest/scripting-languages.html
index fc159b6..3bb16fc 100644
--- a/manual/latest/scripting-languages.html
+++ b/manual/latest/scripting-languages.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/scripting-languages.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class=" [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/scripting-languages.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class=" [...]
 # some other statements ...
 # camel take the result value as the script evaluation result
 result = body * 2 + 1</code></pre></div></div></div><div class="sect3"><h4 id="ScriptingLanguages-Dependencies"><a class="anchor" href="#ScriptingLanguages-Dependencies"></a>Dependencies</h4><div class="paragraph"><p>To use scripting languages in your camel routes you need to add the a dependency on<strong>camel-script</strong>which integrates the JSR-223 scripting engine.</p></div><div class="paragraph"><p>If you use maven you could just add the following to your pom.xml, substituting t [...]
diff --git a/manual/latest/security-advisories.html b/manual/latest/security-advisories.html
index c4613c1..8a4eb45 100644
--- a/manual/latest/security-advisories.html
+++ b/manual/latest/security-advisories.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/security-advisories.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class=" [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/security-advisories.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class=" [...]
\ No newline at end of file
diff --git a/manual/latest/security.html b/manual/latest/security.html
index e2da260..44d4484 100644
--- a/manual/latest/security.html
+++ b/manual/latest/security.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/security.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/security.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
\ No newline at end of file
diff --git a/manual/latest/service-registry.html b/manual/latest/service-registry.html
new file mode 100644
index 0000000..db76d64
--- /dev/null
+++ b/manual/latest/service-registry.html
@@ -0,0 +1,28 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/service-registry.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="nav [...]
+
+context.addService(service);</code></pre></div></div><div class="paragraph"><p>The configuration of the<em>Service Registry</em>depends on the implementation you have chosen. Out of the box camel provides the following implementations:</p></div><table class="tableblock frame-all grid-all stretch"><colgroup><col style="width: 25%;"><col style="width: 25%;"><col style="width: 50%;"></colgroup><thead><tr><th class="tableblock halign-left valign-top">Type</th><th class="tableblock halign-lef [...]
+
+// bind the policy to one or more routes
+from("undertow:http://0.0.0.0:8080")
+    .routePolicy(policy)
+    .log("Route ${routeId} has been invoked");</code></pre></div></div><div class="paragraph"><p>To apply the same policy to all the routes a dedicated<em>RoutePolicyFactory</em>can be used:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">// add the service registry route policy factory to context
+context.addRoutePolicyFactory(new ServiceRegistrationRoutePolicyFactory()));</code></pre></div></div><div class="paragraph"><p>To configure how the service is exposed you can add route specific properties like:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">// bind the policy to one or more routes
+from("undertow:http://0.0.0.0:8080")
+    .routePolicy(policy)
+    .routeProperty(ServiceDefinition.SERVICE_META_NAME, "my-service")
+    .routeProperty(ServiceDefinition.SERVICE_META_ID, "my-id")
+    .routeProperty(ServiceDefinition.SERVICE_META_PORT, "8080")
+    .log("Route ${routeId} has been invoked");</code></pre></div></div><div class="paragraph"><p>Service name and service id can also be provided by<em>routeId</em>and<em>routeGroup</em></p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">// bind the policy to one or more routes
+from("undertow:http://0.0.0.0:8080")
+    .routePolicy(policy)
+    .routeGroup("my-service")
+    .routeId("my-id")
+    .routeProperty(ServiceDefinition.SERVICE_META_PORT, "8080")
+    .log("Route ${routeId} has been invoked");</code></pre></div></div><div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p>Some component such has camel-undertow and those based on camel-http-common implement<em>DiscoverableService</em>and they can automatically provide the metadata needed for service registration.</p></div></td></tr></table></div><div class="admonitionblock tip"><table><tr [...]
+    .log("Route ${routeId} has been invoked");</code></pre></div></div></li></ul></div><div class="paragraph"><p>To configure how the service is exposed you can add service specific endpoint options such as:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("service:my-service:undertow:http://0.0.0.0:8080?service.id=my-service-id")
+    .log("Route ${routeId} has been invoked");</code></pre></div></div><div class="admonitionblock tip"><table><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content"><div class="paragraph"><p>Any option prefixed with<em>service.</em>is automatically added to the service&#8217;s metadata.</p></div></td></tr></table></div></div></div></div><div class="sect1"><h2 id="_spring_cloud"><a class="anchor" href="#_spring_cloud"></a>Spring Cloud</h2><div class="section [...]
+spring.cloud.consul.enabled = true
+spring.cloud.consul.discovery.enabled = true
+
+# Camel Cloud
+camel.cloud.service-registry.service-host = localhost</code></pre></div></div><div class="paragraph"><p>To register a route, the easy way is then to use the<em>service</em>component as described above.</p></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/ [...]
\ No newline at end of file
diff --git a/manual/latest/serviceCall-eip.html b/manual/latest/serviceCall-eip.html
new file mode 100644
index 0000000..065552e
--- /dev/null
+++ b/manual/latest/serviceCall-eip.html
@@ -0,0 +1,203 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/serviceCall-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navb [...]
+    .serviceCall("foo")
+    .to("mock:result");</code></pre></div></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+  &lt;route&gt;
+    &lt;from uri="direct:start"/&gt;
+    &lt;serviceCall name="foo"/&gt;
+    &lt;to uri="mock:result"/&gt;
+  &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div><div class="paragraph"><p>Camel will then:</p></div><div class="ulist"><ul><li><p>search for a service call configuration from the Camel context and registry</p></li><li><p>lookup a service with the name<code><code>foo</code></code>from an external service registry</p></li><li><p>filter the servers</p></li><li><p>select the server to use</p></li><li><p>build a Camel URI using the chosen server info</p></li></ul></div><div class="paragraph"><p [...]
+    .serviceCall("foo/hello")
+    .to("mock:result");</code></pre></div></div><div class="paragraph"><p>If you want to have more control over the uri construction, you can use the<strong>uri</strong>directive:</p></div><table class="tableblock frame-all grid-all stretch"><colgroup><col style="width: 25%;"><col style="width: 40%;"><col style="width: 35%;"></colgroup><thead><tr><th class="tableblock halign-left valign-top">Name</th><th class="tableblock halign-left valign-top">URI</th><th class="tableblock halign-left  [...]
+    .serviceCall("foo", "undertow:http://foo/hello")
+    .to("mock:result");</code></pre></div></div><div class="paragraph"><p>Advanced users can have full control over the uri construction through expressions:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start")
+    .serviceCall()
+        .name("foo")
+        .expression()
+            .simple("undertow:http://${header.CamelServiceCallServiceHost}:${header.CamelServiceCallServicePort}/hello");</code></pre></div></div></div><div class="sect2"><h3 id="_options"><a class="anchor" href="#_options"></a>Options</h3><div class="paragraph"><p>The Service Call EIP supports 14 options which are listed below:</p></div><table class="tableblock frame-all grid-all stretch"><colgroup><col style="width: 20%;"><col style="width: 50%;"><col style="width: 10%;"><col style="wi [...]
+    .serviceCall("foo")
+        .staticServiceDiscovery()
+            .servers("service1@host1:80,service1@host2:80")
+            .servers("service2@host1:8080,service2@host2:8080,service2@host3:8080")
+            .end()
+    .to("mock:result");</code></pre></div></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+  &lt;route&gt;
+    &lt;from uri="direct:start"/&gt;
+    &lt;serviceCall name="foo"&gt;
+      &lt;staticServiceDiscovery&gt;
+        &lt;servers&gt;service1@host1:80,service1@host2:80&lt;/servers&gt;
+        &lt;servers&gt;service2@host1:8080,service2@host2:8080,service2@host3:8080&lt;/servers&gt;
+      &lt;/staticServiceDiscovery&gt;
+    &lt;/serviceCall
+    &lt;to uri="mock:result"/&gt;
+  &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_consul_service_discovery"><a class="anchor" href="#_consul_service_discovery"></a>Consul Service Discovery</h3><div class="paragraph"><p>To leverage Consul for Service Discovery, maven users will need to add the following dependency to their pom.xml</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+    &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
+    &lt;artifactId&gt;camel-consul&lt;/artifactId&gt;
+    &lt;!-- use the same version as your Camel core version --&gt;
+    &lt;version&gt;x.y.z&lt;/version&gt;
+&lt;/dependency&gt;</code></pre></div></div><div class="paragraph"><p>Available options:</p></div><table class="tableblock frame-all grid-all stretch"><colgroup><col style="width: 30%;"><col style="width: 10%;"><col style="width: 60%;"></colgroup><thead><tr><th class="tableblock halign-left valign-top">Name</th><th class="tableblock halign-left valign-top">Java Type</th><th class="tableblock halign-left valign-top">Description</th></tr></thead><tbody><tr><td class="tableblock halign-left [...]
+    .serviceCall("foo")
+        .consulServiceDiscovery()
+            .url("http://consul-cluster:8500")
+            .datacenter("neverland")
+            .end()
+    .to("mock:result");</code></pre></div></div></div><div class="sect2"><h3 id="_dns_service_discovery"><a class="anchor" href="#_dns_service_discovery"></a>DNS Service Discovery</h3><div class="paragraph"><p>To leverage DNS for Service Discovery, maven users will need to add the following dependency to their pom.xml</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+    &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
+    &lt;artifactId&gt;camel-dns&lt;/artifactId&gt;
+    &lt;!-- use the same version as your Camel core version --&gt;
+    &lt;version&gt;x.y.z&lt;/version&gt;
+&lt;/dependency&gt;</code></pre></div></div><div class="paragraph"><p>Available options:</p></div><table class="tableblock frame-all grid-all stretch"><colgroup><col style="width: 30%;"><col style="width: 10%;"><col style="width: 60%;"></colgroup><thead><tr><th class="tableblock halign-left valign-top">Name</th><th class="tableblock halign-left valign-top">Java Type</th><th class="tableblock halign-left valign-top">Description</th></tr></thead><tbody><tr><td class="tableblock halign-left [...]
+    .serviceCall("foo")
+        .dnsServiceDiscovery("my.domain.com")
+    .to("mock:result");</code></pre></div></div><div class="paragraph"><p>And in XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+  &lt;route&gt;
+    &lt;from uri="direct:start"/&gt;
+    &lt;serviceCall name="foo"&gt;
+      &lt;dnsServiceDiscovery domain="my.domain.com"/&gt;
+    &lt;/serviceCall&gt;
+    &lt;to uri="mock:result"/&gt;
+  &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_etcd_service_discovery"><a class="anchor" href="#_etcd_service_discovery"></a>Etcd Service Discovery</h3><div class="paragraph"><p>To leverage Etcd for Service Discovery, maven users will need to add the following dependency to their pom.xml</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dependency&gt;
+    &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
+    &lt;artifactId&gt;camel-etcd&lt;/artifactId&gt;
+    &lt;!-- use the same version as your Camel core version --&gt;
+    &lt;version&gt;x.y.z&lt;/version&gt;
+&lt;/dependency&gt;</code></pre></div></div><div class="paragraph"><p>Available options:</p></div><table class="tableblock frame-all grid-all stretch"><colgroup><col style="width: 30%;"><col style="width: 10%;"><col style="width: 60%;"></colgroup><thead><tr><th class="tableblock halign-left valign-top">Name</th><th class="tableblock halign-left valign-top">Java Type</th><th class="tableblock halign-left valign-top">Description</th></tr></thead><tbody><tr><td class="tableblock halign-left [...]
+    .serviceCall("foo")
+        .etcdServiceDiscovery()
+            .uris("http://etcd1:4001,http://etcd2:4001")
+            .servicePath("/camel/services")
+            .end()
+    .to("mock:result");</pre></div></div><div class="paragraph"><p>And in XML</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+  &lt;route&gt;
+    &lt;from uri="direct:start"/&gt;
+    &lt;serviceCall name="foo"&gt;
+      &lt;etcdServiceDiscovery uris="http://etcd1:4001,http://etcd2:4001" servicePath="/camel/services"/&gt;
+    &lt;/serviceCall&gt;
+    &lt;to uri="mock:result"/&gt;
+  &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_kubernetes_service_discovery"><a class="anchor" href="#_kubernetes_service_discovery"></a>Kubernetes Service Discovery</h3><div class="paragraph"><p>To leverage Kubernetes for Service Discovery, maven users will need to add the following dependency to their pom.xml</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dep [...]
+    &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
+    &lt;artifactId&gt;camel-kubernetes&lt;/artifactId&gt;
+    &lt;!-- use the same version as your Camel core version --&gt;
+    &lt;version&gt;x.y.z&lt;/version&gt;
+&lt;/dependency&gt;</code></pre></div></div><div class="paragraph"><p>Available options:</p></div><table class="tableblock frame-all grid-all stretch"><colgroup><col style="width: 30%;"><col style="width: 10%;"><col style="width: 60%;"></colgroup><thead><tr><th class="tableblock halign-left valign-top">Name</th><th class="tableblock halign-left valign-top">Java Type</th><th class="tableblock halign-left valign-top">Description</th></tr></thead><tbody><tr><td class="tableblock halign-left [...]
+    .serviceCall("foo")
+        .kubernetesServiceDiscovery()
+            .lookup("dns")
+            .namespace("myNamespace")
+            .dnsDomain("my.domain.com")
+            .end()
+    .to("mock:result");</code></pre></div></div><div class="paragraph"><p>And in XML</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+  &lt;route&gt;
+    &lt;from uri="direct:start"/&gt;
+    &lt;serviceCall name="foo"&gt;
+      &lt;kubernetesServiceDiscovery lookup="dns" namespace="myNamespace" dnsDomain="my.domain.com"/&gt;
+    &lt;/serviceCall&gt;
+    &lt;to uri="mock:result"/&gt;
+  &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_blacklist_service_filter"><a class="anchor" href="#_blacklist_service_filter"></a>Blacklist Service Filter</h3><div class="paragraph"><p>This service filter implementation removes the listed services from those found by the service discovery. Each service should be provided in the following form:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code>[service@]host:po [...]
+    .serviceCall("foo")
+        .staticServiceDiscovery()
+            .servers("service1@host1:80,service1@host2:80")
+            .servers("service2@host1:8080,service2@host2:8080,service2@host3:8080")
+            .end()
+        .blacklistFilter()
+            .servers("service2@host2:8080")
+            .end()
+    .to("mock:result");</code></pre></div></div><div class="paragraph"><p>And in XML</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+  &lt;route&gt;
+    &lt;from uri="direct:start"/&gt;
+    &lt;serviceCall name="foo"&gt;
+      &lt;staticServiceDiscovery&gt;
+        &lt;servers&gt;service1@host1:80,service1@host2:80&lt;/servers&gt;
+        &lt;servers&gt;service2@host1:8080,service2@host2:8080,service2@host3:8080&lt;/servers&gt;
+      &lt;/staticServiceDiscovery&gt;
+      &lt;blacklistServiceFilter&gt;
+        &lt;servers&gt;service2@host2:8080&lt;/servers&gt;
+      &lt;/blacklistServiceFilter&gt;
+    &lt;/serviceCall
+    &lt;to uri="mock:result"/&gt;
+  &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_load_balancer"><a class="anchor" href="#_load_balancer"></a>Load Balancer</h3><div class="paragraph"><p>The Service Call EIP comes with its own Load Balancer which is istantiated by default if a custom is not configured and glues Service Discovery, Service Filer, Service Chooser and Service Expression together to load balance requests among the available services.</p></div><div class="paragraph"><p>If you nee [...]
+    &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
+    &lt;artifactId&gt;camel-ribbon&lt;/artifactId&gt;
+    &lt;!-- use the same version as your Camel core version --&gt;
+    &lt;version&gt;x.y.z&lt;/version&gt;
+&lt;/dependency&gt;</code></pre></div></div><div class="paragraph"><p>Available options:</p></div><table class="tableblock frame-all grid-all stretch"><colgroup><col style="width: 30%;"><col style="width: 10%;"><col style="width: 60%;"></colgroup><thead><tr><th class="tableblock halign-left valign-top">Name</th><th class="tableblock halign-left valign-top">Java Type</th><th class="tableblock halign-left valign-top">Description</th></tr></thead><tbody><tr><td class="tableblock halign-left [...]
+    .serviceCall("foo")
+        .ribbonLoadBalancer()
+    .to("mock:result");</code></pre></div></div><div class="paragraph"><p>And in XML</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+  &lt;route&gt;
+    &lt;from uri="direct:start"/&gt;
+    &lt;serviceCall name="foo"&gt;
+      &lt;ribbonLoadBalancer/&gt;
+    &lt;/serviceCall&gt;
+    &lt;to uri="mock:result"/&gt;
+  &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div><div class="paragraph"><p>You can configure Ribbon key programmatic using<code>RibbonConfiguration</code>:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">RibbonConfiguration configuration = new RibbonConfiguration();
+configuration.addProperty("listOfServers", "localhost:9090,localhost:9091");
+
+from("direct:start")
+    .serviceCall("foo")
+        .loadBalancer(new RibbonServiceLoadBalancer(configuration))
+    .to("mock:result");</code></pre></div></div><div class="paragraph"><p>Or leveraging XML specific configuration:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+  &lt;route&gt;
+    &lt;from uri="direct:start"/&gt;
+    &lt;serviceCall name="foo"&gt;
+      &lt;ribbonLoadBalancer&gt;
+          &lt;properties key="listOfServers" value="localhost:9090,localhost:9091"/&gt;
+      &lt;/ribbonLoadBalancer&gt;
+    &lt;/serviceCall&gt;
+    &lt;to uri="mock:result"/&gt;
+  &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_shared_configurations"><a class="anchor" href="#_shared_configurations"></a>Shared configurations</h3><div class="paragraph"><p>The Service Call EIP can be configured straight on the route definition or through shared configurations, here an example with two configurations registered in the Camel Context:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="l [...]
+globalConf.setServiceDiscovery(
+    name -&gt; Arrays.asList(
+        new DefaultServiceDefinition(name, "my.host1.com", 8080),
+        new DefaultServiceDefinition(name, "my.host2.com", 443))
+);
+globalConf.setServiceChooser(
+    list -&gt; list.get(ThreadLocalRandom.current().nextInt(list.size()))
+);
+
+ServiceCallConfigurationDefinition httpsConf = new ServiceCallConfigurationDefinition();
+httpsConf.setServiceFilter(
+    list -&gt; list.stream().filter(s -&gt; s.getPort() == 443).collect(toList())
+);
+
+getContext().setServiceCallConfiguration(globalConf);
+getContext().addServiceCallConfiguration("https", httpsConf);</code></pre></div></div><div class="paragraph"><p>Each Service Call definition and configuration will inherit from the<code>globalConf</code>which can be seen as default configuration, then you can reference the<code>httpsConf</code>in your route as follow:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start")
+    .serviceCall()
+        .name("foo")
+        .serviceCallConfiguration("https")
+        .end()
+    .to("mock:result");</code></pre></div></div><div class="paragraph"><p>This route will leverages the service discovery and service chooser from<code>globalConf</code>and the service filter from<code>httpsConf</code>but you can override any of them if needed straight on the route:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start")
+    .serviceCall()
+        .name("foo")
+        .serviceCallConfiguration("https")
+        .serviceChooser(list -&gt; list.get(0))
+        .end()
+    .to("mock:result");</code></pre></div></div></div><div class="sect2"><h3 id="_spring_boot_support"><a class="anchor" href="#_spring_boot_support"></a>Spring Boot support</h3><div class="paragraph"><p>In a Spring-Boot application you can externalize most of the configuration options:</p></div><div class="listingblock"><div class="title">application.properties</div><div class="content"><pre class="highlightjs highlight"><code class="language-properties hljs" data-lang="properties"># th [...]
+# property placeholders support
+service.name = foo
+
+# this property is not mandatory and it has been included to show how to configure
+# the service discovery implementation provided by camel-consul
+camel.cloud.consul.service-discovery.url = http://localhost:8500
+
+# Add a static list of servers for the service named foo
+camel.cloud.service-discovery.services[foo] = host1.static:8080,host2.static:8080</code></pre></div></div><div class="listingblock"><div class="title">Routes</div><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">@Component
+public class MyRouteBuilder implements RouteBuilder {
+    @Override
+    public void configure() throws Exception {
+        from("direct:start")
+            .serviceCall("{{service.name}}");
+    }
+}</code></pre></div></div></div><div class="sect2"><h3 id="_spring_cloud_support"><a class="anchor" href="#_spring_cloud_support"></a>Spring Cloud support</h3><div class="paragraph"><p>If you are using Camel in an application based on Spring Cloud, you can leverage Spring Cloud service discovery and load balancing capabilities by adding the Spring Cloud related dependencies (i.e. spring-cloud-consul, spring-cloud-kubernetes) as any Spring Boot/Cloud application in addition to Camel&#8217 [...]
+    &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
+    &lt;artifactId&gt;camel-spring-cloud dependency&lt;/artifactId&gt;
+    &lt;!-- use the same version as your Camel core version --&gt;
+    &lt;version&gt;x.y.z&lt;/version&gt;
+&lt;/dependency&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/servicepool.html b/manual/latest/servicepool.html
index dd6e0a9..552c725 100644
--- a/manual/latest/servicepool.html
+++ b/manual/latest/servicepool.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/servicepool.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-i [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/servicepool.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-i [...]
\ No newline at end of file
diff --git a/manual/latest/servlet-tomcat-example.html b/manual/latest/servlet-tomcat-example.html
index 207a1d3..f71d988 100644
--- a/manual/latest/servlet-tomcat-example.html
+++ b/manual/latest/servlet-tomcat-example.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/servlet-tomcat-example.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a clas [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/servlet-tomcat-example.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a clas [...]
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"&gt;
 
diff --git a/manual/latest/setBody-eip.html b/manual/latest/setBody-eip.html
new file mode 100644
index 0000000..0405abd
--- /dev/null
+++ b/manual/latest/setBody-eip.html
@@ -0,0 +1,13 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/setBody-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-i [...]
+    public void configure() {
+        from("direct:a")
+            .setBody(constant("test"))
+            .to("direct:b");
+    }
+};</code></pre></div></div><div class="paragraph"><p>And the same example using XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+    &lt;route&gt;
+        &lt;from uri="direct:a"/&gt;
+        &lt;setBody&gt;&lt;constant&gt;test&lt;/constant&gt;&lt;/setBody&gt;
+        &lt;to uri="direct:b"/&gt;
+    &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/setFaultBody-eip.html b/manual/latest/setFaultBody-eip.html
new file mode 100644
index 0000000..f123b33
--- /dev/null
+++ b/manual/latest/setFaultBody-eip.html
@@ -0,0 +1,13 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/setFaultBody-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="nav [...]
+    public void configure() {
+        from("direct:a")
+            .setFaultBody(constant("test"))
+            .to("direct:b");
+    }
+};</code></pre></div></div><div class="paragraph"><p>And the same example using XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+    &lt;route&gt;
+        &lt;from uri="direct:a"/&gt;
+        &lt;setFaultBody&gt;&lt;constant&gt;test&lt;/constant&gt;&lt;/setFaultBody&gt;
+        &lt;to uri="direct:b"/&gt;
+    &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/setHeader-eip.html b/manual/latest/setHeader-eip.html
new file mode 100644
index 0000000..8044aa6
--- /dev/null
+++ b/manual/latest/setHeader-eip.html
@@ -0,0 +1,15 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/setHeader-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar [...]
+    public void configure() {
+        from("direct:a")
+            .setHeader("myHeader", constant("test"))
+            .to("direct:b");
+    }
+};</code></pre></div></div><div class="paragraph"><p>And the same example using XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+    &lt;route&gt;
+        &lt;from uri="direct:a"/&gt;
+        &lt;setHeader headerName="myHeader"&gt;
+            &lt;constant&gt;test&lt;/constant&gt;
+        &lt;/setHeader&gt;
+        &lt;to uri="direct:b"/&gt;
+    &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/setOutHeader-eip.html b/manual/latest/setOutHeader-eip.html
new file mode 100644
index 0000000..6d41133
--- /dev/null
+++ b/manual/latest/setOutHeader-eip.html
@@ -0,0 +1,15 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/setOutHeader-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="nav [...]
+    public void configure() {
+        from("direct:a")
+            .setOutHeader("myHeader", constant("test"))
+            .to("direct:b");
+    }
+};</code></pre></div></div><div class="paragraph"><p>And the same example using XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+    &lt;route&gt;
+        &lt;from uri="direct:a"/&gt;
+        &lt;setOutHeader headerName="myHeader"&gt;
+            &lt;constant&gt;test&lt;/constant&gt;
+        &lt;/setOutHeader&gt;
+        &lt;to uri="direct:b"/&gt;
+    &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/setProperty-eip.html b/manual/latest/setProperty-eip.html
new file mode 100644
index 0000000..89c3c88
--- /dev/null
+++ b/manual/latest/setProperty-eip.html
@@ -0,0 +1,15 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/setProperty-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navb [...]
+    public void configure() {
+        from("direct:a")
+            .setProperty("myProperty", constant("test"))
+            .to("direct:b");
+    }
+};</code></pre></div></div><div class="paragraph"><p>And the same example using XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+    &lt;route&gt;
+        &lt;from uri="direct:a"/&gt;
+        &lt;setProperty propertyName="myProperty"&gt;
+            &lt;constant&gt;test&lt;/constant&gt;
+        &lt;/setProperty&gt;
+        &lt;to uri="direct:b"/&gt;
+    &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/simple-language.html b/manual/latest/simple-language.html
new file mode 100644
index 0000000..2fd1bef
--- /dev/null
+++ b/manual/latest/simple-language.html
@@ -0,0 +1,73 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/simple-language.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navb [...]
+simple("${body.address.street}")
+simple("${body.address.zip}")</code></pre></div></div><div class="paragraph"><p>Camel understands the shorthand names for getters, but you can invoke any method or use the real name such as:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">simple("${body.address}")
+simple("${body.getAddress.getStreet}")
+simple("${body.address.getZip}")
+simple("${body.doSomething}")</code></pre></div></div><div class="paragraph"><p>You can also use the null safe operator (<code>?.</code>) to avoid NPE if for example the body does NOT have an address</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">simple("${body?.address?.street}")</code></pre></div></div><div class="paragraph"><p>It is also possible to index in<code>Map</code>or<code>List</code> [...]
+simple("${body[this.is.foo]}")</code></pre></div></div><div class="paragraph"><p>Suppose there was no value with the key<code>foo</code>then you can use the null safe operator to avoid the NPE as shown:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">simple("${body[foo]?.name}")</code></pre></div></div><div class="paragraph"><p>You can also access<code>List</code>types, for example to get lines f [...]
+simple("${body.address.lines[1]}")
+simple("${body.address.lines[2]}")</code></pre></div></div><div class="paragraph"><p>There is a special<code>last</code>keyword which can be used to get the last value from a list.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">simple("${body.address.lines[last]}")</code></pre></div></div><div class="paragraph"><p>And to get the 2nd last you can subtract a number, so we can use<code>last-1</code [...]
+exchange.getIn().setBody(lines);
+
+simple("There are ${body.length} lines")</code></pre></div></div><div class="paragraph"><p>And yes you can combine this with the operator support as shown below:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">simple("${body.address.zip} &gt; 1000")</code></pre></div></div></div><div class="sect2"><h3 id="_operator_support"><a class="anchor" href="#_operator_support"></a>Operator support</h3><div [...]
+simple("${in.header.foo} == 'foo'")
+
+// ignore case when comparing, so if the header has value FOO this will match
+simple("${in.header.foo} =~ 'foo'")
+
+// here Camel will type convert '100' into the type of in.header.bar and if it is an Integer '100' will also be converter to an Integer
+simple("${in.header.bar} == '100'")
+
+simple("${in.header.bar} == 100")
+
+// 100 will be converter to the type of in.header.bar so we can do &gt; comparison
+simple("${in.header.bar} &gt; 100")</code></pre></div></div><div class="sect3"><h4 id="_comparing_with_different_types"><a class="anchor" href="#_comparing_with_different_types"></a>Comparing with different types</h4><div class="paragraph"><p>When you compare with different types such as String and int, then you have to take a bit care. Camel will use the type from the left hand side as 1st priority. And fallback to the right hand side type if both values couldn&#8217;t be compared based [...]
+simple("${in.header.baz} == null")
+
+// testing for not null
+simple("${in.header.baz} != null")</code></pre></div></div><div class="paragraph"><p>And a bit more advanced example where the right value is another expression</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">simple("${in.header.date} == ${date:now:yyyyMMdd}")
+
+simple("${in.header.type} == ${bean:orderService?method=getOrderType}")</code></pre></div></div><div class="paragraph"><p>And an example with contains, testing if the title contains the word Camel</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">simple("${in.header.title} contains 'Camel'")</code></pre></div></div><div class="paragraph"><p>And an example with regex, testing if the number header is [...]
+   &lt;filter&gt;
+       &lt;simple&gt;${in.header.type} == 'widget'&lt;/simple&gt;
+       &lt;to uri="bean:orderService?method=handleWidget"/&gt;
+   &lt;/filter&gt;
+&lt;/from&gt;</code></pre></div></div></div></div><div class="sect2"><h3 id="_using_and_or"><a class="anchor" href="#_using_and_or"></a>Using and / or</h3><div class="paragraph"><p>If you have two expressions you can combine them with the<code>&amp;&amp;</code>or<code>||</code>operator.</p></div><div class="paragraph"><p>For instance:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">simple("${in.h [...]
+   &lt;filter&gt;
+       &lt;simple&gt;${in.header.foo}&lt;/simple&gt;
+       &lt;to uri="mock:fooOrders"/&gt;
+   &lt;/filter&gt;
+&lt;/from&gt;</code></pre></div></div><div class="paragraph"><p>The Simple language can be used for the predicate test above in the Message Filter pattern, where we test if the in message has a<code>foo</code>header (a header with the key<code>foo</code>exists). If the expression evaluates to<strong>true</strong>then the message is routed to the<code>mock:fooOrders</code>endpoint, otherwise the message is dropped.</p></div><div class="paragraph"><p>The same example in Java DSL:</p></div> [...]
+    .filter().simple("${in.header.foo}")
+        .to("seda:fooOrders");</code></pre></div></div><div class="paragraph"><p>You can also use the simple language for simple text concatenations such as:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:hello")
+    .transform().simple("Hello ${in.header.user} how are you?")
+    .to("mock:reply");</code></pre></div></div><div class="paragraph"><p>Notice that we must use $\{ } placeholders in the expression now to allow Camel to parse it correctly.</p></div><div class="paragraph"><p>And this sample uses the date command to output current date.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:hello")
+    .transform().simple("The today is ${date:now:yyyyMMdd} and it is a great day.")
+    .to("mock:reply");</code></pre></div></div><div class="paragraph"><p>And in the sample below we invoke the bean language to invoke a method on a bean to be included in the returned string:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:order")
+    .transform().simple("OrderId: ${bean:orderIdGenerator}")
+    .to("mock:reply");</code></pre></div></div><div class="paragraph"><p>Where<code>orderIdGenerator</code>is the id of the bean registered in the Registry. If using Spring then it is the Spring bean id.</p></div><div class="paragraph"><p>If we want to declare which method to invoke on the order id generator bean we must prepend<code>.method name</code>such as below where we invoke the<code>generateId</code>method.</p></div><div class="listingblock"><div class="content"><pre class="highl [...]
+    .transform().simple("OrderId: ${bean:orderIdGenerator.generateId}")
+    .to("mock:reply");</code></pre></div></div><div class="paragraph"><p>We can use the<code>?method=methodname</code>option that we are familiar with the<a href="#bean-component">Bean</a>component itself:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:order")
+    .transform().simple("OrderId: ${bean:orderIdGenerator?method=generateId}")
+    .to("mock:reply");</code></pre></div></div><div class="paragraph"><p>And from Camel 2.3 onwards you can also convert the body to a given type, for example to ensure that it is a String you can do:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;transform&gt;
+  &lt;simple&gt;Hello ${bodyAs(String)} how are you?&lt;/simple&gt;
+&lt;/transform&gt;</code></pre></div></div><div class="paragraph"><p>There are a few types which have a shorthand notation, so we can use<code>String</code>instead of<code>java.lang.String</code>. These are:<code>byte[], String, Integer, Long</code>. All other types must use their FQN name, e.g.<code>org.w3c.dom.Document</code>.</p></div><div class="paragraph"><p>It is also possible to lookup a value from a header<code>Map</code>in<strong>Camel 2.3</strong>onwards:</p></div><div class="l [...]
+  &lt;simple&gt;The gold value is ${header.type[gold]}&lt;/simple&gt;
+&lt;/transform&gt;</code></pre></div></div><div class="paragraph"><p>In the code above we lookup the header with name<code>type</code>and regard it as a<code>java.util.Map</code>and we then lookup with the key<code>gold</code>and return the value. If the header is not convertible to Map an exception is thrown. If the header with name<code>type</code>does not exist<code>null</code>is returned.</p></div><div class="paragraph"><p>From Camel 2.9 onwards you can nest functions, such as shown  [...]
+  &lt;simple&gt;${properties:${header.someKey}}&lt;/simple&gt;
+&lt;/setHeader&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_referring_to_constants_or_enums"><a class="anchor" href="#_referring_to_constants_or_enums"></a>Referring to constants or enums</h3><div class="paragraph"><p>Suppose you have an enum for customers</p></div><div class="paragraph"><p>And in a Content Based Router we can use the<a href="#simple-language">Simple</a>language to refer to this enum, to check the message which enum it matches.</p></div></div><div class= [...]
+  &lt;simple&gt;The following text\nis on a new line&lt;/simple&gt;
+&lt;/transform&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_leading_and_trailing_whitespace_handling"><a class="anchor" href="#_leading_and_trailing_whitespace_handling"></a>Leading and trailing whitespace handling</h3><div class="paragraph"><p>The trim attribute of the expression can be used to control whether the leading and trailing whitespace characters are removed or preserved. The default value is true, which removes the whitespace characters.</p></div><div class=" [...]
+  &lt;simple trim="false"&gt;You get some trailing whitespace characters.     &lt;/simple&gt;
+&lt;/setBody&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_setting_result_type"><a class="anchor" href="#_setting_result_type"></a>Setting result type</h3><div class="paragraph"><p>You can now provide a result type to the<a href="#simple-language">Simple</a>expression, which means the result of the evaluation will be converted to the desired type. This is most useable to define types such as booleans, integers, etc.</p></div><div class="paragraph"><p>For example to set a  [...]
+  &lt;!-- use resultType to indicate that the type should be a java.lang.Boolean --&gt;
+  &lt;simple resultType="java.lang.Boolean"&gt;true&lt;/simple&gt;
+&lt;/setHeader&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_loading_script_from_external_resource"><a class="anchor" href="#_loading_script_from_external_resource"></a>Loading script from external resource</h3><div class="paragraph"><p>You can externalize the script and have Camel load it from a resource such as<code>"classpath:"</code>,<code>"file:"</code>, or<code>"http:"</code>.<br>This is done using the following syntax:<code>"resource:scheme:location"</code>, eg to  [...]
+...
+&lt;route&gt;
+  ...
+  &lt;setProperty propertyName="monitoring.message"&gt;
+    &lt;simple&gt;ref:myBeanId&lt;/simple&gt;
+  &lt;/setProperty&gt;
+  ...
+&lt;/route&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/sort-eip.html b/manual/latest/sort-eip.html
new file mode 100644
index 0000000..7a6c96a
--- /dev/null
+++ b/manual/latest/sort-eip.html
@@ -0,0 +1,19 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/sort-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
+    .sort(body().tokenize("\n"))
+    .to("bean:MyServiceBean.processLine");</code></pre></div></div><div class="paragraph"><p>You can pass in your own comparator as a 2nd argument:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("file://inbox")
+    .sort(body().tokenize("\n"), new MyReverseComparator())
+    .to("bean:MyServiceBean.processLine");</code></pre></div></div><div class="paragraph"><p>In the route below it will read the file content and tokenize by line breaks so each line can be sorted.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="file://inbox"/&gt;
+  &lt;sort&gt;
+    &lt;simple&gt;body&lt;/simple&gt;
+  &lt;/sort&gt;
+  &lt;beanRef ref="myServiceBean" method="processLine"/&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>And to use our own comparator we can refer to it as a spring bean:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="file://inbox"/&gt;
+  &lt;sort comparatorRef="myReverseComparator"&gt;
+    &lt;simple&gt;body&lt;/simple&gt;
+  &lt;/sort&gt;
+  &lt;beanRef ref="MyServiceBean" method="processLine"/&gt;
+&lt;/route&gt;
+
+&lt;bean id="myReverseComparator" class="com.mycompany.MyReverseComparator"/&gt;</code></pre></div></div><div class="paragraph"><p>Besides<code>&lt;simple&gt;</code>, you can supply an expression using any language you like, so long as it returns a list.</p></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src=". [...]
\ No newline at end of file
diff --git a/manual/latest/split-eip.html b/manual/latest/split-eip.html
new file mode 100644
index 0000000..5b79970
--- /dev/null
+++ b/manual/latest/split-eip.html
@@ -0,0 +1,291 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/split-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-ite [...]
+    .split(body(String.class).tokenize("\n"))
+        .to("direct:b");</code></pre></div></div><div class="paragraph"><p>The splitter can use any Expression language so you could use any of the Languages Supported such as XPath, XQuery, SQL or one of the Scripting Languages to perform the split. e.g.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("activemq:my.queue")
+    .split(xpath("//foo/bar"))
+        .to("file://some/directory")</code></pre></div></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+    &lt;route&gt;
+        &lt;from uri="activemq:my.queue"/&gt;
+        &lt;split&gt;
+            &lt;xpath&gt;//foo/bar&lt;/xpath&gt;
+            &lt;to uri="file://some/directory"/&gt;
+        &lt;/split&gt;
+    &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_splitting_a_collection_iterator_or_array"><a class="anchor" href="#_splitting_a_collection_iterator_or_array"></a>Splitting a Collection, Iterator or Array</h3><div class="paragraph"><p>A common use case is to split a Collection, Iterator or Array from the message. In the sample below we simply use an Expression to identify the value to split.</p></div><div class="listingblock"><div class="content"><pre class [...]
+    .split(body())
+        .to("mock:result");
+
+from("direct:splitUsingHeader")
+    .split(header("foo"))
+        .to("mock:result");</code></pre></div></div><div class="paragraph"><p>In XML you can use the Simple language to identify the value to split.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="direct:splitUsingBody"/&gt;
+  &lt;split&gt;
+     &lt;simple&gt;${body}&lt;/simple&gt;
+     &lt;to uri="mock:result"/&gt;
+  &lt;/split&gt;
+&lt;/route&gt;
+
+&lt;route&gt;
+  &lt;from uri="direct:splitUsingHeader"/&gt;
+  &lt;split&gt;
+     &lt;simple&gt;${header.foo}&lt;/simple&gt;
+     &lt;to uri="mock:result"/&gt;
+  &lt;/split&gt;
+&lt;/route&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_using_tokenizer_from_spring_xml_extensions"><a class="anchor" href="#_using_tokenizer_from_spring_xml_extensions"></a>Using Tokenizer from Spring XML Extensions*</h3><div class="paragraph"><p>You can use the tokenizer expression in the Spring DSL to split bodies or headers using a token. This is a common use-case, so we provided a special<strong>tokenizer</strong>tag for this. In the sample below we split the body u [...]
+    &lt;route&gt;
+        &lt;from uri="direct:start"/&gt;
+        &lt;split&gt;
+            &lt;tokenize token="@"/&gt;
+            &lt;to uri="mock:result"/&gt;
+        &lt;/split&gt;
+    &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_what_the_splitter_returns"><a class="anchor" href="#_what_the_splitter_returns"></a>What the Splitter returns</h3><div class="paragraph"><p>The Splitter will by default return the original input message.</p></div><div class="paragraph"><p>You can override this by suppling your own strategy as an<code>AggregationStrategy</code>. There is a sample on this page (Split aggregate request/reply sample). Notice its  [...]
+
+from("activemq:my.queue")
+  .split(xPathBuilder).parallelProcessing()
+    .to("activemq:my.parts");</code></pre></div></div></div><div class="sect2"><h3 id="_stream_based"><a class="anchor" href="#_stream_based"></a>Stream based</h3><div class="admonitionblock note"><table><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content"><div class="title">Splitting big XML payloads</div><div class="paragraph"><p>The XPath engine in Java and saxon will load the entire XML content into memory. And thus they are not well suited for very  [...]
+  .split(body().tokenize(",")).streaming()
+    .to("activemq:my.parts");</code></pre></div></div><div class="paragraph"><p>You can also supply your custom Bean as the splitter to use with streaming like this:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:streaming")
+  .split(method(new MyCustomIteratorFactory(), "iterator")) .streaming()
+    .to("activemq:my.parts")</code></pre></div></div></div><div class="sect2"><h3 id="_streaming_big_xml_payloads_using_tokenizer_language"><a class="anchor" href="#_streaming_big_xml_payloads_using_tokenizer_language"></a>Streaming big XML payloads using Tokenizer language</h3><div class="paragraph"><p>There are two tokenizers that can be used to tokenize an XML payload. The first tokenizer uses the same principle as in the text tokenizer to scan the XML payload and extract a sequence o [...]
+  &lt;order&gt;
+    &lt;!-- order stuff here --&gt;
+  &lt;/order&gt;
+  &lt;order&gt;
+    &lt;!-- order stuff here --&gt;
+  &lt;/order&gt;
+...
+  &lt;order&gt;
+    &lt;!-- order stuff here --&gt;
+  &lt;/order&gt;
+&lt;/orders&gt;</code></pre></div></div><div class="paragraph"><p>Now to split this big file using XPath would cause the entire content to be loaded into memory. So instead we can use the Tokenizer language to do this as follows:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("file:inbox")
+  .split().tokenizeXML("order").streaming()
+     .to("activemq:queue:order");</code></pre></div></div><div class="paragraph"><p>In XML DSL the route would be as follows:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="file:inbox"/&gt;
+  &lt;split streaming="true"&gt;
+    &lt;tokenize token="order" xml="true"/&gt;
+    &lt;to uri="activemq:queue:order"/&gt;
+  &lt;/split&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>Notice the<code>tokenizeXML</code>method which will split the file using the tag name of the child node (more precisely speaking, the local name of the element without its namespace prefix if any), which mean it will grab the content between the &lt;order&gt; and &lt;/order&gt; tags (incl. the tokens). So for example a splitted message would be as follows:</p></div><div class="listingblock"><div class="content"><pre class=" [...]
+  &lt;!-- order stuff here --&gt;
+&lt;/order&gt;</code></pre></div></div><div class="paragraph"><p>If you want to inherit namespaces from a root/parent tag, then you can do this as well by providing the name of the root/parent tag:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="file:inbox"/&gt;
+  &lt;split streaming="true"&gt;
+    &lt;tokenize token="order" inheritNamespaceTagName="orders" xml="true"/&gt;
+    &lt;to uri="activemq:queue:order"/&gt;
+  &lt;/split&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>And in Java DSL its as follows:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("file:inbox")
+  .split().tokenizeXML("order", "orders").streaming()
+     .to("activemq:queue:order");</code></pre></div></div><div class="paragraph"><p>Available as of Camel 2.13.1, you can set the above<code>inheritNamsepaceTagName</code>property to<code>*</code>to include the preceding context in each token (i.e., generating each token enclosed in its ancestor elements). It is noted that each token must share the same ancestor elements in this case.</p></div><div class="paragraph"><p>The above tokenizer works well on simple structures but has some inhe [...]
+...
+from("file:inbox")
+  .split().xtokenize("//ns1:order", 'i', ns).streaming()
+    .to("activemq:queue:order)</code></pre></div></div><div class="paragraph"><p>Two arguments control the behavior of the tokenizer. The first argument specifies the element using a path notation. This path notation uses a subset of xpath with wildcard support. The second argument represents the extraction mode. The available extraction modes are:</p></div><table class="tableblock frame-all grid-all stretch"><colgroup><col style="width: 33.3333%;"><col style="width: 66.6667%;"></colgrou [...]
+  &lt;m:order&gt;&lt;id&gt;123&lt;/id&gt;&lt;date&gt;2014-02-25&lt;/date&gt;...&lt;/m:order&gt;
+...
+&lt;/m:orders&gt;</code></pre></div></div><div class="paragraph"><p>Each mode will result in the following tokens,</p></div><table class="tableblock frame-all grid-all stretch"><colgroup><col style="width: 33.3333%;"><col style="width: 66.6667%;"></colgroup><thead><tr><th class="tableblock halign-left valign-top">Mode</th><th class="tableblock halign-left valign-top">Description</th></tr></thead><tbody><tr><td class="tableblock halign-left valign-top"><p class="tableblock">i</p></td><td  [...]
+  &lt;route&gt;
+    &lt;from uri="file:inbox"/&gt;
+    &lt;split streaming="true"&gt;
+      &lt;xtokenize&gt;//ns1:order&lt;/xtokenize&gt;
+      &lt;to uri="activemq:queue:order"/&gt;
+    &lt;/split&gt;
+  &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div><div class="paragraph"><p>or setting the extraction mode explicitly as</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;xtokenize mode="i"&gt;//ns1:order&lt;/xtokenize&gt;</code></pre></div></div><div class="paragraph"><p>Note that this StAX based tokenizer&#8217;s uses StAX Location API and requires a StAX Reader implementation (e.g., woodstox) that [...]
+  .split().tokenize("\n", 1000).streaming()
+     .to("activemq:queue:order");</code></pre></div></div><div class="paragraph"><p>And in XML DSL</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="file:inbox"/&gt;
+  &lt;split streaming="true"&gt;
+    &lt;tokenize token="\n" group="1000"/&gt;
+    &lt;to uri="activemq:queue:order"/&gt;
+  &lt;/split&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>The group option is a number that must be a positive number that dictates how many groups to combine together. Each part will be combined using the token.</p></div><div class="paragraph"><p>So in the example above the message being sent to the activemq order queue, will contain 1000 lines, and each line separated by the token (which is a new line token).</p></div><div class="paragraph"><p>The output when using the group opt [...]
+
+ExecutorService pool = ...
+
+from("activemq:my.queue")
+    .split(xPathBuilder).executorService(pool)
+        .to("activemq:my.parts");</code></pre></div></div></div><div class="sect2"><h3 id="_using_a_pojo_to_do_the_splitting"><a class="anchor" href="#_using_a_pojo_to_do_the_splitting"></a>Using a Pojo to do the splitting</h3><div class="paragraph"><p>As the Splitter can use any Expression to do the actual splitting we leverage this fact and use a<strong>method</strong>expression to invoke a Bean to get the splitted parts.</p></div><div class="paragraph"><p>The Bean should return a valu [...]
+    // here we use a POJO bean mySplitterBean to do the split of the payload
+    .split().method("mySplitterBean", "splitBody")
+      .to("mock:result");
+from("direct:message")
+    // here we use a POJO bean mySplitterBean to do the split of the message
+    // with a certain header value
+    .split().method("mySplitterBean", "splitMessage")
+      .to("mock:result");</code></pre></div></div><div class="paragraph"><p>And the logic for our Bean is as simple as. Notice we use Camel Bean Binding to pass in the message body as a String object.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public class MySplitterBean {
+
+    /**
+     * The split body method returns something that is iteratable such as a java.util.List.
+     *
+     * @param body the payload of the incoming message
+     * @return a list containing each part splitted
+     */
+    public List&lt;String&gt; splitBody(String body) {
+        // since this is based on an unit test you can of cause
+        // use different logic for splitting as Camel have out
+        // of the box support for splitting a String based on comma
+        // but this is for show and tell, since this is java code
+        // you have the full power how you like to split your messages
+        List&lt;String&gt; answer = new ArrayList&lt;String&gt;();
+        String[] parts = body.split(",");
+        for (String part : parts) {
+            answer.add(part);
+        }
+        return answer;
+    }
+
+    /**
+     * The split message method returns something that is iteratable such as a java.util.List.
+     *
+     * @param header the header of the incoming message with the name user
+     * @param body the payload of the incoming message
+     * @return a list containing each part splitted
+     */
+    public List&lt;Message&gt; splitMessage(@Header(value = "user") String header, @Body String body, CamelContext camelContext) {
+        // we can leverage the Parameter Binding Annotations
+        // http://camel.apache.org/parameter-binding-annotations.html
+        // to access the message header and body at same time,
+        // then create the message that we want, splitter will
+        // take care rest of them.
+        // *NOTE* this feature requires Camel version &gt;= 1.6.1
+        List&lt;Message&gt; answer = new ArrayList&lt;Message&gt;();
+        String[] parts = header.split(",");
+        for (String part : parts) {
+            DefaultMessage message = new DefaultMessage(camelContext);
+            message.setHeader("user", part);
+            message.setBody(body);
+            answer.add(message);
+        }
+        return answer;
+    }
+}</code></pre></div></div></div><div class="sect2"><h3 id="_split_aggregate_requestreply_sample"><a class="anchor" href="#_split_aggregate_requestreply_sample"></a>Split aggregate request/reply sample</h3><div class="paragraph"><p>This sample shows how you can split an Exchange, process each splitted message, aggregate and return a combined response to the original caller using request/reply. The route below illustrates this and how the split supports a<code>aggregationStrategy</code>to  [...]
+// the body is then splitted based on @ separator
+// the splitter in Camel supports InOut as well and for that we need
+// to be able to aggregate what response we need to send back, so we provide our
+// own strategy with the class MyOrderStrategy.
+from("direct:start")
+    .split(body().tokenize("@"), new MyOrderStrategy())
+        // each splitted message is then send to this bean where we can process it
+        .to("bean:MyOrderService?method=handleOrder")
+        // this is important to end the splitter route as we do not want to do more routing
+        // on each splitted message
+    .end()
+    // after we have splitted and handled each message we want to send a single combined
+    // response back to the original caller, so we let this bean build it for us
+    // this bean will receive the result of the aggregate strategy: MyOrderStrategy
+    .to("bean:MyOrderService?method=buildCombinedResponse")</code></pre></div></div><div class="paragraph"><p>And the OrderService bean is as follows:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public static class MyOrderService {
+
+    private static int counter;
+
+    /**
+     * We just handle the order by returning a id line for the order
+     */
+    public String handleOrder(String line) {
+        LOG.debug("HandleOrder: " + line);
+        return "(id=" + ++counter + ",item=" + line + ")";
+    }
+
+    /**
+     * We use the same bean for building the combined response to send
+     * back to the original caller
+     */
+    public String buildCombinedResponse(String line) {
+        LOG.debug("BuildCombinedResponse: " + line);
+        return "Response[" + line + "]";
+    }
+}</code></pre></div></div><div class="paragraph"><p>And our custom<code>aggregationStrategy</code>that is responsible for holding the in progress aggregated message that after the splitter is ended will be sent to the<code>buildCombinedResponse</code>method for final processing before the combined response can be returned to the waiting caller.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">/**
+ * This is our own order aggregation strategy where we can control
+ * how each splitted message should be combined. As we do not want to
+ * loos any message we copy from the new to the old to preserve the
+ * order lines as long we process them
+ */
+public static class MyOrderStrategy implements AggregationStrategy {
+
+    public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
+        // put order together in old exchange by adding the order from new exchange
+
+        if (oldExchange == null) {
+            // the first time we aggregate we only have the new exchange,
+            // so we just return it
+            return newExchange;
+        }
+
+        String orders = oldExchange.getIn().getBody(String.class);
+        String newLine = newExchange.getIn().getBody(String.class);
+
+        LOG.debug("Aggregate old orders: " + orders);
+        LOG.debug("Aggregate new order: " + newLine);
+
+        // put orders together separating by semi colon
+        orders = orders + ";" + newLine;
+        // put combined order back on old to preserve it
+        oldExchange.getIn().setBody(orders);
+
+        // return old as this is the one that has all the orders gathered until now
+        return oldExchange;
+    }
+}</code></pre></div></div><div class="paragraph"><p>So lets run the sample and see how it works.</p></div><div class="paragraph"><p>We send an Exchange to the<strong>direct:start</strong>endpoint containing a IN body with the String value: A@B@C. The flow is:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code>HandleOrder: A
+HandleOrder: B
+Aggregate old orders: (id=1,item=A)
+Aggregate new order: (id=2,item=B)
+HandleOrder: C
+Aggregate old orders: (id=1,item=A);(id=2,item=B)
+Aggregate new order: (id=3,item=C)
+BuildCombinedResponse: (id=1,item=A);(id=2,item=B);(id=3,item=C)
+Response to caller: Response[(id=1,item=A);(id=2,item=B);(id=3,item=C)]</code></pre></div></div></div><div class="sect2"><h3 id="_stop_processing_in_case_of_exception"><a class="anchor" href="#_stop_processing_in_case_of_exception"></a>Stop processing in case of exception</h3><div class="paragraph"><p>The Splitter will by default continue to process the entire Exchange even in case of one of the splitted message will thrown an exception during routing. For example if you have an Exchange [...]
+    .split(body().tokenize(",")).stopOnException()
+        .process(new MyProcessor())
+        .to("mock:split");</code></pre></div></div><div class="paragraph"><p>And using XML DSL you specify it as follows:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+    &lt;from uri="direct:start"/&gt;
+    &lt;split stopOnException="true"&gt;
+        &lt;tokenize token=","/&gt;
+        &lt;process ref="myProcessor"/&gt;
+        &lt;to uri="mock:split"/&gt;
+    &lt;/split&gt;
+&lt;/route&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_using_onprepare_to_execute_custom_logic_when_preparing_messages"><a class="anchor" href="#_using_onprepare_to_execute_custom_logic_when_preparing_messages"></a>Using onPrepare to execute custom logic when preparing messages</h3><div class="paragraph"><p><strong>Available as of Camel 2.8</strong></p></div><div class="paragraph"><p>See details at Multicast EIP</p></div></div><div class="sect2"><h3 id="_sharing_unit_of [...]
+        .maximumRedeliveries(3).redeliveryDelay(0));
+
+from("direct:start")
+    .to("mock:a")
+    // share unit of work in the splitter, which tells Camel to propagate failures from
+    // processing the splitted messages back to the result of the splitter, which allows
+    // it to act as a combined unit of work
+    .split(body().tokenize(",")).shareUnitOfWork()
+        .to("mock:b")
+        .to("direct:line")
+    .end()
+    .to("mock:result");
+
+from("direct:line")
+    .to("log:line")
+    .process(new MyProcessor())
+    .to("mock:line");</code></pre></div></div><div class="paragraph"><p>Now in this example what would happen is that in case there is a problem processing each sub message, the error handler will kick in (yes error handling still applies for the sub messages).<strong>But</strong>what doesn&#8217;t happen is that if a sub message fails all redelivery attempts (its exhausted), then its<strong>not</strong>moved into that dead letter queue. The reason is that we have shared the unit of work [...]
+
+  &lt;!-- define error handler as DLC, with use original message enabled --&gt;
+  &lt;errorHandler id="dlc" type="DeadLetterChannel" deadLetterUri="mock:dead" useOriginalMessage="true"&gt;
+    &lt;redeliveryPolicy maximumRedeliveries="3" redeliveryDelay="0"/&gt;
+  &lt;/errorHandler&gt;
+
+  &lt;route&gt;
+    &lt;from uri="direct:start"/&gt;
+    &lt;to uri="mock:a"/&gt;
+    &lt;!-- share unit of work in the splitter, which tells Camel to propagate failures from
+         processing the splitted messages back to the result of the splitter, which allows
+         it to act as a combined unit of work --&gt;
+    &lt;split shareUnitOfWork="true"&gt;
+      &lt;tokenize token=","/&gt;
+      &lt;to uri="mock:b"/&gt;
+      &lt;to uri="direct:line"/&gt;
+    &lt;/split&gt;
+    &lt;to uri="mock:result"/&gt;
+  &lt;/route&gt;
+
+  &lt;!-- route for processing each splitted line --&gt;
+  &lt;route&gt;
+    &lt;from uri="direct:line"/&gt;
+    &lt;to uri="log:line"/&gt;
+    &lt;process ref="myProcessor"/&gt;
+    &lt;to uri="mock:line"/&gt;
+  &lt;/route&gt;
+
+&lt;/camelContext&gt;</code></pre></div></div><div class="admonitionblock note"><table><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content"><div class="title">Implementation of shared unit of work</div><div class="paragraph"><p>So in reality the unit of work is not shared as a single object instance. Instead<code>SubUnitOfWork</code>is attached to their parent, and issues callback to the parent about their status (commit or rollback). This may be refacto [...]
\ No newline at end of file
diff --git a/manual/latest/spring-testing.html b/manual/latest/spring-testing.html
index 9df5683..bbf8078 100644
--- a/manual/latest/spring-testing.html
+++ b/manual/latest/spring-testing.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/spring-testing.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navba [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/spring-testing.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navba [...]
 src/test/resources/org/apache/camel/spring/patterns/FilterTest-context.xml</code></pre></div></div></div><div class="sect4"><h5 id="SpringTesting-PlainSpringTestusingJUnit4.xwithJavaConfigExample"><a class="anchor" href="#SpringTesting-PlainSpringTestusingJUnit4.xwithJavaConfigExample"></a>Plain Spring Test using JUnit 4.x with Java Config Example</h5><div class="paragraph"><p>You can completely avoid using an XML configuration file by using Spring Java Config.  Here is a unit test using [...]
 @ContextConfiguration
 public class MyCamelTest {
diff --git a/manual/latest/spring-xml-extensions.html b/manual/latest/spring-xml-extensions.html
index d533d9d..95e8fb2 100644
--- a/manual/latest/spring-xml-extensions.html
+++ b/manual/latest/spring-xml-extensions.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/spring-xml-extensions.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/spring-xml-extensions.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class [...]
     &lt;route&gt;
         &lt;from uri="direct:a"/&gt;
         &lt;choice&gt;
diff --git a/manual/latest/spring.html b/manual/latest/spring.html
index 3c196d6..efb3fc9 100644
--- a/manual/latest/spring.html
+++ b/manual/latest/spring.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/spring.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item n [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/spring.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item n [...]
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
diff --git a/manual/latest/step-eip.html b/manual/latest/step-eip.html
new file mode 100644
index 0000000..611febc
--- /dev/null
+++ b/manual/latest/step-eip.html
@@ -0,0 +1,29 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/step-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
+    .step("foo")
+      .bean("foo")
+      .to("acitvemq:OutputQueue")
+    .end()</code></pre></div></div><div class="paragraph"><p>In XML you can use the<code>&lt;step&gt;</code>element</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="activemq:SomeQueue"/&gt;
+  &lt;step id="foo"&gt;
+    &lt;bean ref="foo"/&gt;
+    &lt;to uri="activemq:OutputQueue"/&gt;
+  &lt;/step&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>You can have multiple steps:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("activemq:SomeQueue")
+    .step("foo")
+      .bean("foo")
+      .to("acitvemq:OutputQueue")
+    .end()
+    .step("bar")
+      .bean("something")
+      .to("log:Something")
+    .end()</code></pre></div></div><div class="paragraph"><p>And in XML</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="activemq:SomeQueue"/&gt;
+  &lt;step id="foo"&gt;
+    &lt;bean ref="foo"/&gt;
+    &lt;to uri="activemq:OutputQueue"/&gt;
+  &lt;/step&gt;
+  &lt;step id="bar"&gt;
+    &lt;bean ref="something"/&gt;
+    &lt;to uri="log:Something"/&gt;
+  &lt;/step&gt;
+&lt;/route&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/sticky-eip.html b/manual/latest/sticky-eip.html
new file mode 100644
index 0000000..cc5e13d
--- /dev/null
+++ b/manual/latest/sticky-eip.html
@@ -0,0 +1,14 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/sticky-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-it [...]
+    .loadBalance()
+    .sticky(header("test"))
+    .to("seda:x", "seda:y", "seda:z");</code></pre></div></div><div class="paragraph"><p>In XML you&#8217;ll have a route like this</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;from uri="direct:start"/&gt;
+    &lt;loadBalance&gt;
+       &lt;sticky&gt;
+           &lt;correlationExpression&gt;
+               &lt;header&gt;test&lt;/header&gt;
+           &lt;/correlationExpression&gt;
+       &lt;/sticky&gt;
+       &lt;to uri="seda:x"/&gt;
+       &lt;to uri="seda:y"/&gt;
+       &lt;to uri="seda:z"/&gt;
+    &lt;/loadBalance&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/stop-eip.html b/manual/latest/stop-eip.html
new file mode 100644
index 0000000..5be4780
--- /dev/null
+++ b/manual/latest/stop-eip.html
@@ -0,0 +1,7 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/stop-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
+    .choice()
+        .when(body().contains("Hello")).to("mock:hello")
+        .when(body().contains("Bye")).to("mock:bye").stop()
+        .otherwise().to("mock:other")
+    .end()
+.to("mock:result");</code></pre></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/stream-caching.html b/manual/latest/stream-caching.html
index f4e9fb8..5d09a6e 100644
--- a/manual/latest/stream-caching.html
+++ b/manual/latest/stream-caching.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/stream-caching.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navba [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/stream-caching.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navba [...]
     .streamCaching()
     .to("jbi:service:http://foo.bar.org/MyOtherService");</code></pre></div></div><div class="paragraph"><p>In Spring XML you enable it by setting the<code>streamCache="true"</code>attribute on the route tag:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route streamCache="true"&gt;
     &lt;from uri="jbi:service:http://foo.bar.org/MyService"/&gt;
diff --git a/manual/latest/stream-config-eip.html b/manual/latest/stream-config-eip.html
new file mode 100644
index 0000000..4bada35
--- /dev/null
+++ b/manual/latest/stream-config-eip.html
@@ -0,0 +1 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/stream-config-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="na [...]
\ No newline at end of file
diff --git a/manual/latest/support.html b/manual/latest/support.html
index 3b55ccc..336bb68 100644
--- a/manual/latest/support.html
+++ b/manual/latest/support.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/support.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item  [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/support.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item  [...]
\ No newline at end of file
diff --git a/manual/latest/team.html b/manual/latest/team.html
index 8d2b733..b7f8b53 100644
--- a/manual/latest/team.html
+++ b/manual/latest/team.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/team.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item nav [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/team.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item nav [...]
\ No newline at end of file
diff --git a/manual/latest/testing.html b/manual/latest/testing.html
index 34742c2..3cea56f 100644
--- a/manual/latest/testing.html
+++ b/manual/latest/testing.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/testing.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item  [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/testing.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item  [...]
\ No newline at end of file
diff --git a/manual/latest/threading-model.html b/manual/latest/threading-model.html
index 26f0822..08bd66f 100644
--- a/manual/latest/threading-model.html
+++ b/manual/latest/threading-model.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/threading-model.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navb [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/threading-model.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navb [...]
                        poolSize="10" maxPoolSize="20" maxQueueSize="1000" allowCoreThreadTimeOut="false"
                        rejectedPolicy="CallerRuns"/&gt;</code></pre></div></div><div class="paragraph"><p>What that means is that for example when you use<a href="multicast.html">Multicast</a>with<code>parallelProcessing=true</code>enabled, then it would create a thread pool based on the profile above. The<code>rejectedPolicy</code>has four options:<code>Abort, CallerRuns, Discard, DiscardOldest</code>which corresponds to the same four options provided out of the box in the JDK.<strong>N [...]
     ...
diff --git a/manual/latest/threads-eip.html b/manual/latest/threads-eip.html
new file mode 100644
index 0000000..48fe230
--- /dev/null
+++ b/manual/latest/threads-eip.html
@@ -0,0 +1,9 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/threads-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-i [...]
+  .threads(5)
+  .to("mock:result");</code></pre></div></div><div class="sect3"><h4 id="_spring_dsl"><a class="anchor" href="#_spring_dsl"></a>Spring DSL</h4><div class="paragraph"><p>The sample below demonstrates the threads EIP in Spring DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+    &lt;route&gt;
+        &lt;from uri="seda:a"/&gt;
+        &lt;threads poolSize="5"/&gt;
+        &lt;to uri="mock:result"/&gt;
+    &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/throttle-eip.html b/manual/latest/throttle-eip.html
new file mode 100644
index 0000000..91b9491
--- /dev/null
+++ b/manual/latest/throttle-eip.html
@@ -0,0 +1,23 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/throttle-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar- [...]
+  .throttle(3).timePeriodMillis(10000)
+  .to("log:result", "mock:result");</code></pre></div></div><div class="paragraph"><p>So the above example will throttle messages all messages received on<strong>seda:a</strong>before being sent to<strong>mock:result</strong>ensuring that a maximum of 3 messages are sent in any 10 second window. Note that since<code>timePeriodMillis</code>defaults to 1000 milliseconds, just setting the<code>maximumRequestsPerPeriod</code>has the effect of setting the maximum number of requests per second [...]
+  .throttle(100)
+  .to("seda:b");</code></pre></div></div><div class="paragraph"><p>For further examples of this pattern in use you could look at the junit test case.</p></div><div class="paragraph"><p>And an example in XML</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="seda:a"/&gt;
+  &lt;!-- throttle 3 messages per 10 sec --&gt;
+  &lt;throttle timePeriodMillis="10000"&gt;
+    &lt;constant&gt;3&lt;/constant&gt;
+    &lt;to uri="log:result"/&gt;
+    &lt;to uri="mock:result"/&gt;
+  &lt;/throttle&gt;
+&lt;/route&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_dynamically_changing_maximum_requests_per_period"><a class="anchor" href="#_dynamically_changing_maximum_requests_per_period"></a>Dynamically changing maximum requests per period</h3><div class="paragraph"><p><strong>Available as of Camel 2.8</strong></p></div><div class="paragraph"><p>Since we use an Expression you can adjust this value at runtime, for example you can provide a header with the value. At runtime Cam [...]
+  &lt;from uri="direct:expressionHeader"/&gt;
+  &lt;throttle timePeriodMillis="500"&gt;
+    &lt;!-- use a header to determine how many messages to throttle per 0.5 sec --&gt;
+    &lt;header&gt;throttleValue&lt;/header&gt;
+    &lt;to uri="log:result"/&gt;
+    &lt;to uri="mock:result"/&gt;
+  &lt;/throttle&gt;
+&lt;/route&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_asynchronous_delaying"><a class="anchor" href="#_asynchronous_delaying"></a>Asynchronous delaying</h3><div class="paragraph"><p>You can let the Throttler use non blocking asynchronous delaying, which means Camel will use a scheduler to schedule a task to be executed in the future. The task will then continue routing. This allows the caller thread to not block and be able to service other messages, etc.</p></div><div [...]
+  .throttle(100).asyncDelayed()
+  .to("seda:b");</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/to-eip.html b/manual/latest/to-eip.html
new file mode 100644
index 0000000..aed1e57
--- /dev/null
+++ b/manual/latest/to-eip.html
@@ -0,0 +1,25 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/to-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item n [...]
+    .to("jms:queue:foo");</code></pre></div></div><div class="paragraph"><p>And in XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+    &lt;from uri="file://local/router/messages/foo"/&gt;
+    &lt;to uri="jms:queue:foo"/&gt;
+&lt;/route&gt;</code></pre></div></div></div><div class="sect2"><h3 id="_to_eip_with_pattern"><a class="anchor" href="#_to_eip_with_pattern"></a>to-eip with pattern</h3><div class="paragraph"><p>Instead of using<code>inOnly</code>and<code>inOut</code>you may want to keep using<code>to</code>where you can specify the exchange pattern as shown:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from(" [...]
+  .to(ExchangePattern.InOnly, "bean:process");
+
+from("direct:startInOut")
+  .to(ExchangePattern.InOut, "bean:process");</code></pre></div></div><div class="paragraph"><p>And here is how to do it in XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="direct:startInOnly"/&gt;
+  &lt;inOnly uri="bean:process"/&gt;
+&lt;/route&gt;
+
+&lt;route&gt;
+  &lt;from uri="direct:startInOut"/&gt;
+  &lt;inOut uri="bean:process"/&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>And here we use<code>&lt;to&gt;</code>with the<code>pattern</code>attribute to set the exchange pattern:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="direct:startInOnly"/&gt;
+  &lt;to pattern="InOnly" uri="bean:process"/&gt;
+&lt;/route&gt;
+
+&lt;route&gt;
+  &lt;from uri="direct:startInOut"/&gt;
+  &lt;to pattern="InOut" uri="bean:process"/&gt;
+&lt;/route&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/toD-eip.html b/manual/latest/toD-eip.html
new file mode 100644
index 0000000..7401be1
--- /dev/null
+++ b/manual/latest/toD-eip.html
@@ -0,0 +1,28 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/toD-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item  [...]
+  .toD("${header.foo}");</code></pre></div></div><div class="paragraph"><p>And in XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="direct:start"/&gt;
+  &lt;toD uri="${header.foo}"/&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>You can also prefix the uri with a value because by default the uri is evaluated using the <a href="#simple-language">Simple</a>language</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start")
+  .toD("mock:${header.foo}");</code></pre></div></div><div class="paragraph"><p>And in XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="direct:start"/&gt;
+  &lt;toD uri="mock:${header.foo"/&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>In the example above we compute an endpoint that has prefix "mock:" and then the header foo is appended. So for example if the header foo has value order, then the endpoint is computed as "mock:order".</p></div><div class="paragraph"><p>You can also use other languages than<a href="#simple-language">Simple</a> such as <a href="#xpath-language">XPath</a> - this requires to prefix with language: as shown below (simple languag [...]
+  &lt;from uri="direct:start"/&gt;
+  &lt;toD uri="language:xpath:/order/@uri"/&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>This is done by specifying the name of the language followed by a colon.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:start")
+  .toD("language:xpath:/order/@uri");</code></pre></div></div><div class="paragraph"><p>You can also concat multiple <a href="#language-component">Language</a>(s) together using the plus sign <code>+</code>such as shown below:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="direct:start"/&gt;
+  &lt;toD uri="jms:${header.base}+language:xpath:/order/@id"/&gt;
+&lt;/route&gt;</code></pre></div></div><div class="paragraph"><p>In the example above the uri is a combination of <a href="#simple-language">Simple</a> language and <a href="#simple-language">XPath</a> where the first part is simple (simple is default language). And then the plus sign separate to another language, where we specify the language name followed by a colon</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hlj [...]
+  .toD("jms:${header.base}+language:xpath:/order/@id");</code></pre></div></div><div class="paragraph"><p>You can concat as many languages as you want, just separate them with the plus sign</p></div></div><div class="sect2"><h3 id="_avoid_creating_endless_dynamic_endpoints_which_takes_up_resources"><a class="anchor" href="#_avoid_creating_endless_dynamic_endpoints_which_takes_up_resources"></a>Avoid creating endless dynamic endpoints which takes up resources</h3><div class="paragraph"><p [...]
+  .toD("http:myloginserver:8080/login?userid=${header.userName}");</code></pre></div></div><div class="paragraph"><p>In the example above then the parameter<code>userid</code>is dynamic computed, and would result in one instance of endpoint and producer for each different userid. To avoid having too many dynamic endpoints you can configure<code>toD</code>to reduce its cache size, for example:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code [...]
+  .toD("http:myloginserver:8080/login?cacheSize=10&amp;userid=${header.userName}");</code></pre></div></div><div class="paragraph"><p>where the cache is 10.<strong>Important</strong>this will only reduce the endpoint cache of the<code>toD</code>that has a chance of being reused in case a message is routed with the same<code>userName</code>header. Therefore reducing the cache size will not solve the<em>endless dynamic endoints</em>problem. Instead you should use static endpoints with<code [...]
+  .setHeader(Exchange.HTTP_PATH, constant("/login"))
+  .setHeader(Exchange.HTTP_QUERY, simple("userid=${header.userName}"))
+  .toD("http:myloginserver:8080");</code></pre></div></div><div class="paragraph"><p>If you are using Camel 2.22 onwards then you can use its optimised components for<code>toD</code>that can<em>solve</em>this out of the box, as documented next.</p></div></div></div><div class="sect2"><h3 id="_using_optimised_components"><a class="anchor" href="#_using_optimised_components"></a>Using optimised components</h3><div class="paragraph"><p>But a better solution would be if the HTTP component co [...]
+  .toD("http:myloginserver:8080/login?userid=${header.userName}");</code></pre></div></div><div class="paragraph"><p>will essentially be optimised to (pseudo route):</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:login")
+  .setHeader(Exchange.HTTP_PATH, expression("/login"))
+  .setHeader(Exchange.HTTP_QUERY, expression("userid=${header.userName}"))
+  .toD("http:myloginserver:8080")
+  .removeHeader(Exchange.HTTP_PATH)
+  .removeHeader(Exchange.HTTP_QUERY);</code></pre></div></div><div class="paragraph"><p>Where<em>expression</em>will be evaluated dynamically. Notice how the uri in<code>toD</code>is now static (<code>http:myloginserver:8080</code>). This optimisation allows Camel to reuse the same endpoint and its associated producer for all dynamic variations. This yields much lower resource overhead as the same http producer will be used for all the different variations of userid&#8217;s.</p></div><di [...]
\ No newline at end of file
diff --git a/manual/latest/tokenize-language.html b/manual/latest/tokenize-language.html
new file mode 100644
index 0000000..a8ffcee
--- /dev/null
+++ b/manual/latest/tokenize-language.html
@@ -0,0 +1 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/tokenize-language.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="na [...]
\ No newline at end of file
diff --git a/manual/latest/topic-eip.html b/manual/latest/topic-eip.html
new file mode 100644
index 0000000..b4e41ca
--- /dev/null
+++ b/manual/latest/topic-eip.html
@@ -0,0 +1,10 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/topic-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-ite [...]
+    .loadBalance()
+    .topic()
+    .to("seda:x", "seda:y", "seda:z");</code></pre></div></div><div class="paragraph"><p>In XML you&#8217;ll have a route like this</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;from uri="direct:start"/&gt;
+    &lt;loadBalance&gt;
+       &lt;topic/&gt;
+       &lt;to uri="seda:x"/&gt;
+       &lt;to uri="seda:y"/&gt;
+       &lt;to uri="seda:z"/&gt;
+    &lt;/loadBalance&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/transactional-client.html b/manual/latest/transactional-client.html
new file mode 100644
index 0000000..39240bb
--- /dev/null
+++ b/manual/latest/transactional-client.html
@@ -0,0 +1,147 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/transactional-client.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class= [...]
+    &lt;property name="connectionFactory" ref="jmsConnectionFactory" /&gt;
+&lt;/bean&gt;
+
+&lt;bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"&gt;
+    &lt;property name="brokerURL" value="tcp://localhost:61616"/&gt;
+&lt;/bean&gt;</code></pre></div></div><div class="paragraph"><p>Then you look them up and use them to create the JmsComponent.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">  PlatformTransactionManager transactionManager = (PlatformTransactionManager) spring.getBean("jmsTransactionManager");
+  ConnectionFactory connectionFactory = (ConnectionFactory) spring.getBean("jmsConnectionFactory");
+  JmsComponent component = JmsComponent.jmsComponentTransacted(connectionFactory, transactionManager);
+  component.getConfiguration().setConcurrentConsumers(1);
+  ctx.addComponent("activemq", component);</code></pre></div></div></div><div class="sect2"><h3 id="TransactionalClient-TransactionPolicies"><a class="anchor" href="#TransactionalClient-TransactionPolicies"></a>Transaction Policies</h3><div class="paragraph"><p>Outbound endpoints will automatically enlist in the current transaction context. But what if you do not want your outbound endpoint to enlist in the same transaction as your inbound endpoint? The solution is to add a Transaction P [...]
+    &lt;property name="transactionManager" ref="jmsTransactionManager"/&gt;
+&lt;/bean&gt;
+
+&lt;bean id="PROPAGATION_REQUIRES_NEW" class="org.apache.camel.spring.spi.SpringTransactionPolicy"&gt;
+    &lt;property name="transactionManager" ref="jmsTransactionManager"/&gt;
+    &lt;property name="propagationBehaviorName" value="PROPAGATION_REQUIRES_NEW"/&gt;
+&lt;/bean&gt;</code></pre></div></div><div class="paragraph"><p>Then in your<a href="http://camel.apache.org/maven/current/camel-spring/apidocs/org/apache/camel/spring/SpringRouteBuilder.html">SpringRouteBuilder</a>, you just need to create new SpringTransactionPolicy objects for each of the templates.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public void configure() {
+    ...
+    Policy required = bean(SpringTransactionPolicy.class, "PROPAGATION_REQUIRED"));
+    Policy requirenew = bean(SpringTransactionPolicy.class, "PROPAGATION_REQUIRES_NEW"));
+    ...
+}</code></pre></div></div><div class="paragraph"><p>Once created, you can use the Policy objects in your processing routes:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">// Send to bar in a new transaction
+from("activemq:queue:foo").policy(requirenew)
+    .to("activemq:queue:bar");
+
+// Send to bar without a transaction.
+from("activemq:queue:foo").policy(notsupported)
+    .to("activemq:queue:bar");</code></pre></div></div></div><div class="sect2"><h3 id="TransactionalClient-OSGiBlueprint"><a class="anchor" href="#TransactionalClient-OSGiBlueprint"></a>OSGi Blueprint</h3><div class="paragraph"><p>If you are using<a href="#UsingOSGiblueprintwithCamel-UsingOSGiblueprintwithCamel">OSGi Blueprint</a>then you most likely have to explicit declare a policy and refer to the policy from the transacted in the route.</p></div><div class="listingblock"><div class= [...]
+    &lt;property name="transactionManager" ref="jmsTransactionManager"/&gt;
+    &lt;property name="propagationBehaviorName" value="PROPAGATION_REQUIRED"/&gt;
+&lt;/bean&gt;</code></pre></div></div><div class="paragraph"><p>And then refer to "required" from the route:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+    &lt;from uri="activemq:queue:foo"/&gt;
+    &lt;transacted ref="required"/&gt;
+    &lt;to uri="activemq:queue:bar"/&gt;
+&lt;/route&gt;</code></pre></div></div></div><div class="sect2"><h3 id="TransactionalClient-DatabaseSample"><a class="anchor" href="#TransactionalClient-DatabaseSample"></a>Database Sample</h3><div class="paragraph"><p>In this sample we want to ensure that two endpoints is under transaction control. These two endpoints inserts data into a database. The sample is in its full as a<a href="https://github.com/apache/camel/tree/master/components/camel-spring/src/test/java/org/apache/camel/spr [...]
+    &lt;jdbc:embedded-database id="dataSource" type="DERBY"&gt;
+    	&lt;jdbc:script location="classpath:sql/init.sql" /&gt;
+    &lt;/jdbc:embedded-database&gt;
+
+    &lt;!-- spring transaction manager --&gt;
+    &lt;!-- this is the transaction manager Camel will use for transacted routes --&gt;
+    &lt;bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"&gt;
+        &lt;property name="dataSource" ref="dataSource"/&gt;
+    &lt;/bean&gt;
+
+    &lt;!-- bean for book business logic --&gt;
+    &lt;bean id="bookService" class="org.apache.camel.spring.interceptor.BookService"&gt;
+        &lt;property name="dataSource" ref="dataSource"/&gt;
+    &lt;/bean&gt;</code></pre></div></div><div class="paragraph"><p>Then we are ready to define our Camel routes. We have two routes: 1 for success conditions, and 1 for a forced rollback condition.</p></div><div class="paragraph"><p>This is after all based on a unit test. Notice that we mark each route as transacted using the<strong>transacted</strong>tag.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang [...]
+    &lt;route&gt;
+        &lt;from uri="direct:okay"/&gt;
+        &lt;!-- we mark this route as transacted. Camel will lookup the spring transaction manager
+             and use it by default. We can optimally pass in arguments to specify a policy to use
+             that is configured with a spring transaction manager of choice. However Camel supports
+             convention over configuration as we can just use the defaults out of the box and Camel
+             that suites in most situations --&gt;
+        &lt;transacted/&gt;
+        &lt;setBody&gt;
+            &lt;constant&gt;Tiger in Action&lt;/constant&gt;
+        &lt;/setBody&gt;
+        &lt;bean ref="bookService"/&gt;
+        &lt;setBody&gt;
+            &lt;constant&gt;Elephant in Action&lt;/constant&gt;
+        &lt;/setBody&gt;
+        &lt;bean ref="bookService"/&gt;
+    &lt;/route&gt;
+
+    &lt;route&gt;
+        &lt;from uri="direct:fail"/&gt;
+        &lt;!-- we mark this route as transacted. See comments above. --&gt;
+        &lt;transacted/&gt;
+        &lt;setBody&gt;
+            &lt;constant&gt;Tiger in Action&lt;/constant&gt;
+        &lt;/setBody&gt;
+        &lt;bean ref="bookService"/&gt;
+        &lt;setBody&gt;
+            &lt;constant&gt;Donkey in Action&lt;/constant&gt;
+        &lt;/setBody&gt;
+        &lt;bean ref="bookService"/&gt;
+    &lt;/route&gt;
+    &lt;/camelContext&gt;</code></pre></div></div><div class="paragraph"><p>That is all that is needed to configure a Camel route as being transacted. Just remember to use the<strong>transacted</strong>DSL. The rest is standard Spring XML to setup the transaction manager.</p></div></div><div class="sect2"><h3 id="TransactionalClient-JMSSample"><a class="anchor" href="#TransactionalClient-JMSSample"></a>JMS Sample</h3><div class="paragraph"><p>In this sample we want to listen for messages [...]
+    &lt;bean id="poolConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory" init-method="start" destroy-method="stop"&gt;
+        &lt;property name="maxConnections" value="8"/&gt;
+        &lt;property name="connectionFactory" ref="jmsConnectionFactory"/&gt;
+    &lt;/bean&gt;
+
+    &lt;bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"&gt;
+        &lt;property name="brokerURL" value="vm://localhost?broker.persistent=false&amp;amp;broker.useJmx=false"/&gt;
+    &lt;/bean&gt;
+
+    &lt;!-- setup spring jms TX manager --&gt;
+    &lt;bean id="jmsTransactionManager" class="org.springframework.jms.connection.JmsTransactionManager"&gt;
+        &lt;property name="connectionFactory" ref="poolConnectionFactory"/&gt;
+    &lt;/bean&gt;
+
+    &lt;!-- define our activemq component --&gt;
+    &lt;bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent"&gt;
+        &lt;property name="connectionFactory" ref="poolConnectionFactory"/&gt;
+        &lt;!-- define the jms consumer/producer as transacted --&gt;
+        &lt;property name="transacted" value="true"/&gt;
+        &lt;!-- setup the transaction manager to use --&gt;
+        &lt;!-- if not provided then Camel will automatic use a JmsTransactionManager, however if you
+             for instance use a JTA transaction manager then you must configure it --&gt;
+        &lt;property name="transactionManager" ref="jmsTransactionManager"/&gt;
+    &lt;/bean&gt;</code></pre></div></div><div class="paragraph"><p>And then we configure our routes. Notice that all we have to do is mark the route as transacted using the<strong>transacted</strong>tag.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">    &lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+        &lt;!-- disable JMX during testing --&gt;
+        &lt;jmxAgent id="agent" disabled="true"/&gt;
+        &lt;route&gt;
+            &lt;!-- 1: from the jms queue --&gt;
+            &lt;from uri="activemq:queue:okay"/&gt;
+            &lt;!-- 2: mark this route as transacted --&gt;
+            &lt;transacted/&gt;
+            &lt;!-- 3: call our business logic that is myProcessor --&gt;
+            &lt;process ref="myProcessor"/&gt;
+            &lt;!-- 4: if success then send it to the mock --&gt;
+            &lt;to uri="mock:result"/&gt;
+        &lt;/route&gt;
+    &lt;/camelContext&gt;
+
+    &lt;bean id="myProcessor" class="org.apache.camel.component.jms.tx.JMSTransactionalClientTest$MyProcessor"/&gt;</code></pre></div></div><div class="sect4"><h5 id="_transaction_error_handler"><a class="anchor" href="#_transaction_error_handler"></a>Transaction error handler</h5><div class="paragraph"><p>When a route is marked as transacted using<strong>transacted</strong>Camel will automatic use the<a href="#TransactionErrorHandler-TransactionErrorHandler">TransactionErrorHandler</a>a [...]
+        &lt;property name="transactionManager" ref="txManager"/&gt;
+        &lt;property name="propagationBehaviorName" value="PROPAGATION_REQUIRED"/&gt;
+    &lt;/bean&gt;
+
+    &lt;bean id="PROPAGATION_REQUIRES_NEW" class="org.apache.camel.spring.spi.SpringTransactionPolicy"&gt;
+        &lt;property name="transactionManager" ref="txManager"/&gt;
+        &lt;property name="propagationBehaviorName" value="PROPAGATION_REQUIRES_NEW"/&gt;
+    &lt;/bean&gt;</code></pre></div></div><div class="paragraph"><p>Then in the routes you use transacted DSL to indicate which of these two propagations it uses.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">    from("direct:mixed")
+    // using required
+    .transacted("PROPAGATION_REQUIRED")
+    // all these steps will be okay
+    .setBody(constant("Tiger in Action")).bean("bookService")
+    .setBody(constant("Elephant in Action")).bean("bookService")
+    // continue on route 2
+    .to("direct:mixed2");
+
+    from("direct:mixed2")
+    // tell Camel that if this route fails then only rollback this last route
+    // by using (rollback only *last*)
+    .onException(Exception.class).markRollbackOnlyLast().end()
+    // using a different propagation which is requires new
+    .transacted("PROPAGATION_REQUIRES_NEW")
+    // this step will be okay
+    .setBody(constant("Lion in Action")).bean("bookService")
+    // this step will fail with donkey
+    .setBody(constant("Donkey in Action")).bean("bookService");</code></pre></div></div><div class="paragraph"><p>Notice how we have configured the<code>onException</code>in the 2nd route to indicate in case of any exceptions we should handle it and just rollback this transaction. This is done using the<code>markRollbackOnlyLast</code>which tells Camel to only do it for the current transaction and not globally.</p></div></div><div class="sect2"><h3 id="TransactionalClient-SeeAlso"><a cla [...]
\ No newline at end of file
diff --git a/manual/latest/transactionerrorhandler.html b/manual/latest/transactionerrorhandler.html
index 3e96822..c3a8d73 100644
--- a/manual/latest/transactionerrorhandler.html
+++ b/manual/latest/transactionerrorhandler.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/transactionerrorhandler.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a cla [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/transactionerrorhandler.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a cla [...]
 
 from("jetty:http://localhost/myservice/order").transacted().to("bean:validateOrder").to("jms:queue:order");</code></pre></div></div><div class="paragraph"><p>When the<strong>ValidationException</strong>is thrown from the validate order bean it is intercepted by the<a href="transactionerrorhandler.adoc">TransactionErrorHandler</a>and it let the<code>onException(ValidationException.class</code>handle it so the<a href="exchange.adoc">Exchange</a>is routed to this route and since we use<stro [...]
    &lt;from uri="jms:queue:foo"/&gt;
diff --git a/manual/latest/transform-eip.html b/manual/latest/transform-eip.html
new file mode 100644
index 0000000..7cf6198
--- /dev/null
+++ b/manual/latest/transform-eip.html
@@ -0,0 +1 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/transform-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar [...]
\ No newline at end of file
diff --git a/manual/latest/transformer.html b/manual/latest/transformer.html
new file mode 100644
index 0000000..8831bab
--- /dev/null
+++ b/manual/latest/transformer.html
@@ -0,0 +1,39 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/transformer.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-i [...]
+bindy.setType(BindyType.Csv);
+bindy.setClassType(com.example.Order.class);
+transformer()
+    .fromType(com.example.Order.class)
+    .toType("csv:CSVOrder")
+    .withDataFormat(bindy);</code></pre></div></div><div class="paragraph"><p>XML DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;dataFormatTransformer fromType="java:com.example.Order" toType="csv:CSVOrder"&gt;
+    &lt;bindy id="csvdf" type="Csv" classType="com.example.Order"/&gt;
+&lt;/dataFormatTransformer&gt;</code></pre></div></div></div></div><div class="sect2"><h3 id="Transformer-Endpoint"><a class="anchor" href="#Transformer-Endpoint"></a>Endpoint Transformer Options</h3><table class="tableblock frame-all grid-all stretch"><colgroup><col style="width: 50%;"><col style="width: 50%;"></colgroup><thead><tr><th class="tableblock halign-left valign-top">Name</th><th class="tableblock halign-left valign-top">Description</th></tr></thead><tbody><tr><td class="table [...]
+    .fromType("xml")
+    .toType("json")
+    .withUri("dozer:myDozer?mappingFile=myMapping.xml...");</code></pre></div></div><div class="paragraph"><p>And here is an example to specify endpoint ref in XML DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;endpointTransformer ref="myDozerEndpoint" fromType="xml" toType="json"/&gt;</code></pre></div></div></div><div class="sect2"><h3 id="Transformer-Custom"><a class="anchor" href="#Tr [...]
+    .fromType("xml")
+    .toType("json")
+    .withJava(com.example.MyCustomTransformer.class);</code></pre></div></div><div class="paragraph"><p>XML DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;customTransformer className="com.example.MyCustomTransformer" fromType="xml" toType="json"/&gt;</code></pre></div></div></div><div class="sect2"><h3 id="Transformer-Examples"><a class="anchor" href="#Transformer-Examples"></a>Examples</ [...]
+    .fromType("xml:ABCOrder")
+    .toType("xml:XYZOrder")
+    .withUri("xslt:transform.xsl");</code></pre></div></div><div class="paragraph"><p>XML DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"&gt;
+    &lt;transformers&gt;
+        &lt;endpointTransformer uri="xslt:transform.xsl" fromType="xml:ABCOrder" toType="xml:XYZOrder"/&gt;
+    &lt;/transformers&gt;
+    ....
+&lt;/camelContext&gt;</code></pre></div></div><div class="paragraph"><p>If you have following route definition, above transformer will be applied when<code>direct:abc</code>endpoint sends the message to<code>direct:xyz</code>:</p></div><div class="paragraph"><p>Java DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("direct:abc")
+    .inputType("xml:ABCOrder")
+    .to("direct:xyz");
+from("direct:xyz")
+    .inputType("xml:XYZOrder")
+    .to("somewhere:else");</code></pre></div></div><div class="paragraph"><p>XML DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"&gt;
+    &lt;route&gt;
+        &lt;from uri="direct:abc"/&gt;
+        &lt;inputType urn="xml:ABCOrder"/&gt;
+        &lt;to uri="direct:xyz"/&gt;
+    &lt;/route&gt;
+    &lt;route&gt;
+        &lt;from uri="direct:xyz"/&gt;
+        &lt;inputType urn="xml:XYZOrder"/&gt;
+        &lt;to uri="somewhere:else"/&gt;
+    &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/transport.html b/manual/latest/transport.html
index 3677c9b..6448f7d 100644
--- a/manual/latest/transport.html
+++ b/manual/latest/transport.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/transport.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-ite [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/transport.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-ite [...]
\ No newline at end of file
diff --git a/manual/latest/try-catch-finally.html b/manual/latest/try-catch-finally.html
index 09b3eec..33f7e65 100644
--- a/manual/latest/try-catch-finally.html
+++ b/manual/latest/try-catch-finally.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/try-catch-finally.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="na [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/try-catch-finally.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="na [...]
\ No newline at end of file
diff --git a/manual/latest/type-converter.html b/manual/latest/type-converter.html
index ec06415..83ba252 100644
--- a/manual/latest/type-converter.html
+++ b/manual/latest/type-converter.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/type-converter.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navba [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/type-converter.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navba [...]
 Document document = message.getBody(Document.class);</code></pre></div></div><div class="sect3"><h4 id="TypeConverter-HowTypeConversionworks"><a class="anchor" href="#TypeConverter-HowTypeConversionworks"></a>How Type Conversion works</h4><div class="paragraph"><p>The type conversion strategy is defined by the<a href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/TypeConverter.html">TypeConverter</a>interface that can be customized on a<a href="http://camel.ap [...]
 context.getTypeConverterRegistry()</code></pre></div></div><div class="sect4"><h5 id="TypeConverter-TypeConverterRegistryutilizationstatistics"><a class="anchor" href="#TypeConverter-TypeConverterRegistryutilizationstatistics"></a>TypeConverterRegistry utilization statistics</h5><div class="paragraph"><p>Camel can gather utilization statistics of the runtime usage of type converters. These stats are available in JMX, and as well as from the<code>getStatistics()</code>method from<code>Typ [...]
 context.setTypeConverterStatisticsEnabled(true);</code></pre></div></div><div class="paragraph"><p>Or in the XML DSL with:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext xmlns="http://camel.apache.org/schema/spring" typeConverterStatisticsEnabled="true"&gt;
diff --git a/manual/latest/unmarshal-eip.html b/manual/latest/unmarshal-eip.html
new file mode 100644
index 0000000..07bf71e
--- /dev/null
+++ b/manual/latest/unmarshal-eip.html
@@ -0,0 +1,7 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/unmarshal-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar [...]
+
+from("activemq:My.Queue").
+  unmarshal(jaxb).
+  to("mqseries:Another.Queue");</code></pre></div></div><div class="paragraph"><p>The above uses a named DataFormat of<em>jaxb</em>which is configured with a number of Java package names. You can if you prefer use a named reference to a data format which can then be defined in your<a href="https://github.com/apache/camel/blob/master/docs/user-manual/en/registry.adoc">Registry</a>such as via your<a href="spring.html">Spring</a>XML file.</p></div><div class="paragraph"><p>You can also use  [...]
+  unmarshal().serialization().
+  to("activemq:Some.Queue");</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/uris.html b/manual/latest/uris.html
index 1de8883..487f0d1 100644
--- a/manual/latest/uris.html
+++ b/manual/latest/uris.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/uris.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item nav [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/uris.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item nav [...]
\ No newline at end of file
diff --git a/manual/latest/user-stories.html b/manual/latest/user-stories.html
index 869e36d..e0aa5a3 100644
--- a/manual/latest/user-stories.html
+++ b/manual/latest/user-stories.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/user-stories.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar- [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/user-stories.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar- [...]
\ No newline at end of file
diff --git a/manual/latest/using-osgi-blueprint-with-camel.html b/manual/latest/using-osgi-blueprint-with-camel.html
index 6cad9dd..ff11c89 100644
--- a/manual/latest/using-osgi-blueprint-with-camel.html
+++ b/manual/latest/using-osgi-blueprint-with-camel.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/using-osgi-blueprint-with-camel.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/using-osgi-blueprint-with-camel.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand [...]
 
     &lt;camelContext xmlns="http://camel.apache.org/schema/blueprint"&gt;
         &lt;route&gt;
diff --git a/manual/latest/using-propertyplaceholder.html b/manual/latest/using-propertyplaceholder.html
index 5771c7e..f31f20d 100644
--- a/manual/latest/using-propertyplaceholder.html
+++ b/manual/latest/using-propertyplaceholder.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/using-propertyplaceholder.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a c [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/using-propertyplaceholder.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a c [...]
 pc.setLocation(new String[] {"com/mycompany/myprop.properties", "com/mycompany/other.properties"});</code></pre></div></div><div class="paragraph"><p>From<strong>Camel 2.19.0</strong>: you can set which location can be discarded if missing by setting <code>optional=true</code>, (<code>false</code>by default).</p></div><div class="paragraph"><p>Example:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="ja [...]
 test.endpoint = result2</code></pre></div></div><div class="paragraph"><p>The same properties file is then referenced from a route definition:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">PropertiesComponent pc = context.getComponent("properties",
 PropertiesComponent.class); pc.setPropertyPrefix("${stage}.");
diff --git a/manual/latest/uuidgenerator.html b/manual/latest/uuidgenerator.html
index cb5263e..bb7e2fd 100644
--- a/manual/latest/uuidgenerator.html
+++ b/manual/latest/uuidgenerator.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/uuidgenerator.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/uuidgenerator.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar [...]
 
 &lt;camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"&gt;
   &lt;route&gt;
diff --git a/manual/latest/validate-eip.html b/manual/latest/validate-eip.html
new file mode 100644
index 0000000..3f79cc7
--- /dev/null
+++ b/manual/latest/validate-eip.html
@@ -0,0 +1,23 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/validate-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar- [...]
+  .validate(body(String.class).regex("^\\w{10}\\,\\d{2}\\,\\w{24}$"))
+  .to("bean:MyServiceBean.processLine");</code></pre></div></div><div class="paragraph"><p>Validate EIP is not limited to the message body. You can also validate the message header.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("file://inbox")
+  .validate(header("bar").isGreaterThan(100))
+  .to("bean:MyServiceBean.processLine");</code></pre></div></div><div class="paragraph"><p>You can also use validate together with simple.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">from("file://inbox")
+  .validate(simple("${in.header.bar} == 100"))
+  .to("bean:MyServiceBean.processLine");</code></pre></div></div><div class="paragraph"><p>To use validate in the Spring DSL, the easiest way is to use simple expressions.</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="file://inbox"/&gt;
+  &lt;validate&gt;
+    &lt;simple&gt;${body} regex ^\\w{10}\\,\\d{2}\\,\\w{24}$&lt;/simple&gt;
+  &lt;/validate&gt;
+  &lt;beanRef ref="myServiceBean" method="processLine"/&gt;
+&lt;/route&gt;
+
+&lt;bean id="myServiceBean" class="com.mycompany.MyServiceBean"/&gt;</code></pre></div></div><div class="paragraph"><p>The XML DSL to validate the message header would looks like this:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;route&gt;
+  &lt;from uri="file://inbox"/&gt;
+  &lt;validate&gt;
+    &lt;simple&gt;${in.header.bar} == 100&lt;/simple&gt;
+  &lt;/validate&gt;
+  &lt;beanRef ref="myServiceBean" method="processLine"/&gt;
+&lt;/route&gt;
+
+&lt;bean id="myServiceBean" class="com.mycompany.MyServiceBean"/&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/validator.html b/manual/latest/validator.html
new file mode 100644
index 0000000..8f12dff
--- /dev/null
+++ b/manual/latest/validator.html
@@ -0,0 +1,23 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/validator.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-ite [...]
+    .type("csv:CSVOrder")
+    .withExpression(bodyAs(String.class).contains("{name:XOrder}"));</code></pre></div></div><div class="paragraph"><p>XML DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;predicateValidator Type="csv:CSVOrder"&gt;
+    &lt;simple&gt;${body} contains '{name:XOrder}'&lt;/simple&gt;
+&lt;/predicateValidator&gt;</code></pre></div></div></div><div class="sect2"><h3 id="Validator-Endpoint"><a class="anchor" href="#Validator-Endpoint"></a>Endpoint Validator Options</h3><table class="tableblock frame-all grid-all stretch"><colgroup><col style="width: 50%;"><col style="width: 50%;"></colgroup><thead><tr><th class="tableblock halign-left valign-top">Name</th><th class="tableblock halign-left valign-top">Description</th></tr></thead><tbody><tr><td class="tableblock halign-le [...]
+    .type("xml")
+    .withUri("validator:xsd/schema.xsd");</code></pre></div></div><div class="paragraph"><p>And here is an example to specify endpoint ref in XML DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;endpointValidator uri="validator:xsd/schema.xsd" type="xml"/&gt;</code></pre></div></div><div class="paragraph"><p>Note that the Endpoint Validator just forwards the message to the specified endpoin [...]
+    .type("json")
+    .withJava(com.example.MyCustomValidator.class);</code></pre></div></div><div class="paragraph"><p>XML DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;customTransformer className="com.example.MyCustomValidator" type="json"/&gt;</code></pre></div></div></div><div class="sect2"><h3 id="Validator-Examples"><a class="anchor" href="#Validator-Examples"></a>Examples</h3><div class="paragraph" [...]
+    .type("xml:ABCOrder")
+    .withUri("validator:xsd/schema.xsd");</code></pre></div></div><div class="paragraph"><p>XML DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"&gt;
+    &lt;validators&gt;
+        &lt;endpointValidator uri="validator:xsd/schema.xsd" type="xml:ABCOrder"/&gt;
+    &lt;/validators&gt;
+&lt;/camelContext&gt;</code></pre></div></div><div class="paragraph"><p>If you have following route definition, above validator will be applied when<code>direct:abc</code>endpoint receives the message. Note that<code>inputTypeWithValidate</code>is used instead of<code>inputType</code>in Java DSL, and the<code>validate</code>attribute on the inputType declaration is set to<code>true</code>in XML DSL:</p></div><div class="paragraph"><p>Java DSL:</p></div><div class="listingblock"><div clas [...]
+    .inputTypeWithValidate("xml:ABCOrder")
+    .log("${body}");</code></pre></div></div><div class="paragraph"><p>XML DSL:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"&gt;
+    &lt;route&gt;
+        &lt;from uri="direct:abc"/&gt;
+        &lt;inputType urn="xml:ABCOrder" validate="true"/&gt;
+        &lt;log message="${body}"/&gt;
+    &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/weighted-eip.html b/manual/latest/weighted-eip.html
new file mode 100644
index 0000000..cfa762c
--- /dev/null
+++ b/manual/latest/weighted-eip.html
@@ -0,0 +1,10 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/weighted-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar- [...]
+    .loadBalance()
+    .weighted(false, "4,2,1")
+    .to("seda:x", "seda:y", "seda:z");</code></pre></div></div><div class="paragraph"><p>In XML you&#8217;ll have a route like this</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;from uri="direct:start"/&gt;
+  &lt;loadBalance&gt;
+    &lt;weighted roundRobin="false" distributionRatio="4 2 1"/&gt;
+    &lt;to uri="seda:x"/&gt;
+    &lt;to uri="seda:y"/&gt;
+    &lt;to uri="seda:z"/&gt;
+  &lt;/loadBalance&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/when-eip.html b/manual/latest/when-eip.html
new file mode 100644
index 0000000..cfb33d0
--- /dev/null
+++ b/manual/latest/when-eip.html
@@ -0,0 +1,29 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/when-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-item [...]
+    public void configure() {
+        from("direct:a")
+            .choice()
+                .when(simple("${header.foo} == 'bar'"))
+                    .to("direct:b")
+                .when(simple("${header.foo} == 'cheese'"))
+                    .to("direct:c")
+                .otherwise()
+                    .to("direct:d");
+    }
+};</code></pre></div></div><div class="paragraph"><p>And the same example using XML:</p></div><div class="listingblock"><div class="content"><pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml">&lt;camelContext xmlns="http://camel.apache.org/schema/spring"&gt;
+    &lt;route&gt;
+        &lt;from uri="direct:a"/&gt;
+        &lt;choice&gt;
+            &lt;when&gt;
+                &lt;simple&gt;${header.foo} == 'bar'&lt;/simple&gt;
+                &lt;to uri="direct:b"/&gt;
+            &lt;/when&gt;
+            &lt;when&gt;
+                &lt;simple&gt;${header.foo} == 'cheese'&lt;/simple&gt;
+                &lt;to uri="direct:c"/&gt;
+            &lt;/when&gt;
+            &lt;otherwise&gt;
+                &lt;to uri="direct:d"/&gt;
+            &lt;/otherwise&gt;
+        &lt;/choice&gt;
+    &lt;/route&gt;
+&lt;/camelContext&gt;</code></pre></div></div></div></div></div></article></main></div><footer class="footer"><p>This page was built using the Antora default UI.</p><p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p></footer><script src="../../_/js/site.js"></script><script src="../../_/js/vendor/highlight.js"></script><script>hljs.initHighlighting()</script></body></html>
\ No newline at end of file
diff --git a/manual/latest/wireTap-eip.html b/manual/latest/wireTap-eip.html
new file mode 100644
index 0000000..5555e20
--- /dev/null
+++ b/manual/latest/wireTap-eip.html
@@ -0,0 +1,62 @@
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/wireTap-eip.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar-i [...]
+        return new RouteBuilder() {
+            public void configure() {
+                // START SNIPPET: e1
+                from("direct:start")
+                    .to("log:foo")
+                    .wireTap("direct:tap")
+                    .to("mock:result");
+                // END SNIPPET: e1
+
+                from("direct:tap")
+                    .delay(1000).setBody().constant("Tapped")
+                    .to("mock:result", "mock:tap");
+
+                from("direct:test").wireTap("direct:a").id("wiretap_1").to("mock:a");
+                from("direct:a").to("mock:b");
+            }
+        };
+    }</code></pre></div></div></div><div class="sect2"><h3 id="_sending_a_new_exchange"><a class="anchor" href="#_sending_a_new_exchange"></a>Sending a New<a href="exchange.html">Exchange</a></h3><div class="paragraph"><p><strong>Using the<a href="#FluentBuilders-FluentBuilders">Fluent Builders</a></strong></p></div><div class="paragraph"><p>Camel supports either a processor or an<a href="expression.html">Expression</a>to populate the new<a href="exchange.html">Exchange</a>. Using a proc [...]
+        context.addRoutes(new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                // START SNIPPET: e1
+                from("direct:start")
+                    .wireTap("direct:foo", false, new Processor() {
+                        public void process(Exchange exchange) throws Exception {
+                            exchange.getIn().setBody("Bye World");
+                            exchange.getIn().setHeader("foo", "bar");
+                        }
+                    }).to("mock:result");
+
+
+                from("direct:foo").to("mock:foo");
+                // END SNIPPET: e1
+            }
+        });
+    }</code></pre></div></div></div><div class="sect2"><h3 id="_using_dynamic_uris"><a class="anchor" href="#_using_dynamic_uris"></a>Using Dynamic URIs</h3><div class="paragraph"><p><strong>Available as of Camel 2.16:</strong></p></div><div class="paragraph"><p>For example to wire tap to a dynamic URI, then it supports the same dynamic URIs as documented in <a href="message-endpoint.html">Message Endpoint</a>. For example to wire tap to a JMS queue where the header ID is part of the que [...]
+        .to("bean:doSomething");</code></pre></div></div></div><div class="sect2"><h3 id="_sending_a_new_exchange_and_set_headers_in_dsl"><a class="anchor" href="#_sending_a_new_exchange_and_set_headers_in_dsl"></a>Sending a New exchange and Set Headers in DSL</h3><div class="paragraph"><p><strong>Available as of Camel 2.8</strong></p></div><div class="paragraph"><p>If you send a new message using<a href="wire-tap.html">Wire Tap</a>, then you could only set the message body using an<a hr [...]
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                // START SNIPPET: e1
+                from("direct:start")
+                    // tap a new message and send it to direct:tap
+                    // the new message should be Bye World with 2 headers
+                    .wireTap("direct:tap")
+                        // create the new tap message body and headers
+                        .newExchangeBody(constant("Bye World"))
+                        .newExchangeHeader("id", constant(123))
+                        .newExchangeHeader("date", simple("${date:now:yyyyMMdd}"))
+                    .end()
+                    // here we continue routing the original messages
+                    .to("mock:result");
+
+                // this is the tapped route
+                from("direct:tap")
+                    .to("mock:tap");
+                // END SNIPPET: e1
+            }
+        };
+    }</code></pre></div></div></div><div class="sect2"><h3 id="_usingonprepare_to_execute_custom_logic_when_preparing_messages"><a class="anchor" href="#_usingonprepare_to_execute_custom_logic_when_preparing_messages"></a>Using <code>onPrepare</code>to Execute Custom Logic when Preparing Messages</h3><div class="paragraph"><p><strong>Available as of Camel 2.8</strong></p></div><div class="paragraph"><p>See details at<a href="multicast.html">Multicast</a></p></div><div class="paragraph">< [...]
\ No newline at end of file
diff --git a/manual/latest/writing-components.html b/manual/latest/writing-components.html
index db9b3a6..5763e10 100644
--- a/manual/latest/writing-components.html
+++ b/manual/latest/writing-components.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/writing-components.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="n [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/writing-components.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="n [...]
         int size = 1000;
         Object value = parameters.remove("size");
         if (value != null) {
diff --git a/manual/latest/xml-configuration.html b/manual/latest/xml-configuration.html
index 0247a56..fe351f0 100644
--- a/manual/latest/xml-configuration.html
+++ b/manual/latest/xml-configuration.html
@@ -1 +1 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/xml-configuration.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="na [...]
\ No newline at end of file
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/xml-configuration.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="na [...]
\ No newline at end of file
diff --git a/manual/latest/xml-reference.html b/manual/latest/xml-reference.html
index 6c85d9e..39b54bc 100644
--- a/manual/latest/xml-reference.html
+++ b/manual/latest/xml-reference.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/xml-reference.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar [...]
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Untitled :: Apache Camel</title><link rel="canonical" href="https://camel.apache.org/staging/manual/latest/xml-reference.html"><meta name="generator" content="Antora 2.0.0"><link rel="stylesheet" href="../../_/css/site.css"></head><body class="article"><header class="header"><nav class="navbar shadow border-bottom"><div class="navbar-brand"><a class="navbar [...]
   xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="
diff --git a/sitemap-camel-k.xml b/sitemap-camel-k.xml
index f375749..dc1a30b 100644
--- a/sitemap-camel-k.xml
+++ b/sitemap-camel-k.xml
@@ -2,86 +2,86 @@
 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url>
 <loc>https://camel.apache.org/staging/camel-k/latest/configuration/components.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/camel-k/latest/configuration/configmap-secret.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/camel-k/latest/configuration/configuration.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/camel-k/latest/configuration/dependencies.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/camel-k/latest/configuration/logging.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/camel-k/latest/index.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/camel-k/latest/installation/gke.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/camel-k/latest/installation/installation.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/camel-k/latest/installation/minikube.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/camel-k/latest/installation/minishift.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/camel-k/latest/installation/openshift.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/camel-k/latest/languages/groovy.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/camel-k/latest/languages/java.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/camel-k/latest/languages/javascript.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/camel-k/latest/languages/kotlin.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/camel-k/latest/languages/languages.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/camel-k/latest/languages/xml.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/camel-k/latest/running/dev-mode.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/camel-k/latest/running/running.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/camel-k/latest/traits.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/camel-k/latest/uninstalling.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 </urlset>
\ No newline at end of file
diff --git a/sitemap-components.xml b/sitemap-components.xml
index ef317da..164ed51 100644
--- a/sitemap-components.xml
+++ b/sitemap-components.xml
@@ -2,1494 +2,1494 @@
 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url>
 <loc>https://camel.apache.org/staging/components/latest/activemq-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/ahc-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/ahc-ws-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/amqp-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/apns-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/asn1-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/asterisk-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/atmos-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/atmosphere-websocket-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/atom-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/atomix-map-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/atomix-messaging-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/atomix-multimap-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/atomix-queue-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/atomix-set-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/atomix-value-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/avro-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/avro-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/aws-cw-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/aws-ddb-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/aws-ddbstream-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/aws-ec2-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/aws-ecs-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/aws-eks-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/aws-iam-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/aws-kinesis-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/aws-kinesis-firehose-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/aws-kms-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/aws-lambda-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/aws-mq-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/aws-msk-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/aws-s3-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/aws-sdb-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/aws-ses-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/aws-sns-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/aws-sqs-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/aws-swf-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/aws-xray.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/azure-blob-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/azure-queue-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/azure.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/barcode-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/base64-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/bean-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/bean-validator-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/beanio-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/beanstalk-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/bindy-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/blueprint.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/bonita-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/boon-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/braintree-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/browse-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/caffeine-cache-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/caffeine-loadcache-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/cdi.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/chatscript-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/chunk-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/class-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/cm-sms-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/cmis-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/coap-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/cometd-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/consul-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/controlbus-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/corda-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/couchbase-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/couchdb-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/cql-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/crypto-cms-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/crypto-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/crypto-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/csv-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/cxf-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/cxf-transport.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/cxfrs-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/dataformat-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/dataset-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/dataset-test-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/digitalocean-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/direct-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/direct-vm-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/disruptor-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/dns-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/docker-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/dozer-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/drill-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/dropbox-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/ehcache-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/ejb-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/elasticsearch-rest-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/elsql-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/etcd-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/eventadmin-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/exec-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/facebook-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/file-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/flatpack-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/flatpack-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/flink-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/fop-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/freemarker-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/ftp-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/ftps-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/ganglia-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/geocoder-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/git-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/github-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/google-bigquery-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/google-bigquery-sql-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/google-calendar-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/google-calendar-stream-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/google-drive-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/google-mail-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/google-mail-stream-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/google-pubsub-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/google-sheets-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/google-sheets-stream-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/gora-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/grape-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/groovy-language.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/grpc-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/guava-eventbus-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/gzipdeflater-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/hazelcast-atomicvalue-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/hazelcast-instance-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/hazelcast-list-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/hazelcast-map-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/hazelcast-multimap-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/hazelcast-queue-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/hazelcast-replicatedmap-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/hazelcast-ringbuffer-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/hazelcast-seda-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/hazelcast-set-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/hazelcast-topic-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/hazelcast.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/hbase-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/hdfs2-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/hipchat-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/hl7-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/hl7terser-language.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/http4-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/hystrix.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/ical-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/iec60870-client-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/iec60870-server-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/ignite-cache-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/ignite-compute-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/ignite-events-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/ignite-idgen-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/ignite-messaging-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/ignite-queue-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/ignite-set-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/ignite.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/index.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/infinispan-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/influxdb-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/iota-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/ipfs-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/irc-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/ironmq-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/jacksonxml-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/jasypt.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/jaxb-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/jbpm-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/jcache-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/jclouds-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/jcr-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/jdbc-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/jetty-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/jgroups-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/jgroups-raft-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/jing-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/jira-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/jms-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/jmx-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/jolt-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/jooq-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/jpa-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/json-fastjson-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/json-gson-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/json-jackson-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/json-johnzon-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/json-validator-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/json-xstream-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/jsonApi-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/jsonpath-language.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/jt400-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/kafka-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/kubernetes-config-maps-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/kubernetes-deployments-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/kubernetes-hpa-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/kubernetes-job-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/kubernetes-namespaces-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/kubernetes-nodes-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/kubernetes-persistent-volumes-claims-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/kubernetes-persistent-volumes-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/kubernetes-pods-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/kubernetes-replication-controllers-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/kubernetes-resources-quota-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/kubernetes-secrets-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/kubernetes-service-accounts-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/kubernetes-services-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/kubernetes.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/kura.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/language-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/ldap-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/ldif-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/leveldb.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/log-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/lpr-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/lra.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/lucene-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/lumberjack-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/lzf-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/mail-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/master-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/metrics-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/micrometer-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/milo-client-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/milo-server-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/mime-multipart-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/mina2-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/mllp-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/mock-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/mongodb-gridfs-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/mongodb3-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/mqtt-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/msv-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/mustache-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/mvel-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/mvel-language.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/mybatis-bean-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/mybatis-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/nagios-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/nats-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/netty4-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/netty4-http-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/nsq-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/ognl-language.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/openshift-build-configs-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/openshift-builds-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/openstack-cinder-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/openstack-glance-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/openstack-keystone-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/openstack-neutron-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/openstack-nova-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/openstack-swift-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/openstack.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/opentracing.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/optaplanner-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/paho-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/paxlogging-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/pdf-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/pgevent-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/pgp-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/properties-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/protobuf-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/pubnub-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/pulsar-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/quartz2-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/quickfix-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/rabbitmq-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/reactive-streams-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/reactor-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/ref-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/rest-api-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/rest-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/rest-swagger-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/restlet-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/ribbon.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/rss-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/rss-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/rxjava2.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/saga-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/sap-netweaver-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/scheduler-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/schematron-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/scp-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/secureXML-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/seda-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/service-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/servlet-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/sftp-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/shiro.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/sip-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/sjms-batch-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/sjms-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/sjms2-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/slack-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/smpp-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/snmp-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/soapjaxb-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/solr-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/soroush-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/spark-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/spark-rest-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/spel-language.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/splunk-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/spring-batch-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/spring-boot.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/spring-cloud-consul.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/spring-cloud-netflix.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/spring-cloud-zookeeper.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/spring-cloud.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/spring-event-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/spring-integration-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/spring-javaconfig.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/spring-ldap-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/spring-redis-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/spring-security.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/spring-ws-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/spring.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/sql-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/sql-stored-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/ssh-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/stax-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/stomp-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/stream-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/string-template-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/stub-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/swagger-java.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/syslog-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/tarfile-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/telegram-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/test-blueprint.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/test-cdi.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/test-karaf.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/test-spring.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/test.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/testcontainers-spring.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/testcontainers.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/thrift-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/thrift-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/tidyMarkup-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/tika-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/timer-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/twilio-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/twitter-directmessage-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/twitter-search-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/twitter-streaming-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/twitter-timeline-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/twitter.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/undertow-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/univocity-csv-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/univocity-fixed-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/univocity-tsv-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/validator-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/velocity-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/vertx-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/vm-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/weather-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/web3j-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/webhook-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/websocket-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/websocket-jsr356-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/wordpress-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/xchange-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/xmlsecurity-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/xmpp-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/xpath-language.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/xquery-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/xquery-language.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/xslt-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/xstream-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/yaml-snakeyaml-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/yammer-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/zendesk-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/zipdeflater-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/zipfile-dataformat.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/zipkin.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/zookeeper-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/components/latest/zookeeper-master-component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 </urlset>
\ No newline at end of file
diff --git a/sitemap-manual.xml b/sitemap-manual.xml
index e6049d0..4510a62 100644
--- a/sitemap-manual.xml
+++ b/sitemap-manual.xml
@@ -1,427 +1,819 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url>
+<loc>https://camel.apache.org/staging/manual/latest/aggregate-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
 <loc>https://camel.apache.org/staging/manual/latest/annotation-based-expression-language.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/architecture.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/async.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/asynchronous-routing-engine.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/backlog-tracer.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/backlogdebugger.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/bam-example.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/bam.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/batch-config-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/batch-consumer.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/bean-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/bean-integration.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/bean-language.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/binding.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/book-getting-started.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/books.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/browsable-endpoint.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/building.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/camel-boot.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/camel-configuration-utilities.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/camel-core.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/camel-jar-dependencies.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/camelcontext.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/cep.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/choice-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/circuitBreaker-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/claimCheck-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/clustering.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/commercial-camel-offerings.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/component.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/componentconfiguration.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/configuring-camel.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/configuring-route-startup-ordering-and-autostartup.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/constant-language.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/content-based-router-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/content-filter-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/convertBodyTo-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/correlation-identifier.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/customLoadBalancer-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/data-format.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/dead-letter-channel.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/debugger.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/defaulterrorhandler.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/delay-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/delay-interceptor.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/dependency-injection.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/download-archives.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/download.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/dozer-type-conversion.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/dsl.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/dynamic-router.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/dynamicRouter-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/endpoint-completer.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/endpoint.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/enrich-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/enterprise-integration-patterns.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/error-handler.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/error-handling-in-camel.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/event-message.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/eventDrivenConsumer-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/examples.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/exception-clause.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/exchange-pattern.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/exchange.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/exchangeProperty-language.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/expression.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/failover-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/faq.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/file-language.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/filter-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/fluent-builders.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/from-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/getting-started.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/graceful-shutdown.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/groovy-dsl.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/guaranteed-delivery.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/guice-jms-example.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/guice-maven-plugin.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/guice.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/header-language.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/health-check.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/http-session-handling.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/http-session.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/hystrix-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/hystrixConfiguration-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/idempotentConsumer-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/index.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/injector.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/inOnly-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/inOut-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/intercept.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/inversion-of-control-with-smart-defaults.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/irc-room.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/java-dsl.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/jmx.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/jndi.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/json.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/karaf.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/languages.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/lifecycle.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/loadBalance-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/log-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/loop-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/mailing-lists.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/marshal-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/message-bus.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/message-channel.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/message-endpoint.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/message-router.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/message-translator.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/message.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/multicast-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/oncompletion.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/onFallback-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/otherwise-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/pipeline-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/point-to-point-channel.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/pollEnrich-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/predicate.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/process-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/processor.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/producertemplate.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/publish-subscribe-channel.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/random-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/recipientList-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/ref-language.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/registry.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/release-guide.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/removeHeader-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/removeHeaders-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/removeProperties-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/removeProperty-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/requestReply-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/resequence-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/rest-dsl.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/return-address.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/rollback-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/roundRobin-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/route-builder.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/route-policy.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/routes.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/routingSlip-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/saga-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/sample-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/scala-dsl-eip.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/scala-dsl-getting-started.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/scala-dsl-supported-languages.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/scala-dsl.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/script-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/scripting-languages.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/security-advisories.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/security.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/service-registry.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/serviceCall-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/servicepool.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/servlet-tomcat-example.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/setBody-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/setFaultBody-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/setHeader-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/setOutHeader-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/setProperty-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/simple-language.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/sort-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/split-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/spring-testing.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/spring-xml-extensions.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/spring.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/step-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/sticky-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/stop-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/stream-caching.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/stream-config-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/support.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/team.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/testing.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/threading-model.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/threads-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/throttle-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/to-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/toD-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/tokenize-language.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/topic-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/transactional-client.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/transactionerrorhandler.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/transform-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/transformer.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/transport.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/try-catch-finally.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/type-converter.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/unmarshal-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/uris.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/user-stories.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/using-osgi-blueprint-with-camel.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/using-propertyplaceholder.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/uuidgenerator.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/validate-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/validator.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/weighted-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/when-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
+</url>
+<url>
+<loc>https://camel.apache.org/staging/manual/latest/wireTap-eip.html</loc>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/writing-components.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/xml-configuration.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 <url>
 <loc>https://camel.apache.org/staging/manual/latest/xml-reference.html</loc>
-<lastmod>2019-05-17T15:07:22.306Z</lastmod>
+<lastmod>2019-05-20T09:46:29.812Z</lastmod>
 </url>
 </urlset>
\ No newline at end of file