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

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

commit ece9db287ef73a2e39b50b16614e842b3085cae2
Author: Alexandros Koufoudakis <akoufouda...@gmail.com>
AuthorDate: Tue Jun 25 17:45:19 2019 +0200

    Camel Core and some left overs. 
https://issues.apache.org/jira/browse/CAMEL-13480
---
 .../src/main/docs/camel-report-maven-plugin.adoc   |  6 ++--
 .../camel-http4/src/main/docs/http4-component.adoc |  2 +-
 .../camel-irc/src/main/docs/irc-component.adoc     |  2 +-
 core/camel-base/src/main/docs/file-language.adoc   | 15 ++++----
 core/camel-base/src/main/docs/simple-language.adoc | 22 +++++-------
 .../src/main/docs/eips/aggregate-eip.adoc          | 17 +++++----
 core/camel-core/src/main/docs/eips/bean-eip.adoc   |  2 +-
 .../src/main/docs/eips/dynamic-router.adoc         | 15 +++-----
 .../src/main/docs/eips/dynamicRouter-eip.adoc      | 12 +++----
 core/camel-core/src/main/docs/eips/enrich-eip.adoc | 41 ++--------------------
 .../camel-core/src/main/docs/eips/hystrix-eip.adoc |  4 +--
 .../src/main/docs/eips/idempotentConsumer-eip.adoc | 20 ++++-------
 .../src/main/docs/eips/loadBalance-eip.adoc        |  8 ++---
 core/camel-core/src/main/docs/eips/log-eip.adoc    |  9 +++--
 core/camel-core/src/main/docs/eips/loop-eip.adoc   |  2 +-
 .../src/main/docs/eips/multicast-eip.adoc          |  2 +-
 .../src/main/docs/eips/pollEnrich-eip.adoc         | 30 +++-------------
 .../src/main/docs/eips/recipientList-eip.adoc      | 10 +++---
 .../src/main/docs/eips/resequence-eip.adoc         |  2 +-
 .../src/main/docs/eips/routingSlip-eip.adoc        |  6 ++--
 core/camel-core/src/main/docs/eips/split-eip.adoc  | 31 +++++++++++-----
 core/camel-core/src/main/docs/eips/toD-eip.adoc    |  6 ++--
 .../camel-core/src/main/docs/eips/wireTap-eip.adoc | 12 +++----
 23 files changed, 100 insertions(+), 176 deletions(-)

diff --git 
a/catalog/camel-report-maven-plugin/src/main/docs/camel-report-maven-plugin.adoc
 
b/catalog/camel-report-maven-plugin/src/main/docs/camel-report-maven-plugin.adoc
index ebd2634..3f406ea 100644
--- 
a/catalog/camel-report-maven-plugin/src/main/docs/camel-report-maven-plugin.adoc
+++ 
b/catalog/camel-report-maven-plugin/src/main/docs/camel-report-maven-plugin.adoc
@@ -142,9 +142,9 @@ The maven plugin *validate* goal supports the following 
options which can be con
 | ignoreUnknownComponent | true | Whether to ignore unknown components.
 | ignoreIncapable | true | Whether to ignore incapable of parsing the endpoint 
uri or simple expression.
 | ignoreLenientProperties | true | Whether to ignore components that uses 
lenient properties. When this is true, then the uri validation is stricter but 
would fail on properties that are not part of the component but in the uri 
because of using lenient properties. For example using the HTTP components to 
provide query parameters in the endpoint uri.
-| ignoreDeprecated | true | *Camel 2.23* Whether to ignore deprecated options 
being used in the endpoint uri.
-| duplicateRouteId | true | *Camel 2.20* Whether to validate for duplicate 
route ids. Route ids should be unique and if there are duplicates then Camel 
will fail to startup.
-| directOrSedaPairCheck | true | *Camel 2.23* Whether to validate direct/seda 
endpoints sending to non existing consumers.
+| ignoreDeprecated | true |Whether to ignore deprecated options being used in 
the endpoint uri.
+| duplicateRouteId | true |Whether to validate for duplicate route ids. Route 
ids should be unique and if there are duplicates then Camel will fail to 
startup.
+| directOrSedaPairCheck | true |Whether to validate direct/seda endpoints 
sending to non existing consumers.
 | showAll | false | Whether to show all endpoints and simple expressions (both 
invalid and valid).
 |===
 
diff --git a/components/camel-http4/src/main/docs/http4-component.adoc 
b/components/camel-http4/src/main/docs/http4-component.adoc
index 7bd59c2..a698396 100644
--- a/components/camel-http4/src/main/docs/http4-component.adoc
+++ b/components/camel-http4/src/main/docs/http4-component.adoc
@@ -565,7 +565,7 @@ behavior.
 Using the JSSE Configuration Utility
 
 The HTTP4 component supports SSL/TLS configuration
