You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2020/03/19 08:29:25 UTC

[camel] branch camel-3.0.x updated: fix xrefs to point to latest rearranged locations

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

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


The following commit(s) were added to refs/heads/camel-3.0.x by this push:
     new 697b5cd  fix xrefs to point to latest rearranged locations
     new ccff56b  Merge pull request #3647 from djencks/camel-3.0.x-issue-14698-task-14729
697b5cd is described below

commit 697b5cddff7b4859a79c3585bba71938949b8428
Author: David Jencks <dj...@apache.org>
AuthorDate: Fri Mar 13 14:14:00 2020 -0700

    fix xrefs to point to latest rearranged locations
---
 .../camel-ahc/src/main/docs/ahc-component.adoc     |  2 +-
 .../camel-bean/src/main/docs/bean-language.adoc    | 30 +++++++++++-----------
 .../src/main/docs/beanstalk-component.adoc         |  4 +--
 components/camel-cdi/src/main/docs/cdi.adoc        |  2 +-
 .../src/main/docs/cometd-component.adoc            |  2 +-
 .../src/main/docs/controlbus-component.adoc        |  6 ++---
 .../src/main/docs/crypto-component.adoc            |  2 +-
 .../src/main/docs/dataformat-component.adoc        |  6 ++---
 .../src/main/docs/dataset-component.adoc           |  2 +-
 .../src/main/docs/dataset-test-component.adoc      |  2 +-
 .../src/main/docs/debezium-mysql-component.adoc    |  4 +--
 .../src/main/docs/debezium-postgres-component.adoc |  4 +--
 .../main/docs/debezium-sqlserver-component.adoc    |  4 +--
 .../src/main/docs/disruptor-component.adoc         |  2 +-
 .../main/docs/elasticsearch-rest-component.adoc    |  2 +-
 .../camel-elsql/src/main/docs/elsql-component.adoc |  4 +--
 .../src/main/docs/facebook-component.adoc          |  2 +-
 .../camel-file/src/main/docs/file-component.adoc   | 24 ++++++++---------
 .../camel-grape/src/main/docs/grape-component.adoc |  2 +-
 .../src/main/docs/groovy-language.adoc             |  4 +--
 .../camel-http/src/main/docs/http-component.adoc   |  2 +-
 .../camel-irc/src/main/docs/irc-component.adoc     |  2 +-
 .../camel-jetty/src/main/docs/jetty-component.adoc |  6 ++---
 .../camel-jms/src/main/docs/jms-component.adoc     |  6 ++---
 .../src/main/docs/language-component.adoc          |  4 +--
 .../camel-lzf/src/main/docs/lzf-dataformat.adoc    |  2 +-
 .../camel-mail/src/main/docs/mail-component.adoc   |  2 +-
 .../camel-mock/src/main/docs/mock-component.adoc   |  2 +-
 .../camel-mvel/src/main/docs/mvel-language.adoc    |  2 +-
 .../src/main/docs/nagios-component.adoc            |  2 +-
 .../camel-netty/src/main/docs/netty-component.adoc |  2 +-
 .../camel-ognl/src/main/docs/ognl-language.adoc    |  2 +-
 .../camel-paho/src/main/docs/paho-component.adoc   |  2 +-
 .../src/main/docs/quartz-component.adoc            |  2 +-
 .../src/main/docs/xquery-component.adoc            |  4 +--
 .../camel-saxon/src/main/docs/xquery-language.adoc |  4 +--
 .../src/main/docs/spring-boot.adoc                 |  4 +--
 .../camel-spring/src/main/docs/spel-language.adoc  |  4 +--
 .../src/main/docs/spring-event-component.adoc      |  4 +--
 components/camel-spring/src/main/docs/spring.adoc  | 12 ++++-----
 .../src/main/docs/test-spring.adoc                 |  2 +-
 .../camel-timer/src/main/docs/timer-component.adoc |  2 +-
 .../src/main/docs/undertow-component.adoc          |  2 +-
 .../src/main/docs/univocity-csv-dataformat.adoc    |  2 +-
 .../src/main/docs/univocity-fixed-dataformat.adoc  |  2 +-
 .../src/main/docs/univocity-tsv-dataformat.adoc    |  2 +-
 .../src/main/docs/websocket-component.adoc         |  2 +-
 .../src/main/docs/xmlsecurity-component.adoc       |  2 +-
 .../camel-xpath/src/main/docs/xpath-language.adoc  | 12 ++++-----
 .../src/main/docs/xslt-saxon-component.adoc        |  2 +-
 .../camel-xslt/src/main/docs/xslt-component.adoc   |  2 +-
 components/camel-zipkin/src/main/docs/zipkin.adoc  |  4 +--
 .../src/main/docs/properties-component.adoc        | 10 ++++----
 core/camel-base/src/main/docs/simple-language.adoc | 16 ++++++------
 .../modules/ROOT/pages/ahc-component.adoc          |  2 +-
 .../modules/ROOT/pages/bean-language.adoc          | 30 +++++++++++-----------
 .../modules/ROOT/pages/beanstalk-component.adoc    |  4 +--
 docs/components/modules/ROOT/pages/cdi.adoc        |  2 +-
 .../modules/ROOT/pages/cometd-component.adoc       |  2 +-
 .../modules/ROOT/pages/controlbus-component.adoc   |  6 ++---
 .../modules/ROOT/pages/crypto-component.adoc       |  2 +-
 .../modules/ROOT/pages/dataformat-component.adoc   |  6 ++---
 .../modules/ROOT/pages/dataset-component.adoc      |  2 +-
 .../modules/ROOT/pages/dataset-test-component.adoc |  2 +-
 .../ROOT/pages/debezium-mysql-component.adoc       |  4 +--
 .../ROOT/pages/debezium-postgres-component.adoc    |  4 +--
 .../ROOT/pages/debezium-sqlserver-component.adoc   |  4 +--
 .../modules/ROOT/pages/disruptor-component.adoc    |  2 +-
 .../ROOT/pages/elasticsearch-rest-component.adoc   |  2 +-
 .../modules/ROOT/pages/elsql-component.adoc        |  4 +--
 .../modules/ROOT/pages/facebook-component.adoc     |  2 +-
 .../modules/ROOT/pages/file-component.adoc         | 24 ++++++++---------
 .../modules/ROOT/pages/grape-component.adoc        |  2 +-
 .../modules/ROOT/pages/groovy-language.adoc        |  4 +--
 .../modules/ROOT/pages/http-component.adoc         |  2 +-
 .../modules/ROOT/pages/irc-component.adoc          |  2 +-
 .../modules/ROOT/pages/jetty-component.adoc        |  6 ++---
 .../modules/ROOT/pages/jms-component.adoc          |  6 ++---
 .../modules/ROOT/pages/language-component.adoc     |  4 +--
 .../modules/ROOT/pages/lzf-dataformat.adoc         |  2 +-
 .../modules/ROOT/pages/mail-component.adoc         |  2 +-
 .../modules/ROOT/pages/mock-component.adoc         |  2 +-
 .../modules/ROOT/pages/mvel-language.adoc          |  2 +-
 .../modules/ROOT/pages/nagios-component.adoc       |  2 +-
 .../modules/ROOT/pages/netty-component.adoc        |  2 +-
 .../modules/ROOT/pages/ognl-language.adoc          |  2 +-
 .../modules/ROOT/pages/paho-component.adoc         |  2 +-
 .../modules/ROOT/pages/properties-component.adoc   | 10 ++++----
 .../modules/ROOT/pages/quartz-component.adoc       |  2 +-
 .../modules/ROOT/pages/simple-language.adoc        | 16 ++++++------
 .../modules/ROOT/pages/spel-language.adoc          |  4 +--
 .../components/modules/ROOT/pages/spring-boot.adoc |  6 ++---
 .../modules/ROOT/pages/spring-event-component.adoc |  4 +--
 docs/components/modules/ROOT/pages/spring.adoc     | 12 ++++-----
 .../components/modules/ROOT/pages/test-spring.adoc |  2 +-
 .../modules/ROOT/pages/timer-component.adoc        |  2 +-
 .../modules/ROOT/pages/undertow-component.adoc     |  2 +-
 .../ROOT/pages/univocity-csv-dataformat.adoc       |  2 +-
 .../ROOT/pages/univocity-fixed-dataformat.adoc     |  2 +-
 .../ROOT/pages/univocity-tsv-dataformat.adoc       |  2 +-
 .../modules/ROOT/pages/websocket-component.adoc    |  2 +-
 .../modules/ROOT/pages/xmlsecurity-component.adoc  |  2 +-
 .../modules/ROOT/pages/xpath-language.adoc         | 12 ++++-----
 .../modules/ROOT/pages/xquery-component.adoc       |  4 +--
 .../modules/ROOT/pages/xquery-language.adoc        |  4 +--
 .../modules/ROOT/pages/xslt-component.adoc         |  2 +-
 .../modules/ROOT/pages/xslt-saxon-component.adoc   |  2 +-
 docs/components/modules/ROOT/pages/zipkin.adoc     |  4 +--
 docs/pom.xml                                       | 12 ---------
 .../modules/ROOT/pages/properties-component.adoc   | 10 ++++----
 .../modules/ROOT/pages/simple-language.adoc        | 16 ++++++------
 111 files changed, 256 insertions(+), 268 deletions(-)

diff --git a/components/camel-ahc/src/main/docs/ahc-component.adoc b/components/camel-ahc/src/main/docs/ahc-component.adoc
index 683f2f2..6faca0f 100644
--- a/components/camel-ahc/src/main/docs/ahc-component.adoc
+++ b/components/camel-ahc/src/main/docs/ahc-component.adoc
@@ -427,7 +427,7 @@ from("direct:start")
 Using the JSSE Configuration Utility
 
 The AHC component supports SSL/TLS configuration
-through the xref:manual::camel-configuration-utilities.adoc[Camel JSSE
+through the xref:latest@manual::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-bean/src/main/docs/bean-language.adoc b/components/camel-bean/src/main/docs/bean-language.adoc
index 5260f92..c18101c 100644
--- a/components/camel-bean/src/main/docs/bean-language.adoc
+++ b/components/camel-bean/src/main/docs/bean-language.adoc
@@ -4,19 +4,19 @@
 *Since Camel 1.3*
 
 The purpose of the Bean Language is to be able to implement an
-xref:manual::expression.adoc[Expression] or xref:manual::predicate.adoc[Predicate] using
-a simple method on a bean. The bean name is resolved using a xref:manual::registry.adoc[Registry], such as the
-xref:manual::spring.adoc[Spring] *`ApplicationContext`*, then a method is
-invoked to evaluate the xref:manual::expression.adoc[Expression] or
-xref:manual::predicate.adoc[Predicate]. If no method name is provided then one
-is chosen using the rules for xref:manual::bean-binding.adoc[Bean Binding];
+xref:latest@manual::expression.adoc[Expression] or xref:latest@manual::predicate.adoc[Predicate] using
+a simple method on a bean. The bean name is resolved using a xref:latest@manual::registry.adoc[Registry], such as the
+xref:latest@manual::spring.adoc[Spring] *`ApplicationContext`*, then a method is
+invoked to evaluate the xref:latest@manual::expression.adoc[Expression] or
+xref:latest@manual::predicate.adoc[Predicate]. If no method name is provided then one
+is chosen using the rules for xref:latest@manual::bean-binding.adoc[Bean Binding];
 using the type of the message body and using any annotations on the bean
 methods.
 
-The xref:manual::bean-binding.adoc[Bean Binding] rules are used to bind the
-xref:manual::message.adoc[Message] Exchange to the method parameters; so you can
+The xref:latest@manual::bean-binding.adoc[Bean Binding] rules are used to bind the
+xref:latest@manual::message.adoc[Message] Exchange to the method parameters; so you can
 annotate the bean to extract headers or other expressions such as
-xref:components::xpath-language.adoc[XPath] or xref:components::xquery-language.adoc[XQuery] from the message.
+xref:xpath-language.adoc[XPath] or xref:xquery-language.adoc[XQuery] from the message.
 
 == Bean Language options
 
@@ -120,7 +120,7 @@ public class MyBean {
 }
 ----
 
-We can also use the xref:manual::bean-integration.adoc[Bean Integration]
+We can also use the xref:latest@manual::bean-integration.adoc[Bean Integration]
 annotations.
 
 Example:
@@ -138,16 +138,16 @@ public boolean isGoldCustomer(@Header(name = "foo") Integer fooHeader) {...}
 ----
 
 So you can bind parameters of the method to the Exchange, the
-xref:manual::message.adoc[Message] or individual headers, properties, the body
+xref:latest@manual::message.adoc[Message] or individual headers, properties, the body
 or other expressions.
 
 [[BeanLanguage-Non-RegistryBeans]]
 == Non-Registry Beans
 
 The xref:bean-language.adoc[Bean Language] also supports invoking beans
-that isn't registered in the xref:manual::registry.adoc[Registry]. This is
+that isn't registered in the xref:latest@manual::registry.adoc[Registry]. This is
 usable for quickly to invoke a bean from Java DSL where you don't need
-to register the bean in the xref:manual::registry.adoc[Registry] such as the
+to register the bean in the xref:latest@manual::registry.adoc[Registry] such as the
 xref:spring.adoc[Spring] *`ApplicationContext`*. Camel can instantiate
 the bean and invoke the method if given a class or invoke an already
 existing instance.
@@ -206,8 +206,8 @@ from("activemq:topic:OrdersTopic")
 We have some test cases you can look at if it'll help
 
 * https://github.com/apache/camel/blob/master/core/camel-core/src/test/java/org/apache/camel/processor/MethodFilterTest.java[MethodFilterTest]
-is a JUnit test case showing the Java xref:manual::dsl.adoc[DSL] use of the bean
+is a JUnit test case showing the Java xref:latest@manual::dsl.adoc[DSL] use of the bean
 expression being used in a filter
 * https://github.com/apache/camel/blob/master/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/aggregator.xml[aggregator.xml]
-is a Spring XML test case for the xref:manual::aggregate-eip.adoc[Aggregator] which
+is a Spring XML test case for the xref:latest@manual:eips:aggregate-eip.adoc[Aggregator] which
 uses a bean method call to test for the completion of the aggregation.
diff --git a/components/camel-beanstalk/src/main/docs/beanstalk-component.adoc b/components/camel-beanstalk/src/main/docs/beanstalk-component.adoc
index 69c6224..1a0e121 100644
--- a/components/camel-beanstalk/src/main/docs/beanstalk-component.adoc
+++ b/components/camel-beanstalk/src/main/docs/beanstalk-component.adoc
@@ -50,7 +50,7 @@ beanstalk://localhost:11300/tube1+tube2
 
 Tube name will be URL decoded, so if your tube names include special
 characters like + or ?, you need to URL-encode them appropriately, or
-use the RAW syntax, see xref:manual::faq/how-do-i-configure-endpoints.adoc[more
+use the RAW syntax, see xref:latest@manual::faq/how-do-i-configure-endpoints.adoc[more
 details here].
 
 By the way, you cannot specify several tubes when you are writing jobs
@@ -190,7 +190,7 @@ Be careful when specifying `release`, as the failed job will immediately
 become available in the same tube and your consumer will try to acquire
 it again. You can `release` and specify _jobDelay_ though.
 
-The beanstalk consumer is a Scheduled xref:manual::polling-consumer.adoc[Polling
+The beanstalk consumer is a Scheduled xref:latest@manual::polling-consumer.adoc[Polling
 Consumer] which means there is more options you can configure, such as
 how frequent the consumer should poll. For more details
 see Polling Consumer.
diff --git a/components/camel-cdi/src/main/docs/cdi.adoc b/components/camel-cdi/src/main/docs/cdi.adoc
index 9de60c1..2c14402 100644
--- a/components/camel-cdi/src/main/docs/cdi.adoc
+++ b/components/camel-cdi/src/main/docs/cdi.adoc
@@ -837,7 +837,7 @@ MockEndpoint outbound = endpoints
 
 == Maven Archetype
 
-Among the available xref:manual::camel-maven-archetypes.adoc[Camel Maven
+Among the available xref:latest@manual::camel-maven-archetypes.adoc[Camel Maven
 archetypes], you can use the provided `camel-archetype-cdi` to generate
 a Camel CDI Maven project, e.g.:
 
diff --git a/components/camel-cometd/src/main/docs/cometd-component.adoc b/components/camel-cometd/src/main/docs/cometd-component.adoc
index fc16532..b5d45ff 100644
--- a/components/camel-cometd/src/main/docs/cometd-component.adoc
+++ b/components/camel-cometd/src/main/docs/cometd-component.adoc
@@ -189,7 +189,7 @@ http://cometd.org/documentation/howtos/authentication[documented here]
 === Using the JSSE Configuration Utility
 
 The Cometd component supports SSL/TLS configuration
-through the xref:manual::camel-configuration-utilities.adoc[Camel JSSE
+through the xref:latest@manual::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-controlbus/src/main/docs/controlbus-component.adoc b/components/camel-controlbus/src/main/docs/controlbus-component.adoc
index 7a58eb4..7c3535c 100644
--- a/components/camel-controlbus/src/main/docs/controlbus-component.adoc
+++ b/components/camel-controlbus/src/main/docs/controlbus-component.adoc
@@ -27,7 +27,7 @@ here.
 
 The ControlBus component provides easy management of Camel
 applications based on the xref:controlbus-component.adoc[Control Bus] EIP
-pattern. 
+pattern.
 For example, by sending a message to an Endpoint
 you can control the lifecycle of routes, or gather performance
 statistics.
@@ -191,7 +191,7 @@ String xml = template.requestBody("controlbus:route?action=stats", null, String.
 
 == Using Simple language
 
-You can use the xref:manual::simple-language.adoc[Simple] language with the control bus,
+You can use the xref:simple-language.adoc[Simple] language with the control bus,
 for example to stop a specific route, you can send a message to the
 `"controlbus:language:simple"` endpoint containing the following
 message:
@@ -212,7 +212,7 @@ String status = template.requestBody("controlbus:language:simple", "${camelConte
 It's easier to use the `route` command to control lifecycle of
 routes. The `language` command allows you to execute a language script
 that has stronger powers such as xref:groovy-language.adoc[Groovy] or to some
-extend the xref:manual::simple-language.adoc[Simple] language.
+extend the xref:simple-language.adoc[Simple] language.
 
 For example to shutdown Camel itself you can do:
 
diff --git a/components/camel-crypto/src/main/docs/crypto-component.adoc b/components/camel-crypto/src/main/docs/crypto-component.adoc
index 7f82cad..5aad418 100644
--- a/components/camel-crypto/src/main/docs/crypto-component.adoc
+++ b/components/camel-crypto/src/main/docs/crypto-component.adoc
@@ -219,7 +219,7 @@ The component supports 35 options, which are listed below.
 The most basic way to way to sign and verify an exchange is with a
 KeyPair as follows.
 
-The same can be achieved with the xref:manual::spring-xml-extensions.adoc[Spring
+The same can be achieved with the xref:latest@manual::spring-xml-extensions.adoc[Spring
 XML Extensions] using references to keys
 
 === KeyStores and Aliases.
diff --git a/components/camel-dataformat/src/main/docs/dataformat-component.adoc b/components/camel-dataformat/src/main/docs/dataformat-component.adoc
index 5cdad27..7e99343 100644
--- a/components/camel-dataformat/src/main/docs/dataformat-component.adoc
+++ b/components/camel-dataformat/src/main/docs/dataformat-component.adoc
@@ -7,7 +7,7 @@
 *Only producer is supported*
 // HEADER END
 
-The Dataformat component allows to use xref:manual::data-format.adoc[Data
+The Dataformat component allows to use xref:latest@manual::data-format.adoc[Data
 Format] as a Camel Component.
 
 == URI format
@@ -19,7 +19,7 @@ dataformat:name:(marshal|unmarshal)[?options]
 
 Where *name* is the name of the Data Format. And
 then followed by the operation which must either be `marshal` or
-`unmarshal`. The options is used for configuring the xref:manual::data-format.adoc[Data
+`unmarshal`. The options is used for configuring the xref:latest@manual::data-format.adoc[Data
 Format] in use. See the Data Format documentation
 for which options it support.
 
@@ -106,7 +106,7 @@ The component supports 4 options, which are listed below.
 
 == Samples
 
-For example to use the xref:jaxb-dataformat.adoc[JAXB] xref:manual::data-format.adoc[Data
+For example to use the xref:jaxb-dataformat.adoc[JAXB] xref:latest@manual::data-format.adoc[Data
 Format] we can do as follows:
 
 [source,java]
diff --git a/components/camel-dataset/src/main/docs/dataset-component.adoc b/components/camel-dataset/src/main/docs/dataset-component.adoc
index 22299e2..3a2030a 100644
--- a/components/camel-dataset/src/main/docs/dataset-component.adoc
+++ b/components/camel-dataset/src/main/docs/dataset-component.adoc
@@ -12,7 +12,7 @@ notoriously difficult. The xref:mock-component.adoc[Mock], xref:mock-component.a
 and xref:dataset-component.adoc[DataSet] endpoints work great with the
 Camel Testing Framework to simplify your unit and
 integration testing using
-xref:manual::enterprise-integration-patterns.adoc[Enterprise Integration
+xref:latest@manual::enterprise-integration-patterns.adoc[Enterprise Integration
 Patterns] and Camel's large range of Components
 together with the powerful Bean Integration.
 
diff --git a/components/camel-dataset/src/main/docs/dataset-test-component.adoc b/components/camel-dataset/src/main/docs/dataset-test-component.adoc
index cc64794..c5ef7bd 100644
--- a/components/camel-dataset/src/main/docs/dataset-test-component.adoc
+++ b/components/camel-dataset/src/main/docs/dataset-test-component.adoc
@@ -12,7 +12,7 @@ notoriously difficult. The xref:mock-component.adoc[Mock], xref:mock-component.a
 and xref:dataset-component.adoc[DataSet] endpoints work great with the
 Camel Testing Framework to simplify your unit and
 integration testing using
-xref:manual::enterprise-integration-patterns.adoc[Enterprise Integration
+xref:latest@manual::enterprise-integration-patterns.adoc[Enterprise Integration
 Patterns] and Camel's large range of Components
 together with the powerful Bean Integration.
 
diff --git a/components/camel-debezium-mysql/src/main/docs/debezium-mysql-component.adoc b/components/camel-debezium-mysql/src/main/docs/debezium-mysql-component.adoc
index 5af2f3e..8abe1db 100644
--- a/components/camel-debezium-mysql/src/main/docs/debezium-mysql-component.adoc
+++ b/components/camel-debezium-mysql/src/main/docs/debezium-mysql-component.adoc
@@ -305,8 +305,8 @@ from("debezium-mysql:dbz-test-1?offsetStorageFileName=/usr/offset-file-1.dat&dat
 ----
 
 By default, the component will emit the events in the body and `CamelDebeziumBefore` header as https://kafka.apache.org/22/javadoc/org/apache/kafka/connect/data/Struct.html[`Struct`] data type, the reasoning behind this, is to perceive the schema information in case is needed.
-However, the component as well contains a xref:manual::type-converter.adoc[Type Converter] that converts
-from default output type of https://kafka.apache.org/22/javadoc/org/apache/kafka/connect/data/Struct.html[`Struct`] to `Map` in order to leverage Camel's rich xref:manual::data-format.adoc[Data Format] types which many of them work out of box with `Map` data type.
+However, the component as well contains a xref:latest@manual::type-converter.adoc[Type Converter] that converts
+from default output type of https://kafka.apache.org/22/javadoc/org/apache/kafka/connect/data/Struct.html[`Struct`] to `Map` in order to leverage Camel's rich xref:latest@manual::data-format.adoc[Data Format] types which many of them work out of box with `Map` data type.
 To use it, you can either add `Map.class` type when you access the message e.g: `exchange.getIn().getBody(Map.class)`, or you can convert the body always to `Map` from the route builder by adding `.convertBodyTo(Map.class)` to your Camel Route DSL after `from` statement.
 
 We mentioned above about the schema, which can be used in case you need to perform advance data transformation and the schema is needed for that. If you choose not to convert your body to `Map`,
diff --git a/components/camel-debezium-postgres/src/main/docs/debezium-postgres-component.adoc b/components/camel-debezium-postgres/src/main/docs/debezium-postgres-component.adoc
index 39c183d..dba358e 100644
--- a/components/camel-debezium-postgres/src/main/docs/debezium-postgres-component.adoc
+++ b/components/camel-debezium-postgres/src/main/docs/debezium-postgres-component.adoc
@@ -278,8 +278,8 @@ from("debezium-postgres:dbz-test-1?offsetStorageFileName=/usr/offset-file-1.dat&
 ----
 
 By default, the component will emit the events in the body and `CamelDebeziumBefore` header as https://kafka.apache.org/22/javadoc/org/apache/kafka/connect/data/Struct.html[`Struct`] data type, the reasoning behind this, is to perceive the schema information in case is needed.
-However, the component as well contains a xref:manual::type-converter.adoc[Type Converter] that converts
-from default output type of https://kafka.apache.org/22/javadoc/org/apache/kafka/connect/data/Struct.html[`Struct`] to `Map` in order to leverage Camel's rich xref:manual::data-format.adoc[Data Format] types which many of them work out of box with `Map` data type.
+However, the component as well contains a xref:latest@manual::type-converter.adoc[Type Converter] that converts
+from default output type of https://kafka.apache.org/22/javadoc/org/apache/kafka/connect/data/Struct.html[`Struct`] to `Map` in order to leverage Camel's rich xref:latest@manual::data-format.adoc[Data Format] types which many of them work out of box with `Map` data type.
 To use it, you can either add `Map.class` type when you access the message e.g: `exchange.getIn().getBody(Map.class)`, or you can convert the body always to `Map` from the route builder by adding `.convertBodyTo(Map.class)` to your Camel Route DSL after `from` statement.
 
 We mentioned above about the schema, which can be used in case you need to perform advance data transformation and the schema is needed for that. If you choose not to convert your body to `Map`,
diff --git a/components/camel-debezium-sqlserver/src/main/docs/debezium-sqlserver-component.adoc b/components/camel-debezium-sqlserver/src/main/docs/debezium-sqlserver-component.adoc
index ea80c5e..a69561c 100644
--- a/components/camel-debezium-sqlserver/src/main/docs/debezium-sqlserver-component.adoc
+++ b/components/camel-debezium-sqlserver/src/main/docs/debezium-sqlserver-component.adoc
@@ -239,8 +239,8 @@ from("debezium-sqlserver:dbz-test-1?offsetStorageFileName=/usr/offset-file-1.dat
 ----
 
 By default, the component will emit the events in the body and `CamelDebeziumBefore` header as https://kafka.apache.org/22/javadoc/org/apache/kafka/connect/data/Struct.html[`Struct`] data type, the reasoning behind this, is to perceive the schema information in case is needed.
-However, the component as well contains a xref:manual::type-converter.adoc[Type Converter] that converts
-from default output type of https://kafka.apache.org/22/javadoc/org/apache/kafka/connect/data/Struct.html[`Struct`] to `Map` in order to leverage Camel's rich xref:manual::data-format.adoc[Data Format] types which many of them work out of box with `Map` data type.
+However, the component as well contains a xref:latest@manual::type-converter.adoc[Type Converter] that converts
+from default output type of https://kafka.apache.org/22/javadoc/org/apache/kafka/connect/data/Struct.html[`Struct`] to `Map` in order to leverage Camel's rich xref:latest@manual::data-format.adoc[Data Format] types which many of them work out of box with `Map` data type.
 To use it, you can either add `Map.class` type when you access the message e.g: `exchange.getIn().getBody(Map.class)`, or you can convert the body always to `Map` from the route builder by adding `.convertBodyTo(Map.class)` to your Camel Route DSL after `from` statement.
 
 We mentioned above about the schema, which can be used in case you need to perform advance data transformation and the schema is needed for that. If you choose not to convert your body to `Map`,
diff --git a/components/camel-disruptor/src/main/docs/disruptor-component.adoc b/components/camel-disruptor/src/main/docs/disruptor-component.adoc
index 4d0dc53..7424534 100644
--- a/components/camel-disruptor/src/main/docs/disruptor-component.adoc
+++ b/components/camel-disruptor/src/main/docs/disruptor-component.adoc
@@ -244,7 +244,7 @@ without incurring significant latency spikes.
 
 == Use of Request Reply
 
-The Disruptor component supports using xref:manual::requestReply-eip.adoc[Request
+The Disruptor component supports using xref:latest@manual:eips:requestReply-eip.adoc[Request
 Reply], where the caller will wait for the Async route to complete. For
 instance:
 
diff --git a/components/camel-elasticsearch-rest/src/main/docs/elasticsearch-rest-component.adoc b/components/camel-elasticsearch-rest/src/main/docs/elasticsearch-rest-component.adoc
index 09fc9c7..7d7bd1c 100644
--- a/components/camel-elasticsearch-rest/src/main/docs/elasticsearch-rest-component.adoc
+++ b/components/camel-elasticsearch-rest/src/main/docs/elasticsearch-rest-component.adoc
@@ -314,7 +314,7 @@ try (ElasticsearchScrollRequestIterator response = template.requestBody("direct:
 }
 ----
 
-xref:manual::split-eip.adoc[Split EIP] can also be used.
+xref:latest@manual:eips:split-eip.adoc[Split EIP] can also be used.
 
 [source,java]
 ----
diff --git a/components/camel-elsql/src/main/docs/elsql-component.adoc b/components/camel-elsql/src/main/docs/elsql-component.adoc
index 00e29dc..3463675 100644
--- a/components/camel-elsql/src/main/docs/elsql-component.adoc
+++ b/components/camel-elsql/src/main/docs/elsql-component.adoc
@@ -9,7 +9,7 @@
 
 The ELSQL component is an extension to the existing
 xref:sql-component.adoc[SQL Component] that uses
-https://github.com/OpenGamma/ElSql[ElSql] to define the SQL queries. 
+https://github.com/OpenGamma/ElSql[ElSql] to define the SQL queries.
 
 This component uses `spring-jdbc` behind the scenes for the actual SQL
 handling.
@@ -44,7 +44,7 @@ The parameters to the SQL queries are named parameters in the elsql
 mapping files, and maps to corresponding keys from the Camel message, in
 the given precedence:
 
-1. from message body if xref:manual::simple-language.adoc[Simple]
+1. from message body if xref:simple-language.adoc[Simple]
 expression.
 
 2. from message body if its a `java.util.Map`
diff --git a/components/camel-facebook/src/main/docs/facebook-component.adoc b/components/camel-facebook/src/main/docs/facebook-component.adoc
index 0dcd0f4..02a1ae0 100644
--- a/components/camel-facebook/src/main/docs/facebook-component.adoc
+++ b/components/camel-facebook/src/main/docs/facebook-component.adoc
@@ -353,7 +353,7 @@ facebook4j.PostUpdate body.
         .to("facebook://postFeed/inBody=postUpdate);
 ----------------------------------------------------
 
-To poll, every 5 sec (You can set the xref:manual::polling-consumer.adoc[polling
+To poll, every 5 sec (You can set the xref:latest@manual::polling-consumer.adoc[polling
 consumer] options by adding a prefix of "consumer"), all statuses on
 your home feed:
 
diff --git a/components/camel-file/src/main/docs/file-component.adoc b/components/camel-file/src/main/docs/file-component.adoc
index 8bd708d..1877b28 100644
--- a/components/camel-file/src/main/docs/file-component.adoc
+++ b/components/camel-file/src/main/docs/file-component.adoc
@@ -262,7 +262,7 @@ bean completes, and thus the route is completed, the file consumer will
 perform the move operation and move the file to the `.done` sub-folder.
 
 The *move* and the *preMove* options are considered as a directory name
-(though if you use an expression such as xref:manual::file-language.adoc[File Language], or xref:manual::simple-language.adoc[Simple] then the result of the expression
+(though if you use an expression such as xref:file-language.adoc[File Language], or xref:simple-language.adoc[Simple] then the result of the expression
 evaluation is the file name to be used - eg if you set
 
 [source]
@@ -270,7 +270,7 @@ evaluation is the file name to be used - eg if you set
 move=../backup/copy-of-${file:name}
 ----
 
-then that's using the xref:manual::file-language.adoc[File Language] which we
+then that's using the xref:file-language.adoc[File Language] which we
 use return the file name to be used), which can be either relative or
 absolute. If relative, the directory is created as a sub-folder from
 within the folder where the file was consumed.
@@ -308,10 +308,10 @@ processed and after it's processed, it's moved to the `.done` folder.
 
 The *move* and *preMove* options
 are Expression-based, so we have the full power of
-the xref:manual::file-language.adoc[File Language] to do advanced configuration
+the xref:file-language.adoc[File Language] to do advanced configuration
 of the directory and name pattern. +
  Camel will, in fact, internally convert the directory name you enter
-into a xref:manual::file-language.adoc[File Language] expression. So when we
+into a xref:file-language.adoc[File Language] expression. So when we
 enter `move=.done` Camel will convert this into:
 `\${file:parent}/.done/${file:onlyname}`. This is only done if
 Camel detects that you have not provided a $\{ } in the option value
@@ -334,7 +334,7 @@ choice. For example to move the files in an error folder with a
 timestamp you can use
 `moveFailed=/error/${``file:name.noext``}-${date:now:yyyyMMddHHmmssSSS}.${``file:ext`}.
 
-See more examples at xref:manual::file-language.adoc[File Language]
+See more examples at xref:file-language.adoc[File Language]
 
 == Message Headers
 
@@ -348,7 +348,7 @@ The following headers are supported by this component:
 
 |`CamelFileName` |Specifies the name of the file to write (relative to the endpoint
 directory). This name can be a `String`; a `String` with a
-xref:manual::file-language.adoc[File Language] or xref:manual::simple-language.adoc[Simple]
+xref:file-language.adoc[File Language] or xref:simple-language.adoc[Simple]
 expression; or an Expression object. If it's
 `null` then Camel will auto-generate a filename based on the message
 unique ID.
@@ -555,8 +555,8 @@ from("direct:report").to("file:target/reports/?fileName=report.txt");
 == Filename Expression
 
 Filename can be set either using the *expression* option or as a
-string-based xref:manual::file-language.adoc[File Language] expression in the
-`CamelFileName` header. See the xref:manual::file-language.adoc[File Language]
+string-based xref:file-language.adoc[File Language] expression in the
+`CamelFileName` header. See the xref:file-language.adoc[File Language]
 for syntax and samples.
 
 [[File2-Consumingfilesfromfolderswhereothersdropfilesdirectly]]
@@ -839,7 +839,7 @@ today's date as a sub-folder name:
 from("file://inbox?move=backup/${date:now:yyyyMMdd}/${file:name}").to("...");
 ----
 
-See xref:manual::file-language.adoc[File Language] for more samples.
+See xref:file-language.adoc[File Language] for more samples.
 
 == Avoiding reading the same file more than once (idempotent consumer)
 
@@ -1036,7 +1036,7 @@ Registry for a bean with the ID, `mySorter`.
 === Sorting using sortBy
 
 Camel supports pluggable sorting strategies. This strategy it to use the
-xref:manual::file-language.adoc[File Language] to configure the sorting. The
+xref:file-language.adoc[File Language] to configure the sorting. The
 `sortBy` option is configured as follows:
 
 [source]
@@ -1060,7 +1060,7 @@ This will sort by file name, you can reverse the order by prefixing
 sortBy=reverse:file:name
 ----
 
-As we have the full power of xref:manual::file-language.adoc[File Language] we
+As we have the full power of xref:file-language.adoc[File Language] we
 can use some of the other parameters, so if we want to sort by file size
 we do:
 
@@ -1104,7 +1104,7 @@ sortBy=file:modified;file:name
 Now there is an issue here, can you spot it? Well the modified timestamp
 of the file is too fine as it will be in milliseconds, but what if we
 want to sort by date only and then subgroup by name? +
- Well as we have the true power of xref:manual::file-language.adoc[File Language] we can use its date command that supports patterns. So this
+ Well as we have the true power of xref:file-language.adoc[File Language] we can use its date command that supports patterns. So this
 can be solved as:
 
 [source]
diff --git a/components/camel-grape/src/main/docs/grape-component.adoc b/components/camel-grape/src/main/docs/grape-component.adoc
index 0c5847a..841d28e 100644
--- a/components/camel-grape/src/main/docs/grape-component.adoc
+++ b/components/camel-grape/src/main/docs/grape-component.adoc
@@ -137,7 +137,7 @@ By default Camel Grape component operates on the String payloads:
 producerTemplate.sendBody("grape:defaultMavenCoordinates", "org.apache.camel/camel-ftp/2.15.2");
 ------------------------------------------------------------------------------------------------
 
-But of course Camel build-in xref:manual::type-converter.adoc[type conversion
+But of course Camel build-in xref:latest@manual::type-converter.adoc[type conversion
 API] can perform the automatic data type transformations for you. In the
 example below Camel automatically converts binary payload into the
 String:
diff --git a/components/camel-groovy/src/main/docs/groovy-language.adoc b/components/camel-groovy/src/main/docs/groovy-language.adoc
index 5b91ae2..6511dab 100644
--- a/components/camel-groovy/src/main/docs/groovy-language.adoc
+++ b/components/camel-groovy/src/main/docs/groovy-language.adoc
@@ -6,7 +6,7 @@
 Camel supports http://groovy.codehaus.org/[Groovy] among other
 Scripting Languages to allow an
 Expression or Predicate to be
-used in the DSL or xref:manual::xml-configuration.adoc[Xml
+used in the DSL or xref:latest@manual::xml-configuration.adoc[Xml
 Configuration].
 
 To use a Groovy expression use the following Java code
@@ -17,7 +17,7 @@ To use a Groovy expression use the following Java code
 ---------------------------------------
 
 For example you could use the *groovy* function to create an
-Predicate in a xref:manual::filter-eip.adoc[Message Filter] or as an Expression for a
+Predicate in a xref:latest@manual:eips:filter-eip.adoc[Message Filter] or as an Expression for a
 Recipient List
 
 == Groovy Options
diff --git a/components/camel-http/src/main/docs/http-component.adoc b/components/camel-http/src/main/docs/http-component.adoc
index c0b1520..f80fe4d 100644
--- a/components/camel-http/src/main/docs/http-component.adoc
+++ b/components/camel-http/src/main/docs/http-component.adoc
@@ -570,7 +570,7 @@ behavior.
 Using the JSSE Configuration Utility
 
 The HTTP component supports SSL/TLS configuration
-through the xref:manual::camel-configuration-utilities.adoc[Camel JSSE
+through the xref:latest@manual::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 3a0b691..a563fdf 100644
--- a/components/camel-irc/src/main/docs/irc-component.adoc
+++ b/components/camel-irc/src/main/docs/irc-component.adoc
@@ -156,7 +156,7 @@ The component supports 5 options, which are listed below.
 === Using the JSSE Configuration Utility
 
 The IRC component supports SSL/TLS configuration
-through the xref:manual::camel-configuration-utilities.adoc[Camel JSSE
+through the xref:latest@manual::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-jetty/src/main/docs/jetty-component.adoc b/components/camel-jetty/src/main/docs/jetty-component.adoc
index 34afede..3c30f1b 100644
--- a/components/camel-jetty/src/main/docs/jetty-component.adoc
+++ b/components/camel-jetty/src/main/docs/jetty-component.adoc
@@ -265,7 +265,7 @@ If you need to expose a Jetty endpoint on all network interfaces, the
 `0.0.0.0` address should be used.
 
 To listen across an entire URI prefix, see
-xref:manual::faq/how-do-i-let-jetty-match-wildcards.adoc[How do I let Jetty match wildcards].
+xref:latest@manual::faq/how-do-i-let-jetty-match-wildcards.adoc[How do I let Jetty match wildcards].
 
 If you actually want to expose routes by HTTP and already have a
 Servlet, you should instead refer to the
@@ -285,7 +285,7 @@ Jetty component will copy the HTTP request parameter, `one` to the
 exchange's `in.header`. We can then use the `simple` language to route
 exchanges that contain this header to a specific endpoint and all others
 to another. If we used a language more powerful than
-xref:manual::simple-language.adoc[Simple] (such as xref:ognl-language.adoc[OGNL])
+xref:simple-language.adoc[Simple] (such as xref:ognl-language.adoc[OGNL])
 we could also test for the parameter value and do routing based on the
 header value as well.
 
@@ -328,7 +328,7 @@ public void process(Exchange exchange) throws Exception {
 Using the JSSE Configuration Utility
 
 The Jetty component supports SSL/TLS configuration
-through the xref:manual::camel-configuration-utilities.adoc[Camel JSSE
+through the xref:latest@manual::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-jms/src/main/docs/jms-component.adoc b/components/camel-jms/src/main/docs/jms-component.adoc
index a6c892a..381d93a 100644
--- a/components/camel-jms/src/main/docs/jms-component.adoc
+++ b/components/camel-jms/src/main/docs/jms-component.adoc
@@ -570,7 +570,7 @@ from("file://orders").
 
 === Using Annotations
 
-Camel also has annotations so you can use xref:manual::pojo-consuming.adoc[POJO
+Camel also has annotations so you can use xref:latest@manual::pojo-consuming.adoc[POJO
 Consuming] and POJO Producing.
 
 === Spring DSL sample
@@ -599,7 +599,7 @@ the documentation.
 
 Normally, when using xref:jms-component.adoc[JMS] as the transport, it only
 transfers the body and headers as the payload. If you want to use
-xref:jms-component.adoc[JMS] with a xref:manual::dead-letter-channel.adoc[Dead Letter
+xref:jms-component.adoc[JMS] with a xref:latest@manual::dead-letter-channel.adoc[Dead Letter
 Channel], using a JMS queue as the Dead Letter Queue, then normally the
 caused Exception is not stored in the JMS message. You can, however, use
 the `transferExchange` option on the JMS dead letter queue to instruct
@@ -1306,7 +1306,7 @@ Transactions and [Request Reply] over JMS
 When using Request Reply over JMS you cannot
 use a single transaction; JMS will not send any messages until a commit
 is performed, so the server side won't receive anything at all until the
-transaction commits. Therefore to use xref:manual::requestReply-eip.adoc[Request
+transaction commits. Therefore to use xref:latest@manual:eips:requestReply-eip.adoc[Request
 Reply] you must commit a transaction after sending the request and then
 use a separate transaction for receiving the response.
 
diff --git a/components/camel-language/src/main/docs/language-component.adoc b/components/camel-language/src/main/docs/language-component.adoc
index 4355e54..24cba5a 100644
--- a/components/camel-language/src/main/docs/language-component.adoc
+++ b/components/camel-language/src/main/docs/language-component.adoc
@@ -12,7 +12,7 @@ to an endpoint which executes a script by any of the supported
 Languages in Camel. +
  By having a component to execute language scripts, it allows more
 dynamic routing capabilities. For example by using the
-Routing Slip or xref:manual::dynamic-router.adoc[Dynamic
+Routing Slip or xref:latest@manual:eips:dynamic-router.adoc[Dynamic
 Router] EIPs you can send messages to `language` endpoints where the
 script is dynamic defined as well.
 
@@ -138,7 +138,7 @@ script configured on the endpoint.
 
 == Examples
 
-For example you can use the xref:manual::simple-language.adoc[Simple] language to
+For example you can use the xref:simple-language.adoc[Simple] language to
 Message Translator a message:
 
 In case you want to convert the message body type you can do this as
diff --git a/components/camel-lzf/src/main/docs/lzf-dataformat.adoc b/components/camel-lzf/src/main/docs/lzf-dataformat.adoc
index 6b27879..71f9c21 100644
--- a/components/camel-lzf/src/main/docs/lzf-dataformat.adoc
+++ b/components/camel-lzf/src/main/docs/lzf-dataformat.adoc
@@ -4,7 +4,7 @@
 *Since Camel 2.17*
 
 The
-LZF xref:manual::data-format.adoc[Data Format] is a message compression
+LZF xref:latest@manual::data-format.adoc[Data Format] is a message compression
 and de-compression format. It uses the
 LZF deflate algorithm. Messages marshalled using LZF compression can be
 unmarshalled using LZF decompression just prior to being consumed at the
diff --git a/components/camel-mail/src/main/docs/mail-component.adoc b/components/camel-mail/src/main/docs/mail-component.adoc
index 9b41358..f1f0637 100644
--- a/components/camel-mail/src/main/docs/mail-component.adoc
+++ b/components/camel-mail/src/main/docs/mail-component.adoc
@@ -348,7 +348,7 @@ configuration.
 === Using the JSSE Configuration Utility
 
 The mail component supports SSL/TLS configuration
-through the xref:manual::camel-configuration-utilities.adoc[Camel JSSE
+through the xref:latest@manual::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-mock/src/main/docs/mock-component.adoc b/components/camel-mock/src/main/docs/mock-component.adoc
index 83f9eb5..6e2eda9 100644
--- a/components/camel-mock/src/main/docs/mock-component.adoc
+++ b/components/camel-mock/src/main/docs/mock-component.adoc
@@ -12,7 +12,7 @@ notoriously difficult. The xref:mock-component.adoc[Mock], xref:mock-component.a
 and xref:dataset-component.adoc[DataSet] endpoints work great with the
 Camel Testing Framework to simplify your unit and
 integration testing using
-xref:manual::enterprise-integration-patterns.adoc[Enterprise Integration
+xref:latest@manual::enterprise-integration-patterns.adoc[Enterprise Integration
 Patterns] and Camel's large range of Components
 together with the powerful Bean Integration.
 
diff --git a/components/camel-mvel/src/main/docs/mvel-language.adoc b/components/camel-mvel/src/main/docs/mvel-language.adoc
index 905b453..04ec28a 100644
--- a/components/camel-mvel/src/main/docs/mvel-language.adoc
+++ b/components/camel-mvel/src/main/docs/mvel-language.adoc
@@ -98,7 +98,7 @@ The component supports 6 options, which are listed below.
 
 == Samples
 
-For example you could use Mvel inside a xref:manual::filter-eip.adoc[Message
+For example you could use Mvel inside a xref:latest@manual:eips:filter-eip.adoc[Message
 Filter] in XML
 
 [source,java]
diff --git a/components/camel-nagios/src/main/docs/nagios-component.adoc b/components/camel-nagios/src/main/docs/nagios-component.adoc
index 3b4d84f..5e5aedb 100644
--- a/components/camel-nagios/src/main/docs/nagios-component.adoc
+++ b/components/camel-nagios/src/main/docs/nagios-component.adoc
@@ -188,6 +188,6 @@ Nagios. For example we can enable this from Java as follows:
 
 In Spring XML its just a matter of defining a Spring bean with the type
 `EventNotifier` and Camel will pick it up as documented here:
-xref:manual::advanced-configuration-of-camelcontext-using-spring.adoc[Advanced
+xref:latest@manual::advanced-configuration-of-camelcontext-using-spring.adoc[Advanced
 configuration of CamelContext using Spring].
 
diff --git a/components/camel-netty/src/main/docs/netty-component.adoc b/components/camel-netty/src/main/docs/netty-component.adoc
index ff5a8e5..d4162cd 100644
--- a/components/camel-netty/src/main/docs/netty-component.adoc
+++ b/components/camel-netty/src/main/docs/netty-component.adoc
@@ -421,7 +421,7 @@ RouteBuilder builder = new RouteBuilder() {
 Using the JSSE Configuration Utility
 
 The Netty component supports SSL/TLS configuration
-through the xref:manual::camel-configuration-utilities.adoc[Camel JSSE
+through the xref:latest@manual::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-ognl/src/main/docs/ognl-language.adoc b/components/camel-ognl/src/main/docs/ognl-language.adoc
index 6aa02ba..e367f89 100644
--- a/components/camel-ognl/src/main/docs/ognl-language.adoc
+++ b/components/camel-ognl/src/main/docs/ognl-language.adoc
@@ -98,7 +98,7 @@ The component supports 2 options, which are listed below.
 
 == Samples
 
-For example you could use OGNL inside a xref:manual::filter-eip.adoc[Message
+For example you could use OGNL inside a xref:latest@manual:eips:filter-eip.adoc[Message
 Filter] in XML
 
 [source,java]
diff --git a/components/camel-paho/src/main/docs/paho-component.adoc b/components/camel-paho/src/main/docs/paho-component.adoc
index 8790f0c..6d9e3e3 100644
--- a/components/camel-paho/src/main/docs/paho-component.adoc
+++ b/components/camel-paho/src/main/docs/paho-component.adoc
@@ -221,7 +221,7 @@ byte[] payload = "message".getBytes();
 producerTemplate.sendBody("paho:topic", payload);
 ----
 
-But of course Camel build-in xref:manual::type-converter.adoc[type conversion
+But of course Camel build-in xref:latest@manual::type-converter.adoc[type conversion
 API] can perform the automatic data type transformations for you. In the
 example below Camel automatically converts binary payload into `String`
 (and conversely):
diff --git a/components/camel-quartz/src/main/docs/quartz-component.adoc b/components/camel-quartz/src/main/docs/quartz-component.adoc
index 594075a..a0c2c29 100644
--- a/components/camel-quartz/src/main/docs/quartz-component.adoc
+++ b/components/camel-quartz/src/main/docs/quartz-component.adoc
@@ -411,7 +411,7 @@ but it does not want to be fired now.
 
 The xref:quartz-component.adoc[Quartz] component provides a
 Polling Consumer scheduler which allows to
-use cron based scheduling for xref:manual::polling-consumer.adoc[Polling
+use cron based scheduling for xref:latest@manual::polling-consumer.adoc[Polling
 Consumer] such as the File and FTP
 consumers.
 
diff --git a/components/camel-saxon/src/main/docs/xquery-component.adoc b/components/camel-saxon/src/main/docs/xquery-component.adoc
index 6fad634..b2fc168 100644
--- a/components/camel-saxon/src/main/docs/xquery-component.adoc
+++ b/components/camel-saxon/src/main/docs/xquery-component.adoc
@@ -9,9 +9,9 @@
 
 Camel supports http://www.w3.org/TR/xquery/[XQuery] to allow an
 Expression or Predicate to be
-used in the DSL or xref:manual::xml-configuration.adoc[Xml
+used in the DSL or xref:latest@manual::xml-configuration.adoc[Xml
 Configuration]. For example you could use XQuery to create an
-Predicate in a xref:manual::filter-eip.adoc[Message
+Predicate in a xref:latest@manual:eips:filter-eip.adoc[Message
 Filter] or as an Expression for a Recipient List.
 
 == Options
diff --git a/components/camel-saxon/src/main/docs/xquery-language.adoc b/components/camel-saxon/src/main/docs/xquery-language.adoc
index 2291692..86fb424 100644
--- a/components/camel-saxon/src/main/docs/xquery-language.adoc
+++ b/components/camel-saxon/src/main/docs/xquery-language.adoc
@@ -5,9 +5,9 @@
 
 Camel supports http://www.w3.org/TR/xquery/[XQuery] to allow an
 Expression or Predicate to be
-used in the DSL or xref:manual::xml-configuration.adoc[Xml
+used in the DSL or xref:latest@manual::xml-configuration.adoc[Xml
 Configuration]. For example you could use XQuery to create an
-Predicate in a xref:manual::filter-eip.adoc[Message
+Predicate in a xref:latest@manual:eips:filter-eip.adoc[Message
 Filter] or as an Expression for a
 Recipient List.
 
diff --git a/components/camel-spring-boot/src/main/docs/spring-boot.adoc b/components/camel-spring-boot/src/main/docs/spring-boot.adoc
index a2d91f9..8dacaef 100644
--- a/components/camel-spring-boot/src/main/docs/spring-boot.adoc
+++ b/components/camel-spring-boot/src/main/docs/spring-boot.adoc
@@ -617,7 +617,7 @@ https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-tes
 
 To get the `CamelContext` or `ProducerTemplate`, you can inject them into the class in the normal Spring manner, using `@Autowired`.
 
-You can also use xref:manual::spring-testing.adoc[Camel Spring test annotations] to configure tests declaratively. This example uses the `@MockEndpoints` annotation to auto-mock an endpoint:
+You can also use xref:latest@manual::spring-testing.adoc[Camel Spring test annotations] to configure tests declaratively. This example uses the `@MockEndpoints` annotation to auto-mock an endpoint:
 
 [source,java]
 ----
@@ -667,7 +667,7 @@ https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-tes
 
 To get the `CamelContext` or `ProducerTemplate`, you can inject them into the class in the normal Spring manner, using `@Autowired`.
 
-You can also use xref:manual::spring-testing.adoc[Camel Spring test annotations] to configure tests declaratively. This example uses the `@MockEndpoints` annotation to auto-mock an endpoint:
+You can also use xref:latest@manual::spring-testing.adoc[Camel Spring test annotations] to configure tests declaratively. This example uses the `@MockEndpoints` annotation to auto-mock an endpoint:
 
 [source,java]
 ----
diff --git a/components/camel-spring/src/main/docs/spel-language.adoc b/components/camel-spring/src/main/docs/spel-language.adoc
index 3e6ef59..43b32f3 100644
--- a/components/camel-spring/src/main/docs/spel-language.adoc
+++ b/components/camel-spring/src/main/docs/spel-language.adoc
@@ -115,8 +115,8 @@ can invoke the "bar" method on this bean like this:
 
 === SpEL in enterprise integration patterns
 
-You can use SpEL as an expression for xref:manual::recipientList-eip.adoc[Recipient
-List] or as a predicate inside a xref:manual::filter-eip.adoc[Message
+You can use SpEL as an expression for xref:latest@manual:eips:recipientList-eip.adoc[Recipient
+List] or as a predicate inside a xref:latest@manual:eips:filter-eip.adoc[Message
 Filter]:
 
 [source,xml]
diff --git a/components/camel-spring/src/main/docs/spring-event-component.adoc b/components/camel-spring/src/main/docs/spring-event-component.adoc
index 3a71ee4..c0997e6 100644
--- a/components/camel-spring/src/main/docs/spring-event-component.adoc
+++ b/components/camel-spring/src/main/docs/spring-event-component.adoc
@@ -11,8 +11,8 @@ The Spring Event component provides access to the Spring
 `ApplicationEvent` objects. This allows you to publish
 `ApplicationEvent` objects to a Spring `ApplicationContext` or to
 consume them. You can then use
-xref:manual::enterprise-integration-patterns.adoc[Enterprise Integration
-Patterns] to process them such as xref:manual::filter-eip.adoc[Message
+xref:latest@manual::enterprise-integration-patterns.adoc[Enterprise Integration
+Patterns] to process them such as xref:latest@manual:eips:filter-eip.adoc[Message
 Filter].
 
 == URI format
diff --git a/components/camel-spring/src/main/docs/spring.adoc b/components/camel-spring/src/main/docs/spring.adoc
index b3c9a37..594b3b5 100644
--- a/components/camel-spring/src/main/docs/spring.adoc
+++ b/components/camel-spring/src/main/docs/spring.adoc
@@ -9,7 +9,7 @@ Spring Framework in a number of ways.
 instances or the CamelContext instance itself
 and auto-expose Spring beans as components and endpoints.
 * Camel works with Spring XML processing with the XML Configuration
-* Camel Spring XML Schema's is defined at xref:manual::xml-reference.adoc[XML
+* Camel Spring XML Schema's is defined at xref:latest@manual::xml-reference.adoc[XML
 Reference]
 * Camel provides powerful Bean Integration
 with any bean defined in a Spring ApplicationContext
@@ -19,7 +19,7 @@ components like xref:jms-component.adoc[JMS] and xref:jms-component.adoc[JPA]
 Type Converter support for Spring Resources etc
 * Allows you to reuse the Spring Testing
 framework to simplify your unit and integration testing using
-xref:manual::enterprise-integration-patterns.adoc[Enterprise Integration
+xref:latest@manual::enterprise-integration-patterns.adoc[Enterprise Integration
 Patterns] and Camel's powerful xref:mock-component.adoc[Mock] and
 xref:test.adoc[Test] endpoints
 
@@ -88,7 +88,7 @@ inline namespace declaration:
 === Advanced configuration using Spring
 
 See more details at
-xref:manual::advanced-configuration-of-camelcontext-using-spring.adoc[Advanced
+xref:latest@manual::advanced-configuration-of-camelcontext-using-spring.adoc[Advanced
 configuration of CamelContext using Spring]
 
 === Using Java Code
@@ -209,7 +209,7 @@ above in the `<packageScan>` documentation.
 
 == How do I import routes from other XML files
 
-When defining routes in Camel using xref:manual::xml-configuration.adoc[Xml
+When defining routes in Camel using xref:latest@manual::xml-configuration.adoc[Xml
 Configuration] you may want to define some routes in other XML files.
 For example you may have many routes and it may help to maintain the
 application if some of the routes are in separate XML files. You may
@@ -364,14 +364,14 @@ the above example), then you can refer to the component using
 SpringCamelContext lazily fetching components from the spring context
 for the scheme name you use for Endpoint URIs.
 
-For more detail see xref:manual::faq/how-do-i-configure-endpoints.adoc[Configuring
+For more detail see xref:latest@manual::faq/how-do-i-configure-endpoints.adoc[Configuring
 Endpoints and Components].
 
 == CamelContextAware
 
 If you want to be injected with the CamelContext
 in your POJO just implement the `CamelContextAware` interface; then when Spring creates your POJO the CamelContext will be
-injected into your POJO. Also see the xref:manual::bean-integration.adoc[Bean
+injected into your POJO. Also see the xref:latest@manual::bean-integration.adoc[Bean
 Integration] for further injections.
 
 == Integration Testing
diff --git a/components/camel-test-spring/src/main/docs/test-spring.adoc b/components/camel-test-spring/src/main/docs/test-spring.adoc
index 4516949..ecca4713 100644
--- a/components/camel-test-spring/src/main/docs/test-spring.adoc
+++ b/components/camel-test-spring/src/main/docs/test-spring.adoc
@@ -9,7 +9,7 @@ Allows to test Camel with Spring applications such as Spring XML files or Spring
 This documentation is old and needs to be updated
 ====
 
-xref:manual::testing.adoc[Testing] is a crucial part of any development or integration work. The Spring Framework offers a number of features that makes it easy to test while using Spring for Inversion of Control which works with JUnit 3.x and JUnit 4.x.
+xref:latest@manual::testing.adoc[Testing] is a crucial part of any development or integration work. The Spring Framework offers a number of features that makes it easy to test while using Spring for Inversion of Control which works with JUnit 3.x and JUnit 4.x.
 
 We can use Spring for IoC and the Camel xref:components::mock-component.adoc[Mock] and xref:components::test.adoc[Test] endpoints to create sophisticated integration/unit tests that are easy to run and debug inside your IDE.  There are three supported approaches for testing with Spring in Camel.
 [width="100%",cols="1,1,4,1",options="header",]
diff --git a/components/camel-timer/src/main/docs/timer-component.adoc b/components/camel-timer/src/main/docs/timer-component.adoc
index 091df27..5119ef2 100644
--- a/components/camel-timer/src/main/docs/timer-component.adoc
+++ b/components/camel-timer/src/main/docs/timer-component.adoc
@@ -33,7 +33,7 @@ advanced scheduling.
 
 TIP:*Specify time in human friendly format*
 You can specify the time in
-xref:manual::faq/how-do-i-specify-time-period-in-a-human-friendly-syntax.adoc[human
+xref:latest@manual::faq/how-do-i-specify-time-period-in-a-human-friendly-syntax.adoc[human
 friendly syntax].
 
 
diff --git a/components/camel-undertow/src/main/docs/undertow-component.adoc b/components/camel-undertow/src/main/docs/undertow-component.adoc
index 4c848c6..3872bba 100644
--- a/components/camel-undertow/src/main/docs/undertow-component.adoc
+++ b/components/camel-undertow/src/main/docs/undertow-component.adoc
@@ -236,7 +236,7 @@ If you need to expose an Undertow endpoint on all network interfaces, the
 `0.0.0.0` address should be used.
 
 To listen across an entire URI prefix, see
-xref:manual::faq/how-do-i-let-jetty-match-wildcards.adoc[How do I let Jetty match wildcards].
+xref:latest@manual::faq/how-do-i-let-jetty-match-wildcards.adoc[How do I let Jetty match wildcards].
 
 If you actually want to expose routes by HTTP and already have a
 Servlet, you should instead refer to the
diff --git a/components/camel-univocity-parsers/src/main/docs/univocity-csv-dataformat.adoc b/components/camel-univocity-parsers/src/main/docs/univocity-csv-dataformat.adoc
index 8b9173e..e1d6d40 100644
--- a/components/camel-univocity-parsers/src/main/docs/univocity-csv-dataformat.adoc
+++ b/components/camel-univocity-parsers/src/main/docs/univocity-csv-dataformat.adoc
@@ -3,7 +3,7 @@
 
 *Since Camel 2.15*
 
-This xref:manual::data-format.adoc[Data
+This xref:latest@manual::data-format.adoc[Data
 Format] uses http://www.univocity.com/pages/about-parsers[uniVocity-parsers]
 for reading and writing 3 kinds of tabular data text files:
 
diff --git a/components/camel-univocity-parsers/src/main/docs/univocity-fixed-dataformat.adoc b/components/camel-univocity-parsers/src/main/docs/univocity-fixed-dataformat.adoc
index 29969c6..de19c1f 100644
--- a/components/camel-univocity-parsers/src/main/docs/univocity-fixed-dataformat.adoc
+++ b/components/camel-univocity-parsers/src/main/docs/univocity-fixed-dataformat.adoc
@@ -3,7 +3,7 @@
 
 *Since Camel 2.15*
 
-This xref:manual::data-format.adoc[Data
+This xref:latest@manual::data-format.adoc[Data
 Format] uses http://www.univocity.com/pages/about-parsers[uniVocity-parsers]
 for reading and writing 3 kinds of tabular data text files:
 
diff --git a/components/camel-univocity-parsers/src/main/docs/univocity-tsv-dataformat.adoc b/components/camel-univocity-parsers/src/main/docs/univocity-tsv-dataformat.adoc
index bee869f..356fa4d 100644
--- a/components/camel-univocity-parsers/src/main/docs/univocity-tsv-dataformat.adoc
+++ b/components/camel-univocity-parsers/src/main/docs/univocity-tsv-dataformat.adoc
@@ -3,7 +3,7 @@
 
 *Since Camel 2.15*
 
-This xref:manual::data-format.adoc[Data
+This xref:latest@manual::data-format.adoc[Data
 Format] uses http://www.univocity.com/pages/about-parsers[uniVocity-parsers]
 for reading and writing 3 kinds of tabular data text files:
 
diff --git a/components/camel-websocket/src/main/docs/websocket-component.adoc b/components/camel-websocket/src/main/docs/websocket-component.adoc
index 26af3c6..27b9190 100644
--- a/components/camel-websocket/src/main/docs/websocket-component.adoc
+++ b/components/camel-websocket/src/main/docs/websocket-component.adoc
@@ -212,7 +212,7 @@ from("activemq:topic:newsTopic")
 === Using the JSSE Configuration Utility
 
 The WebSocket component supports SSL/TLS configuration
-through the xref:manual::camel-configuration-utilities.adoc[Camel JSSE
+through the xref:latest@manual::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-xmlsecurity/src/main/docs/xmlsecurity-component.adoc b/components/camel-xmlsecurity/src/main/docs/xmlsecurity-component.adoc
index e2da18a..a7c20fe 100644
--- a/components/camel-xmlsecurity/src/main/docs/xmlsecurity-component.adoc
+++ b/components/camel-xmlsecurity/src/main/docs/xmlsecurity-component.adoc
@@ -12,7 +12,7 @@ signatures as described in the W3C standard
 http://www.w3.org/TR/xmldsig-core/[XML Signature Syntax and Processing]
 or as described in the successor
 http://www.w3.org/TR/xmldsig-core1/[version 1.1]. For XML Encryption
-support, please refer to the XML Security xref:manual::data-format.adoc[Data
+support, please refer to the XML Security xref:latest@manual::data-format.adoc[Data
 Format].
 
 You can find an introduction to XML signature
diff --git a/components/camel-xpath/src/main/docs/xpath-language.adoc b/components/camel-xpath/src/main/docs/xpath-language.adoc
index 604c96c..ef3b004 100644
--- a/components/camel-xpath/src/main/docs/xpath-language.adoc
+++ b/components/camel-xpath/src/main/docs/xpath-language.adoc
@@ -5,9 +5,9 @@
 
 Camel supports http://www.w3.org/TR/xpath[XPath] to allow an
 Expression or Predicate to be
-used in the DSL or xref:manual::xml-configuration.adoc[Xml
+used in the DSL or xref:latest@manual::xml-configuration.adoc[Xml
 Configuration]. For example you could use XPath to create an
-Predicate in a xref:manual::filter-eip.adoc[Message
+Predicate in a xref:latest@manual:eips:filter-eip.adoc[Message
 Filter] or as an Expression for a
 Recipient List.
 
@@ -161,7 +161,7 @@ exchange:
 |function:properties |key for property |String |To lookup a property using the
 xref:properties-component.adoc[Properties] component (property placeholders).
 
-|function:simple |simple expression |Object |To evaluate a xref:manual::simple-language.adoc[Simple] expression.
+|function:simple |simple expression |Object |To evaluate a xref:simple-language.adoc[Simple] expression.
 |===
 
 CAUTION: `function:properties` and `function:simple` is not supported
@@ -295,7 +295,7 @@ For example
 [source,java]
 ----
 public class Foo {
-    
+
     @MessageDriven(uri = "activemq:my.queue")
     public void doSomething(@MyXPath("/ns1:foo/ns2:bar/text()") String correlationID, @Body String body) {
         // process the inbound message here
@@ -502,8 +502,8 @@ the following:
 
 [source]
 ----
-2012-01-16 13:23:45,878 [stSaxonWithFlag] INFO  XPathBuilder  - Namespaces discovered in message: 
-{xmlns:a=[http://apache.org/camel], DEFAULT=[http://apache.org/default], 
+2012-01-16 13:23:45,878 [stSaxonWithFlag] INFO  XPathBuilder  - Namespaces discovered in message:
+{xmlns:a=[http://apache.org/camel], DEFAULT=[http://apache.org/default],
 xmlns:b=[http://apache.org/camelA, http://apache.org/camelB]}
 ----
 
diff --git a/components/camel-xslt-saxon/src/main/docs/xslt-saxon-component.adoc b/components/camel-xslt-saxon/src/main/docs/xslt-saxon-component.adoc
index 6fd7d64..be5d94c 100644
--- a/components/camel-xslt-saxon/src/main/docs/xslt-saxon-component.adoc
+++ b/components/camel-xslt-saxon/src/main/docs/xslt-saxon-component.adoc
@@ -282,7 +282,7 @@ With Spring XML:
 == Dynamic stylesheets
 
 To provide a dynamic stylesheet at runtime you can define a dynamic URI.
-See xref:manual::faq/how-to-use-a-dynamic-uri-in-to.adoc[How to use a dynamic URI in
+See xref:latest@manual::faq/how-to-use-a-dynamic-uri-in-to.adoc[How to use a dynamic URI in
 to()] for more information.
 
 == Accessing warnings, errors and fatalErrors from XSLT ErrorListener
diff --git a/components/camel-xslt/src/main/docs/xslt-component.adoc b/components/camel-xslt/src/main/docs/xslt-component.adoc
index 8a1cd26..9f3ea9b 100644
--- a/components/camel-xslt/src/main/docs/xslt-component.adoc
+++ b/components/camel-xslt/src/main/docs/xslt-component.adoc
@@ -233,7 +233,7 @@ You can explicitly specify `file:` or `classpath:` loading. The two loading type
 == Dynamic stylesheets
 
 To provide a dynamic stylesheet at runtime you can define a dynamic URI.
-See xref:manual::faq/how-to-use-a-dynamic-uri-in-to.adoc[How to use a dynamic URI in
+See xref:latest@manual::faq/how-to-use-a-dynamic-uri-in-to.adoc[How to use a dynamic URI in
 to()] for more information.
 
 == Accessing warnings, errors and fatalErrors from XSLT ErrorListener
diff --git a/components/camel-zipkin/src/main/docs/zipkin.adoc b/components/camel-zipkin/src/main/docs/zipkin.adoc
index 535e311..f7432dd 100644
--- a/components/camel-zipkin/src/main/docs/zipkin.adoc
+++ b/components/camel-zipkin/src/main/docs/zipkin.adoc
@@ -77,7 +77,7 @@ The pattern uses the rules from Intercept.
 |false 
 |Whether to include the Camel message body in the zipkin traces.
 This is not recommended for production usage, or when having big payloads.
-You can limit the size by configuring the xref:manual::faq/how-do-i-set-the-max-chars-when-debug-logging-messages-in-camel.adoc[max
+You can limit the size by configuring the xref:latest@manual::faq/how-do-i-set-the-max-chars-when-debug-logging-messages-in-camel.adoc[max
 debug log size]. 
 
 |includeMessageBodyStreams 
@@ -85,7 +85,7 @@ debug log size].
 |Whether to include message bodies that are stream based in the zipkin traces.
 This requires enabling streamcaching on the routes or globally on the `CamelContext`.
 This is not recommended for production usage, or when having big payloads.
-You can limit the size by configuring the xref:manual::faq/how-do-i-set-the-max-chars-when-debug-logging-messages-in-camel.adoc[max
+You can limit the size by configuring the xref:latest@manual::faq/how-do-i-set-the-max-chars-when-debug-logging-messages-in-camel.adoc[max
 debug log size].  
 
 |===
diff --git a/core/camel-base/src/main/docs/properties-component.adoc b/core/camel-base/src/main/docs/properties-component.adoc
index 991afdb..c015c58 100644
--- a/core/camel-base/src/main/docs/properties-component.adoc
+++ b/core/camel-base/src/main/docs/properties-component.adoc
@@ -43,7 +43,7 @@ This works much like you would do if using Spring's
 `<property-placeholder>` tag. However Spring have a limitation which
 prevents 3rd party frameworks to leverage Spring property placeholders
 to the fullest. See more at
-xref:manual::faq/how-do-i-use-spring-property-placeholder-with-camel-xml.adoc[How do
+xref:latest@manual::faq/how-do-i-use-spring-property-placeholder-with-camel-xml.adoc[How do
 I use Spring Property Placeholder with Camel XML].
 
 [TIP]
@@ -281,9 +281,9 @@ ProducerTemplate for example:
 template.sendBody("{{cool.start}}", "Hello World");
 ----
 
-== Example with xref:manual::simple-language.adoc[Simple] language
+== Example with xref:simple-language.adoc[Simple] language
 
-The xref:manual::simple-language.adoc[Simple] language now also support using property
+The xref:simple-language.adoc[Simple] language now also support using property
 placeholders, for example in the route below:
 
 [source,java]
@@ -540,7 +540,7 @@ placeholder notation with `{{` and `}}`.
 == Clashing Spring property placeholders with Camels Simple language
 
 Take notice when using Spring bridging placeholder then the spring `${ }`
-syntax clashes with the xref:manual::simple-language.adoc[Simple] in Camel, and therefore
+syntax clashes with the xref:simple-language.adoc[Simple] in Camel, and therefore
 take care. For example:
 
 [source,xml]
@@ -551,7 +551,7 @@ take care. For example:
 ----
 
 clashes with Spring property placeholders, and you should use `$simple{ }`
-to indicate using the xref:manual::simple-language.adoc[Simple] language in Camel.
+to indicate using the xref:simple-language.adoc[Simple] language in Camel.
 
 [source,xml]
 ----
diff --git a/core/camel-base/src/main/docs/simple-language.adoc b/core/camel-base/src/main/docs/simple-language.adoc
index ff1452a..30af71f 100644
--- a/core/camel-base/src/main/docs/simple-language.adoc
+++ b/core/camel-base/src/main/docs/simple-language.adoc
@@ -8,17 +8,17 @@ created, but has since grown more powerful. It is primarily intended for
 being a really small and simple language for evaluating
 Expressions and Predicates
 without requiring any new dependencies or knowledge of
-xref:components::xpath-language.adoc[XPath]; so it is ideal for testing in camel-core. The
+xref:xpath-language.adoc[XPath]; so it is ideal for testing in camel-core. The
 idea was to cover 95% of the common use cases when you need a little bit
 of expression based script in your Camel routes.
 
 However for much more complex use cases you are generally recommended to
 choose a more expressive and powerful language such as:
 
-* xref:components::groovy-language.adoc[Groovy]
-* xref:components::spel-language.adoc[SpEL]
-* xref:components::mvel-component.adoc[MVEL]
-* xref:components::ognl-language.adoc[OGNL]
+* xref:groovy-language.adoc[Groovy]
+* xref:spel-language.adoc[SpEL]
+* xref:mvel-component.adoc[MVEL]
+* xref:ognl-language.adoc[OGNL]
 
 The simple language uses `${body`} placeholders for complex expressions
 where the expression contains constant literals. The $\{ } placeholders
@@ -174,9 +174,9 @@ Command accepts offsets such as: *now-24h* or *in.header.xxx+1h* or even *now+1h
 
 |date-with-timezone:_command:timezone:pattern_ |String |Date formatting using `java.text.SimpleDataFormat` timezones and patterns.
 
-|bean:_bean expression_ |Object |Invoking a bean expression using the xref:components::bean-component.adoc[Bean] language.
+|bean:_bean expression_ |Object |Invoking a bean expression using the xref:bean-component.adoc[Bean] language.
 Specifying a method name you must use dot as separator. We also support
-the ?method=methodname syntax that is used by the xref:components::bean-component.adoc[Bean]
+the ?method=methodname syntax that is used by the xref:bean-component.adoc[Bean]
 component.
 
 |`properties:key:default` |String |Lookup a property with the given key. If the key does
@@ -741,7 +741,7 @@ from("direct:order")
 ----
 
 We can use the `?method=methodname` option that we are familiar with the
-xref:components::bean-component.adoc[Bean] component itself:
+xref:bean-component.adoc[Bean] component itself:
 
 [source,java]
 ----
diff --git a/docs/components/modules/ROOT/pages/ahc-component.adoc b/docs/components/modules/ROOT/pages/ahc-component.adoc
index 2e414d8..225024a 100644
--- a/docs/components/modules/ROOT/pages/ahc-component.adoc
+++ b/docs/components/modules/ROOT/pages/ahc-component.adoc
@@ -428,7 +428,7 @@ from("direct:start")
 Using the JSSE Configuration Utility
 
 The AHC component supports SSL/TLS configuration
-through the xref:manual::camel-configuration-utilities.adoc[Camel JSSE
+through the xref:latest@manual::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/docs/components/modules/ROOT/pages/bean-language.adoc b/docs/components/modules/ROOT/pages/bean-language.adoc
index 865c922..56fd6e1 100644
--- a/docs/components/modules/ROOT/pages/bean-language.adoc
+++ b/docs/components/modules/ROOT/pages/bean-language.adoc
@@ -5,19 +5,19 @@
 *Since Camel 1.3*
 
 The purpose of the Bean Language is to be able to implement an
-xref:manual::expression.adoc[Expression] or xref:manual::predicate.adoc[Predicate] using
-a simple method on a bean. The bean name is resolved using a xref:manual::registry.adoc[Registry], such as the
-xref:manual::spring.adoc[Spring] *`ApplicationContext`*, then a method is
-invoked to evaluate the xref:manual::expression.adoc[Expression] or
-xref:manual::predicate.adoc[Predicate]. If no method name is provided then one
-is chosen using the rules for xref:manual::bean-binding.adoc[Bean Binding];
+xref:latest@manual::expression.adoc[Expression] or xref:latest@manual::predicate.adoc[Predicate] using
+a simple method on a bean. The bean name is resolved using a xref:latest@manual::registry.adoc[Registry], such as the
+xref:latest@manual::spring.adoc[Spring] *`ApplicationContext`*, then a method is
+invoked to evaluate the xref:latest@manual::expression.adoc[Expression] or
+xref:latest@manual::predicate.adoc[Predicate]. If no method name is provided then one
+is chosen using the rules for xref:latest@manual::bean-binding.adoc[Bean Binding];
 using the type of the message body and using any annotations on the bean
 methods.
 
-The xref:manual::bean-binding.adoc[Bean Binding] rules are used to bind the
-xref:manual::message.adoc[Message] Exchange to the method parameters; so you can
+The xref:latest@manual::bean-binding.adoc[Bean Binding] rules are used to bind the
+xref:latest@manual::message.adoc[Message] Exchange to the method parameters; so you can
 annotate the bean to extract headers or other expressions such as
-xref:components::xpath-language.adoc[XPath] or xref:components::xquery-language.adoc[XQuery] from the message.
+xref:xpath-language.adoc[XPath] or xref:xquery-language.adoc[XQuery] from the message.
 
 == Bean Language options
 
@@ -121,7 +121,7 @@ public class MyBean {
 }
 ----
 
-We can also use the xref:manual::bean-integration.adoc[Bean Integration]
+We can also use the xref:latest@manual::bean-integration.adoc[Bean Integration]
 annotations.
 
 Example:
@@ -139,16 +139,16 @@ public boolean isGoldCustomer(@Header(name = "foo") Integer fooHeader) {...}
 ----
 
 So you can bind parameters of the method to the Exchange, the
-xref:manual::message.adoc[Message] or individual headers, properties, the body
+xref:latest@manual::message.adoc[Message] or individual headers, properties, the body
 or other expressions.
 
 [[BeanLanguage-Non-RegistryBeans]]
 == Non-Registry Beans
 
 The xref:bean-language.adoc[Bean Language] also supports invoking beans
-that isn't registered in the xref:manual::registry.adoc[Registry]. This is
+that isn't registered in the xref:latest@manual::registry.adoc[Registry]. This is
 usable for quickly to invoke a bean from Java DSL where you don't need
-to register the bean in the xref:manual::registry.adoc[Registry] such as the
+to register the bean in the xref:latest@manual::registry.adoc[Registry] such as the
 xref:spring.adoc[Spring] *`ApplicationContext`*. Camel can instantiate
 the bean and invoke the method if given a class or invoke an already
 existing instance.
@@ -207,8 +207,8 @@ from("activemq:topic:OrdersTopic")
 We have some test cases you can look at if it'll help
 
 * https://github.com/apache/camel/blob/master/core/camel-core/src/test/java/org/apache/camel/processor/MethodFilterTest.java[MethodFilterTest]
-is a JUnit test case showing the Java xref:manual::dsl.adoc[DSL] use of the bean
+is a JUnit test case showing the Java xref:latest@manual::dsl.adoc[DSL] use of the bean
 expression being used in a filter
 * https://github.com/apache/camel/blob/master/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/aggregator.xml[aggregator.xml]
-is a Spring XML test case for the xref:manual::aggregate-eip.adoc[Aggregator] which
+is a Spring XML test case for the xref:latest@manual:eips:aggregate-eip.adoc[Aggregator] which
 uses a bean method call to test for the completion of the aggregation.
diff --git a/docs/components/modules/ROOT/pages/beanstalk-component.adoc b/docs/components/modules/ROOT/pages/beanstalk-component.adoc
index 1ce65f7..93e482b 100644
--- a/docs/components/modules/ROOT/pages/beanstalk-component.adoc
+++ b/docs/components/modules/ROOT/pages/beanstalk-component.adoc
@@ -51,7 +51,7 @@ beanstalk://localhost:11300/tube1+tube2
 
 Tube name will be URL decoded, so if your tube names include special
 characters like + or ?, you need to URL-encode them appropriately, or
-use the RAW syntax, see xref:manual::faq/how-do-i-configure-endpoints.adoc[more
+use the RAW syntax, see xref:latest@manual::faq/how-do-i-configure-endpoints.adoc[more
 details here].
 
 By the way, you cannot specify several tubes when you are writing jobs
@@ -191,7 +191,7 @@ Be careful when specifying `release`, as the failed job will immediately
 become available in the same tube and your consumer will try to acquire
 it again. You can `release` and specify _jobDelay_ though.
 
-The beanstalk consumer is a Scheduled xref:manual::polling-consumer.adoc[Polling
+The beanstalk consumer is a Scheduled xref:latest@manual::polling-consumer.adoc[Polling
 Consumer] which means there is more options you can configure, such as
 how frequent the consumer should poll. For more details
 see Polling Consumer.
diff --git a/docs/components/modules/ROOT/pages/cdi.adoc b/docs/components/modules/ROOT/pages/cdi.adoc
index 0a468d3..df07ceb 100644
--- a/docs/components/modules/ROOT/pages/cdi.adoc
+++ b/docs/components/modules/ROOT/pages/cdi.adoc
@@ -838,7 +838,7 @@ MockEndpoint outbound = endpoints
 
 == Maven Archetype
 
-Among the available xref:manual::camel-maven-archetypes.adoc[Camel Maven
+Among the available xref:latest@manual::camel-maven-archetypes.adoc[Camel Maven
 archetypes], you can use the provided `camel-archetype-cdi` to generate
 a Camel CDI Maven project, e.g.:
 
diff --git a/docs/components/modules/ROOT/pages/cometd-component.adoc b/docs/components/modules/ROOT/pages/cometd-component.adoc
index 0a6bd19..db55c9d 100644
--- a/docs/components/modules/ROOT/pages/cometd-component.adoc
+++ b/docs/components/modules/ROOT/pages/cometd-component.adoc
@@ -190,7 +190,7 @@ http://cometd.org/documentation/howtos/authentication[documented here]
 === Using the JSSE Configuration Utility
 
 The Cometd component supports SSL/TLS configuration
-through the xref:manual::camel-configuration-utilities.adoc[Camel JSSE
+through the xref:latest@manual::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/docs/components/modules/ROOT/pages/controlbus-component.adoc b/docs/components/modules/ROOT/pages/controlbus-component.adoc
index a56be2a..be51ecd 100644
--- a/docs/components/modules/ROOT/pages/controlbus-component.adoc
+++ b/docs/components/modules/ROOT/pages/controlbus-component.adoc
@@ -28,7 +28,7 @@ here.
 
 The ControlBus component provides easy management of Camel
 applications based on the xref:controlbus-component.adoc[Control Bus] EIP
-pattern. 
+pattern.
 For example, by sending a message to an Endpoint
 you can control the lifecycle of routes, or gather performance
 statistics.
@@ -192,7 +192,7 @@ String xml = template.requestBody("controlbus:route?action=stats", null, String.
 
 == Using Simple language
 
-You can use the xref:manual::simple-language.adoc[Simple] language with the control bus,
+You can use the xref:simple-language.adoc[Simple] language with the control bus,
 for example to stop a specific route, you can send a message to the
 `"controlbus:language:simple"` endpoint containing the following
 message:
@@ -213,7 +213,7 @@ String status = template.requestBody("controlbus:language:simple", "${camelConte
 It's easier to use the `route` command to control lifecycle of
 routes. The `language` command allows you to execute a language script
 that has stronger powers such as xref:groovy-language.adoc[Groovy] or to some
-extend the xref:manual::simple-language.adoc[Simple] language.
+extend the xref:simple-language.adoc[Simple] language.
 
 For example to shutdown Camel itself you can do:
 
diff --git a/docs/components/modules/ROOT/pages/crypto-component.adoc b/docs/components/modules/ROOT/pages/crypto-component.adoc
index b85ae69..2aeed7f 100644
--- a/docs/components/modules/ROOT/pages/crypto-component.adoc
+++ b/docs/components/modules/ROOT/pages/crypto-component.adoc
@@ -220,7 +220,7 @@ The component supports 35 options, which are listed below.
 The most basic way to way to sign and verify an exchange is with a
 KeyPair as follows.
 
-The same can be achieved with the xref:manual::spring-xml-extensions.adoc[Spring
+The same can be achieved with the xref:latest@manual::spring-xml-extensions.adoc[Spring
 XML Extensions] using references to keys
 
 === KeyStores and Aliases.
diff --git a/docs/components/modules/ROOT/pages/dataformat-component.adoc b/docs/components/modules/ROOT/pages/dataformat-component.adoc
index 19a6a70..605e5ec 100644
--- a/docs/components/modules/ROOT/pages/dataformat-component.adoc
+++ b/docs/components/modules/ROOT/pages/dataformat-component.adoc
@@ -8,7 +8,7 @@
 *Only producer is supported*
 // HEADER END
 
-The Dataformat component allows to use xref:manual::data-format.adoc[Data
+The Dataformat component allows to use xref:latest@manual::data-format.adoc[Data
 Format] as a Camel Component.
 
 == URI format
@@ -20,7 +20,7 @@ dataformat:name:(marshal|unmarshal)[?options]
 
 Where *name* is the name of the Data Format. And
 then followed by the operation which must either be `marshal` or
-`unmarshal`. The options is used for configuring the xref:manual::data-format.adoc[Data
+`unmarshal`. The options is used for configuring the xref:latest@manual::data-format.adoc[Data
 Format] in use. See the Data Format documentation
 for which options it support.
 
@@ -107,7 +107,7 @@ The component supports 4 options, which are listed below.
 
 == Samples
 
-For example to use the xref:jaxb-dataformat.adoc[JAXB] xref:manual::data-format.adoc[Data
+For example to use the xref:jaxb-dataformat.adoc[JAXB] xref:latest@manual::data-format.adoc[Data
 Format] we can do as follows:
 
 [source,java]
diff --git a/docs/components/modules/ROOT/pages/dataset-component.adoc b/docs/components/modules/ROOT/pages/dataset-component.adoc
index 35dc847..50946b8 100644
--- a/docs/components/modules/ROOT/pages/dataset-component.adoc
+++ b/docs/components/modules/ROOT/pages/dataset-component.adoc
@@ -13,7 +13,7 @@ notoriously difficult. The xref:mock-component.adoc[Mock], xref:mock-component.a
 and xref:dataset-component.adoc[DataSet] endpoints work great with the
 Camel Testing Framework to simplify your unit and
 integration testing using
-xref:manual::enterprise-integration-patterns.adoc[Enterprise Integration
+xref:latest@manual::enterprise-integration-patterns.adoc[Enterprise Integration
 Patterns] and Camel's large range of Components
 together with the powerful Bean Integration.
 
diff --git a/docs/components/modules/ROOT/pages/dataset-test-component.adoc b/docs/components/modules/ROOT/pages/dataset-test-component.adoc
index 572a819..550f637 100644
--- a/docs/components/modules/ROOT/pages/dataset-test-component.adoc
+++ b/docs/components/modules/ROOT/pages/dataset-test-component.adoc
@@ -13,7 +13,7 @@ notoriously difficult. The xref:mock-component.adoc[Mock], xref:mock-component.a
 and xref:dataset-component.adoc[DataSet] endpoints work great with the
 Camel Testing Framework to simplify your unit and
 integration testing using
-xref:manual::enterprise-integration-patterns.adoc[Enterprise Integration
+xref:latest@manual::enterprise-integration-patterns.adoc[Enterprise Integration
 Patterns] and Camel's large range of Components
 together with the powerful Bean Integration.
 
diff --git a/docs/components/modules/ROOT/pages/debezium-mysql-component.adoc b/docs/components/modules/ROOT/pages/debezium-mysql-component.adoc
index a121717..b035fe0 100644
--- a/docs/components/modules/ROOT/pages/debezium-mysql-component.adoc
+++ b/docs/components/modules/ROOT/pages/debezium-mysql-component.adoc
@@ -306,8 +306,8 @@ from("debezium-mysql:dbz-test-1?offsetStorageFileName=/usr/offset-file-1.dat&dat
 ----
 
 By default, the component will emit the events in the body and `CamelDebeziumBefore` header as https://kafka.apache.org/22/javadoc/org/apache/kafka/connect/data/Struct.html[`Struct`] data type, the reasoning behind this, is to perceive the schema information in case is needed.
-However, the component as well contains a xref:manual::type-converter.adoc[Type Converter] that converts
-from default output type of https://kafka.apache.org/22/javadoc/org/apache/kafka/connect/data/Struct.html[`Struct`] to `Map` in order to leverage Camel's rich xref:manual::data-format.adoc[Data Format] types which many of them work out of box with `Map` data type.
+However, the component as well contains a xref:latest@manual::type-converter.adoc[Type Converter] that converts
+from default output type of https://kafka.apache.org/22/javadoc/org/apache/kafka/connect/data/Struct.html[`Struct`] to `Map` in order to leverage Camel's rich xref:latest@manual::data-format.adoc[Data Format] types which many of them work out of box with `Map` data type.
 To use it, you can either add `Map.class` type when you access the message e.g: `exchange.getIn().getBody(Map.class)`, or you can convert the body always to `Map` from the route builder by adding `.convertBodyTo(Map.class)` to your Camel Route DSL after `from` statement.
 
 We mentioned above about the schema, which can be used in case you need to perform advance data transformation and the schema is needed for that. If you choose not to convert your body to `Map`,
diff --git a/docs/components/modules/ROOT/pages/debezium-postgres-component.adoc b/docs/components/modules/ROOT/pages/debezium-postgres-component.adoc
index 0391f31..98295cd 100644
--- a/docs/components/modules/ROOT/pages/debezium-postgres-component.adoc
+++ b/docs/components/modules/ROOT/pages/debezium-postgres-component.adoc
@@ -279,8 +279,8 @@ from("debezium-postgres:dbz-test-1?offsetStorageFileName=/usr/offset-file-1.dat&
 ----
 
 By default, the component will emit the events in the body and `CamelDebeziumBefore` header as https://kafka.apache.org/22/javadoc/org/apache/kafka/connect/data/Struct.html[`Struct`] data type, the reasoning behind this, is to perceive the schema information in case is needed.
-However, the component as well contains a xref:manual::type-converter.adoc[Type Converter] that converts
-from default output type of https://kafka.apache.org/22/javadoc/org/apache/kafka/connect/data/Struct.html[`Struct`] to `Map` in order to leverage Camel's rich xref:manual::data-format.adoc[Data Format] types which many of them work out of box with `Map` data type.
+However, the component as well contains a xref:latest@manual::type-converter.adoc[Type Converter] that converts
+from default output type of https://kafka.apache.org/22/javadoc/org/apache/kafka/connect/data/Struct.html[`Struct`] to `Map` in order to leverage Camel's rich xref:latest@manual::data-format.adoc[Data Format] types which many of them work out of box with `Map` data type.
 To use it, you can either add `Map.class` type when you access the message e.g: `exchange.getIn().getBody(Map.class)`, or you can convert the body always to `Map` from the route builder by adding `.convertBodyTo(Map.class)` to your Camel Route DSL after `from` statement.
 
 We mentioned above about the schema, which can be used in case you need to perform advance data transformation and the schema is needed for that. If you choose not to convert your body to `Map`,
diff --git a/docs/components/modules/ROOT/pages/debezium-sqlserver-component.adoc b/docs/components/modules/ROOT/pages/debezium-sqlserver-component.adoc
index 0314823..1b7bd21 100644
--- a/docs/components/modules/ROOT/pages/debezium-sqlserver-component.adoc
+++ b/docs/components/modules/ROOT/pages/debezium-sqlserver-component.adoc
@@ -240,8 +240,8 @@ from("debezium-sqlserver:dbz-test-1?offsetStorageFileName=/usr/offset-file-1.dat
 ----
 
 By default, the component will emit the events in the body and `CamelDebeziumBefore` header as https://kafka.apache.org/22/javadoc/org/apache/kafka/connect/data/Struct.html[`Struct`] data type, the reasoning behind this, is to perceive the schema information in case is needed.
-However, the component as well contains a xref:manual::type-converter.adoc[Type Converter] that converts
-from default output type of https://kafka.apache.org/22/javadoc/org/apache/kafka/connect/data/Struct.html[`Struct`] to `Map` in order to leverage Camel's rich xref:manual::data-format.adoc[Data Format] types which many of them work out of box with `Map` data type.
+However, the component as well contains a xref:latest@manual::type-converter.adoc[Type Converter] that converts
+from default output type of https://kafka.apache.org/22/javadoc/org/apache/kafka/connect/data/Struct.html[`Struct`] to `Map` in order to leverage Camel's rich xref:latest@manual::data-format.adoc[Data Format] types which many of them work out of box with `Map` data type.
 To use it, you can either add `Map.class` type when you access the message e.g: `exchange.getIn().getBody(Map.class)`, or you can convert the body always to `Map` from the route builder by adding `.convertBodyTo(Map.class)` to your Camel Route DSL after `from` statement.
 
 We mentioned above about the schema, which can be used in case you need to perform advance data transformation and the schema is needed for that. If you choose not to convert your body to `Map`,
diff --git a/docs/components/modules/ROOT/pages/disruptor-component.adoc b/docs/components/modules/ROOT/pages/disruptor-component.adoc
index 1e91b15..87788ce 100644
--- a/docs/components/modules/ROOT/pages/disruptor-component.adoc
+++ b/docs/components/modules/ROOT/pages/disruptor-component.adoc
@@ -245,7 +245,7 @@ without incurring significant latency spikes.
 
 == Use of Request Reply
 
-The Disruptor component supports using xref:manual::requestReply-eip.adoc[Request
+The Disruptor component supports using xref:latest@manual:eips:requestReply-eip.adoc[Request
 Reply], where the caller will wait for the Async route to complete. For
 instance:
 
diff --git a/docs/components/modules/ROOT/pages/elasticsearch-rest-component.adoc b/docs/components/modules/ROOT/pages/elasticsearch-rest-component.adoc
index bba659f..029fdba 100644
--- a/docs/components/modules/ROOT/pages/elasticsearch-rest-component.adoc
+++ b/docs/components/modules/ROOT/pages/elasticsearch-rest-component.adoc
@@ -315,7 +315,7 @@ try (ElasticsearchScrollRequestIterator response = template.requestBody("direct:
 }
 ----
 
-xref:manual::split-eip.adoc[Split EIP] can also be used.
+xref:latest@manual:eips:split-eip.adoc[Split EIP] can also be used.
 
 [source,java]
 ----
diff --git a/docs/components/modules/ROOT/pages/elsql-component.adoc b/docs/components/modules/ROOT/pages/elsql-component.adoc
index 837b6f5..cf3116e 100644
--- a/docs/components/modules/ROOT/pages/elsql-component.adoc
+++ b/docs/components/modules/ROOT/pages/elsql-component.adoc
@@ -10,7 +10,7 @@
 
 The ELSQL component is an extension to the existing
 xref:sql-component.adoc[SQL Component] that uses
-https://github.com/OpenGamma/ElSql[ElSql] to define the SQL queries. 
+https://github.com/OpenGamma/ElSql[ElSql] to define the SQL queries.
 
 This component uses `spring-jdbc` behind the scenes for the actual SQL
 handling.
@@ -45,7 +45,7 @@ The parameters to the SQL queries are named parameters in the elsql
 mapping files, and maps to corresponding keys from the Camel message, in
 the given precedence:
 
-1. from message body if xref:manual::simple-language.adoc[Simple]
+1. from message body if xref:simple-language.adoc[Simple]
 expression.
 
 2. from message body if its a `java.util.Map`
diff --git a/docs/components/modules/ROOT/pages/facebook-component.adoc b/docs/components/modules/ROOT/pages/facebook-component.adoc
index 9f2cda4..160a405 100644
--- a/docs/components/modules/ROOT/pages/facebook-component.adoc
+++ b/docs/components/modules/ROOT/pages/facebook-component.adoc
@@ -354,7 +354,7 @@ facebook4j.PostUpdate body.
         .to("facebook://postFeed/inBody=postUpdate);
 ----------------------------------------------------
 
-To poll, every 5 sec (You can set the xref:manual::polling-consumer.adoc[polling
+To poll, every 5 sec (You can set the xref:latest@manual::polling-consumer.adoc[polling
 consumer] options by adding a prefix of "consumer"), all statuses on
 your home feed:
 
diff --git a/docs/components/modules/ROOT/pages/file-component.adoc b/docs/components/modules/ROOT/pages/file-component.adoc
index 0b1d096..b886a8c 100644
--- a/docs/components/modules/ROOT/pages/file-component.adoc
+++ b/docs/components/modules/ROOT/pages/file-component.adoc
@@ -263,7 +263,7 @@ bean completes, and thus the route is completed, the file consumer will
 perform the move operation and move the file to the `.done` sub-folder.
 
 The *move* and the *preMove* options are considered as a directory name
-(though if you use an expression such as xref:manual::file-language.adoc[File Language], or xref:manual::simple-language.adoc[Simple] then the result of the expression
+(though if you use an expression such as xref:file-language.adoc[File Language], or xref:simple-language.adoc[Simple] then the result of the expression
 evaluation is the file name to be used - eg if you set
 
 [source]
@@ -271,7 +271,7 @@ evaluation is the file name to be used - eg if you set
 move=../backup/copy-of-${file:name}
 ----
 
-then that's using the xref:manual::file-language.adoc[File Language] which we
+then that's using the xref:file-language.adoc[File Language] which we
 use return the file name to be used), which can be either relative or
 absolute. If relative, the directory is created as a sub-folder from
 within the folder where the file was consumed.
@@ -309,10 +309,10 @@ processed and after it's processed, it's moved to the `.done` folder.
 
 The *move* and *preMove* options
 are Expression-based, so we have the full power of
-the xref:manual::file-language.adoc[File Language] to do advanced configuration
+the xref:file-language.adoc[File Language] to do advanced configuration
 of the directory and name pattern. +
  Camel will, in fact, internally convert the directory name you enter
-into a xref:manual::file-language.adoc[File Language] expression. So when we
+into a xref:file-language.adoc[File Language] expression. So when we
 enter `move=.done` Camel will convert this into:
 `\${file:parent}/.done/${file:onlyname}`. This is only done if
 Camel detects that you have not provided a $\{ } in the option value
@@ -335,7 +335,7 @@ choice. For example to move the files in an error folder with a
 timestamp you can use
 `moveFailed=/error/${``file:name.noext``}-${date:now:yyyyMMddHHmmssSSS}.${``file:ext`}.
 
-See more examples at xref:manual::file-language.adoc[File Language]
+See more examples at xref:file-language.adoc[File Language]
 
 == Message Headers
 
@@ -349,7 +349,7 @@ The following headers are supported by this component:
 
 |`CamelFileName` |Specifies the name of the file to write (relative to the endpoint
 directory). This name can be a `String`; a `String` with a
-xref:manual::file-language.adoc[File Language] or xref:manual::simple-language.adoc[Simple]
+xref:file-language.adoc[File Language] or xref:simple-language.adoc[Simple]
 expression; or an Expression object. If it's
 `null` then Camel will auto-generate a filename based on the message
 unique ID.
@@ -556,8 +556,8 @@ from("direct:report").to("file:target/reports/?fileName=report.txt");
 == Filename Expression
 
 Filename can be set either using the *expression* option or as a
-string-based xref:manual::file-language.adoc[File Language] expression in the
-`CamelFileName` header. See the xref:manual::file-language.adoc[File Language]
+string-based xref:file-language.adoc[File Language] expression in the
+`CamelFileName` header. See the xref:file-language.adoc[File Language]
 for syntax and samples.
 
 [[File2-Consumingfilesfromfolderswhereothersdropfilesdirectly]]
@@ -840,7 +840,7 @@ today's date as a sub-folder name:
 from("file://inbox?move=backup/${date:now:yyyyMMdd}/${file:name}").to("...");
 ----
 
-See xref:manual::file-language.adoc[File Language] for more samples.
+See xref:file-language.adoc[File Language] for more samples.
 
 == Avoiding reading the same file more than once (idempotent consumer)
 
@@ -1037,7 +1037,7 @@ Registry for a bean with the ID, `mySorter`.
 === Sorting using sortBy
 
 Camel supports pluggable sorting strategies. This strategy it to use the
-xref:manual::file-language.adoc[File Language] to configure the sorting. The
+xref:file-language.adoc[File Language] to configure the sorting. The
 `sortBy` option is configured as follows:
 
 [source]
@@ -1061,7 +1061,7 @@ This will sort by file name, you can reverse the order by prefixing
 sortBy=reverse:file:name
 ----
 
-As we have the full power of xref:manual::file-language.adoc[File Language] we
+As we have the full power of xref:file-language.adoc[File Language] we
 can use some of the other parameters, so if we want to sort by file size
 we do:
 
@@ -1105,7 +1105,7 @@ sortBy=file:modified;file:name
 Now there is an issue here, can you spot it? Well the modified timestamp
 of the file is too fine as it will be in milliseconds, but what if we
 want to sort by date only and then subgroup by name? +
- Well as we have the true power of xref:manual::file-language.adoc[File Language] we can use its date command that supports patterns. So this
+ Well as we have the true power of xref:file-language.adoc[File Language] we can use its date command that supports patterns. So this
 can be solved as:
 
 [source]
diff --git a/docs/components/modules/ROOT/pages/grape-component.adoc b/docs/components/modules/ROOT/pages/grape-component.adoc
index 8e73fea..6386acd 100644
--- a/docs/components/modules/ROOT/pages/grape-component.adoc
+++ b/docs/components/modules/ROOT/pages/grape-component.adoc
@@ -138,7 +138,7 @@ By default Camel Grape component operates on the String payloads:
 producerTemplate.sendBody("grape:defaultMavenCoordinates", "org.apache.camel/camel-ftp/2.15.2");
 ------------------------------------------------------------------------------------------------
 
-But of course Camel build-in xref:manual::type-converter.adoc[type conversion
+But of course Camel build-in xref:latest@manual::type-converter.adoc[type conversion
 API] can perform the automatic data type transformations for you. In the
 example below Camel automatically converts binary payload into the
 String:
diff --git a/docs/components/modules/ROOT/pages/groovy-language.adoc b/docs/components/modules/ROOT/pages/groovy-language.adoc
index 3e3f0b2..d4b3f72 100644
--- a/docs/components/modules/ROOT/pages/groovy-language.adoc
+++ b/docs/components/modules/ROOT/pages/groovy-language.adoc
@@ -7,7 +7,7 @@
 Camel supports http://groovy.codehaus.org/[Groovy] among other
 Scripting Languages to allow an
 Expression or Predicate to be
-used in the DSL or xref:manual::xml-configuration.adoc[Xml
+used in the DSL or xref:latest@manual::xml-configuration.adoc[Xml
 Configuration].
 
 To use a Groovy expression use the following Java code
@@ -18,7 +18,7 @@ To use a Groovy expression use the following Java code
 ---------------------------------------
 
 For example you could use the *groovy* function to create an
-Predicate in a xref:manual::filter-eip.adoc[Message Filter] or as an Expression for a
+Predicate in a xref:latest@manual:eips:filter-eip.adoc[Message Filter] or as an Expression for a
 Recipient List
 
 == Groovy Options
diff --git a/docs/components/modules/ROOT/pages/http-component.adoc b/docs/components/modules/ROOT/pages/http-component.adoc
index d81bae8..e69f240 100644
--- a/docs/components/modules/ROOT/pages/http-component.adoc
+++ b/docs/components/modules/ROOT/pages/http-component.adoc
@@ -571,7 +571,7 @@ behavior.
 Using the JSSE Configuration Utility
 
 The HTTP component supports SSL/TLS configuration
-through the xref:manual::camel-configuration-utilities.adoc[Camel JSSE
+through the xref:latest@manual::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/docs/components/modules/ROOT/pages/irc-component.adoc b/docs/components/modules/ROOT/pages/irc-component.adoc
index a67b554..6e343c9 100644
--- a/docs/components/modules/ROOT/pages/irc-component.adoc
+++ b/docs/components/modules/ROOT/pages/irc-component.adoc
@@ -157,7 +157,7 @@ The component supports 5 options, which are listed below.
 === Using the JSSE Configuration Utility
 
 The IRC component supports SSL/TLS configuration
-through the xref:manual::camel-configuration-utilities.adoc[Camel JSSE
+through the xref:latest@manual::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/docs/components/modules/ROOT/pages/jetty-component.adoc b/docs/components/modules/ROOT/pages/jetty-component.adoc
index bf13076..984e1f5 100644
--- a/docs/components/modules/ROOT/pages/jetty-component.adoc
+++ b/docs/components/modules/ROOT/pages/jetty-component.adoc
@@ -266,7 +266,7 @@ If you need to expose a Jetty endpoint on all network interfaces, the
 `0.0.0.0` address should be used.
 
 To listen across an entire URI prefix, see
-xref:manual::faq/how-do-i-let-jetty-match-wildcards.adoc[How do I let Jetty match wildcards].
+xref:latest@manual::faq/how-do-i-let-jetty-match-wildcards.adoc[How do I let Jetty match wildcards].
 
 If you actually want to expose routes by HTTP and already have a
 Servlet, you should instead refer to the
@@ -286,7 +286,7 @@ Jetty component will copy the HTTP request parameter, `one` to the
 exchange's `in.header`. We can then use the `simple` language to route
 exchanges that contain this header to a specific endpoint and all others
 to another. If we used a language more powerful than
-xref:manual::simple-language.adoc[Simple] (such as xref:ognl-language.adoc[OGNL])
+xref:simple-language.adoc[Simple] (such as xref:ognl-language.adoc[OGNL])
 we could also test for the parameter value and do routing based on the
 header value as well.
 
@@ -329,7 +329,7 @@ public void process(Exchange exchange) throws Exception {
 Using the JSSE Configuration Utility
 
 The Jetty component supports SSL/TLS configuration
-through the xref:manual::camel-configuration-utilities.adoc[Camel JSSE
+through the xref:latest@manual::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/docs/components/modules/ROOT/pages/jms-component.adoc b/docs/components/modules/ROOT/pages/jms-component.adoc
index 2cdcec5..9a37d72 100644
--- a/docs/components/modules/ROOT/pages/jms-component.adoc
+++ b/docs/components/modules/ROOT/pages/jms-component.adoc
@@ -571,7 +571,7 @@ from("file://orders").
 
 === Using Annotations
 
-Camel also has annotations so you can use xref:manual::pojo-consuming.adoc[POJO
+Camel also has annotations so you can use xref:latest@manual::pojo-consuming.adoc[POJO
 Consuming] and POJO Producing.
 
 === Spring DSL sample
@@ -600,7 +600,7 @@ the documentation.
 
 Normally, when using xref:jms-component.adoc[JMS] as the transport, it only
 transfers the body and headers as the payload. If you want to use
-xref:jms-component.adoc[JMS] with a xref:manual::dead-letter-channel.adoc[Dead Letter
+xref:jms-component.adoc[JMS] with a xref:latest@manual::dead-letter-channel.adoc[Dead Letter
 Channel], using a JMS queue as the Dead Letter Queue, then normally the
 caused Exception is not stored in the JMS message. You can, however, use
 the `transferExchange` option on the JMS dead letter queue to instruct
@@ -1307,7 +1307,7 @@ Transactions and [Request Reply] over JMS
 When using Request Reply over JMS you cannot
 use a single transaction; JMS will not send any messages until a commit
 is performed, so the server side won't receive anything at all until the
-transaction commits. Therefore to use xref:manual::requestReply-eip.adoc[Request
+transaction commits. Therefore to use xref:latest@manual:eips:requestReply-eip.adoc[Request
 Reply] you must commit a transaction after sending the request and then
 use a separate transaction for receiving the response.
 
diff --git a/docs/components/modules/ROOT/pages/language-component.adoc b/docs/components/modules/ROOT/pages/language-component.adoc
index c674bcd..bebf904 100644
--- a/docs/components/modules/ROOT/pages/language-component.adoc
+++ b/docs/components/modules/ROOT/pages/language-component.adoc
@@ -13,7 +13,7 @@ to an endpoint which executes a script by any of the supported
 Languages in Camel. +
  By having a component to execute language scripts, it allows more
 dynamic routing capabilities. For example by using the
-Routing Slip or xref:manual::dynamic-router.adoc[Dynamic
+Routing Slip or xref:latest@manual:eips:dynamic-router.adoc[Dynamic
 Router] EIPs you can send messages to `language` endpoints where the
 script is dynamic defined as well.
 
@@ -139,7 +139,7 @@ script configured on the endpoint.
 
 == Examples
 
-For example you can use the xref:manual::simple-language.adoc[Simple] language to
+For example you can use the xref:simple-language.adoc[Simple] language to
 Message Translator a message:
 
 In case you want to convert the message body type you can do this as
diff --git a/docs/components/modules/ROOT/pages/lzf-dataformat.adoc b/docs/components/modules/ROOT/pages/lzf-dataformat.adoc
index 42e264f..cc3fee1 100644
--- a/docs/components/modules/ROOT/pages/lzf-dataformat.adoc
+++ b/docs/components/modules/ROOT/pages/lzf-dataformat.adoc
@@ -5,7 +5,7 @@
 *Since Camel 2.17*
 
 The
-LZF xref:manual::data-format.adoc[Data Format] is a message compression
+LZF xref:latest@manual::data-format.adoc[Data Format] is a message compression
 and de-compression format. It uses the
 LZF deflate algorithm. Messages marshalled using LZF compression can be
 unmarshalled using LZF decompression just prior to being consumed at the
diff --git a/docs/components/modules/ROOT/pages/mail-component.adoc b/docs/components/modules/ROOT/pages/mail-component.adoc
index b092852..c7cd047 100644
--- a/docs/components/modules/ROOT/pages/mail-component.adoc
+++ b/docs/components/modules/ROOT/pages/mail-component.adoc
@@ -349,7 +349,7 @@ configuration.
 === Using the JSSE Configuration Utility
 
 The mail component supports SSL/TLS configuration
-through the xref:manual::camel-configuration-utilities.adoc[Camel JSSE
+through the xref:latest@manual::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/docs/components/modules/ROOT/pages/mock-component.adoc b/docs/components/modules/ROOT/pages/mock-component.adoc
index 9f4d8ff..e537504 100644
--- a/docs/components/modules/ROOT/pages/mock-component.adoc
+++ b/docs/components/modules/ROOT/pages/mock-component.adoc
@@ -13,7 +13,7 @@ notoriously difficult. The xref:mock-component.adoc[Mock], xref:mock-component.a
 and xref:dataset-component.adoc[DataSet] endpoints work great with the
 Camel Testing Framework to simplify your unit and
 integration testing using
-xref:manual::enterprise-integration-patterns.adoc[Enterprise Integration
+xref:latest@manual::enterprise-integration-patterns.adoc[Enterprise Integration
 Patterns] and Camel's large range of Components
 together with the powerful Bean Integration.
 
diff --git a/docs/components/modules/ROOT/pages/mvel-language.adoc b/docs/components/modules/ROOT/pages/mvel-language.adoc
index 5b4cffc..024d425 100644
--- a/docs/components/modules/ROOT/pages/mvel-language.adoc
+++ b/docs/components/modules/ROOT/pages/mvel-language.adoc
@@ -99,7 +99,7 @@ The component supports 6 options, which are listed below.
 
 == Samples
 
-For example you could use Mvel inside a xref:manual::filter-eip.adoc[Message
+For example you could use Mvel inside a xref:latest@manual:eips:filter-eip.adoc[Message
 Filter] in XML
 
 [source,java]
diff --git a/docs/components/modules/ROOT/pages/nagios-component.adoc b/docs/components/modules/ROOT/pages/nagios-component.adoc
index a0fc54d..5dc35b1 100644
--- a/docs/components/modules/ROOT/pages/nagios-component.adoc
+++ b/docs/components/modules/ROOT/pages/nagios-component.adoc
@@ -189,6 +189,6 @@ Nagios. For example we can enable this from Java as follows:
 
 In Spring XML its just a matter of defining a Spring bean with the type
 `EventNotifier` and Camel will pick it up as documented here:
-xref:manual::advanced-configuration-of-camelcontext-using-spring.adoc[Advanced
+xref:latest@manual::advanced-configuration-of-camelcontext-using-spring.adoc[Advanced
 configuration of CamelContext using Spring].
 
diff --git a/docs/components/modules/ROOT/pages/netty-component.adoc b/docs/components/modules/ROOT/pages/netty-component.adoc
index d3ee56a..b481c86 100644
--- a/docs/components/modules/ROOT/pages/netty-component.adoc
+++ b/docs/components/modules/ROOT/pages/netty-component.adoc
@@ -422,7 +422,7 @@ RouteBuilder builder = new RouteBuilder() {
 Using the JSSE Configuration Utility
 
 The Netty component supports SSL/TLS configuration
-through the xref:manual::camel-configuration-utilities.adoc[Camel JSSE
+through the xref:latest@manual::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/docs/components/modules/ROOT/pages/ognl-language.adoc b/docs/components/modules/ROOT/pages/ognl-language.adoc
index a783af3..ac826ef 100644
--- a/docs/components/modules/ROOT/pages/ognl-language.adoc
+++ b/docs/components/modules/ROOT/pages/ognl-language.adoc
@@ -99,7 +99,7 @@ The component supports 2 options, which are listed below.
 
 == Samples
 
-For example you could use OGNL inside a xref:manual::filter-eip.adoc[Message
+For example you could use OGNL inside a xref:latest@manual:eips:filter-eip.adoc[Message
 Filter] in XML
 
 [source,java]
diff --git a/docs/components/modules/ROOT/pages/paho-component.adoc b/docs/components/modules/ROOT/pages/paho-component.adoc
index 4653c98..b770ffd 100644
--- a/docs/components/modules/ROOT/pages/paho-component.adoc
+++ b/docs/components/modules/ROOT/pages/paho-component.adoc
@@ -222,7 +222,7 @@ byte[] payload = "message".getBytes();
 producerTemplate.sendBody("paho:topic", payload);
 ----
 
-But of course Camel build-in xref:manual::type-converter.adoc[type conversion
+But of course Camel build-in xref:latest@manual::type-converter.adoc[type conversion
 API] can perform the automatic data type transformations for you. In the
 example below Camel automatically converts binary payload into `String`
 (and conversely):
diff --git a/docs/components/modules/ROOT/pages/properties-component.adoc b/docs/components/modules/ROOT/pages/properties-component.adoc
index f500ea5..b7152b2 100644
--- a/docs/components/modules/ROOT/pages/properties-component.adoc
+++ b/docs/components/modules/ROOT/pages/properties-component.adoc
@@ -44,7 +44,7 @@ This works much like you would do if using Spring's
 `<property-placeholder>` tag. However Spring have a limitation which
 prevents 3rd party frameworks to leverage Spring property placeholders
 to the fullest. See more at
-xref:manual::faq/how-do-i-use-spring-property-placeholder-with-camel-xml.adoc[How do
+xref:latest@manual::faq/how-do-i-use-spring-property-placeholder-with-camel-xml.adoc[How do
 I use Spring Property Placeholder with Camel XML].
 
 [TIP]
@@ -282,9 +282,9 @@ ProducerTemplate for example:
 template.sendBody("{{cool.start}}", "Hello World");
 ----
 
-== Example with xref:manual::simple-language.adoc[Simple] language
+== Example with xref:simple-language.adoc[Simple] language
 
-The xref:manual::simple-language.adoc[Simple] language now also support using property
+The xref:simple-language.adoc[Simple] language now also support using property
 placeholders, for example in the route below:
 
 [source,java]
@@ -541,7 +541,7 @@ placeholder notation with `{{` and `}}`.
 == Clashing Spring property placeholders with Camels Simple language
 
 Take notice when using Spring bridging placeholder then the spring `${ }`
-syntax clashes with the xref:manual::simple-language.adoc[Simple] in Camel, and therefore
+syntax clashes with the xref:simple-language.adoc[Simple] in Camel, and therefore
 take care. For example:
 
 [source,xml]
@@ -552,7 +552,7 @@ take care. For example:
 ----
 
 clashes with Spring property placeholders, and you should use `$simple{ }`
-to indicate using the xref:manual::simple-language.adoc[Simple] language in Camel.
+to indicate using the xref:simple-language.adoc[Simple] language in Camel.
 
 [source,xml]
 ----
diff --git a/docs/components/modules/ROOT/pages/quartz-component.adoc b/docs/components/modules/ROOT/pages/quartz-component.adoc
index 0f2bfa7..10d3e94 100644
--- a/docs/components/modules/ROOT/pages/quartz-component.adoc
+++ b/docs/components/modules/ROOT/pages/quartz-component.adoc
@@ -412,7 +412,7 @@ but it does not want to be fired now.
 
 The xref:quartz-component.adoc[Quartz] component provides a
 Polling Consumer scheduler which allows to
-use cron based scheduling for xref:manual::polling-consumer.adoc[Polling
+use cron based scheduling for xref:latest@manual::polling-consumer.adoc[Polling
 Consumer] such as the File and FTP
 consumers.
 
diff --git a/docs/components/modules/ROOT/pages/simple-language.adoc b/docs/components/modules/ROOT/pages/simple-language.adoc
index a06931a..7b1e4fa 100644
--- a/docs/components/modules/ROOT/pages/simple-language.adoc
+++ b/docs/components/modules/ROOT/pages/simple-language.adoc
@@ -9,17 +9,17 @@ created, but has since grown more powerful. It is primarily intended for
 being a really small and simple language for evaluating
 Expressions and Predicates
 without requiring any new dependencies or knowledge of
-xref:components::xpath-language.adoc[XPath]; so it is ideal for testing in camel-core. The
+xref:xpath-language.adoc[XPath]; so it is ideal for testing in camel-core. The
 idea was to cover 95% of the common use cases when you need a little bit
 of expression based script in your Camel routes.
 
 However for much more complex use cases you are generally recommended to
 choose a more expressive and powerful language such as:
 
-* xref:components::groovy-language.adoc[Groovy]
-* xref:components::spel-language.adoc[SpEL]
-* xref:components::mvel-component.adoc[MVEL]
-* xref:components::ognl-language.adoc[OGNL]
+* xref:groovy-language.adoc[Groovy]
+* xref:spel-language.adoc[SpEL]
+* xref:mvel-component.adoc[MVEL]
+* xref:ognl-language.adoc[OGNL]
 
 The simple language uses `${body`} placeholders for complex expressions
 where the expression contains constant literals. The $\{ } placeholders
@@ -175,9 +175,9 @@ Command accepts offsets such as: *now-24h* or *in.header.xxx+1h* or even *now+1h
 
 |date-with-timezone:_command:timezone:pattern_ |String |Date formatting using `java.text.SimpleDataFormat` timezones and patterns.
 
-|bean:_bean expression_ |Object |Invoking a bean expression using the xref:components::bean-component.adoc[Bean] language.
+|bean:_bean expression_ |Object |Invoking a bean expression using the xref:bean-component.adoc[Bean] language.
 Specifying a method name you must use dot as separator. We also support
-the ?method=methodname syntax that is used by the xref:components::bean-component.adoc[Bean]
+the ?method=methodname syntax that is used by the xref:bean-component.adoc[Bean]
 component.
 
 |`properties:key:default` |String |Lookup a property with the given key. If the key does
@@ -742,7 +742,7 @@ from("direct:order")
 ----
 
 We can use the `?method=methodname` option that we are familiar with the
-xref:components::bean-component.adoc[Bean] component itself:
+xref:bean-component.adoc[Bean] component itself:
 
 [source,java]
 ----
diff --git a/docs/components/modules/ROOT/pages/spel-language.adoc b/docs/components/modules/ROOT/pages/spel-language.adoc
index f9003ea..7cf9669 100644
--- a/docs/components/modules/ROOT/pages/spel-language.adoc
+++ b/docs/components/modules/ROOT/pages/spel-language.adoc
@@ -116,8 +116,8 @@ can invoke the "bar" method on this bean like this:
 
 === SpEL in enterprise integration patterns
 
-You can use SpEL as an expression for xref:manual::recipientList-eip.adoc[Recipient
-List] or as a predicate inside a xref:manual::filter-eip.adoc[Message
+You can use SpEL as an expression for xref:latest@manual:eips:recipientList-eip.adoc[Recipient
+List] or as a predicate inside a xref:latest@manual:eips:filter-eip.adoc[Message
 Filter]:
 
 [source,xml]
diff --git a/docs/components/modules/ROOT/pages/spring-boot.adoc b/docs/components/modules/ROOT/pages/spring-boot.adoc
index e87352a..8ec9254 100644
--- a/docs/components/modules/ROOT/pages/spring-boot.adoc
+++ b/docs/components/modules/ROOT/pages/spring-boot.adoc
@@ -43,7 +43,7 @@ To use the starter, add the following to your spring boot pom.xml file:
 [source,xml]
 ----
 <dependency>
-    <groupId>org.apache.camel</groupId>
+    <groupId>org.apache.camel.springboot</groupId>
     <artifactId>camel-spring-boot-starter</artifactId>
     <version>${camel.version}</version> <!-- use the same version as your Camel core version -->
 </dependency>
@@ -618,7 +618,7 @@ https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-tes
 
 To get the `CamelContext` or `ProducerTemplate`, you can inject them into the class in the normal Spring manner, using `@Autowired`.
 
-You can also use xref:manual::spring-testing.adoc[Camel Spring test annotations] to configure tests declaratively. This example uses the `@MockEndpoints` annotation to auto-mock an endpoint:
+You can also use xref:latest@manual::spring-testing.adoc[Camel Spring test annotations] to configure tests declaratively. This example uses the `@MockEndpoints` annotation to auto-mock an endpoint:
 
 [source,java]
 ----
@@ -668,7 +668,7 @@ https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-tes
 
 To get the `CamelContext` or `ProducerTemplate`, you can inject them into the class in the normal Spring manner, using `@Autowired`.
 
-You can also use xref:manual::spring-testing.adoc[Camel Spring test annotations] to configure tests declaratively. This example uses the `@MockEndpoints` annotation to auto-mock an endpoint:
+You can also use xref:latest@manual::spring-testing.adoc[Camel Spring test annotations] to configure tests declaratively. This example uses the `@MockEndpoints` annotation to auto-mock an endpoint:
 
 [source,java]
 ----
diff --git a/docs/components/modules/ROOT/pages/spring-event-component.adoc b/docs/components/modules/ROOT/pages/spring-event-component.adoc
index eddee15..5daf0b7 100644
--- a/docs/components/modules/ROOT/pages/spring-event-component.adoc
+++ b/docs/components/modules/ROOT/pages/spring-event-component.adoc
@@ -12,8 +12,8 @@ The Spring Event component provides access to the Spring
 `ApplicationEvent` objects. This allows you to publish
 `ApplicationEvent` objects to a Spring `ApplicationContext` or to
 consume them. You can then use
-xref:manual::enterprise-integration-patterns.adoc[Enterprise Integration
-Patterns] to process them such as xref:manual::filter-eip.adoc[Message
+xref:latest@manual::enterprise-integration-patterns.adoc[Enterprise Integration
+Patterns] to process them such as xref:latest@manual:eips:filter-eip.adoc[Message
 Filter].
 
 == URI format
diff --git a/docs/components/modules/ROOT/pages/spring.adoc b/docs/components/modules/ROOT/pages/spring.adoc
index 22680a9..2c0751b 100644
--- a/docs/components/modules/ROOT/pages/spring.adoc
+++ b/docs/components/modules/ROOT/pages/spring.adoc
@@ -10,7 +10,7 @@ Spring Framework in a number of ways.
 instances or the CamelContext instance itself
 and auto-expose Spring beans as components and endpoints.
 * Camel works with Spring XML processing with the XML Configuration
-* Camel Spring XML Schema's is defined at xref:manual::xml-reference.adoc[XML
+* Camel Spring XML Schema's is defined at xref:latest@manual::xml-reference.adoc[XML
 Reference]
 * Camel provides powerful Bean Integration
 with any bean defined in a Spring ApplicationContext
@@ -20,7 +20,7 @@ components like xref:jms-component.adoc[JMS] and xref:jms-component.adoc[JPA]
 Type Converter support for Spring Resources etc
 * Allows you to reuse the Spring Testing
 framework to simplify your unit and integration testing using
-xref:manual::enterprise-integration-patterns.adoc[Enterprise Integration
+xref:latest@manual::enterprise-integration-patterns.adoc[Enterprise Integration
 Patterns] and Camel's powerful xref:mock-component.adoc[Mock] and
 xref:test.adoc[Test] endpoints
 
@@ -89,7 +89,7 @@ inline namespace declaration:
 === Advanced configuration using Spring
 
 See more details at
-xref:manual::advanced-configuration-of-camelcontext-using-spring.adoc[Advanced
+xref:latest@manual::advanced-configuration-of-camelcontext-using-spring.adoc[Advanced
 configuration of CamelContext using Spring]
 
 === Using Java Code
@@ -210,7 +210,7 @@ above in the `<packageScan>` documentation.
 
 == How do I import routes from other XML files
 
-When defining routes in Camel using xref:manual::xml-configuration.adoc[Xml
+When defining routes in Camel using xref:latest@manual::xml-configuration.adoc[Xml
 Configuration] you may want to define some routes in other XML files.
 For example you may have many routes and it may help to maintain the
 application if some of the routes are in separate XML files. You may
@@ -365,14 +365,14 @@ the above example), then you can refer to the component using
 SpringCamelContext lazily fetching components from the spring context
 for the scheme name you use for Endpoint URIs.
 
-For more detail see xref:manual::faq/how-do-i-configure-endpoints.adoc[Configuring
+For more detail see xref:latest@manual::faq/how-do-i-configure-endpoints.adoc[Configuring
 Endpoints and Components].
 
 == CamelContextAware
 
 If you want to be injected with the CamelContext
 in your POJO just implement the `CamelContextAware` interface; then when Spring creates your POJO the CamelContext will be
-injected into your POJO. Also see the xref:manual::bean-integration.adoc[Bean
+injected into your POJO. Also see the xref:latest@manual::bean-integration.adoc[Bean
 Integration] for further injections.
 
 == Integration Testing
diff --git a/docs/components/modules/ROOT/pages/test-spring.adoc b/docs/components/modules/ROOT/pages/test-spring.adoc
index b5d4ed0..f4d52c9 100644
--- a/docs/components/modules/ROOT/pages/test-spring.adoc
+++ b/docs/components/modules/ROOT/pages/test-spring.adoc
@@ -10,7 +10,7 @@ Allows to test Camel with Spring applications such as Spring XML files or Spring
 This documentation is old and needs to be updated
 ====
 
-xref:manual::testing.adoc[Testing] is a crucial part of any development or integration work. The Spring Framework offers a number of features that makes it easy to test while using Spring for Inversion of Control which works with JUnit 3.x and JUnit 4.x.
+xref:latest@manual::testing.adoc[Testing] is a crucial part of any development or integration work. The Spring Framework offers a number of features that makes it easy to test while using Spring for Inversion of Control which works with JUnit 3.x and JUnit 4.x.
 
 We can use Spring for IoC and the Camel xref:components::mock-component.adoc[Mock] and xref:components::test.adoc[Test] endpoints to create sophisticated integration/unit tests that are easy to run and debug inside your IDE.  There are three supported approaches for testing with Spring in Camel.
 [width="100%",cols="1,1,4,1",options="header",]
diff --git a/docs/components/modules/ROOT/pages/timer-component.adoc b/docs/components/modules/ROOT/pages/timer-component.adoc
index f4bc766..731d177 100644
--- a/docs/components/modules/ROOT/pages/timer-component.adoc
+++ b/docs/components/modules/ROOT/pages/timer-component.adoc
@@ -34,7 +34,7 @@ advanced scheduling.
 
 TIP:*Specify time in human friendly format*
 You can specify the time in
-xref:manual::faq/how-do-i-specify-time-period-in-a-human-friendly-syntax.adoc[human
+xref:latest@manual::faq/how-do-i-specify-time-period-in-a-human-friendly-syntax.adoc[human
 friendly syntax].
 
 
diff --git a/docs/components/modules/ROOT/pages/undertow-component.adoc b/docs/components/modules/ROOT/pages/undertow-component.adoc
index 2786c24..f260dbb 100644
--- a/docs/components/modules/ROOT/pages/undertow-component.adoc
+++ b/docs/components/modules/ROOT/pages/undertow-component.adoc
@@ -237,7 +237,7 @@ If you need to expose an Undertow endpoint on all network interfaces, the
 `0.0.0.0` address should be used.
 
 To listen across an entire URI prefix, see
-xref:manual::faq/how-do-i-let-jetty-match-wildcards.adoc[How do I let Jetty match wildcards].
+xref:latest@manual::faq/how-do-i-let-jetty-match-wildcards.adoc[How do I let Jetty match wildcards].
 
 If you actually want to expose routes by HTTP and already have a
 Servlet, you should instead refer to the
diff --git a/docs/components/modules/ROOT/pages/univocity-csv-dataformat.adoc b/docs/components/modules/ROOT/pages/univocity-csv-dataformat.adoc
index c8b7ed5..434d68f 100644
--- a/docs/components/modules/ROOT/pages/univocity-csv-dataformat.adoc
+++ b/docs/components/modules/ROOT/pages/univocity-csv-dataformat.adoc
@@ -4,7 +4,7 @@
 
 *Since Camel 2.15*
 
-This xref:manual::data-format.adoc[Data
+This xref:latest@manual::data-format.adoc[Data
 Format] uses http://www.univocity.com/pages/about-parsers[uniVocity-parsers]
 for reading and writing 3 kinds of tabular data text files:
 
diff --git a/docs/components/modules/ROOT/pages/univocity-fixed-dataformat.adoc b/docs/components/modules/ROOT/pages/univocity-fixed-dataformat.adoc
index d0708dd..414a827 100644
--- a/docs/components/modules/ROOT/pages/univocity-fixed-dataformat.adoc
+++ b/docs/components/modules/ROOT/pages/univocity-fixed-dataformat.adoc
@@ -4,7 +4,7 @@
 
 *Since Camel 2.15*
 
-This xref:manual::data-format.adoc[Data
+This xref:latest@manual::data-format.adoc[Data
 Format] uses http://www.univocity.com/pages/about-parsers[uniVocity-parsers]
 for reading and writing 3 kinds of tabular data text files:
 
diff --git a/docs/components/modules/ROOT/pages/univocity-tsv-dataformat.adoc b/docs/components/modules/ROOT/pages/univocity-tsv-dataformat.adoc
index cccfec9..40354aa 100644
--- a/docs/components/modules/ROOT/pages/univocity-tsv-dataformat.adoc
+++ b/docs/components/modules/ROOT/pages/univocity-tsv-dataformat.adoc
@@ -4,7 +4,7 @@
 
 *Since Camel 2.15*
 
-This xref:manual::data-format.adoc[Data
+This xref:latest@manual::data-format.adoc[Data
 Format] uses http://www.univocity.com/pages/about-parsers[uniVocity-parsers]
 for reading and writing 3 kinds of tabular data text files:
 
diff --git a/docs/components/modules/ROOT/pages/websocket-component.adoc b/docs/components/modules/ROOT/pages/websocket-component.adoc
index d8fcde0..43f4cda 100644
--- a/docs/components/modules/ROOT/pages/websocket-component.adoc
+++ b/docs/components/modules/ROOT/pages/websocket-component.adoc
@@ -213,7 +213,7 @@ from("activemq:topic:newsTopic")
 === Using the JSSE Configuration Utility
 
 The WebSocket component supports SSL/TLS configuration
-through the xref:manual::camel-configuration-utilities.adoc[Camel JSSE
+through the xref:latest@manual::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/docs/components/modules/ROOT/pages/xmlsecurity-component.adoc b/docs/components/modules/ROOT/pages/xmlsecurity-component.adoc
index 03d49a3..19a3a19 100644
--- a/docs/components/modules/ROOT/pages/xmlsecurity-component.adoc
+++ b/docs/components/modules/ROOT/pages/xmlsecurity-component.adoc
@@ -13,7 +13,7 @@ signatures as described in the W3C standard
 http://www.w3.org/TR/xmldsig-core/[XML Signature Syntax and Processing]
 or as described in the successor
 http://www.w3.org/TR/xmldsig-core1/[version 1.1]. For XML Encryption
-support, please refer to the XML Security xref:manual::data-format.adoc[Data
+support, please refer to the XML Security xref:latest@manual::data-format.adoc[Data
 Format].
 
 You can find an introduction to XML signature
diff --git a/docs/components/modules/ROOT/pages/xpath-language.adoc b/docs/components/modules/ROOT/pages/xpath-language.adoc
index ac26f9e..32dd2a1 100644
--- a/docs/components/modules/ROOT/pages/xpath-language.adoc
+++ b/docs/components/modules/ROOT/pages/xpath-language.adoc
@@ -6,9 +6,9 @@
 
 Camel supports http://www.w3.org/TR/xpath[XPath] to allow an
 Expression or Predicate to be
-used in the DSL or xref:manual::xml-configuration.adoc[Xml
+used in the DSL or xref:latest@manual::xml-configuration.adoc[Xml
 Configuration]. For example you could use XPath to create an
-Predicate in a xref:manual::filter-eip.adoc[Message
+Predicate in a xref:latest@manual:eips:filter-eip.adoc[Message
 Filter] or as an Expression for a
 Recipient List.
 
@@ -162,7 +162,7 @@ exchange:
 |function:properties |key for property |String |To lookup a property using the
 xref:properties-component.adoc[Properties] component (property placeholders).
 
-|function:simple |simple expression |Object |To evaluate a xref:manual::simple-language.adoc[Simple] expression.
+|function:simple |simple expression |Object |To evaluate a xref:simple-language.adoc[Simple] expression.
 |===
 
 CAUTION: `function:properties` and `function:simple` is not supported
@@ -296,7 +296,7 @@ For example
 [source,java]
 ----
 public class Foo {
-    
+
     @MessageDriven(uri = "activemq:my.queue")
     public void doSomething(@MyXPath("/ns1:foo/ns2:bar/text()") String correlationID, @Body String body) {
         // process the inbound message here
@@ -503,8 +503,8 @@ the following:
 
 [source]
 ----
-2012-01-16 13:23:45,878 [stSaxonWithFlag] INFO  XPathBuilder  - Namespaces discovered in message: 
-{xmlns:a=[http://apache.org/camel], DEFAULT=[http://apache.org/default], 
+2012-01-16 13:23:45,878 [stSaxonWithFlag] INFO  XPathBuilder  - Namespaces discovered in message:
+{xmlns:a=[http://apache.org/camel], DEFAULT=[http://apache.org/default],
 xmlns:b=[http://apache.org/camelA, http://apache.org/camelB]}
 ----
 
diff --git a/docs/components/modules/ROOT/pages/xquery-component.adoc b/docs/components/modules/ROOT/pages/xquery-component.adoc
index e118fa3..f13c140 100644
--- a/docs/components/modules/ROOT/pages/xquery-component.adoc
+++ b/docs/components/modules/ROOT/pages/xquery-component.adoc
@@ -10,9 +10,9 @@
 
 Camel supports http://www.w3.org/TR/xquery/[XQuery] to allow an
 Expression or Predicate to be
-used in the DSL or xref:manual::xml-configuration.adoc[Xml
+used in the DSL or xref:latest@manual::xml-configuration.adoc[Xml
 Configuration]. For example you could use XQuery to create an
-Predicate in a xref:manual::filter-eip.adoc[Message
+Predicate in a xref:latest@manual:eips:filter-eip.adoc[Message
 Filter] or as an Expression for a Recipient List.
 
 == Options
diff --git a/docs/components/modules/ROOT/pages/xquery-language.adoc b/docs/components/modules/ROOT/pages/xquery-language.adoc
index e45e3ec..dffa91c 100644
--- a/docs/components/modules/ROOT/pages/xquery-language.adoc
+++ b/docs/components/modules/ROOT/pages/xquery-language.adoc
@@ -6,9 +6,9 @@
 
 Camel supports http://www.w3.org/TR/xquery/[XQuery] to allow an
 Expression or Predicate to be
-used in the DSL or xref:manual::xml-configuration.adoc[Xml
+used in the DSL or xref:latest@manual::xml-configuration.adoc[Xml
 Configuration]. For example you could use XQuery to create an
-Predicate in a xref:manual::filter-eip.adoc[Message
+Predicate in a xref:latest@manual:eips:filter-eip.adoc[Message
 Filter] or as an Expression for a
 Recipient List.
 
diff --git a/docs/components/modules/ROOT/pages/xslt-component.adoc b/docs/components/modules/ROOT/pages/xslt-component.adoc
index 59ff1ac..d45acb3 100644
--- a/docs/components/modules/ROOT/pages/xslt-component.adoc
+++ b/docs/components/modules/ROOT/pages/xslt-component.adoc
@@ -234,7 +234,7 @@ You can explicitly specify `file:` or `classpath:` loading. The two loading type
 == Dynamic stylesheets
 
 To provide a dynamic stylesheet at runtime you can define a dynamic URI.
-See xref:manual::faq/how-to-use-a-dynamic-uri-in-to.adoc[How to use a dynamic URI in
+See xref:latest@manual::faq/how-to-use-a-dynamic-uri-in-to.adoc[How to use a dynamic URI in
 to()] for more information.
 
 == Accessing warnings, errors and fatalErrors from XSLT ErrorListener
diff --git a/docs/components/modules/ROOT/pages/xslt-saxon-component.adoc b/docs/components/modules/ROOT/pages/xslt-saxon-component.adoc
index 575da51..8f6dd69 100644
--- a/docs/components/modules/ROOT/pages/xslt-saxon-component.adoc
+++ b/docs/components/modules/ROOT/pages/xslt-saxon-component.adoc
@@ -283,7 +283,7 @@ With Spring XML:
 == Dynamic stylesheets
 
 To provide a dynamic stylesheet at runtime you can define a dynamic URI.
-See xref:manual::faq/how-to-use-a-dynamic-uri-in-to.adoc[How to use a dynamic URI in
+See xref:latest@manual::faq/how-to-use-a-dynamic-uri-in-to.adoc[How to use a dynamic URI in
 to()] for more information.
 
 == Accessing warnings, errors and fatalErrors from XSLT ErrorListener
diff --git a/docs/components/modules/ROOT/pages/zipkin.adoc b/docs/components/modules/ROOT/pages/zipkin.adoc
index 05de410..f19bb5b 100644
--- a/docs/components/modules/ROOT/pages/zipkin.adoc
+++ b/docs/components/modules/ROOT/pages/zipkin.adoc
@@ -78,7 +78,7 @@ The pattern uses the rules from Intercept.
 |false 
 |Whether to include the Camel message body in the zipkin traces.
 This is not recommended for production usage, or when having big payloads.
-You can limit the size by configuring the xref:manual::faq/how-do-i-set-the-max-chars-when-debug-logging-messages-in-camel.adoc[max
+You can limit the size by configuring the xref:latest@manual::faq/how-do-i-set-the-max-chars-when-debug-logging-messages-in-camel.adoc[max
 debug log size]. 
 
 |includeMessageBodyStreams 
@@ -86,7 +86,7 @@ debug log size].
 |Whether to include message bodies that are stream based in the zipkin traces.
 This requires enabling streamcaching on the routes or globally on the `CamelContext`.
 This is not recommended for production usage, or when having big payloads.
-You can limit the size by configuring the xref:manual::faq/how-do-i-set-the-max-chars-when-debug-logging-messages-in-camel.adoc[max
+You can limit the size by configuring the xref:latest@manual::faq/how-do-i-set-the-max-chars-when-debug-logging-messages-in-camel.adoc[max
 debug log size].  
 
 |===
diff --git a/docs/pom.xml b/docs/pom.xml
index 6bec757..7c61869 100644
--- a/docs/pom.xml
+++ b/docs/pom.xml
@@ -80,18 +80,6 @@
                             <commandlineArgs>${project.basedir}/node/yarn/dist/bin/yarn.js --non-interactive gulp</commandlineArgs>
                         </configuration>
                     </execution>
-                    <execution>
-                        <id>antora-xref-check</id>
-                        <goals>
-                            <goal>exec</goal>
-                        </goals>
-                        <phase>verify</phase>
-                        <configuration>
-                            <executable>${project.basedir}/node/node</executable>
-                            <commandlineArgs>${project.basedir}/node/yarn/dist/bin/yarn.js --non-interactive antora --generator @antora/xref-validator site.yml</commandlineArgs>
-                            <skip>${fastinstall}</skip>
-                        </configuration>
-                    </execution>
                 </executions>
             </plugin>
         </plugins>
diff --git a/docs/user-manual/modules/ROOT/pages/properties-component.adoc b/docs/user-manual/modules/ROOT/pages/properties-component.adoc
index f500ea5..b7152b2 100644
--- a/docs/user-manual/modules/ROOT/pages/properties-component.adoc
+++ b/docs/user-manual/modules/ROOT/pages/properties-component.adoc
@@ -44,7 +44,7 @@ This works much like you would do if using Spring's
 `<property-placeholder>` tag. However Spring have a limitation which
 prevents 3rd party frameworks to leverage Spring property placeholders
 to the fullest. See more at
-xref:manual::faq/how-do-i-use-spring-property-placeholder-with-camel-xml.adoc[How do
+xref:latest@manual::faq/how-do-i-use-spring-property-placeholder-with-camel-xml.adoc[How do
 I use Spring Property Placeholder with Camel XML].
 
 [TIP]
@@ -282,9 +282,9 @@ ProducerTemplate for example:
 template.sendBody("{{cool.start}}", "Hello World");
 ----
 
-== Example with xref:manual::simple-language.adoc[Simple] language
+== Example with xref:simple-language.adoc[Simple] language
 
-The xref:manual::simple-language.adoc[Simple] language now also support using property
+The xref:simple-language.adoc[Simple] language now also support using property
 placeholders, for example in the route below:
 
 [source,java]
@@ -541,7 +541,7 @@ placeholder notation with `{{` and `}}`.
 == Clashing Spring property placeholders with Camels Simple language
 
 Take notice when using Spring bridging placeholder then the spring `${ }`
-syntax clashes with the xref:manual::simple-language.adoc[Simple] in Camel, and therefore
+syntax clashes with the xref:simple-language.adoc[Simple] in Camel, and therefore
 take care. For example:
 
 [source,xml]
@@ -552,7 +552,7 @@ take care. For example:
 ----
 
 clashes with Spring property placeholders, and you should use `$simple{ }`
-to indicate using the xref:manual::simple-language.adoc[Simple] language in Camel.
+to indicate using the xref:simple-language.adoc[Simple] language in Camel.
 
 [source,xml]
 ----
diff --git a/docs/user-manual/modules/ROOT/pages/simple-language.adoc b/docs/user-manual/modules/ROOT/pages/simple-language.adoc
index a06931a..7b1e4fa 100644
--- a/docs/user-manual/modules/ROOT/pages/simple-language.adoc
+++ b/docs/user-manual/modules/ROOT/pages/simple-language.adoc
@@ -9,17 +9,17 @@ created, but has since grown more powerful. It is primarily intended for
 being a really small and simple language for evaluating
 Expressions and Predicates
 without requiring any new dependencies or knowledge of
-xref:components::xpath-language.adoc[XPath]; so it is ideal for testing in camel-core. The
+xref:xpath-language.adoc[XPath]; so it is ideal for testing in camel-core. The
 idea was to cover 95% of the common use cases when you need a little bit
 of expression based script in your Camel routes.
 
 However for much more complex use cases you are generally recommended to
 choose a more expressive and powerful language such as:
 
-* xref:components::groovy-language.adoc[Groovy]
-* xref:components::spel-language.adoc[SpEL]
-* xref:components::mvel-component.adoc[MVEL]
-* xref:components::ognl-language.adoc[OGNL]
+* xref:groovy-language.adoc[Groovy]
+* xref:spel-language.adoc[SpEL]
+* xref:mvel-component.adoc[MVEL]
+* xref:ognl-language.adoc[OGNL]
 
 The simple language uses `${body`} placeholders for complex expressions
 where the expression contains constant literals. The $\{ } placeholders
@@ -175,9 +175,9 @@ Command accepts offsets such as: *now-24h* or *in.header.xxx+1h* or even *now+1h
 
 |date-with-timezone:_command:timezone:pattern_ |String |Date formatting using `java.text.SimpleDataFormat` timezones and patterns.
 
-|bean:_bean expression_ |Object |Invoking a bean expression using the xref:components::bean-component.adoc[Bean] language.
+|bean:_bean expression_ |Object |Invoking a bean expression using the xref:bean-component.adoc[Bean] language.
 Specifying a method name you must use dot as separator. We also support
-the ?method=methodname syntax that is used by the xref:components::bean-component.adoc[Bean]
+the ?method=methodname syntax that is used by the xref:bean-component.adoc[Bean]
 component.
 
 |`properties:key:default` |String |Lookup a property with the given key. If the key does
@@ -742,7 +742,7 @@ from("direct:order")
 ----
 
 We can use the `?method=methodname` option that we are familiar with the
-xref:components::bean-component.adoc[Bean] component itself:
+xref:bean-component.adoc[Bean] component itself:
 
 [source,java]
 ----