-through the link:camel-configuration-utilities.html[Camel JSSE
+through the link:camel-configuration-utilities.adoc[Camel JSSE
 Configuration Utility].  This utility greatly decreases the amount of
 component specific code you need to write and is configurable at the
 endpoint and component levels.  The following examples demonstrate how
diff --git a/components/camel-irc/src/main/docs/irc-component.adoc 
b/components/camel-irc/src/main/docs/irc-component.adoc
index 0e8eefe..8f12b59 100644
--- a/components/camel-irc/src/main/docs/irc-component.adoc
+++ b/components/camel-irc/src/main/docs/irc-component.adoc
@@ -150,7 +150,7 @@ The component supports 4 options, which are listed below.
 #### Using the JSSE Configuration Utility
 
 The IRC component supports SSL/TLS configuration
-through the link:camel-configuration-utilities.html[Camel JSSE
+through the link:camel-configuration-utilities.adoc[Camel JSSE
 Configuration Utility].  This utility greatly decreases the amount of
 component specific code you need to write and is configurable at the
 endpoint and component levels.  The following examples demonstrate how
diff --git a/core/camel-base/src/main/docs/file-language.adoc 
b/core/camel-base/src/main/docs/file-language.adoc
index b4ec091..4f3dbe2 100644
--- a/core/camel-base/src/main/docs/file-language.adoc
+++ b/core/camel-base/src/main/docs/file-language.adoc
@@ -3,8 +3,7 @@
 
 *Available as of Camel version 1.1*
 
-INFO:*File language is now merged with Simple language*
-From Camel 2.2 onwards, the file language is now merged with
+The file language is merged with
 <<simple-language,Simple>> language which means you can use all the file
 syntax directly within the simple language.
 
@@ -55,16 +54,16 @@ File component supports all of them.
 |file:name |String |yes |no |yes |no |refers to the file name (is relative to 
the starting directory, see note
 below)
 
-|file:name.ext |String |yes |no |yes |no |*Camel 2.3:* refers to the file 
extension only
+|file:name.ext |String |yes |no |yes |no |refers to the file extension only
 
-|file:name.ext.single |String |yes |no |yes |no |*Camel 2.14.4/2.15.3:* refers 
to the file extension. If the file
+|file:name.ext.single |String |yes |no |yes |no |refers to the file extension. 
If the file
 extension has mutiple dots, then this expression strips and only returns
 the last part.
 
 |file:name.noext |String |yes |no |yes |no |refers to the file name with no 
extension (is relative to the starting
 directory, see note below)
 
-|file:name.noext.single |String |yes |no |yes |no |*Camel 2.14.4/2.15.3:* 
refers to the file name with no extension (is
+|file:name.noext.single |String |yes |no |yes |no |refers to the file name 
with no extension (is
 relative to the starting directory, see note below). If the file
 extension has multiple dots, then this expression strips only the last
 part, and keep the others.
@@ -74,7 +73,7 @@ part, and keep the others.
 |file:onlyname.noext |String |yes |no |yes |no |refers to the file name only 
with no extension and with no leading
 paths.
 
-|file:onlyname.noext.single |String |yes |no |yes |no |*Camel 
2.14.4/2.15.3:*refers to the file name only with no extension and
+|file:onlyname.noext.single |String |yes |no |yes |no |refers to the file name 
only with no extension and
 with no leading paths. If the file extension has multiple dots, then
 this expression strips only the last part, and keep the others.
 
@@ -90,7 +89,7 @@ this expression strips only the last part, and keep the 
others.
 
 |file:length |Long |yes |no |yes |no |refers to the file length returned as a 
Long type
 
-|file:size |Long |yes |no |yes |no |*Camel 2.5:* refers to the file length 
returned as a Long type
+|file:size |Long |yes |no |yes |no |refers to the file length returned as a 
Long type
 
 |file:modified |Date |yes |no |yes |no |Refers to the file last modified 
returned as a Date type
 
@@ -254,7 +253,7 @@ Spring XML, where we can route based on file extensions as 
shown below:
 
 If you use the `fileName` option on the File endpoint
 to set a dynamic filename using the <<file-language,File Language>> then make 
sure you  +
- use the alternative syntax (available from Camel 2.5 onwards) to avoid
+ use the alternative syntax to avoid
 clashing with Springs `PropertyPlaceholderConfigurer`.
 
 *bundle-context.xml*
diff --git a/core/camel-base/src/main/docs/simple-language.adoc 
b/core/camel-base/src/main/docs/simple-language.adoc
index 654b66c..1183d46 100644
--- a/core/camel-base/src/main/docs/simple-language.adoc
+++ b/core/camel-base/src/main/docs/simple-language.adoc
@@ -247,8 +247,7 @@ log sensitive data from the message itself.
 === OGNL expression support
 
 INFO:Camel's OGNL support is for invoking methods only. You cannot access
-fields. From *Camel 2.11.1* onwards we added special support for accessing the
-length field of Java arrays.
+fields. Camel support accessing the length field of Java arrays.
 
 
 The <<simple-language,Simple>> and <<simple-language,Bean>> language now
@@ -359,8 +358,7 @@ And you can call the size method on the list with
 simple("${body.address.lines.size}")
 ------------------------------------
 
-From *Camel 2.11.1* onwards we added support for the length field for
-Java arrays as well, eg:
+Camel supports the length field for Java arrays as well, eg:
 
 [source,java]
 ---------------------------------------------------
@@ -473,9 +471,8 @@ function, otherwise parsed as literal.
 |\ |To escape a value, eg \$, to indicate a $ sign.
 Special: Use \n for new line, \t for tab, and \r for carriage return.
 *Notice:* Escaping is *not* supported using the
-<<file-language,File Language>>. *Notice:* From Camel 2.11
-onwards the escape character is no longer support, but replaced with the
-following three special escaping.
+<<file-language,File Language>>. *Notice:* The escape character is not 
supported, use the
+following three special escaping instead.
 
 |\n |To use newline character.
 
@@ -771,7 +768,7 @@ from("direct:order")
     .to("mock:reply");
 ----
 
-And from Camel 2.3 onwards you can also convert the body to a given
+You can also convert the body to a given
 type, for example to ensure that it is a String you can do:
 
 [source,xml]
@@ -786,8 +783,7 @@ There are a few types which have a shorthand notation, so 
we can use
 `byte[], String, Integer, Long`. All other types must use their FQN
 name, e.g. `org.w3c.dom.Document`.
 
-It is also possible to lookup a value from a header `Map` in *Camel 2.3*
-onwards:
+It is also possible to lookup a value from a header `Map`:
 
 [source,xml]
 ----
@@ -801,7 +797,7 @@ a `java.util.Map` and we then lookup with the key `gold` 
and return the
 value. If the header is not convertible to Map an exception is thrown. If the
 header with name `type` does not exist `null` is returned.
 
-From Camel 2.9 onwards you can nest functions, such as shown below:
+You can nest functions, such as shown below:
 
 [source,xml]
 ----
@@ -820,7 +816,7 @@ the message which enum it matches.
 
 === Using new lines or tabs in XML DSLs
 
-From Camel 2.9.3 onwards it is easier to specify new lines or tabs in
+It is easier to specify new lines or tabs in
 XML DSLs as you can escape the value now
 
 [source,xml]
@@ -848,7 +844,7 @@ whitespace characters.
 
 You can now provide a result type to the <<simple-language,Simple>>
 expression, which means the result of the evaluation will be converted
-to the desired type. This is most useable to define types such as
+to the desired type. This is most usable to define types such as
 booleans, integers, etc.
 
 For example to set a header as a boolean type you can do:
diff --git a/core/camel-core/src/main/docs/eips/aggregate-eip.adoc 
b/core/camel-core/src/main/docs/eips/aggregate-eip.adoc
index fe21813..0ec26f7 100644
--- a/core/camel-core/src/main/docs/eips/aggregate-eip.adoc
+++ b/core/camel-core/src/main/docs/eips/aggregate-eip.adoc
@@ -117,20 +117,19 @@ exchanges are completed.
 * completionSize - Is a number indicating that after X aggregated
 exchanges it's complete.
 * completionPredicate - Runs a link:predicate.html[Predicate] when a new
-exchange is aggregated to determine if we are complete or not. Staring
-in *Camel 2.15*, the configured aggregationStrategy can implement the
+exchange is aggregated to determine if we are complete or not.
+The configured aggregationStrategy can implement the
 Predicate interface and will be used as the completionPredicate if no
-completionPredicate is configured. From *Camel 2.16*, the configured
-aggregationStrategy can
+completionPredicate is configured. The configured aggregationStrategy can
 implement `PreCompletionAwareAggregationStrategy` and will be used as
 the completionPredicate in pre-complete check mode. See further below
 for more details.
 * completionFromBatchConsumer - Special option for
 link:batch-consumer.html[Batch Consumer] which allows you to complete
 when all the messages from the batch has been aggregated.
-* forceCompletionOnStop - *Camel 2.9* Indicates to complete all current
+* forceCompletionOnStop - Indicates to complete all current
 aggregated exchanges when the context is stopped
-* Using a `AggregateController` - *Camel 2.16* which allows to use an
+* Using a `AggregateController` - which allows to use an
 external source to complete groups or all groups. This can be done using
 Java or JMX API.
 
@@ -304,7 +303,7 @@ completion of all groups after processing the current 
message.
 If you want to aggregate some value from the messages `<V>` into a `List<V>`
 then we have added a
 `org.apache.camel.processor.aggregate.AbstractListAggregationStrategy`
-abstract class in *Camel 2.11* that makes this easier. The completed
+abstract class that makes this easier. The completed
 Exchange that is sent out of the aggregator will contain the `List<V>` in
 the message body.
 
@@ -413,8 +412,8 @@ List<Exchange> grouped = 
exchange.getIn().getBody(List.class);
 
 To use the `AggregationStrategy` you had to implement the
 `org.apache.camel.AggregationStrategy` interface,
-which means your logic would be tied to the Camel API. From *Camel 2.12*
-onwards you can use a POJO for the logic and let Camel adapt to your
+which means your logic would be tied to the Camel API.
+You can use a POJO for the logic and let Camel adapt to your
 POJO. To use a POJO a convention must be followed:
 
 * there must be a public method to use
diff --git a/core/camel-core/src/main/docs/eips/bean-eip.adoc 
b/core/camel-core/src/main/docs/eips/bean-eip.adoc
index 9fe57b9..0d67398 100644
--- a/core/camel-core/src/main/docs/eips/bean-eip.adoc
+++ b/core/camel-core/src/main/docs/eips/bean-eip.adoc
@@ -1,7 +1,7 @@
 [[bean-eip]]
 == Bean EIP
 
-The *bean:* EIP binds beans to Camel message exchanges.
+The Bean EIP binds beans to Camel message exchanges.
 
 === URI Format
 
diff --git a/core/camel-core/src/main/docs/eips/dynamic-router.adoc 
b/core/camel-core/src/main/docs/eips/dynamic-router.adoc
index b83e44b..e25baef 100644
--- a/core/camel-core/src/main/docs/eips/dynamic-router.adoc
+++ b/core/camel-core/src/main/docs/eips/dynamic-router.adoc
@@ -9,7 +9,7 @@ on all possible destinations while maintaining its efficiency.
 
 image:http://www.enterpriseintegrationpatterns.com/img/DynamicRouter.gif[image]
 
-In *Camel 2.5* we introduced a `dynamicRouter` in the DSL which is like
+The `dynamicRouter` in the DSL is similar to
 a dynamic Routing Slip which evaluates the slip
 _on-the-fly_.
 
@@ -32,7 +32,7 @@ endpoints.
 Otherwise Camel will thrown an exception stating the endpoint uri is not
 valid.
 
-|`cacheSize` |`1000` |*Camel 2.13.1/2.12.4:* Allows to configure the cache 
size for the
+|`cacheSize` |`1000` |Allows to configure the cache size for the
 `ProducerCache` which caches producers for reuse in the routing slip.
 Will by default use the default cache size which is 1000. Setting the
 value to -1 allows to turn off the cache all together.
@@ -41,7 +41,7 @@ value to -1 allows to turn off the cache all together.
 [[DynamicRouter-DynamicRouterinCamel2.5onwards]]
 === Dynamic Router in Camel 2.5 onwards
 
-From Camel 2.5 the Dynamic Router will set a
+The Dynamic Router will set a
 property (Exchange.SLIP_ENDPOINT) on the Exchange
 which contains the current endpoint as it advanced though the slip. This
 allows you to know how far we have processed in the slip. (It's a slip
@@ -138,12 +138,6 @@ 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.
 
-WARNING:*Using beans to store state*
-Mind that in Camel 2.9.2 or older, when using a <<bean-component,Bean>> the
-state is not propagated, so you will have to use a
-Processor instead. This is fixed in Camel 2.9.3
-onwards.
-
 [[DynamicRouter-SpringXML]]
 === Spring XML
 
@@ -173,8 +167,7 @@ The same example in Spring XML would be:
 [[DynamicRouter-DynamicRouterannotation]]
 === @DynamicRouter annotation
 
-You can also use the `@DynamicRouter` annotation, for example the Camel
-2.4 example below could be written as follows. The `route` method would
+You can also use the `@DynamicRouter` annotation. The `route` method would
 then be invoked repeatedly as the message is processed dynamically. The
 idea is to return the next endpoint uri where to go. Return `null` to
 indicate the end. You can return multiple endpoints if you like, just as
diff --git a/core/camel-core/src/main/docs/eips/dynamicRouter-eip.adoc 
b/core/camel-core/src/main/docs/eips/dynamicRouter-eip.adoc
index 80ed1d3..0bafc76 100644
--- a/core/camel-core/src/main/docs/eips/dynamicRouter-eip.adoc
+++ b/core/camel-core/src/main/docs/eips/dynamicRouter-eip.adoc
@@ -5,7 +5,9 @@ The 
link:http://www.enterpriseintegrationpatterns.com/DynamicRouter.html[Dynamic
 
 image:http://www.enterpriseintegrationpatterns.com/img/DynamicRouter.gif[image]
 
-In *Camel 2.5* we introduced a dynamicRouter in the DSL which is like a 
dynamic Routing Slip which evaluates the slip _on-the-fly_.
+The `dynamicRouter` in the DSL is similar to
+a dynamic Routing Slip which evaluates the slip
+_on-the-fly_.
 
 [IMPORTANT]
 .Avoid endless looping
@@ -112,12 +114,6 @@ public String slip(String body, @Properties Map<String, 
Object> properties) {
 
 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.
 
-[WARNING]
-.Using beans to store state
-====
-Mind that in Camel 2.9.2 or older, when using a Bean the state is not 
propagated, so you will have to use a Processor instead. This is fixed in Camel 
2.9.3 onwards.
-====
-
 ==== Spring XML
 The same example in Spring XML would be:
 
@@ -143,7 +139,7 @@ The same example in Spring XML would be:
 ----
 
 === @DynamicRouter annotation
-You can also use the `@DynamicRouter` annotation, for example the Camel 2.4 
example below could be written as follows. The `route` method would then be 
invoked repeatedly as the message is processed dynamically.
+You can also use the `@DynamicRouter` annotation. The `route` method would 
then be invoked repeatedly as the message is processed dynamically.
 The idea is to return the next endpoint uri where to go. Return `null` to 
indicate the end. You can return multiple endpoints if you like, just as the 
Routing Slip, where each endpoint is separated by a delimiter.
 
 [source,java]
diff --git a/core/camel-core/src/main/docs/eips/enrich-eip.adoc 
b/core/camel-core/src/main/docs/eips/enrich-eip.adoc
index e2d284b..2098fff 100644
--- a/core/camel-core/src/main/docs/eips/enrich-eip.adoc
+++ b/core/camel-core/src/main/docs/eips/enrich-eip.adoc
@@ -88,14 +88,7 @@ The other one is `pollEnrich`
 
 `enrich` uses a Producer to obtain the additional data. It is usually used for 
Request Reply messaging, for instance to invoke an external web service.
 
-[WARNING]
-.Camel 2.15 or older - Data from current Exchange not used
-====
-`pollEnrich` or `enrich` does *not* access any data from the current Exchange 
which means when polling it cannot use any of the existing headers you may have 
set on the Exchange. For example you cannot set a filename in the 
`Exchange.FILE_NAME` header and use `pollEnrich` to consume only that file. For 
that you *must* set the filename in the endpoint URI.
-
-Instead of using enrich you can use Recipient List and have dynamic endpoints 
and define an `AggregationStrategy` on the Recipient List which then would work 
as a enrich would do.
-
-From *Camel 2.16* onwards both `enrich` and `pollEnrich` supports dynamic 
endpoints that uses an Expression to compute the uri, which allows to use data 
from the current Exchange. In other words all what is told above no longer 
apply and it just works.
+Both `enrich` and `pollEnrich` supports dynamic endpoints that uses an 
Expression to compute the uri, which allows to use data from the current 
Exchange.
 ====
 
 A little enrich example using Java:
@@ -139,26 +132,6 @@ Using this template the original exchange can be of any 
pattern. The resource ex
 
 ==== Enrich example using XML
 
-The same example in the Spring DSL (Camel 2.15 or older)
-
-[source,xml]
-----
-<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring";>
-  <route>
-    <from uri="direct:start"/>
-    <enrich uri="direct:resource" strategyRef="aggregationStrategy"/>
-    <to uri="direct:result"/>
-  </route>
-  <route>
-    <from uri="direct:resource"/>
-    ...
-  </route>
-</camelContext>
-
-<bean id="aggregationStrategy" class="..." />
-----
-
-The same example in the Spring DSL (Camel 2.16 or newer)
 [source,xml]
 ----
 <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring";>
@@ -188,17 +161,7 @@ from("direct:start")
 ----
 
 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:
-[source,xml]
-----
-<route>
-  <from uri="direct:start"/>
-  <enrich uri="direct:resource"/>
-  <to uri="direct:result"/>
-</route>
-----
 
-And for Spring DSL (Camel 2.16 or newer) just omit the strategyRef attribute:
 [source,xml]
 ----
 <route>
@@ -213,7 +176,7 @@ And for Spring DSL (Camel 2.16 or newer) just omit the 
strategyRef attribute:
 === Using dynamic uris
 *Available as of Camel 2.16*
 
-From Camel 2.16 onwards `enrich` and `pollEnrich` 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 orderId is used as part of the 
content-path of the HTTP url:
+Both `enrich` and `pollEnrich` 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 orderId is used as part of the content-path 
of the HTTP url:
 [source,java]
 ----
 from("direct:start")
diff --git a/core/camel-core/src/main/docs/eips/hystrix-eip.adoc 
b/core/camel-core/src/main/docs/eips/hystrix-eip.adoc
index bb6701b..cf1208c 100644
--- a/core/camel-core/src/main/docs/eips/hystrix-eip.adoc
+++ b/core/camel-core/src/main/docs/eips/hystrix-eip.adoc
@@ -32,8 +32,8 @@ The Hystrix EIP supports 2 options which are listed below:
 === Camel's Error Handler and Hystrix EIP
 
 By default the Hystrix EIP handles errors by itself. This means if the circuit 
breaker is open and
-the message fails, then Camel's error handler is not reacting also. However 
from *Camel 2.23* onwards
-you can enable Camels error handler with Hystrix by enabling the 
`inheritErrorHandler` option, as shown:
+the message fails, then Camel's error handler is not reacting also.
+However, you can enable Camels error handler with Hystrix by enabling the 
`inheritErrorHandler` option, as shown:
 
 [source,java]
 ----
diff --git a/core/camel-core/src/main/docs/eips/idempotentConsumer-eip.adoc 
b/core/camel-core/src/main/docs/eips/idempotentConsumer-eip.adoc
index 5381a69..2999a12 100644
--- a/core/camel-core/src/main/docs/eips/idempotentConsumer-eip.adoc
+++ b/core/camel-core/src/main/docs/eips/idempotentConsumer-eip.adoc
@@ -19,21 +19,13 @@ Camel provides the following Idempotent Consumer 
implementations:
 * MemoryIdempotentRepository
 * link:file2.html[FileIdempotentRepository]
 * link:hazelcast-component.html[HazelcastIdempotentRepository]
-(*Available as of Camel 2.8*)
-* <<sql-component,JdbcMessageIdRepository>> (*Available as of
-Camel 2.7*)
+* <<sql-component,JdbcMessageIdRepository>>
 * <<jpa-component,JpaMessageIdRepository>>
-* <<infinispan-component,InfinispanIdempotentRepository>> (*Available as of
-Camel 2.13.0)*
-* <<jcache-component,JCacheIdempotentRepository>>* (*Available as of Camel
-2.17.0)**
-* link:spring.html[SpringCacheIdempotentRepository] *(*Available as of
-Camel 2.17.1)**** 
-**
-* <<ehcache-component,EhcacheIdempotentRepository>>** *(*Available as of
-Camel 2.18.0)****
-* <<kafka-component,KafkaIdempotentRepository>> (*Available as of Camel
-2.19.0)*
+* <<infinispan-component,InfinispanIdempotentRepository>>
+* <<jcache-component,JCacheIdempotentRepository>>
+* link:spring.html[SpringCacheIdempotentRepository]
+* <<ehcache-component,EhcacheIdempotentRepository>>
+* <<kafka-component,KafkaIdempotentRepository>>
 
 === Options
 
diff --git a/core/camel-core/src/main/docs/eips/loadBalance-eip.adoc 
b/core/camel-core/src/main/docs/eips/loadBalance-eip.adoc
index d670bd4..e2eed83 100644
--- a/core/camel-core/src/main/docs/eips/loadBalance-eip.adoc
+++ b/core/camel-core/src/main/docs/eips/loadBalance-eip.adoc
@@ -15,10 +15,10 @@ Camel provides the following policies out-of-the-box:
 | Sticky | Sticky load balancing using an Expression to calculate a 
correlation key to perform the sticky load balancing; rather like jsessionid in 
the web or JMSXGroupID in JMS.
 | Topic | Topic which sends to all destinations (rather like JMS Topics)
 | Failover | In case of failures the exchange will be tried on the next 
endpoint.
-| Weighted Round-Robin | *Camel 2.5*: The weighted load balancing policy 
allows you to specify a processing load distribution ratio for each server with 
respect to the others. In addition to the weight, endpoint selection is then 
further refined using *round-robin* distribution based on weight.
-| Weighted Random | *Camel 2.5*: The weighted load balancing policy allows you 
to specify a processing load distribution ratio for each server with respect to 
others.In addition to the weight, endpoint selection is then further refined 
using *random* distribution based on weight.
-| Custom | *Camel 2.8*: From *Camel 2.8* onwards the preferred way of using a 
custom Load Balancer is to use this policy, as the ref attribute is not 
supported anymore.
-| Circuit Breaker | *Camel 2.14*: Implements the Circuit Breaker pattern as 
described in "Release it!" book.
+| Weighted Round-Robin |The weighted load balancing policy allows you to 
specify a processing load distribution ratio for each server with respect to 
the others. In addition to the weight, endpoint selection is then further 
refined using *round-robin* distribution based on weight.
+| Weighted Random |The weighted load balancing policy allows you to specify a 
processing load distribution ratio for each server with respect to others.In 
addition to the weight, endpoint selection is then further refined using 
*random* distribution based on weight.
+| Custom |The preferred way of using a custom Load Balancer is to use this 
policy, as the ref attribute is not supported anymore.
+| Circuit Breaker |Implements the Circuit Breaker pattern as described in 
"Release it!" book.
 |=======================================================================
 
 === Options
diff --git a/core/camel-core/src/main/docs/eips/log-eip.adoc 
b/core/camel-core/src/main/docs/eips/log-eip.adoc
index 810823b..687af98 100644
--- a/core/camel-core/src/main/docs/eips/log-eip.adoc
+++ b/core/camel-core/src/main/docs/eips/log-eip.adoc
@@ -31,7 +31,7 @@ The log DSL is much lighter and meant for logging human logs 
such as Starting to
 
 === Samples
 
-In *Camel 2.2* you can use the log DSL which allows you to use 
<<simple-language,Simple>> language to construct a dynamic message which gets 
logged.
+You can use the log DSL which allows you to use <<simple-language,Simple>> 
language to construct a dynamic message which gets logged.
 
 For example you can do
 
@@ -63,7 +63,7 @@ from("direct:start")
     .to("bean:foo");
 ----
 
-Since *Camel 2.12.4/2.13.1* the logger instance may be used as well:
+The logger instance may be used as well:
 [source,java]
 ----
 from("direct:start")
@@ -115,7 +115,7 @@ Since Camel *2.12.4/2.13.1* it is possible to reference 
logger instance. For exa
 
 ==== Using Logger instance from the Registry
 
-As of *Camel 2.12.4/2.13.1*, if no logger name or logger instance is passed to 
log DSL,
+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 creating a new logger 
instance.
  If more instances are found, the behavior defaults to creating a new instance 
of logger.
@@ -125,7 +125,7 @@ As of *Camel 2.12.4/2.13.1*, if no logger name or logger 
instance is passed to l
 
 By default the log name is the route id. If you want to use a different log 
name, you would need to configure the logName option. However if you have many 
logs and you want all of them to use the same log name, then you would need to 
set that logName option on all of them.
 
-With Camel 2.17 onwards you can configure a global log name that is used 
instead of the route id, eg
+You can configure a global log name that is used instead of the route id, eg
 [source,java]
 ----
 camelContext.getProperties().put(Exchange.LOG_EIP_NAME, "com.foo.myapp");
@@ -156,7 +156,6 @@ You can specify a marker name in the DSL
 ----
 
 === Using log DSL in OSGi
-*Improvement as of Camel 2.12.4/2.13.1*
 
 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 associates the bundle with the 
logger instance. Passing only logger name to log DSL results in associating 
camel-core bundle with the logger instance created.
 
diff --git a/core/camel-core/src/main/docs/eips/loop-eip.adoc 
b/core/camel-core/src/main/docs/eips/loop-eip.adoc
index 0ff0e14..596a8ca 100644
--- a/core/camel-core/src/main/docs/eips/loop-eip.adoc
+++ b/core/camel-core/src/main/docs/eips/loop-eip.adoc
@@ -6,7 +6,7 @@ The Loop allows for processing a message a number of times, 
possibly in a differ
 [NOTE]
 .Default mode
 ====
-Notice by default the loop uses the same exchange throughout the looping. So 
the result from the previous iteration will be used for the next (eg Pipes and 
Filters). From Camel 2.8 onwards you can enable copy mode instead. See the 
options table for more details.
+Notice by default the loop uses the same exchange throughout the looping. So 
the result from the previous iteration will be used for the next (eg Pipes and 
Filters). You can enable copy mode instead. See the options table for more 
details.
 ====
 
 === Options
diff --git a/core/camel-core/src/main/docs/eips/multicast-eip.adoc 
b/core/camel-core/src/main/docs/eips/multicast-eip.adoc
index 0429a9f..a645640 100644
--- a/core/camel-core/src/main/docs/eips/multicast-eip.adoc
+++ b/core/camel-core/src/main/docs/eips/multicast-eip.adoc
@@ -71,7 +71,7 @@ handle this in the `AggregationStrategy`.
 
 But sometimes you just want Camel to stop and let the exception be
 propagated back, and let the Camel error handler handle it. You can do
-this in Camel 2.1 by specifying that it should stop in case of an
+this by specifying that it should stop in case of an
 exception occurred. This is done by the `stopOnException` option as
 shown below:
 
diff --git a/core/camel-core/src/main/docs/eips/pollEnrich-eip.adoc 
b/core/camel-core/src/main/docs/eips/pollEnrich-eip.adoc
index 9207655..bd2c38b 100644
--- a/core/camel-core/src/main/docs/eips/pollEnrich-eip.adoc
+++ b/core/camel-core/src/main/docs/eips/pollEnrich-eip.adoc
@@ -22,11 +22,9 @@ You can pass in a timeout value that determines which method 
to use
 
 The timeout values is in millis.
 
-[IMPORTANT]
-.Camel 2.15 or older - Data from current Exchange not used
 ====
 `pollEnrich` does *not* access any data from the current Exchange which means 
when polling it cannot use any of the existing headers you may have set on the 
Exchange. For example you cannot set a filename in the `Exchange.FILE_NAME` 
header and use `pollEnrich` to consume only that file. For that you *must* set 
the filename in the endpoint URI.
-From *Camel 2.16* onwards both `enrich` and `pollEnrich` supports dynamic 
endpoints that uses an Expression to compute the uri, which allows to use data 
from the current Exchange. In other words all what is told above no longer 
apply and it just works.
+Both `enrich` and `pollEnrich` supports dynamic endpoints that uses an 
Expression to compute the uri, which allows to use data from the current 
Exchange. In other words all what is told above no longer apply and it just 
works.
 ====
 
 === Content enrichment using pollEnrich
@@ -64,17 +62,7 @@ from("direct:start")
   .to("direct:result");
 ----
 
-And in XML DSL (Camel 2.15 or older) you do:
-[source,xml]
-----
-<route>
-  <from uri="direct:start"/>
-  <pollEnrich uri="file:inbox?fileName=data.txt"/>
-  <to uri="direct:result"/>
-</route>
-----
-
-And in XML DSL (Camel 2.16 or newer) you do:
+And in XML DSL you do:
 [source,xml]
 ----
 <route>
@@ -88,17 +76,7 @@ And in XML DSL (Camel 2.16 or newer) you do:
 
 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.
 
-For example to wait up to 5 seconds you can do (Camel 2.15 or older):
-[source,xml]
-----
-<route>
-  <from uri="direct:start"/>
-  <pollEnrich uri="file:inbox?fileName=data.txt" timeout="5000"/>
-  <to uri="direct:result"/>
-</route>
-----
-
-For example to wait up to 5 seconds you can do (Camel 2.16 or newer):
+For example to wait up to 5 seconds you can do:
 [source,xml]
 ----
 <route>
@@ -114,7 +92,7 @@ For example to wait up to 5 seconds you can do (Camel 2.16 
or newer):
 
 *Available as of Camel 2.16*
 
-From Camel 2.16 onwards `enrich` and `pollEnrich` supports using dynamic uris 
computed based on information from the current Exchange. For example to 
`pollEnrich` from an endpoint that uses a header to indicate a SEDA queue name:
+Both `enrich` and `pollEnrich` supports using dynamic uris computed based on 
information from the current Exchange. For example to `pollEnrich` from an 
endpoint that uses a header to indicate a SEDA queue name:
 [source,java]
 ----
 from("direct:start")
diff --git a/core/camel-core/src/main/docs/eips/recipientList-eip.adoc 
b/core/camel-core/src/main/docs/eips/recipientList-eip.adoc
index 7245644..c3bc72a 100644
--- a/core/camel-core/src/main/docs/eips/recipientList-eip.adoc
+++ b/core/camel-core/src/main/docs/eips/recipientList-eip.adoc
@@ -214,8 +214,9 @@ And in XML it is again an attribute on the recipient list 
tag.
 === Knowing which endpoint when using custom AggregationStrategy
 *Available as of Camel 2.12*
 
-When using a custom `AggregationStrategy` then the `aggregate` method is 
always invoked in sequential order (also if parallel processing is enabled) of 
the endpoints the Recipient List is using.
-However from Camel 2.12 onwards this is easier to know as the `newExchange` 
Exchange now has a property stored (key is `Exchange.RECIPIENT_LIST_ENDPOINT` 
with the uri of the Endpoint.
+When using a custom `AggregationStrategy` then the `aggregate` method is 
always invoked in sequential order
+(also if parallel processing is enabled) of the endpoints the Recipient List 
is using.
+However, Exchange has a property stored (key is 
`Exchange.RECIPIENT_LIST_ENDPOINT` with the uri of the Endpoint.
 So you know which endpoint you are aggregating from. The code block shows how 
to access this property in your Aggregator.
 
 [source,java]
@@ -348,9 +349,8 @@ See details at the Multicast EIP
 
 The recipient list will by default use the current Exchange Pattern. Though 
one can imagine use-cases where one wants to send
 a message to a recipient using a different exchange pattern. For example you 
may have a route that initiates as an `InOnly` route,
-but want to use `InOut` exchange pattern with a recipient list. To do this in 
earlier Camel releases, you would need to change
-the exchange pattern before the recipient list, or use `onPrepare` option to 
alter the pattern.
-From Camel 2.15 onwards, you can configure the exchange pattern directly in 
the recipient endpoints.
+but want to use `InOut` exchange pattern with a recipient list. You can 
configure the exchange pattern directly in the
+recipient endpoints.
 
 For example in the route below we pick up new files (which will be started as 
`InOnly`) and then route to a recipient list.
 As we want to use `InOut` with the ActiveMQ (JMS) endpoint we can now specify 
this using the `exchangePattern=InOut` option.
diff --git a/core/camel-core/src/main/docs/eips/resequence-eip.adoc 
b/core/camel-core/src/main/docs/eips/resequence-eip.adoc
index a2a698f..233711d 100644
--- a/core/camel-core/src/main/docs/eips/resequence-eip.adoc
+++ b/core/camel-core/src/main/docs/eips/resequence-eip.adoc
@@ -115,7 +115,7 @@ Notice this is *only* possible in the `batch` mode of the 
Resequencer.
 === Ignore invalid exchanges
 *Available as of Camel 2.9*
 
-The Resequencer EIP will from Camel 2.9 onwards throw a 
`CamelExchangeException` if the incoming Exchange is not valid for the 
resequencer - ie. the expression cannot be evaluated, such as a missing header.
+The Resequencer EIP throws a `CamelExchangeException` if the incoming Exchange 
is not valid for the resequencer - ie. the expression cannot be evaluated, such 
as a missing header.
 You can use the option `ignoreInvalidExchanges` to ignore these exceptions 
which means the Resequencer will then skip the invalid Exchange.
 
 [source,java]
diff --git a/core/camel-core/src/main/docs/eips/routingSlip-eip.adoc 
b/core/camel-core/src/main/docs/eips/routingSlip-eip.adoc
index 4de7c26..47ed81a 100644
--- a/core/camel-core/src/main/docs/eips/routingSlip-eip.adoc
+++ b/core/camel-core/src/main/docs/eips/routingSlip-eip.adoc
@@ -30,7 +30,7 @@ from("activemq:SomeQueue")
 
 Messages will be checked for the existence of the `aRoutingSlipHeader` 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 *Camel 2.5* the Routing Slip will set a property, 
`Exchange.SLIP_ENDPOINT`, on the Exchange which contains the current endpoint 
as it advanced though the slip. This allows you to _know_ how far we have 
processed in the slip.
+The Message will be routed in a pipeline fashion, i.e., one after the other. 
The Routing Slip sets a property, `Exchange.SLIP_ENDPOINT`, on the Exchange 
which contains the current endpoint as it advanced though the slip. This allows 
you to _know_ how far we have processed in the slip.
 
 The Routing Slip will compute the slip *beforehand* which means, the slip is 
only computed once. If you need to compute the slip _on-the-fly_ then use the 
Dynamic Router pattern instead.
 
@@ -60,7 +60,7 @@ from("direct:c").routingSlip(header("aRoutingSlipHeader"), 
"#");
 === Ignore Invalid Endpoints
 *Available as of Camel 2.3*
 
-The Routing Slip now supports ignoreInvalidEndpoints which the Recipient List 
also supports. You can use it to skip endpoints which are invalid.
+The Routing Slip supports ignoreInvalidEndpoints which the Recipient List also 
supports. You can use it to skip endpoints which are invalid.
 [source,java]
 ---------------------
 from("direct:a")
@@ -85,7 +85,7 @@ Then let's say the myHeader contains the following two 
endpoints direct:foo,xxx:
 === Expression Support
 *Available as of Camel 2.4*
 
-The Routing Slip now supports to take the expression parameter as the 
Recipient List does. You can tell Camel the expression that you want to use to 
get the routing slip.
+The Routing Slip supports to take the expression parameter as the Recipient 
List does. You can tell Camel the expression that you want to use to get the 
routing slip.
 
 [source,java]
 ---------------------
diff --git a/core/camel-core/src/main/docs/eips/split-eip.adoc 
b/core/camel-core/src/main/docs/eips/split-eip.adoc
index a365137..d442c23 100644
--- a/core/camel-core/src/main/docs/eips/split-eip.adoc
+++ b/core/camel-core/src/main/docs/eips/split-eip.adoc
@@ -36,8 +36,8 @@ The following properties are set on each Exchange that are 
split:
 |=======================================================================
 | Property | Type | Description
 | `CamelSplitIndex` | `int` | A split counter that increases for each Exchange 
being split. The counter starts from 0.
-| `CamelSplitSize` | `int` | The total number of Exchanges that was splitted. 
This header is not applied for stream based splitting. From *Camel 2.9* onwards 
this header is also set in stream based splitting, but only on the completed 
Exchange.
-| `CamelSplitComplete` | `boolean` | *Camel 2.4*: Whether or not this Exchange 
is the last.
+| `CamelSplitSize` | `int` | The total number of Exchanges that was splitted. 
This header is not applied for stream based splitting. This header is also set 
in stream based splitting, but only on the completed Exchange.
+| `CamelSplitComplete` | `boolean` |Whether or not this Exchange is the last.
 |=======================================================================
 
 
@@ -131,7 +131,7 @@ In the sample below we split the body using a `@` as 
separator. You can of cours
 
 The Splitter will by default return the original input message.
 
-You can override this by suppling your own strategy as an 
`AggregationStrategy`.
+You can override this by supplying your own strategy as an 
`AggregationStrategy`.
 There is a sample on this page (Split aggregate request/reply sample).
 Notice its the same strategy as the Aggregate EIP supports.
 This Splitter can be viewed as having a build in light weight Aggregate EIP.
@@ -154,9 +154,10 @@ from("activemq:my.queue")
 [NOTE]
 .Splitting big XML payloads
 ====
-The XPath engine in Java and saxon will load the entire XML content into 
memory. And thus they are not well suited for very big XML payloads.
-Instead you can use a custom Expression which will iterate the XML payload in 
a streamed fashion. From Camel 2.9 onwards you can use the Tokenizer language
-which supports this when you supply the start and end tokens. From Camel 2.14, 
you can use the XMLTokenizer language which is specifically provided for 
tokenizing XML documents.
+The XPath engine in Java and saxon will load the entire XML content into 
memory. And thus they are not well suited for very big
+XML payloads. Instead you can use a custom Expression which will iterate the 
XML payload in a streamed fashion.
+You can use the Tokenizer language which supports this when you supply the 
start and end tokens.
+You can use the XMLTokenizer language which is specifically provided for 
tokenizing XML documents.
 ====
 
 You can split streams by enabling the streaming mode using the streaming 
builder method.
@@ -616,8 +617,12 @@ See details at Multicast EIP
 === Sharing unit of work
 *Available as of Camel 2.8*
 
-The Splitter will by default not share unit of work between the parent 
exchange and each splitted exchange. This means each sub exchange has its own 
individual unit of work.
-For example you may have an use case, where you want to split a big message. 
And you want to regard that process as an atomic isolated operation that either 
is a success or failure. In case of a failure you want that big message to be 
moved into a dead letter queue. To support this use case, you would have to 
share the unit of work on the Splitter.
+The Splitter will by default not share unit of work between the parent 
exchange and each split exchange.
+This means each sub exchange has its own individual unit of work.
+For example you may have an use case, where you want to split a big message.
+And you want to regard that process as an atomic isolated operation that 
either is a success or failure.
+In case of a failure you want that big message to be moved into a dead letter 
queue.
+To support this use case, you would have to share the unit of work on the 
Splitter.
 
 Here is an example in Java DSL
 [source,java]
@@ -642,7 +647,15 @@ from("direct:line")
     .to("mock:line");
 ----
 
-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). *But* what doesn't happen is that if a sub 
message fails all redelivery attempts (its exhausted), then its *not* moved 
into that dead letter queue. The reason is that we have shared the unit of 
work, so the sub message will report the error on the shared unit of work. When 
the Splitter is done, it che [...]
+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).
+*But* what doesn't happen is that if a sub message fails all redelivery 
attempts (its exhausted),
+then its *not* moved into that dead letter queue. The reason is that we have 
shared the unit of work,
+so the sub message will report the error on the shared unit of work. When the 
Splitter is done,
+it checks the state of the shared unit of work and checks if any errors 
occurred.
+And if an error occurred it will set the exception on the Exchange and mark it 
for rollback.
+The error handler will yet again kick in, as the Exchange has been marked as 
rollback and it had an exception as well.
+No redelivery attempts is performed (as it was marked for rollback) and the 
Exchange will be moved into the dead letter queue.
 
 Using this from XML DSL is just as easy as you just have to set the 
`shareUnitOfWork` attribute to true:
 
diff --git a/core/camel-core/src/main/docs/eips/toD-eip.adoc 
b/core/camel-core/src/main/docs/eips/toD-eip.adoc
index e566172..d7c713d 100644
--- a/core/camel-core/src/main/docs/eips/toD-eip.adoc
+++ b/core/camel-core/src/main/docs/eips/toD-eip.adoc
@@ -143,8 +143,6 @@ of being reused in case a message is routed with the same 
`userName` header. The
 will not solve the _endless dynamic endoints_ problem. Instead you should use 
static endpoints with `to` and
 provide the dynamic parts in Camel message headers (if possible).
 
-The example above can resolve via static endpoints, or from Camel 2.22 onwards 
via optimised components (see further below)
-
 ==== Using static endpoints
 
 In the example above then the parameter `userid` is dynamic computed, and 
would result in one instance of endpoint and producer
@@ -158,13 +156,13 @@ from("direct:login")
   .toD("http:myloginserver:8080");
 ----
 
-If you are using Camel 2.22 onwards then you can use its optimised components 
for `toD` that can _solve_ this out of the box,
+However, you can use its optimised components for `toD` that can _solve_ this 
out of the box,
 as documented next.
 
 === Using optimised components
 
 But a better solution would be if the HTTP component could be optimised to 
handle the variations of dynamic computed endpoint uris.
-This is now possible with *Camel 2.22* onwards, where the following components 
has been optimised for `toD`:
+This is with the following components, which have been optimised for `toD`:
 
 - camel-http
 - camel-http4
diff --git a/core/camel-core/src/main/docs/eips/wireTap-eip.adoc 
b/core/camel-core/src/main/docs/eips/wireTap-eip.adoc
index 03bbd38..fe485c0 100644
--- a/core/camel-core/src/main/docs/eips/wireTap-eip.adoc
+++ b/core/camel-core/src/main/docs/eips/wireTap-eip.adoc
@@ -104,16 +104,14 @@ over how the link:exchange.html[Exchange] is populated as 
you can set
 properties, headers, etc. An link:expression.html[Expression] can only
 be used to set the *`IN`* body.
 
-From *Camel 2.3*: the link:expression.html[Expression] or
+The link:expression.html[Expression] or
 link:processor.html[Processor] is pre-populated with a copy of the
 original link:exchange.html[Exchange], which allows you to access the
 original message when you prepare a new link:exchange.html[Exchange] to
 be sent. You can use the *`copy`* option (enabled by default) to
-indicate whether you want this. If you set *`copy=false`*, then it works
-as in *Camel 2.2* or older where the link:exchange.html[Exchange] will
-be empty.
+indicate whether you want this.
 
-Below is the processor variation. This example is from *Camel 2.3*,
+Below is the processor variation,
 where we disable *`copy`* by passing in *`false`* to create a new, empty
 link:exchange.html[Exchange]
 
@@ -163,8 +161,8 @@ part of the queue name:
 If you send a new message using link:wire-tap.html[Wire Tap], then you
 could only set the message body using an
 link:expression.html[Expression] from the DSL. If you also need to set
-headers, you would have to use a link:processor.html[Processor]. From
-*Camel 2.8*: it's possible to set headers as well using the DSL.
+headers, you would have to use a link:processor.html[Processor].
+It's possible to set headers as well using the DSL.
 
 The following example sends a new message which has
 

Reply via email to