You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by zr...@apache.org on 2019/06/22 09:32:21 UTC

[camel] 08/09: link Errors fixed all by using xref: and .adoc

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

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

commit a77fc8ccfa3bedc1792ef7298bd7455c5867d73e
Author: nayananga@acerubuntu18.04 <na...@gmail.com>
AuthorDate: Sat Jun 22 10:35:00 2019 +0530

    link Errors fixed all by using xref: and .adoc
---
 .../modules/ROOT/pages/backlogdebugger.adoc        |   2 +-
 .../modules/ROOT/pages/bam-example.adoc            |   4 +-
 docs/user-manual/modules/ROOT/pages/bam.adoc       |   6 +-
 .../modules/ROOT/pages/batch-consumer.adoc         |   4 +-
 docs/user-manual/modules/ROOT/pages/bean-eip.adoc  |  14 +-
 .../modules/ROOT/pages/bean-integration.adoc       |  12 +-
 docs/user-manual/modules/ROOT/pages/binding.adoc   |  14 +-
 .../modules/ROOT/pages/book-getting-started.adoc   |  10 +-
 docs/user-manual/modules/ROOT/pages/books.adoc     |   4 +-
 .../ROOT/pages/camel-configuration-utilities.adoc  |   4 +-
 .../modules/ROOT/pages/camel-jar-dependencies.adoc |   2 +-
 .../modules/ROOT/pages/camelcontext.adoc           |  10 +-
 docs/user-manual/modules/ROOT/pages/cep.adoc       |   2 +-
 .../user-manual/modules/ROOT/pages/choice-eip.adoc |   6 +-
 .../modules/ROOT/pages/claimCheck-eip.adoc         |   2 +-
 .../ROOT/pages/commercial-camel-offerings.adoc     |   4 +-
 docs/user-manual/modules/ROOT/pages/component.adoc |  26 +--
 .../modules/ROOT/pages/configuring-camel.adoc      |  12 +-
 ...ing-route-startup-ordering-and-autostartup.adoc |  10 +-
 .../ROOT/pages/content-based-router-eip.adoc       |   8 +-
 .../modules/ROOT/pages/content-filter-eip.adoc     |   4 +-
 .../modules/ROOT/pages/correlation-identifier.adoc |  18 +-
 .../modules/ROOT/pages/data-format.adoc            |  28 +--
 .../modules/ROOT/pages/dead-letter-channel.adoc    |  54 ++---
 docs/user-manual/modules/ROOT/pages/debugger.adoc  |   2 +-
 .../modules/ROOT/pages/defaulterrorhandler.adoc    |  10 +-
 docs/user-manual/modules/ROOT/pages/delay-eip.adoc |   2 +-
 .../modules/ROOT/pages/delay-interceptor.adoc      |   2 +-
 .../modules/ROOT/pages/download-archives.adoc      | 212 ++++++++++----------
 docs/user-manual/modules/ROOT/pages/download.adoc  |  16 +-
 docs/user-manual/modules/ROOT/pages/dsl.adoc       |  18 +-
 .../modules/ROOT/pages/dynamicRouter-eip.adoc      |   2 +-
 .../modules/ROOT/pages/endpoint-completer.adoc     |   4 +-
 .../pages/enterprise-integration-patterns.adoc     |   4 +-
 .../modules/ROOT/pages/error-handler.adoc          |   6 +-
 .../ROOT/pages/error-handling-in-camel.adoc        |  42 ++--
 .../modules/ROOT/pages/event-message.adoc          |  16 +-
 docs/user-manual/modules/ROOT/pages/examples.adoc  |  28 +--
 .../modules/ROOT/pages/exception-clause.adoc       |  38 ++--
 .../modules/ROOT/pages/exchange-pattern.adoc       |   2 +-
 .../user-manual/modules/ROOT/pages/expression.adoc |   4 +-
 docs/user-manual/modules/ROOT/pages/faq.adoc       | 222 ++++++++++-----------
 .../pages/faq/can-i-get-commercial-support.adoc    |   2 +-
 .../pages/faq/does-camel-work-on-ibms-jdk.adoc     |   2 +-
 ...ption-javaxnamingnoinitialcontextexception.adoc |   4 +-
 .../faq/exception-orgxmlsaxsaxparseexception.adoc  |   2 +-
 ...an-i-create-a-custom-component-or-endpoint.adoc |   8 +-
 .../pages/faq/how-can-i-get-the-source-code.adoc   |   2 +-
 .../faq/how-can-i-stop-a-route-from-a-route.adoc   |  20 +-
 .../pages/faq/how-do-i-become-a-committer.adoc     |   8 +-
 .../pages/faq/how-do-i-change-the-logging.adoc     |   2 +-
 .../ROOT/pages/faq/how-do-i-compile-the-code.adoc  |   2 +-
 .../pages/faq/how-do-i-configure-endpoints.adoc    |  10 +-
 ...-endpoints-without-the-value-being-encoded.adoc |   6 +-
 ...size-for-producercache-or-producertemplate.adoc |   2 +-
 ...ximum-endpoint-cache-size-for-camelcontext.adoc |   8 +-
 .../ROOT/pages/faq/how-do-i-debug-my-route.adoc    |  10 +-
 .../ROOT/pages/faq/how-do-i-edit-the-website.adoc  |   2 +-
 .../pages/faq/how-do-i-enable-debug-logging.adoc   |   2 +-
 ...en-consuming-for-example-from-a-ftp-server.adoc |   2 +-
 ...how-do-i-import-rests-from-other-xml-files.adoc |   2 +-
 ...ow-do-i-import-routes-from-other-xml-files.adoc |   2 +-
 ...ow-do-i-make-my-jms-endpoint-transactional.adoc |   4 +-
 .../pages/faq/how-do-i-restart-camelcontext.adoc   |   4 +-
 ...-contexttestsupport-class-in-my-unit-tests.adoc |   4 +-
 ...ify-time-period-in-a-human-friendly-syntax.adoc |   2 +-
 ...h-method-to-use-when-using-beans-in-routes.adoc |   6 +-
 ...spring-property-placeholder-with-camel-xml.adoc |   2 +-
 .../how-do-i-use-uris-with-parameters-in-xml.adoc  |   4 +-
 .../pages/faq/how-does-camel-compare-to-mule.adoc  |  12 +-
 .../how-does-camel-compare-to-servicemix-eip.adoc  |   8 +-
 .../faq/how-does-camel-compare-to-servicemix.adoc  |  16 +-
 .../faq/how-does-camel-compare-to-synapse.adoc     |  12 +-
 ...how-does-camel-look-up-beans-and-endpoints.adoc |  16 +-
 .../faq/how-does-camel-work-with-activemq.adoc     |   8 +-
 .../faq/how-does-camel-work-with-servicemix.adoc   |  10 +-
 .../ROOT/pages/faq/how-does-camel-work.adoc        |   2 +-
 .../faq/how-does-the-camel-api-compare-to.adoc     |   4 +-
 ...hould-i-invoke-my-pojos-or-spring-services.adoc |  12 +-
 ...kage-applications-using-camel-and-activemq.adoc |   6 +-
 ...-avoid-sending-some-or-all-message-headers.adoc |   2 +-
 ...f-i-use-servicemix-when-should-i-use-camel.adoc |   8 +-
 .../ROOT/pages/faq/is-camel-ioc-friendly.adoc      |  14 +-
 .../modules/ROOT/pages/faq/is-there-an-ide.adoc    |   8 +-
 ...when-adding-and-removing-routes-at-runtime.adoc |   4 +-
 .../ROOT/pages/faq/running-camel-standalone.adoc   |  20 +-
 ...-activemq-broker-or-in-another-application.adoc |   2 +-
 .../ROOT/pages/faq/using-camel-core-testsjar.adoc  |   2 +-
 .../using-getin-or-getout-methods-on-exchange.adoc |  18 +-
 .../ROOT/pages/faq/what-are-the-dependencies.adoc  |   2 +-
 .../modules/ROOT/pages/faq/what-is-a-router.adoc   |  10 +-
 .../modules/ROOT/pages/faq/what-is-camel.adoc      |  40 ++--
 .../pages/faq/what-platforms-are-supported.adoc    |   2 +-
 .../faq/why-cant-i-use-sign-in-my-password.adoc    |   6 +-
 ...o-many-noclassdeffoundexception-on-startup.adoc |   2 +-
 ...my-message-lose-its-headers-during-routing.adoc |   2 +-
 ...use-too-many-threads-with-producertemplate.adoc |   6 +-
 ...-file-consumer-use-the-camel-error-handler.adoc |  14 +-
 .../pages/faq/why-is-my-message-body-empty.adoc    |   2 +-
 ...is-my-processor-not-showing-up-in-jconsole.adoc |   2 +-
 .../modules/ROOT/pages/faq/why-the-name-camel.adoc |   4 +-
 .../modules/ROOT/pages/fluent-builders.adoc        |   4 +-
 docs/user-manual/modules/ROOT/pages/from-eip.adoc  |   2 +-
 .../modules/ROOT/pages/getting-started.adoc        |  10 +-
 .../modules/ROOT/pages/graceful-shutdown.adoc      |  24 +--
 .../user-manual/modules/ROOT/pages/groovy-dsl.adoc |   4 +-
 .../modules/ROOT/pages/guaranteed-delivery.adoc    |   8 +-
 .../modules/ROOT/pages/guice-jms-example.adoc      |  14 +-
 .../modules/ROOT/pages/guice-maven-plugin.adoc     |  24 +--
 docs/user-manual/modules/ROOT/pages/guice.adoc     |  16 +-
 .../modules/ROOT/pages/http-session-handling.adoc  |   6 +-
 .../modules/ROOT/pages/hystrix-eip.adoc            |   6 +-
 .../modules/ROOT/pages/idempotentConsumer-eip.adoc |  10 +-
 docs/user-manual/modules/ROOT/pages/injector.adoc  |   2 +-
 docs/user-manual/modules/ROOT/pages/intercept.adoc |   2 +-
 .../inversion-of-control-with-smart-defaults.adoc  |   2 +-
 docs/user-manual/modules/ROOT/pages/java-dsl.adoc  |   2 +-
 docs/user-manual/modules/ROOT/pages/jndi.adoc      |   6 +-
 docs/user-manual/modules/ROOT/pages/languages.adoc |  12 +-
 docs/user-manual/modules/ROOT/pages/lifecycle.adoc |   4 +-
 .../modules/ROOT/pages/mailing-lists.adoc          |   2 +-
 .../modules/ROOT/pages/marshal-eip.adoc            |   4 +-
 .../modules/ROOT/pages/message-bus.adoc            |   2 +-
 .../modules/ROOT/pages/message-channel.adoc        |   4 +-
 .../modules/ROOT/pages/message-endpoint.adoc       |  16 +-
 .../modules/ROOT/pages/message-router.adoc         |   8 +-
 .../modules/ROOT/pages/message-translator.adoc     |  24 +--
 docs/user-manual/modules/ROOT/pages/message.adoc   |  16 +-
 .../modules/ROOT/pages/multicast-eip.adoc          |   2 +-
 .../modules/ROOT/pages/otherwise-eip.adoc          |   4 +-
 .../modules/ROOT/pages/pipeline-eip.adoc           |   6 +-
 .../modules/ROOT/pages/point-to-point-channel.adoc |   2 +-
 docs/user-manual/modules/ROOT/pages/predicate.adoc |  82 ++++----
 .../modules/ROOT/pages/process-eip.adoc            |  18 +-
 docs/user-manual/modules/ROOT/pages/processor.adoc |  10 +-
 .../modules/ROOT/pages/producertemplate.adoc       |   4 +-
 .../ROOT/pages/publish-subscribe-channel.adoc      |   6 +-
 .../modules/ROOT/pages/recipientList-eip.adoc      |   2 +-
 .../modules/ROOT/pages/resequence-eip.adoc         |   2 +-
 docs/user-manual/modules/ROOT/pages/rest-dsl.adoc  |   6 +-
 .../modules/ROOT/pages/return-address.adoc         |   2 +-
 .../modules/ROOT/pages/rollback-eip.adoc           |  40 ++--
 .../modules/ROOT/pages/route-builder.adoc          |   6 +-
 .../modules/ROOT/pages/route-policy.adoc           |  22 +-
 .../modules/ROOT/pages/routingSlip-eip.adoc        |   2 +-
 docs/user-manual/modules/ROOT/pages/scala-dsl.adoc |   2 +-
 .../user-manual/modules/ROOT/pages/script-eip.adoc |   2 +-
 .../modules/ROOT/pages/scripting-languages.adoc    |   2 +-
 .../modules/ROOT/pages/security-advisories.adoc    |  20 +-
 docs/user-manual/modules/ROOT/pages/security.adoc  |  32 +--
 .../modules/ROOT/pages/servicepool.adoc            |  12 +-
 .../modules/ROOT/pages/servlet-tomcat-example.adoc |   4 +-
 docs/user-manual/modules/ROOT/pages/split-eip.adoc |   2 +-
 .../modules/ROOT/pages/spring-testing.adoc         |   2 +-
 .../modules/ROOT/pages/spring-xml-extensions.adoc  |   2 +-
 docs/user-manual/modules/ROOT/pages/spring.adoc    |  10 +-
 docs/user-manual/modules/ROOT/pages/step-eip.adoc  |   2 +-
 .../modules/ROOT/pages/stream-caching.adoc         |   4 +-
 docs/user-manual/modules/ROOT/pages/support.adoc   |  24 +--
 docs/user-manual/modules/ROOT/pages/team.adoc      |   2 +-
 docs/user-manual/modules/ROOT/pages/testing.adoc   |  24 +--
 .../modules/ROOT/pages/threading-model.adoc        |  28 +--
 docs/user-manual/modules/ROOT/pages/to-eip.adoc    |  12 +-
 docs/user-manual/modules/ROOT/pages/toD-eip.adoc   |   2 +-
 .../modules/ROOT/pages/transactional-client.adoc   |   4 +-
 .../ROOT/pages/transactionerrorhandler.adoc        |  20 +-
 .../modules/ROOT/pages/transform-eip.adoc          |   2 +-
 docs/user-manual/modules/ROOT/pages/transport.adoc |  20 +-
 .../modules/ROOT/pages/try-catch-finally.adoc      |  12 +-
 .../modules/ROOT/pages/type-converter.adoc         |   2 +-
 .../modules/ROOT/pages/unmarshal-eip.adoc          |   6 +-
 docs/user-manual/modules/ROOT/pages/uris.adoc      |  10 +-
 .../modules/ROOT/pages/user-stories.adoc           |   4 +-
 .../pages/using-osgi-blueprint-with-camel.adoc     |   2 +-
 .../ROOT/pages/using-propertyplaceholder.adoc      |  32 +--
 docs/user-manual/modules/ROOT/pages/validator.adoc |   2 +-
 docs/user-manual/modules/ROOT/pages/when-eip.adoc  |   4 +-
 .../modules/ROOT/pages/wireTap-eip.adoc            |  58 +++---
 .../modules/ROOT/pages/writing-components.adoc     |  28 +--
 .../modules/ROOT/pages/xml-reference.adoc          |   4 +-
 180 files changed, 1069 insertions(+), 1069 deletions(-)

diff --git a/docs/user-manual/modules/ROOT/pages/backlogdebugger.adoc b/docs/user-manual/modules/ROOT/pages/backlogdebugger.adoc
index aa1a028..5541256 100644
--- a/docs/user-manual/modules/ROOT/pages/backlogdebugger.adoc
+++ b/docs/user-manual/modules/ROOT/pages/backlogdebugger.adoc
@@ -97,6 +97,6 @@ You would need to enable this using the JMX API.
 ==== See Also
 
 * BacklogTracer
-* link:debugger.adoc[Debugger]
+* xref:debugger.adoc[Debugger]
 * <<log-component,Log>>
 
diff --git a/docs/user-manual/modules/ROOT/pages/bam-example.adoc b/docs/user-manual/modules/ROOT/pages/bam-example.adoc
index 5f11a1c..ae7da81 100644
--- a/docs/user-manual/modules/ROOT/pages/bam-example.adoc
+++ b/docs/user-manual/modules/ROOT/pages/bam-example.adoc
@@ -91,8 +91,8 @@ Components such as ActiveMQ,
 [[BAMExample-Runningtheexample]]
 ==== Running the example
 
-To run the example we use the link:camel-maven-plugin.adoc[Camel Maven
-Plugin]. For example from the source or binary distribution the
+To run the example we use the xref:camel-maven-plugin.adoc[Camel Maven Plugin].
+For example from the source or binary distribution the
 following should work
 
 [source,bash]
diff --git a/docs/user-manual/modules/ROOT/pages/bam.adoc b/docs/user-manual/modules/ROOT/pages/bam.adoc
index c1811f2..270c975 100644
--- a/docs/user-manual/modules/ROOT/pages/bam.adoc
+++ b/docs/user-manual/modules/ROOT/pages/bam.adoc
@@ -13,7 +13,7 @@ Invoice from system B within a specific time period.
 [[BAM-HowCamelBAMWorks]]
 ==== How Camel BAM Works
 
-Camel BAM uses a link:correlation-identifier.html[Correlation
+Camel BAM uses a xref:correlation-identifier.adoc[Correlation
 Identifier] on an input message to determine the _Process Instance_ to
 which it belongs. The process instance is an entity bean which can
 maintain state for each _Activity_ (where an activity typically maps to
@@ -64,8 +64,8 @@ added to any CamelContext.
 [[BAM-CompleteExample]]
 ==== Complete Example
 
-For a complete example please see the link:bam-example.html[BAM
-Example], which is part of the standard Camel
+For a complete example please see the xref:bam-example.adoc[BAM Example],
+ which is part of the standard Camel
 Examples
 
 [[BAM-UseCases]]
diff --git a/docs/user-manual/modules/ROOT/pages/batch-consumer.adoc b/docs/user-manual/modules/ROOT/pages/batch-consumer.adoc
index 467140b..25ee944 100644
--- a/docs/user-manual/modules/ROOT/pages/batch-consumer.adoc
+++ b/docs/user-manual/modules/ROOT/pages/batch-consumer.adoc
@@ -3,13 +3,13 @@
 
 *Available as of Camel 2.0*
 
-Batch Consumer is basically a link:polling-consumer.html[Polling
+Batch Consumer is basically a xref:polling-consumer.adoc[Polling
 Consumer] that is capable of polling multiple
 Exchanges in a pool. What we have done in Camel 2.0
 is to standardize this into a `org.apache.camel.BatchConsumer` interface
 that a consumer can implement to indicate it support batching as well.
 
-The following components supports link:batch-consumer.html[Batch
+The following components supports xref:batch-consumer.adoc[Batch
 Consumer] by its consumer:
 
 * <<atom-component,Atom>>
diff --git a/docs/user-manual/modules/ROOT/pages/bean-eip.adoc b/docs/user-manual/modules/ROOT/pages/bean-eip.adoc
index 9fe57b9..4b1d53f 100644
--- a/docs/user-manual/modules/ROOT/pages/bean-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/bean-eip.adoc
@@ -34,10 +34,10 @@ Camel also supports invoking <<bean-component,Bean>> as an Endpoint. In the
 route below:
 
 What happens is that when the exchange is routed to the `myBean` Camel
-will use the link:bean-binding.html[Bean Binding] to invoke the bean. +
+will use the xref:bean-binding.adoc[Bean Binding] to invoke the bean. +
  The source for the bean is just a plain POJO:
 
-Camel will use link:bean-binding.html[Bean Binding] to invoke the
+Camel will use xref:bean-binding.adoc[Bean Binding] to invoke the
 `sayHello` method, by converting the Exchange's In body to the `String`
 type and storing the output of the method on the Exchange Out body.
 
@@ -77,13 +77,13 @@ from("direct:start").bean(ExampleBean.class);
 
 How bean methods to be invoked are chosen (if they are not specified
 explicitly through the *method* parameter) and how parameter values are
-constructed from the link:message.html[Message] are all defined by the
-link:bean-binding.html[Bean Binding] mechanism which is used throughout
-all of the various link:bean-integration.html[Bean Integration]
+constructed from the xref:message.adoc[Message] are all defined by the
+xref:bean-binding.adoc[Bean Binding] mechanism which is used throughout
+all of the various xref:bean-integration.adoc[Bean Integration]
 mechanisms in Camel.
 
 === See also
 
 * <<class-component,Class>> component
-* link:bean-binding.html[Bean Binding]
-* link:bean-integration.html[Bean Integration]
+* xref:bean-binding.adoc[Bean Binding]
+* xref:bean-integration.adoc[Bean Integration]
diff --git a/docs/user-manual/modules/ROOT/pages/bean-integration.adoc b/docs/user-manual/modules/ROOT/pages/bean-integration.adoc
index 9e208d2..a4a2b80 100644
--- a/docs/user-manual/modules/ROOT/pages/bean-integration.adoc
+++ b/docs/user-manual/modules/ROOT/pages/bean-integration.adoc
@@ -19,11 +19,11 @@ The following annotations is supported and inject by Camel's
 |=======================================================================
 |Annotation |Description
 
-|`@EndpointInject` |To inject an endpoint, see more details at link:pojo-producing.html[POJO
+|`@EndpointInject` |To inject an endpoint, see more details at xref:pojo-producing.adoc[POJO
 Producing].
 
 |`@BeanInject` |*Camel 2.13:* To inject a bean obtained from the
-Registry. See link:bean-injection.html[Bean
+Registry. See xref:bean-injection.adoc[Bean
 Injection].
 
 |`@PropertyInject` |*Camel 2.12:* To inject a value using
@@ -32,7 +32,7 @@ property placeholder.
 |`@Produce` |To inject a producer to send message to an endpoint. See
 POJO Producing.
 
-|`@Consume` |To inject a consumer on a method. See link:pojo-consuming.adoc[POJO
+|`@Consume` |To inject a consumer on a method. See xref:pojo-consuming.adoc[POJO
 Consuming].
 |=======================================================================
 
@@ -50,7 +50,7 @@ creating a Recipient List from a POJO method
 a Routing Slip for a POJO method
 * Bean Injection to inject Camel related
 resources into your POJOs
-* link:using-exchange-pattern-annotations.html[Using Exchange Pattern
+* xref:using-exchange-pattern-annotations.adoc[Using Exchange Pattern
 Annotations] describes how the pattern annotations can be used to change
 the behaviour of method invocations with
 Spring Remoting or
@@ -81,7 +81,7 @@ uses Camel as the underlying transport mechanism. The nice thing about
 this approach is we can use any of the Camel transport
 Components to communicate between beans. It also
 means we can use Content Based Router
-and the other link:enterprise-integration-patterns.adoc[Enterprise
+and the other xref:enterprise-integration-patterns.adoc[Enterprise
 Integration Patterns] in between the beans; in particular we can use
 Message Translator to be able to convert
 what the on-the-wire messages look like in addition to adding various
@@ -90,7 +90,7 @@ headers and so forth.
 *Bean binding*
 
 Whenever Camel invokes a bean method via one of the above methods
-(<<bean-component,Bean>> component, link:spring-remoting.html[Spring
+(<<bean-component,Bean>> component, xref:spring-remoting.adoc[Spring
 Remoting] or POJO Consuming) then the
 *Bean Binding* mechanism is used to figure out
 what method to use (if it is not explicit) and how to bind the
diff --git a/docs/user-manual/modules/ROOT/pages/binding.adoc b/docs/user-manual/modules/ROOT/pages/binding.adoc
index 06eb3c8..6092bd1 100644
--- a/docs/user-manual/modules/ROOT/pages/binding.adoc
+++ b/docs/user-manual/modules/ROOT/pages/binding.adoc
@@ -2,10 +2,10 @@
 === Binding
 
 In Camel terms a _binding_ is a way of wrapping an
-link:endpoint.html[Endpoint] in a contract; such as a
-link:data-format.html[Data Format], a link:content-enricher.html[Content
+xref:endpoint.adoc[Endpoint] in a contract; such as a
+xref:data-format.adoc[Data Format], a xref:content-enricher.adoc[Content
 Enricher] or validation step. Bindings are completely optional and you
-can choose to use them on any link:components.html[camel endpoint].
+can choose to use them on any xref:components.adoc[camel endpoint].
 
 Bindings are inspired by the work of
 http://www.jboss.org/switchyard[SwitchYard project] adding service
@@ -36,14 +36,14 @@ from("binding:jaxb:activemq:myQueue").to("binding:jaxb:activemq:anotherQueue")
 ------------------------------------------------------------------------------
 
 Here we are using the "jaxb" binding which may, for example, use the
-JAXB link:data-format.html[Data Format] to marshal and unmarshal
+JAXB xref:data-format.adoc[Data Format] to marshal and unmarshal
 messages.
 
 [[Binding-UsingaBindingComponent]]
 ==== Using a BindingComponent
 
-There is a link:component.html[Component] called BindingComponent which
-can be configured in your link:registry.html[Registry] by dependency
+There is a xref:component.adoc[Component] called BindingComponent which
+can be configured in your xref:registry.adoc[Registry] by dependency
 injection which allows the creation of endpoints which are already bound
 to some binding.
 
@@ -64,7 +64,7 @@ from("jsonmq:myQueue").to("jsonmq:anotherQueue")
 ------------------------------------------------
 
 This would use the queues "foo.myQueue" and "foo.anotherQueue" and would
-use the given Jackson link:data-format.html[Data Format] to marshal on
+use the given Jackson xref:data-format.adoc[Data Format] to marshal on
 and off the queue.
 
 [[Binding-WhentouseBindings]]
diff --git a/docs/user-manual/modules/ROOT/pages/book-getting-started.adoc b/docs/user-manual/modules/ROOT/pages/book-getting-started.adoc
index cb6a854..7037c97 100644
--- a/docs/user-manual/modules/ROOT/pages/book-getting-started.adoc
+++ b/docs/user-manual/modules/ROOT/pages/book-getting-started.adoc
@@ -160,11 +160,11 @@ a server can read an incoming message from a mail server.
 
 In a Camel-based application, you create (Camel wrappers around) some
 endpoints and connect these endpoints with __routes__, which I will
-discuss later in link:book-getting-started.html[Section 4.8 ("Routes,
+discuss later in xref:book-getting-started.adoc[Section 4.8 ("Routes,
 RouteBuilders and Java DSL")]. Camel defines a Java interface called
 `Endpoint`. Each Camel-supported endpoint has a class that implements
 this `Endpoint` interface. As I discussed in
-link:book-getting-started.html[Section 3.3 ("Online Javadoc
+xref:book-getting-started.adoc[Section 3.3 ("Online Javadoc
 documentation")], Camel provides a separate Javadoc hierarchy for each
 communications technology supported by Camel. Because of this, you will
 find documentation on, say, the `JmsEndpoint` class in the
@@ -218,11 +218,11 @@ other open-source projects, such as the `TransactionTemplate` and
 
 The `CamelTemplate` class is a thin wrapper around the `CamelContext`
 class. It has methods that send a `Message` or `Exchange` – both
-discussed in link:book-getting-started.html[Section 4.6 ("Message and
+discussed in xref:book-getting-started.adoc[Section 4.6 ("Message and
 Exchange")]) – to an `Endpoint` – discussed in
 Section 4.1 ("Endpoint"). This provides
 a way to enter messages into source endpoints, so that the messages will
-move along routes – discussed in link:book-getting-started.html[Section
+move along routes – discussed in xref:book-getting-started.adoc[Section
 4.8 ("Routes, RouteBuilders and Java DSL")] – to destination endpoints.
 
 [[BookGettingStarted-url-uri-urn-iri]]
@@ -377,7 +377,7 @@ documentation and the Camel source code both claim the parameter is a
 URI. In reality, the parameter is restricted to being a URL. This is
 because when Camel extracts the component name from the parameter, it
 looks for the first ":", which is a simplistic algorithm. To understand
-why, recall from link:book-getting-started.html[Section 4.4 ("The
+why, recall from xref:book-getting-started.adoc[Section 4.4 ("The
 Meaning of URL, URI, URN and IRI")] that a URI can be a URL _or_ a URN.
 Now consider the following calls to `getEndpoint`:
 
diff --git a/docs/user-manual/modules/ROOT/pages/books.adoc b/docs/user-manual/modules/ROOT/pages/books.adoc
index a90aaad..eab129c 100644
--- a/docs/user-manual/modules/ROOT/pages/books.adoc
+++ b/docs/user-manual/modules/ROOT/pages/books.adoc
@@ -3,7 +3,7 @@
 
 This page lists the known books about Apache Camel. If you happen to
 know a book which is not listed then please contact us, for example
-using the link:mailing-lists.html[Mailing Lists].
+using the xref:mailing-lists.adoc[Mailing Lists].
 
 * http://manning.com/ibsen2/[Camel in Action 2nd edition]
 * http://www.manning.com/ibsen[Camel in Action]
@@ -131,7 +131,7 @@ https://www.packtpub.com/application-development/mastering-apache-camel[Masterin
 Apache Camel] by https://twitter.com/jbonofre[Jean-Baptiste Onofré].
 Published by http://www.packtpub.com/[Packt publishing] in June 2015.
 
-link:books/3151EN_Mastering_Apache_Camel.jpg?version=1&modificationDate=1453112264000&api=v2[image:books/3151EN_Mastering_Apache_Camel.jpg[image]]
+xref:books/3151EN_Mastering_Apache_Camel.jpg?version=1&modificationDate=1453112264000&api=v2[image:books/3151EN_Mastering_Apache_Camel.jpg[image]]
 
 This book will provide you with the skills you need to efficiently
 create routes using Apache Camel.
diff --git a/docs/user-manual/modules/ROOT/pages/camel-configuration-utilities.adoc b/docs/user-manual/modules/ROOT/pages/camel-configuration-utilities.adoc
index a6d5854..b9d4209 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-configuration-utilities.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-configuration-utilities.adoc
@@ -439,7 +439,7 @@ SSLEngine engine = scp.createSSLEngine();
 Using Camel Property Placeholders
 
 This configuration utility fully supports the use of property
-placeholders (see link:using-propertyplaceholder.html[Using
+placeholders (see xref:using-propertyplaceholder.adoc[Using
 PropertyPlaceholder]) in all configuration fields.  In order to support
 this feature, the configuration utility objects must be configured with
 a reference to a Camel context.  All of the utility classes except for
@@ -557,7 +557,7 @@ exclude any cipher suites that match the patterns .*_NULL_.* and
 Using Camel Property Placeholders
 
 This configuration utility fully supports the use of property
-placeholders (see link:using-propertyplaceholder.html[Using
+placeholders (see xref:using-propertyplaceholder.adoc[Using
 PropertyPlaceholder]) in all configuration fields for XML based
 configuration as well.  In order to support this feature, the
 configuration utility objects must be configured with a reference to a
diff --git a/docs/user-manual/modules/ROOT/pages/camel-jar-dependencies.adoc b/docs/user-manual/modules/ROOT/pages/camel-jar-dependencies.adoc
index 1e88af7..c7aff2e 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-jar-dependencies.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-jar-dependencies.adoc
@@ -43,6 +43,6 @@ From *Camel 2.9*: the Spring JARs are no longer required for using JMX.
 [[CamelJARDependencies-OtherComponents]]
 === Other Components
 
-All the other link:component.adoc[Components] have a range of 3rd party
+All the other xref:component.adoc[Components] have a range of 3rd party
 .jars they depend on. They are listed in the maven pom files which files
 they require.
diff --git a/docs/user-manual/modules/ROOT/pages/camelcontext.adoc b/docs/user-manual/modules/ROOT/pages/camelcontext.adoc
index b312ee8a..11230fe 100644
--- a/docs/user-manual/modules/ROOT/pages/camelcontext.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camelcontext.adoc
@@ -7,14 +7,14 @@ represents a single Camel routing rulebase. You use the CamelContext in
 a similar way to the Spring
 http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/context/ApplicationContext.html[ApplicationContext].
 
-See link:lifecycle.adoc[Lifecycle] to understand the overall lifecycle
+See xref:lifecycle.adoc[Lifecycle] to understand the overall lifecycle
 of the CamelContext.
 
 [[CamelContext-SeeAlso]]
 ==== See Also
 
-* link:route-builder.adoc[RouteBuilder]
-* link:routes.adoc[Routes]
-* link:lifecycle.adoc[Lifecycle]
-* link:architecture.adoc[Architecture]
+* xref:route-builder.adoc[RouteBuilder]
+* xref:routes.adoc[Routes]
+* xref:lifecycle.adoc[Lifecycle]
+* xref:architecture.adoc[Architecture]
 
diff --git a/docs/user-manual/modules/ROOT/pages/cep.adoc b/docs/user-manual/modules/ROOT/pages/cep.adoc
index 33998e2..c894da8 100644
--- a/docs/user-manual/modules/ROOT/pages/cep.adoc
+++ b/docs/user-manual/modules/ROOT/pages/cep.adoc
@@ -7,7 +7,7 @@ http://en.wikipedia.org/wiki/Event_stream_processing[Event Stream
 Processing] are approaches of processing streams of events, usually from
 multiple sources.
 
-One approach to CEP with Camel is to use the link:esper.html[Esper
+One approach to CEP with Camel is to use the xref:esper.adoc[Esper
 endpoint] then use Esper's SQL-like DSL for working with event streams.
 
 Another approach to CEP with Camel is to use Camel RX
diff --git a/docs/user-manual/modules/ROOT/pages/choice-eip.adoc b/docs/user-manual/modules/ROOT/pages/choice-eip.adoc
index 449bec1..b845f68 100644
--- a/docs/user-manual/modules/ROOT/pages/choice-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/choice-eip.adoc
@@ -3,7 +3,7 @@
 
 The
 http://www.enterpriseintegrationpatterns.com/ContentBasedRouter.html[Content
-Based Router] from the link:enterprise-integration-patterns.html[EIP
+Based Router] from the xref:enterprise-integration-patterns.adoc[EIP
 patterns] allows you to route messages to the correct destination based
 on the contents of the message exchanges.
 
@@ -26,7 +26,7 @@ The Choice EIP supports 2 options which are listed below:
 
 The following example shows how to route a request from an input
 *seda:a* endpoint to either *seda:b*, *seda:c* or *seda:d* depending on
-the evaluation of various link:predicate.html[Predicate] expressions
+the evaluation of various xref:predicate.adoc[Predicate] expressions
 
 [source,java]
 ----
@@ -44,7 +44,7 @@ RouteBuilder builder = new RouteBuilder() {
 };
 ----
 
-TIP: See link:why-can-i-not-use-when-or-otherwise-in-a-java-camel-route.html[Why
+TIP: See xref:why-can-i-not-use-when-or-otherwise-in-a-java-camel-route.adoc[Why
 can I not use when or otherwise in a Java Camel route] if you have
 problems with the Java DSL, accepting using `when` or `otherwise`.
 
diff --git a/docs/user-manual/modules/ROOT/pages/claimCheck-eip.adoc b/docs/user-manual/modules/ROOT/pages/claimCheck-eip.adoc
index 2643bfb..542ed27 100644
--- a/docs/user-manual/modules/ROOT/pages/claimCheck-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/claimCheck-eip.adoc
@@ -3,7 +3,7 @@
 
 *Available as of Camel 2.21*
 
-The link:http://www.enterpriseintegrationpatterns.com/patterns/messaging/StoreInLibrary.html[Claim Check] from the link:../../../../readme-eip.adoc[EIP patterns]
+The http://www.enterpriseintegrationpatterns.com/patterns/messaging/StoreInLibrary.html[Claim Check] from the xref:../../../../readme-eip.adoc[EIP patterns]
 allows you to replace message content with a claim check (a unique key), which can be used to retrieve the message content at a later time.
 
 image:http://www.enterpriseintegrationpatterns.com/img/StoreInLibrary.gif[image]
diff --git a/docs/user-manual/modules/ROOT/pages/commercial-camel-offerings.adoc b/docs/user-manual/modules/ROOT/pages/commercial-camel-offerings.adoc
index a68a4cc..cd6f84d 100644
--- a/docs/user-manual/modules/ROOT/pages/commercial-camel-offerings.adoc
+++ b/docs/user-manual/modules/ROOT/pages/commercial-camel-offerings.adoc
@@ -5,7 +5,7 @@ Apache Camel is a widely used project. As such, several companies have
 built products and services around Camel. This page is dedicated to
 providing descriptions of those offerings and links to more information.
 Companies are definitely encouraged to update this page directly or
-link:mailing-lists.adoc[send a mail] to the Camel PMC with a description
+xref:mailing-lists.adoc[send a mail] to the Camel PMC with a description
 of your offerings and we can update the page. The products and services
 listed on this page are provided for information use only to our users.
 The Camel PMC does not endorse or recommend any of the products or
@@ -123,4 +123,4 @@ removed. Such marketing statements can be added to your own pages on
 your own site, but not here.
 
 When in doubt, email the Camel dev list (see
-link:mailing-lists.adoc[Mailing Lists]) and ask. We'd be happy to help.
+xref:mailing-lists.adoc[Mailing Lists]) and ask. We'd be happy to help.
diff --git a/docs/user-manual/modules/ROOT/pages/component.adoc b/docs/user-manual/modules/ROOT/pages/component.adoc
index 9a7781f..8a7c0d3 100644
--- a/docs/user-manual/modules/ROOT/pages/component.adoc
+++ b/docs/user-manual/modules/ROOT/pages/component.adoc
@@ -1,25 +1,25 @@
 [[Component-Components]]
 === Components
 
-A Component is essentially a factory of link:endpoint.adoc[Endpoint] instances.
+A Component is essentially a factory of xref:endpoint.adoc[Endpoint] instances.
 
 You can explicitly configure Component instances
-and add them to a link:camelcontext.adoc[CamelContext] in an IoC
+and add them to a xref:camelcontext.adoc[CamelContext] in an IoC
 container like Spring or Guice, or they can be auto-discovered using
-link:uris.adoc[URIs].
+xref:uris.adoc[URIs].
 
 [[Component-ComponentsIncluded]]
 ==== Components Included
 
-Camel includes the following Component implementations via link:uris.adoc[URIs].
+Camel includes the following Component implementations via xref:uris.adoc[URIs].
 
 [IMPORTANT]
 ====
-Make sure to read link:faq/how-do-i-configure-endpoints.adoc[How do I configure endpoints?]
+Make sure to read xref:faq/how-do-i-configure-endpoints.adoc[How do I configure endpoints?]
 to learn more about configuring endpoints. For
-example how to refer to beans in the link:registry.adoc[Registry] or how
+example how to refer to beans in the xref:registry.adoc[Registry] or how
 to use raw values for password options, and using
-link:using-propertyplaceholder.adoc[property placeholders] etc.
+xref:using-propertyplaceholder.adoc[property placeholders] etc.
 ====
 
 ===== Core Components
@@ -34,9 +34,9 @@ include::../../../components/readme.adoc[]
 [[Component-SeeAlso]]
 ==== See Also
 
-* link:endpoint.adoc[Endpoint]
-* link:uris.adoc[URIs]
-* link:writing-components.adoc[Writing Components]
-* link:configuring-camel.adoc[How do I add a component?]
-* link:faq/how-do-i-configure-endpoints.adoc[How do I configure endpoints?]
-* link:using-propertyplaceholder.adoc[Using `PropertyPlaceholder`]
+* xref:endpoint.adoc[Endpoint]
+* xref:uris.adoc[URIs]
+* xref:writing-components.adoc[Writing Components]
+* xref:configuring-camel.adoc[How do I add a component?]
+* xref:faq/how-do-i-configure-endpoints.adoc[How do I configure endpoints?]
+* xref:using-propertyplaceholder.adoc[Using `PropertyPlaceholder`]
diff --git a/docs/user-manual/modules/ROOT/pages/configuring-camel.adoc b/docs/user-manual/modules/ROOT/pages/configuring-camel.adoc
index 2716672..c6d85b1 100644
--- a/docs/user-manual/modules/ROOT/pages/configuring-camel.adoc
+++ b/docs/user-manual/modules/ROOT/pages/configuring-camel.adoc
@@ -4,7 +4,7 @@
 [[ConfiguringCamel-HowdoIaddacomponent]]
 ==== How do I add a component?
 
-You might first want to read link:writing-components.adoc[Writing
+You might first want to read xref:writing-components.adoc[Writing
 Components] for a background in how to implement a new component.
 Typically it means you write an implementation of the
 http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Component.html[Component]
@@ -20,7 +20,7 @@ context.addComponent("foo", new FooComponent(context));
 ----
 
 However you can use the auto-discovery feature of Camel where by Camel
-will automatically add a link:component.adoc[Component] when an endpoint
+will automatically add a xref:component.adoc[Component] when an endpoint
 URI is used. To do this you would create a file called:
 
 ....
@@ -41,7 +41,7 @@ will auto-discover your component and register it.
 
 The `FooComponent` can then be auto-injected with resources using the
 http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/spi/Injector.html[Injector],
-such as to support link:spring.adoc[Spring] based auto-wiring, or to
+such as to support xref:spring.adoc[Spring] based auto-wiring, or to
 support `@Resource` (EJB3 style) injection or Guice style `@Inject`
 injection.
 
@@ -64,12 +64,12 @@ at `CamelNamespaceHandler` you'll see how we handle the Spring XML
 stuff (warning it's kinda hairy code to look at :smile:).
 If you wanted `<fooComponent>` to be a standard part of the core Camel
 schema then you'd hack that file to add your component &
-link:contributing.adoc[contribute a patch] to the camel XSD. Otherwise
+xref:contributing.adoc[contribute a patch] to the camel XSD. Otherwise
 you could write your own namespace & schema if you prefer.
 
 
 [[ConfiguringCamel-SeeAlso]]
 ==== See Also
 
-* link:writing-components.adoc[Writing Components]
-* link:how-do-i-configure-endpoints.adoc[How do I configure endpoints?]
+* xref:writing-components.adoc[Writing Components]
+* xref:how-do-i-configure-endpoints.adoc[How do I configure endpoints?]
diff --git a/docs/user-manual/modules/ROOT/pages/configuring-route-startup-ordering-and-autostartup.adoc b/docs/user-manual/modules/ROOT/pages/configuring-route-startup-ordering-and-autostartup.adoc
index b993e38..3811291 100644
--- a/docs/user-manual/modules/ROOT/pages/configuring-route-startup-ordering-and-autostartup.adoc
+++ b/docs/user-manual/modules/ROOT/pages/configuring-route-startup-ordering-and-autostartup.adoc
@@ -115,7 +115,7 @@ lowest `startupOrder` are started first and the ones with the highest are
 started last.
 
 IMPORTANT: All `startupOrder` defined must be unique among all routes in your
-link:camelcontext.adoc[CamelContext]. Otherwise if there are clashes in
+xref:camelcontext.adoc[CamelContext]. Otherwise if there are clashes in
 `startupOrder` numbers among routes, the routes will fail to start up throwing
 `org.apache.camel.FailedToStartRouteException`.
 
@@ -261,11 +261,11 @@ they were started.
 *Camel 2.3:* Camel will shutdown the routes in the *reverse* order that
 they were started.
 
-See also link:graceful-shutdown.adoc[Graceful Shutdown].
+See also xref:graceful-shutdown.adoc[Graceful Shutdown].
 
 [[Configuringroutestartuporderingandautostartup-Seealso]]
 ==== See also
 
-* link:configuring-camel.adoc[Configuring Camel]
-* link:graceful-shutdown.adoc[Graceful Shutdown]
-* link:user-guide.html[User Guide]
+* xref:configuring-camel.adoc[Configuring Camel]
+* xref:graceful-shutdown.adoc[Graceful Shutdown]
+* xref:user-guide.adoc[User Guide]
diff --git a/docs/user-manual/modules/ROOT/pages/content-based-router-eip.adoc b/docs/user-manual/modules/ROOT/pages/content-based-router-eip.adoc
index 193c27c..a892778 100644
--- a/docs/user-manual/modules/ROOT/pages/content-based-router-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/content-based-router-eip.adoc
@@ -3,7 +3,7 @@
 
 The
 http://www.enterpriseintegrationpatterns.com/ContentBasedRouter.html[Content
-Based Router] from the link:enterprise-integration-patterns.html[EIP
+Based Router] from the xref:enterprise-integration-patterns.adoc[EIP
 patterns] allows you to route messages to the correct destination based
 on the contents of the message exchanges.
 
@@ -11,7 +11,7 @@ image:http://www.enterpriseintegrationpatterns.com/img/ContentBasedRouter.gif[im
 
 The following example shows how to route a request from an input
 *seda:a* endpoint to either *seda:b*, *seda:c* or *seda:d* depending on
-the evaluation of various link:predicate.html[Predicate] expressions
+the evaluation of various xref:predicate.adoc[Predicate] expressions
 
 === Using the <<FluentBuilders-FluentBuilders,Fluent Builders>>
 
@@ -36,7 +36,7 @@ RouteBuilder builder = new RouteBuilder() {
 [TIP]
 ====
 See
-link:why-can-i-not-use-when-or-otherwise-in-a-java-camel-route.html[Why
+xref:why-can-i-not-use-when-or-otherwise-in-a-java-camel-route.adoc[Why
 can I not use when or otherwise in a Java Camel route] if you have
 problems with the Java DSL, accepting using `when` or `otherwise`.
 ====
@@ -74,6 +74,6 @@ https://github.com/apache/camel/blob/master/camel-core/src/test/java/org/apache/
 If you would like to use this EIP Pattern then please read the
 <<GettingStarted-GettingStarted,Getting Started>>. You may also find the
 <<Architecture-Architecture,Architecture>> useful particularly the description
-of <<Endpoint-Endpoints,Endpoint>> and link:uris.html[URIs]. Then you could
+of <<Endpoint-Endpoints,Endpoint>> and xref:uris.adoc[URIs]. Then you could
 try out some of the <<Examples-Examples,Examples>> first before trying
 this pattern out.
diff --git a/docs/user-manual/modules/ROOT/pages/content-filter-eip.adoc b/docs/user-manual/modules/ROOT/pages/content-filter-eip.adoc
index 933c12e..5292374 100644
--- a/docs/user-manual/modules/ROOT/pages/content-filter-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/content-filter-eip.adoc
@@ -28,8 +28,8 @@ In this example we add our own <<Processor-Processor,Processor>>
 For further examples of this pattern in use you could look at one of the
 JUnit tests
 
-* link:../../../test/java/org/apache/camel/processor/TransformTest.java?[TransformTest]
-* link:../../../test/java/org/apache/camel/processor/TransformViaDSLTest.java[TransformViaDSLTest]
+* xref:../../../test/java/org/apache/camel/processor/TransformTest.java?[TransformTest]
+* xref:../../../test/java/org/apache/camel/processor/TransformViaDSLTest.java[TransformViaDSLTest]
 
 === Using Spring XML
 
diff --git a/docs/user-manual/modules/ROOT/pages/correlation-identifier.adoc b/docs/user-manual/modules/ROOT/pages/correlation-identifier.adoc
index 14837d0..47c7fbc 100644
--- a/docs/user-manual/modules/ROOT/pages/correlation-identifier.adoc
+++ b/docs/user-manual/modules/ROOT/pages/correlation-identifier.adoc
@@ -3,11 +3,11 @@
 
 Camel supports the
 http://www.enterpriseintegrationpatterns.com/CorrelationIdentifier.html[Correlation
-Identifier] from the link:enterprise-integration-patterns.html[EIP
+Identifier] from the xref:enterprise-integration-patterns.adoc[EIP
 patterns] by getting or setting a header on a
-link:message.html[Message].
+xref:message.adoc[Message].
 
-When working with the link:activemq.html[ActiveMQ] or link:jms.html[JMS]
+When working with the xref:activemq.adoc[ActiveMQ] or xref:jms.adoc[JMS]
 components the correlation identifier header is called
 *JMSCorrelationID*. You can add your own correlation identifier to any
 message exchange to help correlate messages together to a single
@@ -16,17 +16,17 @@ conversation (or business process).
 image:http://www.enterpriseintegrationpatterns.com/img/CorrelationIdentifierSolution.gif[image]
 
 The use of a Correlation Identifier is key to working with the
-link:bam.html[Camel Business Activity Monitoring Framework] and can also
+xref:bam.adoc[Camel Business Activity Monitoring Framework] and can also
 be highly useful when testing with simulation or canned data such as
 with the <<mock-component,Mock testing framework>>
 
-Some link:eip.html[EIP] patterns will spin off a sub message, and in
+Some xref:eip.adoc[EIP] patterns will spin off a sub message, and in
 those cases, Camel will add a correlation id on the
-link:exchange.html[Exchange] as a property with they key
+xref:exchange.adoc[Exchange] as a property with they key
 `Exchange.CORRELATION_ID`, which links back to the source
-link:exchange.html[Exchange]. For example the
-link:splitter.html[Splitter], link:multicast.html[Multicast],
-link:recipient-list.html[Recipient List], and link:wire-tap.html[Wire
+xref:exchange.adoc[Exchange]. For example the
+xref:splitter.adoc[Splitter], xref:multicast.adoc[Multicast],
+xref:recipient-list.adoc[Recipient List], and xref:wire-tap.adoc[Wire
 Tap] EIP does this.
 
 The following example demonstrates using the Camel JMSMessageID as the
diff --git a/docs/user-manual/modules/ROOT/pages/data-format.adoc b/docs/user-manual/modules/ROOT/pages/data-format.adoc
index 3283d40..4ae03c5 100644
--- a/docs/user-manual/modules/ROOT/pages/data-format.adoc
+++ b/docs/user-manual/modules/ROOT/pages/data-format.adoc
@@ -15,7 +15,7 @@ The following data formats are currently supported:
 ** <<avro-dataformat,Avro>>
 ** <<boon-dataformat,Boon>>
 ** <<hessian-dataformat,Hessian>>
-** link:json.adoc[JSON]
+** xref:json.adoc[JSON]
 ** <<protobuf-dataformat,Protobuf>>
 ** <<yaml-snakeyaml-dataformat,YAML>>
 
@@ -71,22 +71,22 @@ custom implementation
 And related is the following:
 
 * <<dataformat-component,DataFormat Component>> for working with
-  Data Formats as if it was a regular link:component.adoc[Component]
-  supporting link:endpoint.adoc[Endpoints] and link:uris.adoc[URIs].
-* link:dozer-type-conversion.adoc[Dozer Type Conversion] using Dozer for
+  Data Formats as if it was a regular xref:component.adoc[Component]
+  supporting xref:endpoint.adoc[Endpoints] and xref:uris.adoc[URIs].
+* xref:dozer-type-conversion.adoc[Dozer Type Conversion] using Dozer for
   type converting POJOs
 
 [[DataFormat-Unmarshalling]]
 ==== Unmarshalling
 
 If you receive a message from one of the Camel
-link:component.adoc[Components] such as <<file-component,File>>,
+xref:component.adoc[Components] such as <<file-component,File>>,
 <<http-component,HTTP>> or <<jms-component,JMS>> you often want to unmarshal
 the payload into some bean so that you can process it using some
-link:bean-integration.adoc[Bean Integration] or perform
-link:predicate.adoc[Predicate] evaluation and so forth. To do this use
-the `unmarshal` word in the link:dsl.adoc[DSL] in Java or the
-link:xml-configuration.adoc[XML Configuration].
+xref:bean-integration.adoc[Bean Integration] or perform
+xref:predicate.adoc[Predicate] evaluation and so forth. To do this use
+the `unmarshal` word in the xref:dsl.adoc[DSL] in Java or the
+xref:xml-configuration.adoc[XML Configuration].
 
 For example:
 
@@ -102,12 +102,12 @@ from("activemq:My.Queue").
 The above uses a named DataFormat of `jaxb` which is configured with a
 number of Java package names. You can if you prefer use a named
 reference to a data format which can then be defined in your
-link:registry.adoc[Registry] such as via your link:spring.adoc[Spring]
+xref:registry.adoc[Registry] such as via your xref:spring.adoc[Spring]
 XML file.
 
 You can also use the DSL itself to define the data format as you use it.
 For example the following uses Java serialization to unmarshal a binary
-file then send it as an ObjectMessage to link:activemq.adoc[ActiveMQ]
+file then send it as an ObjectMessage to xref:activemq.adoc[ActiveMQ]
 
 [source,java]
 ----
@@ -121,11 +121,11 @@ from("file://foo/bar").
 
 Marshalling is the opposite of unmarshalling, where a bean is marshalled
 into some binary or textual format for transmission over some transport
-via a Camel link:component.adoc[Component]. Marshalling is used in the
-same way as unmarshalling above; in the link:dsl.adoc[DSL] you can use a
+via a Camel xref:component.adoc[Component]. Marshalling is used in the
+same way as unmarshalling above; in the xref:dsl.adoc[DSL] you can use a
 DataFormat instance, you can configure the DataFormat dynamically using
 the DSL or you can refer to a named instance of the format in the
-link:registry.adoc[Registry].
+xref:registry.adoc[Registry].
 
 The following example unmarshals via serialization then marshals using a
 named JAXB data format to perform a kind of
diff --git a/docs/user-manual/modules/ROOT/pages/dead-letter-channel.adoc b/docs/user-manual/modules/ROOT/pages/dead-letter-channel.adoc
index f25da24..4f64ef4 100644
--- a/docs/user-manual/modules/ROOT/pages/dead-letter-channel.adoc
+++ b/docs/user-manual/modules/ROOT/pages/dead-letter-channel.adoc
@@ -3,10 +3,10 @@
 
 Camel supports the
 http://www.enterpriseintegrationpatterns.com/DeadLetterChannel.html[Dead
-Letter Channel] from the link:enterprise-integration-patterns.html[EIP
+Letter Channel] from the xref:enterprise-integration-patterns.adoc[EIP
 patterns] using the
 http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/DeadLetterChannel.html[DeadLetterChannel]
-processor which is an link:error-handler.html[Error Handler].
+processor which is an xref:error-handler.adoc[Error Handler].
 
 image:http://www.enterpriseintegrationpatterns.com/img/DeadLetterChannelSolution.gif[image]
 
@@ -70,11 +70,11 @@ forwarded to the dead letter queue.
 *Handled* on <<deadLetterChannel-eip,Dead Letter Channel>>
 
 When all attempts of redelivery have failed the
-link:exchange.html[Exchange] is moved to the dead letter queue (the dead
+xref:exchange.adoc[Exchange] is moved to the dead letter queue (the dead
 letter endpoint). The exchange is then complete and from the client
 point of view it was processed. As such the
 <<deadLetterChannel-eip,Dead Letter Channel>> have handled the
-link:exchange.html[Exchange].
+xref:exchange.adoc[Exchange].
 
 For instance configuring the dead letter channel as:
 
@@ -105,8 +105,8 @@ And in XML:
 
 The <<deadLetterChannel-eip,Dead Letter Channel>> above will clear
 the caused exception (`setException(null)`), by moving the caused
-exception to a property on the link:exchange.html[Exchange], with the
-key `Exchange.EXCEPTION_CAUGHT`. Then the link:exchange.html[Exchange]
+exception to a property on the xref:exchange.adoc[Exchange], with the
+key `Exchange.EXCEPTION_CAUGHT`. Then the xref:exchange.adoc[Exchange]
 is moved to the `"jms:queue:dead"` destination and the client will not
 notice the failure.
 
@@ -128,12 +128,12 @@ from("jms:queue:order:input")
 -----
 
 The route listen for JMS messages and validates, transforms and handle
-it. During this the link:exchange.html[Exchange] payload is
+it. During this the xref:exchange.adoc[Exchange] payload is
 transformed/modified. So in case something goes wrong and we want to
 move the message to another JMS destination, then we can configure our
 <<deadLetterChannel-eip,Dead Letter Channel>> with the
 *useOriginalMessage* option. But when we move the
-link:exchange.html[Exchange] to this destination we do not know in which
+xref:exchange.adoc[Exchange] to this destination we do not know in which
 state the message is in. Did the error happen in before the
 transformOrder or after? So to be sure we want to move the original
 input message we received from `jms:queue:order:input`. So we can do
@@ -155,13 +155,13 @@ original we received.
 === OnRedelivery
 
 When <<deadLetterChannel-eip,Dead Letter Channel>> is doing
-redeliver its possible to configure a link:processor.html[Processor]
+redeliver its possible to configure a xref:processor.adoc[Processor]
 that is executed just *before* every redelivery attempt. This can be
 used for the situations where you need to alter the message before its
 redelivered. See below for sample.
 
 TIP: *onException and onRedeliver*
-We also support for per link:exception-clause.html[*onException*] to set
+We also support for per xref:exception-clause.adoc[*onException*] to set
 a *onRedeliver*. That means you can do special on redelivery for
 different exceptions, as opposed to onRedelivery set on
 <<deadLetterChannel-eip,Dead Letter Channel>> can be viewed as a
@@ -288,8 +288,8 @@ Is this header is absent, normal redelivery rules apply.
 *Available as of Camel 2.1*
 
 When Camel routes messages it will decorate the
-link:exchange.html[Exchange] with a property that contains the *last*
-endpoint Camel send the link:exchange.html[Exchange] to:
+xref:exchange.adoc[Exchange] with a property that contains the *last*
+endpoint Camel send the xref:exchange.adoc[Exchange] to:
 
 [source,java]
 ----
@@ -302,7 +302,7 @@ This information is updated when Camel sends a message to any endpoint.
 So if it exists its the *last* endpoint which Camel send the Exchange
 to.
 
-When for example processing the link:exchange.html[Exchange] at a given
+When for example processing the xref:exchange.adoc[Exchange] at a given
 <<Endpoint-Endpoints,Endpoint>> and the message is to be moved into the
 dead letter queue, then Camel also decorates the Exchange with another
 property that contains that *last* endpoint:
@@ -318,7 +318,7 @@ The `Exchange.FAILURE_ENDPOINT` have the constant value
 This allows for example you to fetch this information in your dead
 letter queue and use that for error reporting. +
  This is useable if the Camel route is a bit dynamic such as the dynamic
-link:recipient-list.html[Recipient List] so you know which endpoints
+xref:recipient-list.adoc[Recipient List] so you know which endpoints
 failed.
 
 These information is kept on the Exchange even if the message
@@ -385,9 +385,9 @@ The onPrepare is also available using the default error handler.
 
 When Camel error handler handles an error such as
 <<deadLetterChannel-eip,Dead Letter Channel>> or using
-link:exception-clause.html[Exception Clause] with handled=true, then
+xref:exception-clause.adoc[Exception Clause] with handled=true, then
 Camel will decorate +
- the link:exchange.html[Exchange] with the route id where the error
+ the xref:exchange.adoc[Exchange] with the route id where the error
 occurred.
 
 [source,java]
@@ -409,16 +409,16 @@ letter queue and use that for error reporting.
 Prior to Camel 2.10, Camel will perform redelivery while stopping a
 route, or shutting down Camel. This has improved a bit in Camel 2.10
 onwards, as Camel will not perform redelivery attempts when shutting
-down aggressively (eg during link:graceful-shutdown.html[Graceful
+down aggressively (eg during xref:graceful-shutdown.adoc[Graceful
 Shutdown] and timeout hit). From Camel 2.11 onwards there is a new
 option `allowRedeliveryWhileStopping` which you can use to control if
 redelivery is allowed or not; notice that any in progress redelivery
 will still be executed. This option can only disallow any redelivery to
 be executed *after* the stopping of a route/shutdown of Camel has been
 triggered. If a redelivery is dissallowed then a
-`RejectedExecutionException` is set on the link:exchange.html[Exchange]
-and the processing of the link:exchange.html[Exchange] stops. This means
-any consumer will see the link:exchange.html[Exchange] as failed due the
+`RejectedExecutionException` is set on the xref:exchange.adoc[Exchange]
+and the processing of the xref:exchange.adoc[Exchange] stops. This means
+any consumer will see the xref:exchange.adoc[Exchange] as failed due the
 `RejectedExecutionException`.
 
 The default value is `true` to be backwards compatible as before. For
@@ -431,7 +431,7 @@ And the sample sample with XML DSL
 === Samples
 
 The following example shows how to configure the Dead Letter Channel
-configuration using the link:dsl.html[DSL]
+configuration using the xref:dsl.adoc[DSL]
 
 You can also configure the
 http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/RedeliveryPolicy.html[RedeliveryPolicy]
@@ -440,12 +440,12 @@ as this example shows
 [[deadLetterChannel-HowcanImodifytheExchangebeforeredelivery]]
 === How can I modify the Exchange before redelivery?
 
-We support directly in link:dead-letter-channel.html[Dead Letter
-Channel] to set a link:processor.html[Processor] that is executed
+We support directly in xref:dead-letter-channel.adoc[Dead Letter
+Channel] to set a xref:processor.adoc[Processor] that is executed
 *before* each redelivery attempt.
 
 When <<deadLetterChannel-eip,Dead Letter Channel>> is doing
-redeliver its possible to configure a link:processor.html[Processor]
+redeliver its possible to configure a xref:processor.adoc[Processor]
 that is executed just *before* every redelivery attempt. This can be
 used for the situations where you need to alter the message before its
 redelivered.
@@ -474,10 +474,10 @@ also http://stackoverflow.com/questions/13711462/logging-camel-exceptions-and-s
 If you would like to use this EIP Pattern then please read the
 <<GettingStarted-GettingStarted,Getting Started>>, you may also find the
 <<Architecture-Architecture,Architecture>> useful particularly the description
-of <<Endpoint-Endpoints,Endpoint>> and link:uris.html[URIs]. Then you could
+of <<Endpoint-Endpoints,Endpoint>> and xref:uris.adoc[URIs]. Then you could
 try out some of the <<Examples-Examples,Examples>> first before trying
 this pattern out.
 
-* link:error-handler.html[Error Handler]
-* link:exception-clause.html[Exception Clause]
+* xref:error-handler.adoc[Error Handler]
+* xref:exception-clause.adoc[Exception Clause]
 
diff --git a/docs/user-manual/modules/ROOT/pages/debugger.adoc b/docs/user-manual/modules/ROOT/pages/debugger.adoc
index d7bf891..ba9ab12 100644
--- a/docs/user-manual/modules/ROOT/pages/debugger.adoc
+++ b/docs/user-manual/modules/ROOT/pages/debugger.adoc
@@ -113,5 +113,5 @@ image:debugger.data/debug.png[image]
 ==== See Also
 
 * Tracer
-* link:backlogdebugger.adoc[BacklogDebugger]
+* xref:backlogdebugger.adoc[BacklogDebugger]
 
diff --git a/docs/user-manual/modules/ROOT/pages/defaulterrorhandler.adoc b/docs/user-manual/modules/ROOT/pages/defaulterrorhandler.adoc
index efcc21c..7d40fda 100644
--- a/docs/user-manual/modules/ROOT/pages/defaulterrorhandler.adoc
+++ b/docs/user-manual/modules/ROOT/pages/defaulterrorhandler.adoc
@@ -16,11 +16,11 @@ it is configured to:
 * no dead letter queue (not possible)
 
 By default, any exception thrown during routing will be propagated back
-to the caller and the link:exchange.adoc[Exchange] ends immediately.
-However, you can use the link:exception-clause.adoc[Exception Clause] to
+to the caller and the xref:exchange.adoc[Exchange] ends immediately.
+However, you can use the xref:exception-clause.adoc[Exception Clause] to
 catch a given exception and lower the exception by marking it as
 handled. If so, the exception will *not* be sent back to the caller, and
-the link:exchange.adoc[Exchange] continues to be routed.
+the xref:exchange.adoc[Exchange] continues to be routed.
 
 [[DefaultErrorHandler-Example]]
 ==== Example
@@ -54,7 +54,7 @@ from("jetty:http://localhost/myservice/order")
 When the `ValidationException` is thrown from the `validateOrder` bean,
 it is intercepted by the DefaultErrorHandler that lets the
 `onException(ValidationException.class)` handle it, so the
-link:exchange.adoc[Exchange] is routed to this onException route, and
+xref:exchange.adoc[Exchange] is routed to this onException route, and
 since we use `handled(true)`, then the original exception is cleared,
 and we transform the message into a fixed response that is returned to
 jetty endpoint that returns it to the original caller.
@@ -62,5 +62,5 @@ jetty endpoint that returns it to the original caller.
 [[DefaultErrorHandler-SeeAlso]]
 ==== See Also
 
-* link:error-handler.adoc[Error Handler]
+* xref:error-handler.adoc[Error Handler]
 * <<deadLetterChannel-eip,Dead Letter Channel>>
diff --git a/docs/user-manual/modules/ROOT/pages/delay-eip.adoc b/docs/user-manual/modules/ROOT/pages/delay-eip.adoc
index b1a3f4b..93fefb0 100644
--- a/docs/user-manual/modules/ROOT/pages/delay-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/delay-eip.adoc
@@ -28,7 +28,7 @@ See the Spring DSL samples for Delayer.
 [CAUTION]
 .Using Delayer in Java DSL
 ====
-See this ticket: link:https://issues.apache.org/jira/browse/CAMEL-2654[https://issues.apache.org/jira/browse/CAMEL-2654]
+See this ticket: https://issues.apache.org/jira/browse/CAMEL-2654[https://issues.apache.org/jira/browse/CAMEL-2654]
 ====
 
 === Samples
diff --git a/docs/user-manual/modules/ROOT/pages/delay-interceptor.adoc b/docs/user-manual/modules/ROOT/pages/delay-interceptor.adoc
index 5cc91c1..260efb8 100644
--- a/docs/user-manual/modules/ROOT/pages/delay-interceptor.adoc
+++ b/docs/user-manual/modules/ROOT/pages/delay-interceptor.adoc
@@ -66,5 +66,5 @@ with 200 millis.
 ==== See Also
 
 * Tracer
-* link:debugger.adoc[Debugger]
+* xref:debugger.adoc[Debugger]
 
diff --git a/docs/user-manual/modules/ROOT/pages/download-archives.adoc b/docs/user-manual/modules/ROOT/pages/download-archives.adoc
index 879bff4..9d72f7a 100644
--- a/docs/user-manual/modules/ROOT/pages/download-archives.adoc
+++ b/docs/user-manual/modules/ROOT/pages/download-archives.adoc
@@ -19,109 +19,109 @@ archives, which is the two links above.
 
 All time Apache Camel releases notes:
 
-* link:release-notes/camel-100-release.adoc[Camel 1.0.0 Release]
-* link:release-notes/camel-110-release.adoc[Camel 1.1.0 Release]
-* link:release-notes/camel-120-release.adoc[Camel 1.2.0 Release]
-* link:release-notes/camel-130-release.adoc[Camel 1.3.0 Release]
-* link:release-notes/camel-140-release.adoc[Camel 1.4.0 Release]
-* link:release-notes/camel-150-release.adoc[Camel 1.5.0 Release]
-* link:release-notes/camel-160-release.adoc[Camel 1.6.0 Release]
-* link:release-notes/camel-161-release.adoc[Camel 1.6.1 Release]
-* link:release-notes/camel-162-release.adoc[Camel 1.6.2 Release]
-* link:release-notes/camel-163-release.adoc[Camel 1.6.3 Release]
-* link:release-notes/camel-164-release.adoc[Camel 1.6.4 Release]
-* link:release-notes/camel-200-release.adoc[Camel 2.0.0 Release]
-* link:release-notes/camel-20-m1-release.adoc[Camel 2.0-M1 Release]
-* link:release-notes/camel-20-m2-release.adoc[Camel 2.0-M2 Release]
-* link:release-notes/camel-20-m3-release.adoc[Camel 2.0-M3 Release]
-* link:release-notes/camel-210-release.adoc[Camel 2.1.0 Release]
-* link:release-notes/camel-220-release.adoc[Camel 2.2.0 Release]
-* link:release-notes/camel-230-release.adoc[Camel 2.3.0 Release]
-* link:release-notes/camel-240-release.adoc[Camel 2.4.0 Release]
-* link:release-notes/camel-250-release.adoc[Camel 2.5.0 Release]
-* link:release-notes/camel-260-release.adoc[Camel 2.6.0 Release]
-* link:release-notes/camel-270-release.adoc[Camel 2.7.0 Release]
-* link:release-notes/camel-271-release.adoc[Camel 2.7.1 Release]
-* link:release-notes/camel-272-release.adoc[Camel 2.7.2 Release]
-* link:release-notes/camel-273-release.adoc[Camel 2.7.3 Release]
-* link:release-notes/camel-274-release.adoc[Camel 2.7.4 Release]
-* link:release-notes/camel-275-release.adoc[Camel 2.7.5 Release]
-* link:release-notes/camel-280-release.adoc[Camel 2.8.0 Release]
-* link:release-notes/camel-281-release.adoc[Camel 2.8.1 Release]
-* link:release-notes/camel-282-release.adoc[Camel 2.8.2 Release]
-* link:release-notes/camel-283-release.adoc[Camel 2.8.3 Release]
-* link:release-notes/camel-284-release.adoc[Camel 2.8.4 Release]
-* link:release-notes/camel-285-release.adoc[Camel 2.8.5 Release]
-* link:release-notes/camel-286-release.adoc[Camel 2.8.6 Release]
-* link:release-notes/camel-290-release.adoc[Camel 2.9.0 Release]
-* link:release-notes/camel-291-release.adoc[Camel 2.9.1 Release]
-* link:release-notes/camel-292-release.adoc[Camel 2.9.2 Release]
-* link:release-notes/camel-293-release.adoc[Camel 2.9.3 Release]
-* link:release-notes/camel-294-release.adoc[Camel 2.9.4 Release]
-* link:release-notes/camel-295-release.adoc[Camel 2.9.5 Release]
-* link:release-notes/camel-296-release.adoc[Camel 2.9.6 Release]
-* link:release-notes/camel-297-release.adoc[Camel 2.9.7 Release]
-* link:release-notes/camel-298-release.adoc[Camel 2.9.8 Release]
-* link:release-notes/camel-2100-release.adoc[Camel 2.10.0 Release]
-* link:release-notes/camel-2101-release.adoc[Camel 2.10.1 Release]
-* link:release-notes/camel-2102-release.adoc[Camel 2.10.2 Release]
-* link:release-notes/camel-2103-release.adoc[Camel 2.10.3 Release]
-* link:release-notes/camel-2104-release.adoc[Camel 2.10.4 Release]
-* link:release-notes/camel-2105-release.adoc[Camel 2.10.5 Release]
-* link:release-notes/camel-2106-release.adoc[Camel 2.10.6 Release]
-* link:release-notes/camel-2107-release.adoc[Camel 2.10.7 Release]
-* link:release-notes/camel-2110-release.adoc[Camel 2.11.0 Release]
-* link:release-notes/camel-2111-release.adoc[Camel 2.11.1 Release]
-* link:release-notes/camel-2112-release.adoc[Camel 2.11.2 release]
-* link:release-notes/camel-2113-release.adoc[Camel 2.11.3 release]
-* link:release-notes/camel-2114-release.adoc[Camel 2.11.4 Release]
-* link:release-notes/camel-2120-release.adoc[Camel 2.12.0 Release]
-* link:release-notes/camel-2121-release.adoc[Camel 2.12.1 Release]
-* link:release-notes/camel-2122-release.adoc[Camel 2.12.2 Release]
-* link:release-notes/camel-2123-release.adoc[Camel 2.12.3 Release]
-* link:release-notes/camel-2124-release.adoc[Camel 2.12.4 Release]
-* link:release-notes/camel-2125-release.adoc[Camel 2.12.5 Release]
-* link:release-notes/camel-2130-release.adoc[Camel 2.13.0 Release]
-* link:release-notes/camel-2131-release.adoc[Camel 2.13.1 Release]
-* link:release-notes/camel-2132-release.adoc[Camel 2.13.2 Release]
-* link:release-notes/camel-2133-release.adoc[Camel 2.13.3 Release]
-* link:release-notes/camel-2134-release.adoc[Camel 2.13.4 Release]
-* link:release-notes/camel-2140-release.adoc[Camel 2.14.0 Release]
-* link:release-notes/camel-2141-release.adoc[Camel 2.14.1 Release]
-* link:release-notes/camel-2142-release.adoc[Camel 2.14.2 Release]
-* link:release-notes/camel-2143-release.adoc[Camel 2.14.3 Release]
-* link:release-notes/camel-2144-release.adoc[Camel 2.14.4 Release]
-* link:release-notes/camel-2150-release.adoc[Camel 2.15.0 Release]
-* link:release-notes/camel-2151-release.adoc[Camel 2.15.1 Release]
-* link:release-notes/camel-2152-release.adoc[Camel 2.15.2 Release]
-* link:release-notes/camel-2153-release.adoc[Camel 2.15.3 Release]
-* link:release-notes/camel-2154-release.adoc[Camel 2.15.4 Release]
-* link:release-notes/camel-2155-release.adoc[Camel 2.15.5 Release]
-* link:release-notes/camel-2156-release.adoc[Camel 2.15.6 Release]
-* link:release-notes/camel-2160-release.adoc[Camel 2.16.0 Release]
-* link:release-notes/camel-2161-release.adoc[Camel 2.16.1 Release]
-* link:release-notes/camel-2162-release.adoc[Camel 2.16.2 Release]
-* link:release-notes/camel-2163-release.adoc[Camel 2.16.3 Release]
-* link:release-notes/camel-2164-release.adoc[Camel 2.16.4 Release]
-* link:release-notes/camel-2170-release.adoc[Camel 2.17.0 Release]
-* link:release-notes/camel-2171-release.adoc[Camel 2.17.1 Release]
-* link:release-notes/camel-2172-release.adoc[Camel 2.17.2 Release]
-* link:release-notes/camel-2173-release.adoc[Camel 2.17.3 Release]
-* link:release-notes/camel-2174-release.adoc[Camel 2.17.4 Release]
-* link:release-notes/camel-2175-release.adoc[Camel 2.17.5 Release]
-* link:release-notes/camel-2176-release.adoc[Camel 2.17.6 Release]
-* link:release-notes/camel-2177-release.adoc[Camel 2.17.7 Release]
-* link:release-notes/camel-2180-release.adoc[Camel 2.18.0 Release]
-* link:release-notes/camel-2181-release.adoc[Camel 2.18.1 Release]
-* link:release-notes/camel-2182-release.adoc[Camel 2.18.2 Release]
-* link:release-notes/camel-2183-release.adoc[Camel 2.18.3 Release]
-* link:release-notes/camel-2184-release.adoc[Camel 2.18.4 Release]
-* link:release-notes/camel-2185-release.adoc[Camel 2.18.5 Release]
-* link:release-notes/camel-2190-release.adoc[Camel 2.19.0 Release]
-* link:release-notes/camel-2191-release.adoc[Camel 2.19.1 Release]
-* link:release-notes/camel-2192-release.adoc[Camel 2.19.2 Release]
-* link:release-notes/camel-2193-release.adoc[Camel 2.19.3 Release]
-* link:release-notes/camel-2194-release.adoc[Camel 2.19.4 Release]
-* link:release-notes/camel-2200-release.adoc[Camel 2.20.0 Release]
-* link:release-notes/camel-2201-release.adoc[Camel 2.20.1 Release]
-* link:release-notes/camel-2202-release.adoc[Camel 2.20.2 Release]
+* xref:release-notes/camel-100-release.adoc[Camel 1.0.0 Release]
+* xref:release-notes/camel-110-release.adoc[Camel 1.1.0 Release]
+* xref:release-notes/camel-120-release.adoc[Camel 1.2.0 Release]
+* xref:release-notes/camel-130-release.adoc[Camel 1.3.0 Release]
+* xref:release-notes/camel-140-release.adoc[Camel 1.4.0 Release]
+* xref:release-notes/camel-150-release.adoc[Camel 1.5.0 Release]
+* xref:release-notes/camel-160-release.adoc[Camel 1.6.0 Release]
+* xref:release-notes/camel-161-release.adoc[Camel 1.6.1 Release]
+* xref:release-notes/camel-162-release.adoc[Camel 1.6.2 Release]
+* xref:release-notes/camel-163-release.adoc[Camel 1.6.3 Release]
+* xref:release-notes/camel-164-release.adoc[Camel 1.6.4 Release]
+* xref:release-notes/camel-200-release.adoc[Camel 2.0.0 Release]
+* xref:release-notes/camel-20-m1-release.adoc[Camel 2.0-M1 Release]
+* xref:release-notes/camel-20-m2-release.adoc[Camel 2.0-M2 Release]
+* xref:release-notes/camel-20-m3-release.adoc[Camel 2.0-M3 Release]
+* xref:release-notes/camel-210-release.adoc[Camel 2.1.0 Release]
+* xref:release-notes/camel-220-release.adoc[Camel 2.2.0 Release]
+* xref:release-notes/camel-230-release.adoc[Camel 2.3.0 Release]
+* xref:release-notes/camel-240-release.adoc[Camel 2.4.0 Release]
+* xref:release-notes/camel-250-release.adoc[Camel 2.5.0 Release]
+* xref:release-notes/camel-260-release.adoc[Camel 2.6.0 Release]
+* xref:release-notes/camel-270-release.adoc[Camel 2.7.0 Release]
+* xref:release-notes/camel-271-release.adoc[Camel 2.7.1 Release]
+* xref:release-notes/camel-272-release.adoc[Camel 2.7.2 Release]
+* xref:release-notes/camel-273-release.adoc[Camel 2.7.3 Release]
+* xref:release-notes/camel-274-release.adoc[Camel 2.7.4 Release]
+* xref:release-notes/camel-275-release.adoc[Camel 2.7.5 Release]
+* xref:release-notes/camel-280-release.adoc[Camel 2.8.0 Release]
+* xref:release-notes/camel-281-release.adoc[Camel 2.8.1 Release]
+* xref:release-notes/camel-282-release.adoc[Camel 2.8.2 Release]
+* xref:release-notes/camel-283-release.adoc[Camel 2.8.3 Release]
+* xref:release-notes/camel-284-release.adoc[Camel 2.8.4 Release]
+* xref:release-notes/camel-285-release.adoc[Camel 2.8.5 Release]
+* xref:release-notes/camel-286-release.adoc[Camel 2.8.6 Release]
+* xref:release-notes/camel-290-release.adoc[Camel 2.9.0 Release]
+* xref:release-notes/camel-291-release.adoc[Camel 2.9.1 Release]
+* xref:release-notes/camel-292-release.adoc[Camel 2.9.2 Release]
+* xref:release-notes/camel-293-release.adoc[Camel 2.9.3 Release]
+* xref:release-notes/camel-294-release.adoc[Camel 2.9.4 Release]
+* xref:release-notes/camel-295-release.adoc[Camel 2.9.5 Release]
+* xref:release-notes/camel-296-release.adoc[Camel 2.9.6 Release]
+* xref:release-notes/camel-297-release.adoc[Camel 2.9.7 Release]
+* xref:release-notes/camel-298-release.adoc[Camel 2.9.8 Release]
+* xref:release-notes/camel-2100-release.adoc[Camel 2.10.0 Release]
+* xref:release-notes/camel-2101-release.adoc[Camel 2.10.1 Release]
+* xref:release-notes/camel-2102-release.adoc[Camel 2.10.2 Release]
+* xref:release-notes/camel-2103-release.adoc[Camel 2.10.3 Release]
+* xref:release-notes/camel-2104-release.adoc[Camel 2.10.4 Release]
+* xref:release-notes/camel-2105-release.adoc[Camel 2.10.5 Release]
+* xref:release-notes/camel-2106-release.adoc[Camel 2.10.6 Release]
+* xref:release-notes/camel-2107-release.adoc[Camel 2.10.7 Release]
+* xref:release-notes/camel-2110-release.adoc[Camel 2.11.0 Release]
+* xref:release-notes/camel-2111-release.adoc[Camel 2.11.1 Release]
+* xref:release-notes/camel-2112-release.adoc[Camel 2.11.2 release]
+* xref:release-notes/camel-2113-release.adoc[Camel 2.11.3 release]
+* xref:release-notes/camel-2114-release.adoc[Camel 2.11.4 Release]
+* xref:release-notes/camel-2120-release.adoc[Camel 2.12.0 Release]
+* xref:release-notes/camel-2121-release.adoc[Camel 2.12.1 Release]
+* xref:release-notes/camel-2122-release.adoc[Camel 2.12.2 Release]
+* xref:release-notes/camel-2123-release.adoc[Camel 2.12.3 Release]
+* xref:release-notes/camel-2124-release.adoc[Camel 2.12.4 Release]
+* xref:release-notes/camel-2125-release.adoc[Camel 2.12.5 Release]
+* xref:release-notes/camel-2130-release.adoc[Camel 2.13.0 Release]
+* xref:release-notes/camel-2131-release.adoc[Camel 2.13.1 Release]
+* xref:release-notes/camel-2132-release.adoc[Camel 2.13.2 Release]
+* xref:release-notes/camel-2133-release.adoc[Camel 2.13.3 Release]
+* xref:release-notes/camel-2134-release.adoc[Camel 2.13.4 Release]
+* xref:release-notes/camel-2140-release.adoc[Camel 2.14.0 Release]
+* xref:release-notes/camel-2141-release.adoc[Camel 2.14.1 Release]
+* xref:release-notes/camel-2142-release.adoc[Camel 2.14.2 Release]
+* xref:release-notes/camel-2143-release.adoc[Camel 2.14.3 Release]
+* xref:release-notes/camel-2144-release.adoc[Camel 2.14.4 Release]
+* xref:release-notes/camel-2150-release.adoc[Camel 2.15.0 Release]
+* xref:release-notes/camel-2151-release.adoc[Camel 2.15.1 Release]
+* xref:release-notes/camel-2152-release.adoc[Camel 2.15.2 Release]
+* xref:release-notes/camel-2153-release.adoc[Camel 2.15.3 Release]
+* xref:release-notes/camel-2154-release.adoc[Camel 2.15.4 Release]
+* xref:release-notes/camel-2155-release.adoc[Camel 2.15.5 Release]
+* xref:release-notes/camel-2156-release.adoc[Camel 2.15.6 Release]
+* xref:release-notes/camel-2160-release.adoc[Camel 2.16.0 Release]
+* xref:release-notes/camel-2161-release.adoc[Camel 2.16.1 Release]
+* xref:release-notes/camel-2162-release.adoc[Camel 2.16.2 Release]
+* xref:release-notes/camel-2163-release.adoc[Camel 2.16.3 Release]
+* xref:release-notes/camel-2164-release.adoc[Camel 2.16.4 Release]
+* xref:release-notes/camel-2170-release.adoc[Camel 2.17.0 Release]
+* xref:release-notes/camel-2171-release.adoc[Camel 2.17.1 Release]
+* xref:release-notes/camel-2172-release.adoc[Camel 2.17.2 Release]
+* xref:release-notes/camel-2173-release.adoc[Camel 2.17.3 Release]
+* xref:release-notes/camel-2174-release.adoc[Camel 2.17.4 Release]
+* xref:release-notes/camel-2175-release.adoc[Camel 2.17.5 Release]
+* xref:release-notes/camel-2176-release.adoc[Camel 2.17.6 Release]
+* xref:release-notes/camel-2177-release.adoc[Camel 2.17.7 Release]
+* xref:release-notes/camel-2180-release.adoc[Camel 2.18.0 Release]
+* xref:release-notes/camel-2181-release.adoc[Camel 2.18.1 Release]
+* xref:release-notes/camel-2182-release.adoc[Camel 2.18.2 Release]
+* xref:release-notes/camel-2183-release.adoc[Camel 2.18.3 Release]
+* xref:release-notes/camel-2184-release.adoc[Camel 2.18.4 Release]
+* xref:release-notes/camel-2185-release.adoc[Camel 2.18.5 Release]
+* xref:release-notes/camel-2190-release.adoc[Camel 2.19.0 Release]
+* xref:release-notes/camel-2191-release.adoc[Camel 2.19.1 Release]
+* xref:release-notes/camel-2192-release.adoc[Camel 2.19.2 Release]
+* xref:release-notes/camel-2193-release.adoc[Camel 2.19.3 Release]
+* xref:release-notes/camel-2194-release.adoc[Camel 2.19.4 Release]
+* xref:release-notes/camel-2200-release.adoc[Camel 2.20.0 Release]
+* xref:release-notes/camel-2201-release.adoc[Camel 2.20.1 Release]
+* xref:release-notes/camel-2202-release.adoc[Camel 2.20.2 Release]
diff --git a/docs/user-manual/modules/ROOT/pages/download.adoc b/docs/user-manual/modules/ROOT/pages/download.adoc
index a76bb42..77710b5 100644
--- a/docs/user-manual/modules/ROOT/pages/download.adoc
+++ b/docs/user-manual/modules/ROOT/pages/download.adoc
@@ -9,15 +9,15 @@ image:http://camel.apache.org/images/camel-box-small.png[image]
 Grab these releases while they are hot!
 
 * The latest release for Camel 2.20.x is:
-link:release-notes/camel-2202-release.adoc[Camel 2.20.2 Release]
+xref:release-notes/camel-2202-release.adoc[Camel 2.20.2 Release]
 * The latest release for Camel 2.19.x is:
-link:release-notes/camel-2194-release.adoc[Camel 2.19.4 Release]
+xref:release-notes/camel-2194-release.adoc[Camel 2.19.4 Release]
 * Camel versions 2.18.x and older are no longer actively developed.
 
 [[Download-OlderReleases]]
 ==== Older Releases
 
-See: link:download-archives.adoc[Download Archives]
+See: xref:download-archives.adoc[Download Archives]
 
 [[Download-Gettingthelatestdistributions]]
 ==== Getting the latest distributions
@@ -100,7 +100,7 @@ POM] is:
 [[Download-Gettingpastreleases]]
 ==== Getting past releases
 
-See the link:download-archives.adoc[Download Archives] for all time
+See the xref:download-archives.adoc[Download Archives] for all time
 releases.
 
 [[Download-ReleasesInProgress]]
@@ -108,10 +108,10 @@ releases.
 
 The following releases are currently in progress:
 
-* link:release-notes/camel-2203-release.adoc[Camel 2.20.3 Release]
-* link:copy-of-camel-2195-release-template.html[Copy of Camel 2.19.5 Release (template)]
-* link:release-notes/camel-2210-release.adoc[Camel 2.21.0 Release]
-* link:camel-xyz-release-template.html[Camel x.y.z Release (template)]
+* xref:release-notes/camel-2203-release.adoc[Camel 2.20.3 Release]
+* xref:copy-of-camel-2195-release-template.adoc[Copy of Camel 2.19.5 Release (template)]
+* xref:release-notes/camel-2210-release.adoc[Camel 2.21.0 Release]
+* xref:camel-xyz-release-template.adoc[Camel x.y.z Release (template)]
 
 [[Download-Maven2Repositories]]
 ==== Maven 2 Repositories
diff --git a/docs/user-manual/modules/ROOT/pages/dsl.adoc b/docs/user-manual/modules/ROOT/pages/dsl.adoc
index c8cee20..9c20375 100644
--- a/docs/user-manual/modules/ROOT/pages/dsl.adoc
+++ b/docs/user-manual/modules/ROOT/pages/dsl.adoc
@@ -2,22 +2,22 @@
 === DSL
 
 Camel uses a Java _Domain Specific Language_ or DSL for creating
-link:enterprise-integration-patterns.adoc[Enterprise Integration
+xref:enterprise-integration-patterns.adoc[Enterprise Integration
 Patterns] or Routes in a variety of domain-specific
 languages (DSL) as listed below.
 
-* link:java-dsl.adoc[Java DSL] - A Java based DSL using the fluent
+* xref:java-dsl.adoc[Java DSL] - A Java based DSL using the fluent
 builder style.
-* link:spring.adoc[Spring XML] - A XML based DSL in Spring XML files
+* xref:spring.adoc[Spring XML] - A XML based DSL in Spring XML files
 * Blueprint XML - A XML based
 DSL in OSGi Blueprint XML files
 * Rest DSL - A DSL to define REST services using a
 REST style in either Java or XML.
-* link:groovy-dsl.adoc[Groovy DSL] - A Groovy based DSL using Groovy
+* xref:groovy-dsl.adoc[Groovy DSL] - A Groovy based DSL using Groovy
 programming language
-* link:scala-dsl.adoc[Scala DSL] - A Scala based DSL using Scala
+* xref:scala-dsl.adoc[Scala DSL] - A Scala based DSL using Scala
 programming language
-* link:bean-integration.adoc[Annotation DSL] - Use annotations in Java
+* xref:bean-integration.adoc[Annotation DSL] - Use annotations in Java
 beans.
 * https://github.com/koolio/kool/tree/master/kool-camel[Kotlin DSL] -
 *Work in progress* - Currently developed outside ASF, but will we
@@ -25,7 +25,7 @@ included later in Camel when Kotlin and the DSL is ready.
 
 The main entry points for the DSL are
 
-* link:camelcontext.adoc[CamelContext] for creating a Camel routing
+* xref:camelcontext.adoc[CamelContext] for creating a Camel routing
 rulebase
 * RouteBuilder for creating a collection of
 routes using the routing DSL
@@ -35,8 +35,8 @@ routes using the routing DSL
 
 For more examples of the DSL in action see
 
-* link:enterprise-integration-patterns.adoc[Enterprise Integration
+* xref:enterprise-integration-patterns.adoc[Enterprise Integration
 Patterns]
-* link:routes.adoc[Routes]
+* xref:routes.adoc[Routes]
 * Examples
 
diff --git a/docs/user-manual/modules/ROOT/pages/dynamicRouter-eip.adoc b/docs/user-manual/modules/ROOT/pages/dynamicRouter-eip.adoc
index 80ed1d3..68056c7 100644
--- a/docs/user-manual/modules/ROOT/pages/dynamicRouter-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/dynamicRouter-eip.adoc
@@ -1,7 +1,7 @@
 [[dynamicRouter-eip]]
 == Dynamic Router EIP
 
-The link:http://www.enterpriseintegrationpatterns.com/DynamicRouter.html[Dynamic Router] from the link:../../../../readme-eip.adoc[EIP patterns] allows you to route messages while avoiding the dependency of the router on all possible destinations while maintaining its efficiency.
+The http://www.enterpriseintegrationpatterns.com/DynamicRouter.html[Dynamic Router] from the xref:../../../../readme-eip.adoc[EIP patterns] allows you to route messages while avoiding the dependency of the router on all possible destinations while maintaining its efficiency.
 
 image:http://www.enterpriseintegrationpatterns.com/img/DynamicRouter.gif[image]
 
diff --git a/docs/user-manual/modules/ROOT/pages/endpoint-completer.adoc b/docs/user-manual/modules/ROOT/pages/endpoint-completer.adoc
index 45b59bc..7be7c9e 100644
--- a/docs/user-manual/modules/ROOT/pages/endpoint-completer.adoc
+++ b/docs/user-manual/modules/ROOT/pages/endpoint-completer.adoc
@@ -2,7 +2,7 @@
 === EndpointCompleter
 
 As of *Camel 2.12*.
-This API is an optional SPI interface for link:component.adoc[Component]
+This API is an optional SPI interface for xref:component.adoc[Component]
 implementors. It provides a completion hook; rather like bash tab
 completion, or the completion in the
 http://karaf.apache.org/manual/latest/#_using_the_console[Karaf
@@ -23,5 +23,5 @@ code in the FileComponent to implement completeEndpointPath()].
 
 Some example implementations include:
 
-* link:file2.adoc[File]
+* xref:file2.adoc[File]
 
diff --git a/docs/user-manual/modules/ROOT/pages/enterprise-integration-patterns.adoc b/docs/user-manual/modules/ROOT/pages/enterprise-integration-patterns.adoc
index 69366fa..41a25f1 100644
--- a/docs/user-manual/modules/ROOT/pages/enterprise-integration-patterns.adoc
+++ b/docs/user-manual/modules/ROOT/pages/enterprise-integration-patterns.adoc
@@ -16,10 +16,10 @@ patterns.
 
 The EIP icons library is available as a Visio stencil file adapted to
 render the icons with the Camel color : sand. Download it
-link:enterprise-integration-patterns.data/Hohpe_EIP_camel_20150622.zip?version=1&modificationDate=1435069070000&api=v2[here]
+xref:enterprise-integration-patterns.data/Hohpe_EIP_camel_20150622.zip?version=1&modificationDate=1435069070000&api=v2[here]
 for your presentation, functional and technical analysis documents. The
 original EIP stencil is also available in
-link:enterprise-integration-patterns.data/Hohpe_EIP_camel_OpenOffice.zip?version=1&modificationDate=1245056975000&api=v2[OpenOffice
+xref:enterprise-integration-patterns.data/Hohpe_EIP_camel_OpenOffice.zip?version=1&modificationDate=1245056975000&api=v2[OpenOffice
 3.x Draw] (thanks to Marco Garbelini) ,
 http://www.eaipatterns.com/download/EIP_Visio_stencil.zip[Microsoft
 Visio], or http://www.graffletopia.com/stencils/137[Omnigraffle].
diff --git a/docs/user-manual/modules/ROOT/pages/error-handler.adoc b/docs/user-manual/modules/ROOT/pages/error-handler.adoc
index cad3e31..cc11548 100644
--- a/docs/user-manual/modules/ROOT/pages/error-handler.adoc
+++ b/docs/user-manual/modules/ROOT/pages/error-handler.adoc
@@ -21,7 +21,7 @@ Exception Clause.
 
 *Using try ... catch ... finally*
 
-Related to error handling is the link:try-catch-finally.html[Try Catch
+Related to error handling is the xref:try-catch-finally.adoc[Try Catch
 Finally] as DSL you can use directly in your route. Its basically a
 mimic of the regular try catch finally in the Java language but with
 more power.
@@ -60,7 +60,7 @@ a single RouteBuilder
 ===== DefaultErrorHandler
 
 The DefaultErrorHandler is the default
-error handler in Camel. Unlike link:dead-letter-channel.html[Dead Letter
+error handler in Camel. Unlike xref:dead-letter-channel.adoc[Dead Letter
 Channel] it does not have any dead letter queue, and do *not* handle
 exceptions by default.
 
@@ -331,7 +331,7 @@ and use another error handler.
 [[ErrorHandler-Springbasedconfigurationsample]]
 ===== Spring based configuration sample
 
-In this sample we configure a link:dead-letter-channel.html[Dead Letter
+In this sample we configure a xref:dead-letter-channel.adoc[Dead Letter
 Channel] on the route that should redeliver at most 3 times and use a
 little delay before retrying. First we configure the reference to *myDeadLetterErrorHandler* using
 the `errorHandlerRef` attribute on the `route` tag.
diff --git a/docs/user-manual/modules/ROOT/pages/error-handling-in-camel.adoc b/docs/user-manual/modules/ROOT/pages/error-handling-in-camel.adoc
index 3f8b175..acdacb2 100644
--- a/docs/user-manual/modules/ROOT/pages/error-handling-in-camel.adoc
+++ b/docs/user-manual/modules/ROOT/pages/error-handling-in-camel.adoc
@@ -15,7 +15,7 @@ handled by a backing system such as a J2EE application server.
 ====
 **Using try ... catch ... finally**
 
-Related to error handling is the link:try-catch-finally.adoc[Try Catch
+Related to error handling is the xref:try-catch-finally.adoc[Try Catch
 Finally] feature in Camel.
 ====
 
@@ -44,7 +44,7 @@ better suit you needs.
 ==== Camel 1.x default error handler
 
 In Camel 1.x a global <<deadLetterChannel-eip,Dead Letter Channel>>
-is setup as the link:error-handler.adoc[Error Handler] by default. It's
+is setup as the xref:error-handler.adoc[Error Handler] by default. It's
 configured as:
 
 * redeliver up to 6 times
@@ -59,7 +59,7 @@ ERROR level :star:
 **Dead Letter Queue (*)**
 
 A dead letter queue is like a black hole, it will consume the
-link:exchange.adoc[Exchange] and the link:exchange.adoc[Exchange]
+xref:exchange.adoc[Exchange] and the xref:exchange.adoc[Exchange]
 routing is ended with no indication that it failed. +
 This works great in the <<jms-component,JMS>> Messaging world where we
 don't want a bad message to cause endless retries and causing the system
@@ -68,7 +68,7 @@ to a dead letter queue so the system can continue to operate and work
 with the next message.
 
 This default does not go well with other transports using in a
-request/reply messaging style. If the link:exchange.adoc[Exchange]
+request/reply messaging style. If the xref:exchange.adoc[Exchange]
 failed then the original caller will still want a response after the
 failure.
 
@@ -80,8 +80,8 @@ handling strategies that suits your business needs.
 ==== Camel 2.0 onwards default error handler
 
 In Camel 2.0 onwards a global
-link:defaulterrorhandler.adoc[DefaultErrorHandler] is set up as the
-link:error-handler.adoc[Error Handler] by default. It's configured as:
+xref:defaulterrorhandler.adoc[DefaultErrorHandler] is set up as the
+xref:error-handler.adoc[Error Handler] by default. It's configured as:
 
 * no redeliveries
 * no dead letter queue
@@ -125,18 +125,18 @@ When Camel is started it will inspect the routes and weave in the error
 handling into the routing. With up to 3 supported scopes, the error
 handling can be quite complex. And on top of that you have inherited
 error handling and you can even configure
-link:exception-clause.adoc[Exception Clause]s to handle specific
+xref:exception-clause.adoc[Exception Clause]s to handle specific
 exception types differently. So yes it's advanced but very powerful when
 you get the grip of it.
 
 To keep things simple we first look at the basic concept how Camel
 orchestrates the redelivery attempt. At any given node in the route
 graph Camel intercepts the current Exchange being routed and wraps it
-with the link:error-handler.adoc[Error Handler]. This ensures that the
-link:error-handler.adoc[Error Handler] can kick in, just as the AOP
+with the xref:error-handler.adoc[Error Handler]. This ensures that the
+xref:error-handler.adoc[Error Handler] can kick in, just as the AOP
 around concept. If the exchange can be routed without any problems then
 it's forwarded to the next node in the route graph, *But* if there was
-an exception thrown, then the link:error-handler.adoc[Error Handler]
+an exception thrown, then the xref:error-handler.adoc[Error Handler]
 kicks in and decides what to do.
 
 An example illustrating this:
@@ -152,7 +152,7 @@ from("seda:newOrder")
 ----
 
 In this route we have 3 nodes (the dots) where the
-link:error-handler.adoc[Error Handler] is watching us (The AOP around
+xref:error-handler.adoc[Error Handler] is watching us (The AOP around
 stuff). So when an order arrives on the seda queue we consume it and
 send it to the validateOrder bean. In case the validation bean processed
 ok, we move on to the next node. In case the storeOrder bean failed and
@@ -174,7 +174,7 @@ just a ERROR logger.
 
 [NOTE]
 ====
-This applies to all kind of link:component.adoc[Components] in Camel.
+This applies to all kind of xref:component.adoc[Components] in Camel.
 The sample above only uses <<bean-component,Bean>> but it's the same for
 <<file-component,File>>, <<mail-component,Mail>>,
 <<velocity-component,Velocity>> or whatever component you use.
@@ -195,7 +195,7 @@ J2EE server or a Message Broker.
 
 Camel does the same weaving as for the non-transactional type. The
 difference is that for transactional exchanges the
-link:error-handler.adoc[Error Handler] does *not* kick in. You can say
+xref:error-handler.adoc[Error Handler] does *not* kick in. You can say
 the AOP around does not apply. Camel relies solely on the backing system
 to orchestrate the error handling. And as such the when the backing
 system does redeliver it will start all over again. For instance if the
@@ -206,16 +206,16 @@ the JMS message again.
 *Camel 2.0*
 
 In Camel 2.0 we have empowered the
-link:transactionerrorhandler.adoc[TransactionErrorHandler] to build on
+xref:transactionerrorhandler.adoc[TransactionErrorHandler] to build on
 top of the same base that
-link:defaulterrorhandler.adoc[DefaultErrorHandler] does. This allows you
+xref:defaulterrorhandler.adoc[DefaultErrorHandler] does. This allows you
 to use Camel redelivery with transactional routes as well. The Spring
 transaction manager is still in charge and have the last say. But you
 can use Camel to do some local redelivery, for instance to upload a file
 to a FTP server, in which Camel can do local redelivery. So this gives
 you the power from both worlds. In case Camel cannot redeliver the
 exchange will be failed and rolled back. By default the
-link:transactionerrorhandler.adoc[TransactionErrorHandler] does *not*
+xref:transactionerrorhandler.adoc[TransactionErrorHandler] does *not*
 attempt any local redeliveries. You have to configure it to do so, for
 instance to set a maximum redelivers to a number > 0.
 
@@ -225,11 +225,11 @@ for more.
 [[ErrorhandlinginCamel-Seealso]]
 ==== See also
 
-* link:error-handler.adoc[Error Handler]
+* xref:error-handler.adoc[Error Handler]
 * <<deadLetterChannel-eip,Dead Letter Channel>>
-* link:exception-clause.adoc[Exception Clause]
+* xref:exception-clause.adoc[Exception Clause]
 * <<transactionalClient-eip,Transactional Client>>
-* link:transactionerrorhandler.adoc[TransactionErrorHandler]
-* link:defaulterrorhandler.adoc[DefaultErrorHandler]
-* link:try-catch-finally.adoc[Try Catch Finally]
+* xref:transactionerrorhandler.adoc[TransactionErrorHandler]
+* xref:defaulterrorhandler.adoc[DefaultErrorHandler]
+* xref:try-catch-finally.adoc[Try Catch Finally]
 * <<loadBalance-eip,Failover Load Balancer>>
diff --git a/docs/user-manual/modules/ROOT/pages/event-message.adoc b/docs/user-manual/modules/ROOT/pages/event-message.adoc
index 199bb31..e8d9aa7 100644
--- a/docs/user-manual/modules/ROOT/pages/event-message.adoc
+++ b/docs/user-manual/modules/ROOT/pages/event-message.adoc
@@ -3,25 +3,25 @@
 
 Camel supports the
 http://www.enterpriseintegrationpatterns.com/EventMessage.html[Event
-Message] from the link:enterprise-integration-patterns.html[EIP
-patterns] by supporting the link:exchange-pattern.html[Exchange Pattern]
-on a link:message.html[Message] which can be set to *InOnly* to indicate
-a oneway event message. Camel link:components.html[Components] then
+Message] from the xref:enterprise-integration-patterns.adoc[EIP
+patterns] by supporting the xref:exchange-pattern.adoc[Exchange Pattern]
+on a xref:message.adoc[Message] which can be set to *InOnly* to indicate
+a oneway event message. Camel xref:components.adoc[Components] then
 implement this pattern using the underlying transport or protocols.
 
 image:http://www.enterpriseintegrationpatterns.com/img/EventMessageSolution.gif[image]
 
-The default behaviour of many link:components.html[Components] is InOnly
+The default behaviour of many xref:components.adoc[Components] is InOnly
 such as for <<jms-component,JMS>>, <<jms-component,File>> or
 <<seda-component,SEDA>>
 
-TIP: See the related link:request-reply.html[Request Reply] message.
+TIP: See the related xref:request-reply.adoc[Request Reply] message.
 
 [[eventMessage-ExplicitlyspecifyingInOnly]]
 === Explicitly specifying InOnly
 
 If you are using a component which defaults to InOut you can override
-the link:exchange-pattern.html[Exchange Pattern] for an endpoint using
+the xref:exchange-pattern.adoc[Exchange Pattern] for an endpoint using
 the pattern property.
 
 [source]
@@ -33,7 +33,7 @@ foo:bar?exchangePattern=InOnly
 === Samples
 
 From 2.0 onwards on Camel you can specify the
-link:exchange-pattern.html[Exchange Pattern] using the DSL.
+xref:exchange-pattern.adoc[Exchange Pattern] using the DSL.
 
 [source,java]
 ----
diff --git a/docs/user-manual/modules/ROOT/pages/examples.adoc b/docs/user-manual/modules/ROOT/pages/examples.adoc
index 926db38..8e261d6 100644
--- a/docs/user-manual/modules/ROOT/pages/examples.adoc
+++ b/docs/user-manual/modules/ROOT/pages/examples.adoc
@@ -1,13 +1,13 @@
 [[Examples-Examples]]
 === Examples
 
-Once you have read about link:getting-started.adoc[Getting Started] and
-looked at the link:enterprise-integration-patterns.adoc[Enterprise
+Once you have read about xref:getting-started.adoc[Getting Started] and
+looked at the xref:enterprise-integration-patterns.adoc[Enterprise
 Integration Patterns], you might want to try out some examples.
 
 Before starting to work on example you may want to
-link:faq/what-are-the-dependencies.adoc[check the requirements for working
-with Camel]. Then link:running-examples.adoc[Running Examples] describes
+xref:faq/what-are-the-dependencies.adoc[check the requirements for working
+with Camel]. Then xref:running-examples.adoc[Running Examples] describes
 how to get the examples to run
 
 
@@ -15,24 +15,24 @@ how to get the examples to run
 ==== Walk-throughs
 
 * Walk through the code of a
-link:walk-through-an-example.adoc[beginner's example] so you can
-understand how things fit together using the Java link:dsl.adoc[DSL] to
+xref:walk-through-an-example.adoc[beginner's example] so you can
+understand how things fit together using the Java xref:dsl.adoc[DSL] to
 set up some routes in a simple `main(...)` method.
-* Walk through the link:walk-through-another-example.adoc[Spring DSL
+* Walk through the xref:walk-through-another-example.adoc[Spring DSL
 example] to look at XML-based routing.
-* Walk through the link:console-example.adoc[Console Example] to
+* Walk through the xref:console-example.adoc[Console Example] to
 practice reading input from the console.
 
 [NOTE]
 ====
 The examples listed below are hosted at Apache. We also offer the
-link:articles.adoc[Articles] page as a collection of 3rd-party Camel
+xref:articles.adoc[Articles] page as a collection of 3rd-party Camel
 material - such as tutorials, blog posts, published articles, videos,
 podcasts, presentations, and so forth.
 
 If you have written a Camel-related article, then we are happy to
-provide a link to it. You can contact the Camel link:team.adoc[Team] via
-our link:mailing-lists.adoc[Mailing Lists], or simply post a tweet with
+provide a link to it. You can contact the Camel xref:team.adoc[Team] via
+our xref:mailing-lists.adoc[Mailing Lists], or simply post a tweet with
 the words "Apache Camel".
 ====
 
@@ -49,7 +49,7 @@ https://github.com/apache/camel/tree/master/examples#welcome-to-the-apache-camel
 [[Examples-SeeAlso]]
 ==== See Also
 
-* link:tutorials.adoc[Tutorials]
-* link:cookbook.adoc[Cookbook]
-* link:enterprise-integration-patterns.adoc[Enterprise Integration
+* xref:tutorials.adoc[Tutorials]
+* xref:cookbook.adoc[Cookbook]
+* xref:enterprise-integration-patterns.adoc[Enterprise Integration
 Patterns]
diff --git a/docs/user-manual/modules/ROOT/pages/exception-clause.adoc b/docs/user-manual/modules/ROOT/pages/exception-clause.adoc
index cac8c06..cae43b8 100644
--- a/docs/user-manual/modules/ROOT/pages/exception-clause.adoc
+++ b/docs/user-manual/modules/ROOT/pages/exception-clause.adoc
@@ -1,7 +1,7 @@
 [[ExceptionClause-ExceptionClause]]
 === Exception Clause
 
-You can use the _Exception Clause_ in the Java link:dsl.adoc[DSL] to
+You can use the _Exception Clause_ in the Java xref:dsl.adoc[DSL] to
 specify the error handling you require on a per exception type basis
 using the *`onException()`* method. To get started we give quick sample
 before digging into how it works.
@@ -161,7 +161,7 @@ select the *`onException(IOException.class)`* clause.
 
 http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/RedeliveryPolicy.html[RedeliveryPolicy]
 requires to use the <<deadLetterChannel-eip,Dead Letter Channel>>
-as the link:error-handler.adoc[Error Handler]. Dead Letter Channel
+as the xref:error-handler.adoc[Error Handler]. Dead Letter Channel
 supports attempting to redeliver the message exchange a number of times
 before sending it to a dead letter endpoint. See
 <<deadLetterChannel-eip,Dead Letter Channel>> for further
@@ -169,7 +169,7 @@ information about redeliver and which redeliver options exists.
 
 ===== No redelivery is default for onException
 
-By default any link:exception-clause.adoc[Exception Clause] will *not*
+By default any xref:exception-clause.adoc[Exception Clause] will *not*
 redeliver! (as it sets the `maximumRedeliveries` option to 0).
 
 Sometimes you want to configure the redelivery policy on a per exception
@@ -268,7 +268,7 @@ redelivery policies.
 
 By default the error handler will create and use a scheduled thread pool
 to trigger redelivery in the future. From *Camel 2.8*: you can configure
-the *`executorServiceRef`* on the link:error-handler.adoc[Error Handler]
+the *`executorServiceRef`* on the xref:error-handler.adoc[Error Handler]
 to indicate a reference to either a shared thread pool you can enlist in
 the registry, or a thread pool profile in case you want to be able to
 control pool settings.
@@ -341,13 +341,13 @@ feature in Camel. However prior to Camel 1.5 you could not mark the
 exception as being handled, so the caller would still receive the caused
 exception as a response. In Camel 1.5 you can now change this behavior
 with the new *handle* DSL. The handle is a
-link:predicate.adoc[Predicate] that is overloaded to accept three types
+xref:predicate.adoc[Predicate] that is overloaded to accept three types
 of parameters:
 
 * Boolean
-* link:predicate.adoc[Predicate]
-* link:expression.adoc[Expression] that will be evaluates as a
-link:predicate.adoc[Predicate] using this rule set: If the expressions
+* xref:predicate.adoc[Predicate]
+* xref:expression.adoc[Expression] that will be evaluates as a
+xref:predicate.adoc[Predicate] using this rule set: If the expressions
 returns a Boolean its used directly. For any other response its regarded
 as `true` if the response is `not null`.
 
@@ -370,7 +370,7 @@ to the caller. First we setup our routing as:
 /camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelHandledExampleTest.java
 
 Then we have our service beans that is just plain POJO demonstrating how you
-can use link:bean-integration.adoc[Bean Integration] in Camel to avoid
+can use xref:bean-integration.adoc[Bean Integration] in Camel to avoid
 being tied to the Camel API:
 
 /camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelHandledExampleTest.java
@@ -417,7 +417,7 @@ message instead of the fixed text `Sorry`:
 
 /camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionHandleAndTransformTest.java
 
-And we can use the link:simple-language.adoc[Simple] language to set a readable error
+And we can use the xref:simple-language.adoc[Simple] language to set a readable error
 message with the caused exception message:
 
 /camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionHandleAndTransformTest.java
@@ -443,7 +443,7 @@ onException(IDontCareException)
 You can maybe compare continued with a having a *`try ... catch`* block
 around each step and then just ignore the exception. Using continued
 makes it easier in Camel as you otherwise had to use
-link:try-catch-finally.adoc[Try Catch Finally] style for this kind of
+xref:try-catch-finally.adoc[Try Catch Finally] style for this kind of
 use case.
 
 [[ExceptionClause-ExampleUsingcontinued]]
@@ -492,10 +492,10 @@ from("jms:queue:order:input")
 ----
 
 The route listen for JMS messages and validates, transforms and handle
-it. During this the link:exchange.adoc[Exchange] payload is
+it. During this the xref:exchange.adoc[Exchange] payload is
 transformed/modified. So in case something goes wrong and we want to
 move the message to another JMS destination, then we can add an
-*`onException`*. But when we move the link:exchange.adoc[Exchange] to
+*`onException`*. But when we move the xref:exchange.adoc[Exchange] to
 this destination we do not know in which state the message is in. Did
 the error happen in before the *`transformOrder`* or after? So to be
 sure we want to move the original input message we received from
@@ -533,7 +533,7 @@ would be:
 ----
 
 [[ExceptionClause-AdvancedUsageofExceptionClause]]
-=== Advanced Usage of link:exception-clause.adoc[Exception Clause]
+=== Advanced Usage of xref:exception-clause.adoc[Exception Clause]
 
 [[ExceptionClause-UsingGlobalandPerRouteExceptionClauses]]
 ==== Using Global and Per Route Exception Clauses
@@ -591,9 +591,9 @@ that is selected.
 
 *Available as of Camel 1.5.1 or later*
 
-You can attach an link:expression.adoc[Expression] to the exception
+You can attach an xref:expression.adoc[Expression] to the exception
 clause to have fine grained control when a clause should be selected or
-not. As it's an link:expression.adoc[Expression] you can use any kind of
+not. As it's an xref:expression.adoc[Expression] you can use any kind of
 code to perform the test. Here is a sample:
 
 /camel-core/src/test/java/org/apache/camel/processor/exceptionpolicy/DefaultExceptionPolicyStrategyUsingWhenTest.java
@@ -617,10 +617,10 @@ default error handler will kick in.
 for *`onRedelivery`* to allow custom processing of a Message before its
 being redelivered. It can be used to add some customer header or
 whatnot. In Camel 2.0 we have added this feature to
-link:exception-clause.adoc[Exception Clause] as well, so you can use per
+xref:exception-clause.adoc[Exception Clause] as well, so you can use per
 exception scoped on redelivery. Camel will fallback to use the one
 defined on <<deadLetterChannel-eip,Dead Letter Channel>> if any, if
-none exists on the link:exception-clause.adoc[Exception Clause]. See
+none exists on the xref:exception-clause.adoc[Exception Clause]. See
 <<deadLetterChannel-eip,Dead Letter Channel>> for more details on
 *`onRedelivery`*.
 
@@ -760,6 +760,6 @@ Spring DSL as well. Here are a few examples:
 [[ExceptionClause-Seealso]]
 ==== See also
 
-* The link:error-handler.adoc[Error Handler] for the general error handling documentation
+* The xref:error-handler.adoc[Error Handler] for the general error handling documentation
 * The <<deadLetterChannel-eip,Dead Letter Channel>> for further details
 * The <<transactionalClient-eip,Transactional Client>> for transactional behavior
diff --git a/docs/user-manual/modules/ROOT/pages/exchange-pattern.adoc b/docs/user-manual/modules/ROOT/pages/exchange-pattern.adoc
index ffebb18..fda76da 100644
--- a/docs/user-manual/modules/ROOT/pages/exchange-pattern.adoc
+++ b/docs/user-manual/modules/ROOT/pages/exchange-pattern.adoc
@@ -4,7 +4,7 @@
 There are many different _Message Exchange Patterns_ you can use in
 messaging. This concept is also demonstrated in WSDL and JBI's MEPs.
 
-From there link:enterprise-integration-patterns.adoc[Enterprise
+From there xref:enterprise-integration-patterns.adoc[Enterprise
 Integration Patterns] the common examples are
 
 * Request Reply
diff --git a/docs/user-manual/modules/ROOT/pages/expression.adoc b/docs/user-manual/modules/ROOT/pages/expression.adoc
index 9347f13..22909cc 100644
--- a/docs/user-manual/modules/ROOT/pages/expression.adoc
+++ b/docs/user-manual/modules/ROOT/pages/expression.adoc
@@ -2,7 +2,7 @@
 === Expressions
 
 Expressions and Predicates can then be used to
-create the various link:enterprise-integration-patterns.adoc[Enterprise
+create the various xref:enterprise-integration-patterns.adoc[Enterprise
 Integration Patterns] in the DSL or
 XML Configuration like the
 Recipient List. +
@@ -96,7 +96,7 @@ The following languages are supported out of the box
 * https://github.com/camel-extra/camel-extra/blob/master/components/camel-vtdxml/src/main/docs/vtdxml-component.adoc[VTD-XML]
 
 Most of these languages is also supported used as
-link:annotation-based-expression-language.html[Annotation Based
+xref:annotation-based-expression-language.adoc[Annotation Based
 Expression Language].
 
 [[Expression-UsingExpressionsinyourIDE]]
diff --git a/docs/user-manual/modules/ROOT/pages/faq.adoc b/docs/user-manual/modules/ROOT/pages/faq.adoc
index 79483f9..30d1651 100644
--- a/docs/user-manual/modules/ROOT/pages/faq.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq.adoc
@@ -3,11 +3,11 @@
 
 Here are a list of commonly asked questions and answers. If you have any
 questions which are not on this list, please talk to us on the
-link:mailing-lists.adoc[Mailing Lists].
+xref:mailing-lists.adoc[Mailing Lists].
 
-We link:../../../CONTRIBUTING.md[welcome contributions] and
+We xref:../../../CONTRIBUTING.md[welcome contributions] and
 this entire website is in
-link:faq/how-does-the-website-work.adoc[the GitHub repository you can send a pull request],
+xref:faq/how-does-the-website-work.adoc[the GitHub repository you can send a pull request],
 so please join in and help us make the documentation better!
 
 [[FAQ-GeneralQuestions]]
@@ -15,110 +15,110 @@ so please join in and help us make the documentation better!
 
 General questions about Camel
 
-* link:faq/can-i-get-commercial-support.adoc[Can I get commercial support?]
-* link:faq/can-i-use-camel-on-java-14.adoc[Can I use Camel on Java 1.4?]
-* link:faq/does-camel-work-on-ibms-jdk.adoc[Does Camel work on IBM's JDK?]
-* link:support.adoc[How can I get help?]
-* link:faq/how-can-i-get-the-source-code.adoc[How can I get the source code?]
-* link:faq/how-does-camel-compare-to-mule.adoc[How does Camel compare to
+* xref:faq/can-i-get-commercial-support.adoc[Can I get commercial support?]
+* xref:faq/can-i-use-camel-on-java-14.adoc[Can I use Camel on Java 1.4?]
+* xref:faq/does-camel-work-on-ibms-jdk.adoc[Does Camel work on IBM's JDK?]
+* xref:support.adoc[How can I get help?]
+* xref:faq/how-can-i-get-the-source-code.adoc[How can I get the source code?]
+* xref:faq/how-does-camel-compare-to-mule.adoc[How does Camel compare to
 Mule?]
-* link:faq/how-does-camel-compare-to-servicemix.adoc[How does Camel compare
+* xref:faq/how-does-camel-compare-to-servicemix.adoc[How does Camel compare
 to ServiceMix?]
-* link:faq/how-does-camel-compare-to-servicemix-eip.adoc[How does Camel
+* xref:faq/how-does-camel-compare-to-servicemix-eip.adoc[How does Camel
 compare to ServiceMix EIP?]
-* link:faq/how-does-camel-compare-to-synapse.adoc[How does Camel compare to
+* xref:faq/how-does-camel-compare-to-synapse.adoc[How does Camel compare to
 Synapse?]
-* link:faq/how-does-camel-work.adoc[How does Camel work?]
-* link:faq/how-does-camel-work-with-activemq.adoc[How does Camel work with
+* xref:faq/how-does-camel-work.adoc[How does Camel work?]
+* xref:faq/how-does-camel-work-with-activemq.adoc[How does Camel work with
 ActiveMQ?]
-* link:faq/how-does-camel-work-with-servicemix.adoc[How does Camel work with
+* xref:faq/how-does-camel-work-with-servicemix.adoc[How does Camel work with
 ServiceMix?]
-* link:faq/how-does-the-camel-api-compare-to.adoc[How does the Camel API
+* xref:faq/how-does-the-camel-api-compare-to.adoc[How does the Camel API
 compare to?]
-* link:faq/how-does-the-website-work.adoc[How does the website work?]
-* link:faq/how-do-i-become-a-committer.adoc[How do I become a committer?]
-* link:faq/how-do-i-compile-the-code.adoc[How do I compile the code?]
-* link:faq/how-do-i-edit-the-website.adoc[How do I edit the website?]
-* link:faq/how-do-i-run-camel-using-java-webstart.adoc[How do I run Camel
+* xref:faq/how-does-the-website-work.adoc[How does the website work?]
+* xref:faq/how-do-i-become-a-committer.adoc[How do I become a committer?]
+* xref:faq/how-do-i-compile-the-code.adoc[How do I compile the code?]
+* xref:faq/how-do-i-edit-the-website.adoc[How do I edit the website?]
+* xref:faq/how-do-i-run-camel-using-java-webstart.adoc[How do I run Camel
 using Java WebStart?]
-* link:faq/if-i-use-servicemix-when-should-i-use-camel.adoc[If I use
+* xref:faq/if-i-use-servicemix-when-should-i-use-camel.adoc[If I use
 ServiceMix when should I use Camel?]
-* link:faq/is-camel-an-esb.adoc[Is Camel an ESB?]
-* link:faq/is-camel-ioc-friendly.adoc[Is Camel IoC friendly?]
-* link:faq/running-camel-standalone.adoc[Running Camel standalone]
-* link:faq/what-are-the-dependencies.adoc[What are the dependencies?]
-* link:faq/what-is-a-router.adoc[What is a router?]
-* link:faq/what-is-camel.adoc[What is Camel?]
-* link:faq/what-is-the-license.adoc[What is the license?]
-* link:faq/what-jars-do-i-need.adoc[What jars do I need?]
-* link:languages.adoc[What languages are supported?]
-* link:faq/what-platforms-are-supported.adoc[What platforms are supported?]
-* link:faq/why-the-name-camel.adoc[Why the name Camel?]
+* xref:faq/is-camel-an-esb.adoc[Is Camel an ESB?]
+* xref:faq/is-camel-ioc-friendly.adoc[Is Camel IoC friendly?]
+* xref:faq/running-camel-standalone.adoc[Running Camel standalone]
+* xref:faq/what-are-the-dependencies.adoc[What are the dependencies?]
+* xref:faq/what-is-a-router.adoc[What is a router?]
+* xref:faq/what-is-camel.adoc[What is Camel?]
+* xref:faq/what-is-the-license.adoc[What is the license?]
+* xref:faq/what-jars-do-i-need.adoc[What jars do I need?]
+* xref:languages.adoc[What languages are supported?]
+* xref:faq/what-platforms-are-supported.adoc[What platforms are supported?]
+* xref:faq/why-the-name-camel.adoc[Why the name Camel?]
 
 [[FAQ-UsingCamelQuestions]]
 ==== Using Camel Questions
 
 Questions on using Apache Camel
 
-* link:faq/classloader-issue-of-servicemix-camel-component.adoc[Classloader issue of servicemix-camel component]
-* link:faq/how-do-i-specify-which-method-to-use-when-using-beans-in-routes.adoc[How do I specify which method to use when using beans in routes?]
-* link:faq/how-can-i-create-a-custom-component-or-endpoint.adoc[How can I create a custom component or endpoint?]
-* link:faq/how-can-i-get-the-remote-connection-ip-address-from-the-camel-cxf-consumer-.adoc[How can I get the remote connection IP address from the camel-cxf consumer ?]
-* link:faq/how-can-i-stop-a-route-from-a-route.adoc[How can I stop a route from a route?]
-* link:faq/how-can-webservice-clients-see-remote-faults-with-stacktraces-when-using-camel-cxf.adoc[How can webservice clients see remote faults with stacktraces when using camel-cxf?]
-* link:faq/how-does-camel-look-up-beans-and-endpoints.adoc[How does Camel look up beans and endpoints?]
-* link:configuring-camel.adoc[How do I add a component?]
-* link:faq/how-do-i-change-the-logging.adoc[How do I change the logging?]
-* link:faq/how-do-i-configure-endpoints.adoc[How do I configure endpoints?]
-* link:faq/how-do-i-configure-password-options-on-camel-endpoints-without-the-value-being-encoded.adoc[How do I configure password options on Camel endpoints without the value being encoded?]
-* link:faq/how-do-i-configure-the-default-maximum-cache-size-for-producercache-or-producertemplate.adoc[How do I configure the default maximum cache size for ProducerCache or ProducerTemplate?]
-* link:faq/how-do-i-configure-the-maximum-endpoint-cache-size-for-camelcontext.adoc[How do I configure the maximum endpoint cache size for CamelContext?]
-* link:faq/how-do-i-debug-my-route.adoc[How do I debug my route?]
-* link:faq/how-do-i-disable-jmx.adoc[How do I disable JMX?]
-* link:faq/how-do-i-enable-streams-when-debug-logging-messages-in-camel.adoc[How do I enable streams when debug logging messages in Camel?]
-* link:faq/how-do-i-handle-failures-when-consuming-for-example-from-a-ftp-server.adoc[How do I handle failures when consuming for example from a FTP server?]
-* link:faq/how-do-i-import-rests-from-other-xml-files.adoc[How do I import rests from other XML files?]
-* link:faq/how-do-i-import-routes-from-other-xml-files.adoc[How do I import routes from other XML files?]
-* link:faq/how-do-i-let-jetty-match-wildcards.adoc[How do I let Jetty match wildcards?]
-* link:faq/how-do-i-name-my-routes.adoc[How do I name my routes?]
-* link:faq/how-do-i-restart-camelcontext.adoc[How do I restart CamelContext?]
-* link:faq/how-do-i-retrieve-the-thrown-exception-during-processing-an-exchange.adoc[How do I retrieve the thrown Exception during processing an Exchange?]
-* link:faq/how-do-i-retry-failed-messages-forever.adoc[How do I retry failed messages forever?]
-* link:faq/how-do-i-retry-processing-a-message-from-a-certain-point-back-or-an-entire-route.adoc[How do I retry processing a message from a certain point back or an entire route?]
-* link:faq/how-do-i-reuse-the-contexttestsupport-class-in-my-unit-tests.adoc[How do I reuse the ContextTestSupport class in my unit tests?]
-* link:faq/how-do-i-run-activemq-and-camel-in-jboss.adoc[How do I run ActiveMQ and Camel in JBoss?]
-* link:faq/how-do-i-set-the-max-chars-when-debug-logging-messages-in-camel.adoc[How do I set the max chars when debug logging messages in Camel?]
-* link:faq/how-do-i-specify-time-period-in-a-human-friendly-syntax.adoc[How do I specify time period in a human friendly syntax?]
-* link:faq/how-do-i-use-a-big-uber-jar.adoc[How do I use a big (uber) JAR?]
-* link:faq/how-do-i-use-camel-inside-servicemix.adoc[How do I use Camel inside ServiceMix?]
-* link:faq/how-do-i-use-spring-property-placeholder-with-camel-xml.adoc[How do I use Spring Property Placeholder with Camel XML?]
-* link:faq/how-do-i-use-uris-with-parameters-in-xml.adoc[How do I use URIs with parameters in XML?]
-* link:faq/how-do-i-write-a-custom-processor-which-sends-multiple-messages.adoc[How do I write a custom Processor which sends multiple messages?]
-* link:faq/how-should-i-invoke-my-pojos-or-spring-services.adoc[How should I invoke my POJOs or Spring Services?]
-* link:faq/how-should-i-package-applications-using-camel-and-activemq.adoc[How should I package applications using Camel and ActiveMQ?]
-* link:faq/how-to-avoid-importing-bunch-of-cxf-packages-when-start-up-the-camel-cxf-endpoint-from-osgi-platform-.adoc[How to avoid importing bunch of cxf packages when start up the camel-cxf endpoint from OSGi platform?]
-* link:faq/how-to-avoid-sending-some-or-all-message-headers.adoc[How to avoid sending some or all message headers?]
-* link:faq/how-to-define-a-static-camel-converter-method-in-scala.adoc[How to define a static Camel converter method in Scala?]
-* link:faq/how-to-remove-the-http-protocol-headers-in-the-camel-message.adoc[How to remove the http protocol headers in the camel message?]
-* link:faq/how-to-send-the-same-message-to-multiple-endpoints.adoc[How to send the same message to multiple endpoints?]
-* link:faq/how-to-switch-the-cxf-consumer-between-http-and-https-without-touching-the-spring-configuration.adoc[How to switch the CXF consumer between HTTP and HTTPS without touching the Spring configuration?]
-* link:faq/how-to-use-a-dynamic-uri-in-to.adoc[How to use a dynamic URI in to()?]
-* link:faq/how-to-use-extra-camel-componets-in-servicemix-camel.adoc[How to use extra Camel componets in servicemix-camel?]
-* link:faq/how-to-validate-the-camel-1x-context-xml-from-apache-camel-web-site.adoc[How to validate the camel 1.x context xml from Apache Camel web site?]
-* link:faq/is-there-an-ide.adoc[Is there an IDE?]
-* link:faq/should-i-deploy-camel-inside-the-activemq-broker-or-in-another-application.adoc[Should I deploy Camel inside the ActiveMQ broker or in another application?]
-* link:faq/using-camel-core-testsjar.adoc[Using camel-core-tests.jar]
-* link:faq/using-getin-or-getout-methods-on-exchange.adoc[Using getIn or getOut methods on Exchange]
-* link:faq/why-cant-i-use-sign-in-my-password.adoc[Why can't I use + sign in my password?]
-* link:faq/why-can-i-not-use-when-or-otherwise-in-a-java-camel-route.adoc[Why can I not use when or otherwise in a Java Camel route?]
-* link:faq/why-does-ftp-component-not-download-any-files.adoc[Why does FTP component not download any files?]
-* link:faq/why-does-my-file-consumer-not-pick-up-the-file-and-how-do-i-let-the-file-consumer-use-the-camel-error-handler.adoc[Why does my file consumer not pick up the file, and how do I let the file consumer use the Camel error handler?]
-* link:faq/why-does-useoriginalmessage-with-error-handler-not-work-as-expected.adoc[Why does useOriginalMessage with error handler not work as expected?]
-* link:faq/why-do-my-message-lose-its-headers-during-routing.adoc[Why do my message lose its headers during routing?]
-* link:faq/why-is-my-message-body-empty.adoc[Why is my message body empty?]
-* link:faq/why-is-my-processor-not-showing-up-in-jconsole.adoc[Why is my processor not showing up in JConsole?]
-* link:faq/why-is-the-exception-null-when-i-use-onexception.adoc[Why is the exception null when I use onException?]
-* link:faq/why-use-multiple-camelcontext.adoc[Why use multiple CamelContext?]
+* xref:faq/classloader-issue-of-servicemix-camel-component.adoc[Classloader issue of servicemix-camel component]
+* xref:faq/how-do-i-specify-which-method-to-use-when-using-beans-in-routes.adoc[How do I specify which method to use when using beans in routes?]
+* xref:faq/how-can-i-create-a-custom-component-or-endpoint.adoc[How can I create a custom component or endpoint?]
+* xref:faq/how-can-i-get-the-remote-connection-ip-address-from-the-camel-cxf-consumer-.adoc[How can I get the remote connection IP address from the camel-cxf consumer ?]
+* xref:faq/how-can-i-stop-a-route-from-a-route.adoc[How can I stop a route from a route?]
+* xref:faq/how-can-webservice-clients-see-remote-faults-with-stacktraces-when-using-camel-cxf.adoc[How can webservice clients see remote faults with stacktraces when using camel-cxf?]
+* xref:faq/how-does-camel-look-up-beans-and-endpoints.adoc[How does Camel look up beans and endpoints?]
+* xref:configuring-camel.adoc[How do I add a component?]
+* xref:faq/how-do-i-change-the-logging.adoc[How do I change the logging?]
+* xref:faq/how-do-i-configure-endpoints.adoc[How do I configure endpoints?]
+* xref:faq/how-do-i-configure-password-options-on-camel-endpoints-without-the-value-being-encoded.adoc[How do I configure password options on Camel endpoints without the value being encoded?]
+* xref:faq/how-do-i-configure-the-default-maximum-cache-size-for-producercache-or-producertemplate.adoc[How do I configure the default maximum cache size for ProducerCache or ProducerTemplate?]
+* xref:faq/how-do-i-configure-the-maximum-endpoint-cache-size-for-camelcontext.adoc[How do I configure the maximum endpoint cache size for CamelContext?]
+* xref:faq/how-do-i-debug-my-route.adoc[How do I debug my route?]
+* xref:faq/how-do-i-disable-jmx.adoc[How do I disable JMX?]
+* xref:faq/how-do-i-enable-streams-when-debug-logging-messages-in-camel.adoc[How do I enable streams when debug logging messages in Camel?]
+* xref:faq/how-do-i-handle-failures-when-consuming-for-example-from-a-ftp-server.adoc[How do I handle failures when consuming for example from a FTP server?]
+* xref:faq/how-do-i-import-rests-from-other-xml-files.adoc[How do I import rests from other XML files?]
+* xref:faq/how-do-i-import-routes-from-other-xml-files.adoc[How do I import routes from other XML files?]
+* xref:faq/how-do-i-let-jetty-match-wildcards.adoc[How do I let Jetty match wildcards?]
+* xref:faq/how-do-i-name-my-routes.adoc[How do I name my routes?]
+* xref:faq/how-do-i-restart-camelcontext.adoc[How do I restart CamelContext?]
+* xref:faq/how-do-i-retrieve-the-thrown-exception-during-processing-an-exchange.adoc[How do I retrieve the thrown Exception during processing an Exchange?]
+* xref:faq/how-do-i-retry-failed-messages-forever.adoc[How do I retry failed messages forever?]
+* xref:faq/how-do-i-retry-processing-a-message-from-a-certain-point-back-or-an-entire-route.adoc[How do I retry processing a message from a certain point back or an entire route?]
+* xref:faq/how-do-i-reuse-the-contexttestsupport-class-in-my-unit-tests.adoc[How do I reuse the ContextTestSupport class in my unit tests?]
+* xref:faq/how-do-i-run-activemq-and-camel-in-jboss.adoc[How do I run ActiveMQ and Camel in JBoss?]
+* xref:faq/how-do-i-set-the-max-chars-when-debug-logging-messages-in-camel.adoc[How do I set the max chars when debug logging messages in Camel?]
+* xref:faq/how-do-i-specify-time-period-in-a-human-friendly-syntax.adoc[How do I specify time period in a human friendly syntax?]
+* xref:faq/how-do-i-use-a-big-uber-jar.adoc[How do I use a big (uber) JAR?]
+* xref:faq/how-do-i-use-camel-inside-servicemix.adoc[How do I use Camel inside ServiceMix?]
+* xref:faq/how-do-i-use-spring-property-placeholder-with-camel-xml.adoc[How do I use Spring Property Placeholder with Camel XML?]
+* xref:faq/how-do-i-use-uris-with-parameters-in-xml.adoc[How do I use URIs with parameters in XML?]
+* xref:faq/how-do-i-write-a-custom-processor-which-sends-multiple-messages.adoc[How do I write a custom Processor which sends multiple messages?]
+* xref:faq/how-should-i-invoke-my-pojos-or-spring-services.adoc[How should I invoke my POJOs or Spring Services?]
+* xref:faq/how-should-i-package-applications-using-camel-and-activemq.adoc[How should I package applications using Camel and ActiveMQ?]
+* xref:faq/how-to-avoid-importing-bunch-of-cxf-packages-when-start-up-the-camel-cxf-endpoint-from-osgi-platform-.adoc[How to avoid importing bunch of cxf packages when start up the camel-cxf endpoint from OSGi platform?]
+* xref:faq/how-to-avoid-sending-some-or-all-message-headers.adoc[How to avoid sending some or all message headers?]
+* xref:faq/how-to-define-a-static-camel-converter-method-in-scala.adoc[How to define a static Camel converter method in Scala?]
+* xref:faq/how-to-remove-the-http-protocol-headers-in-the-camel-message.adoc[How to remove the http protocol headers in the camel message?]
+* xref:faq/how-to-send-the-same-message-to-multiple-endpoints.adoc[How to send the same message to multiple endpoints?]
+* xref:faq/how-to-switch-the-cxf-consumer-between-http-and-https-without-touching-the-spring-configuration.adoc[How to switch the CXF consumer between HTTP and HTTPS without touching the Spring configuration?]
+* xref:faq/how-to-use-a-dynamic-uri-in-to.adoc[How to use a dynamic URI in to()?]
+* xref:faq/how-to-use-extra-camel-componets-in-servicemix-camel.adoc[How to use extra Camel componets in servicemix-camel?]
+* xref:faq/how-to-validate-the-camel-1x-context-xml-from-apache-camel-web-site.adoc[How to validate the camel 1.x context xml from Apache Camel web site?]
+* xref:faq/is-there-an-ide.adoc[Is there an IDE?]
+* xref:faq/should-i-deploy-camel-inside-the-activemq-broker-or-in-another-application.adoc[Should I deploy Camel inside the ActiveMQ broker or in another application?]
+* xref:faq/using-camel-core-testsjar.adoc[Using camel-core-tests.jar]
+* xref:faq/using-getin-or-getout-methods-on-exchange.adoc[Using getIn or getOut methods on Exchange]
+* xref:faq/why-cant-i-use-sign-in-my-password.adoc[Why can't I use + sign in my password?]
+* xref:faq/why-can-i-not-use-when-or-otherwise-in-a-java-camel-route.adoc[Why can I not use when or otherwise in a Java Camel route?]
+* xref:faq/why-does-ftp-component-not-download-any-files.adoc[Why does FTP component not download any files?]
+* xref:faq/why-does-my-file-consumer-not-pick-up-the-file-and-how-do-i-let-the-file-consumer-use-the-camel-error-handler.adoc[Why does my file consumer not pick up the file, and how do I let the file consumer use the Camel error handler?]
+* xref:faq/why-does-useoriginalmessage-with-error-handler-not-work-as-expected.adoc[Why does useOriginalMessage with error handler not work as expected?]
+* xref:faq/why-do-my-message-lose-its-headers-during-routing.adoc[Why do my message lose its headers during routing?]
+* xref:faq/why-is-my-message-body-empty.adoc[Why is my message body empty?]
+* xref:faq/why-is-my-processor-not-showing-up-in-jconsole.adoc[Why is my processor not showing up in JConsole?]
+* xref:faq/why-is-the-exception-null-when-i-use-onexception.adoc[Why is the exception null when I use onException?]
+* xref:faq/why-use-multiple-camelcontext.adoc[Why use multiple CamelContext?]
 
 [[FAQ-LoggingQuestions]]
 ==== Logging Questions
@@ -126,21 +126,21 @@ Questions on using Apache Camel
 Questions on logging output from Camel to a console, using the
 <<log-component,Log>> endpoint or JDK 1.4 logging or Log4j etc
 
-* link:faq/how-do-i-enable-debug-logging.adoc[How do I enable debug logging?]
-* link:faq/how-do-i-use-java-14-logging.adoc[How do I use Java 1.4 logging?]
-* link:faq/how-do-i-use-log4j.adoc[How do I use log4j?]
+* xref:faq/how-do-i-enable-debug-logging.adoc[How do I enable debug logging?]
+* xref:faq/how-do-i-use-java-14-logging.adoc[How do I use Java 1.4 logging?]
+* xref:faq/how-do-i-use-log4j.adoc[How do I use log4j?]
 
 [[FAQ-CamelEndpointQuestions]]
 ==== Camel Endpoint Questions
 
-Questions on using the various Camel link:components.adoc[Components]
-and link:endpoint.adoc[Endpoint] implementations
+Questions on using the various Camel xref:components.adoc[Components]
+and xref:endpoint.adoc[Endpoint] implementations
 
-* link:faq/how-do-i-invoke-camel-routes-from-jbi.adoc[How do I invoke Camel routes from JBI?]
-* link:faq/how-do-i-make-my-jms-endpoint-transactional.adoc[How Do I Make My JMS Endpoint Transactional?]
-* link:faq/how-do-i-set-the-mep-when-interacting-with-jbi.adoc[How do I set the MEP when interacting with JBI?]
-* link:faq/how-do-the-direct-event-seda-and-vm-endpoints-compare.adoc[How do the direct, event, seda and vm endpoints compare?]
-* link:faq/how-do-the-timer-and-quartz-endpoints-compare.adoc[How do the Timer and Quartz endpoints compare?]
+* xref:faq/how-do-i-invoke-camel-routes-from-jbi.adoc[How do I invoke Camel routes from JBI?]
+* xref:faq/how-do-i-make-my-jms-endpoint-transactional.adoc[How Do I Make My JMS Endpoint Transactional?]
+* xref:faq/how-do-i-set-the-mep-when-interacting-with-jbi.adoc[How do I set the MEP when interacting with JBI?]
+* xref:faq/how-do-the-direct-event-seda-and-vm-endpoints-compare.adoc[How do the direct, event, seda and vm endpoints compare?]
+* xref:faq/how-do-the-timer-and-quartz-endpoints-compare.adoc[How do the Timer and Quartz endpoints compare?]
 
 [[FAQ-ComponentQuestions]]
 ==== Component Questions
@@ -152,21 +152,21 @@ Questions on using specific components
 
 Questions on using the <<jms-component,JMS>> endpoints in Camel
 
-* link:faq/why-does-my-jms-route-only-consume-one-message-at-once.adoc[Why does my JMS route only consume one message at once?]
+* xref:faq/why-does-my-jms-route-only-consume-one-message-at-once.adoc[Why does my JMS route only consume one message at once?]
 
 [[FAQ-CommonProblems]]
 ==== Common Problems
 
 Common Problems that people have when riding the Camel
 
-* link:faq/exception-beandefinitionstoreexception.adoc[Exception - BeanDefinitionStoreException]
-* link:faq/exception-javaxnamingnoinitialcontextexception.adoc[Exception - javax.naming.NoInitialContextException]
-* link:faq/exception-orgapachecamelnosuchendpointexception.adoc[Exception - org.apache.camel.NoSuchEndpointException]
-* link:faq/exception-orgxmlsaxsaxparseexception.adoc[Exception - org.xml.sax.SAXParseException]
-* link:faq/memory-leak-when-adding-and-removing-routes-at-runtime.adoc[Memory leak when adding and removing routes at runtime]
-* link:faq/why-do-camel-throw-so-many-noclassdeffoundexception-on-startup.adoc[Why do Camel throw so many NoClassDefFoundException on startup?]
-* link:faq/why-does-camel-use-too-many-threads-with-producertemplate.adoc[Why does Camel use too many threads with ProducerTemplate?]
-* link:faq/why-does-maven-not-download-dependencies.adoc[Why does maven not download dependencies?]
+* xref:faq/exception-beandefinitionstoreexception.adoc[Exception - BeanDefinitionStoreException]
+* xref:faq/exception-javaxnamingnoinitialcontextexception.adoc[Exception - javax.naming.NoInitialContextException]
+* xref:faq/exception-orgapachecamelnosuchendpointexception.adoc[Exception - org.apache.camel.NoSuchEndpointException]
+* xref:faq/exception-orgxmlsaxsaxparseexception.adoc[Exception - org.xml.sax.SAXParseException]
+* xref:faq/memory-leak-when-adding-and-removing-routes-at-runtime.adoc[Memory leak when adding and removing routes at runtime]
+* xref:faq/why-do-camel-throw-so-many-noclassdeffoundexception-on-startup.adoc[Why do Camel throw so many NoClassDefFoundException on startup?]
+* xref:faq/why-does-camel-use-too-many-threads-with-producertemplate.adoc[Why does Camel use too many threads with ProducerTemplate?]
+* xref:faq/why-does-maven-not-download-dependencies.adoc[Why does maven not download dependencies?]
 
 [[FAQ-Acknowledgement]]
 ==== Acknowledgement
diff --git a/docs/user-manual/modules/ROOT/pages/faq/can-i-get-commercial-support.adoc b/docs/user-manual/modules/ROOT/pages/faq/can-i-get-commercial-support.adoc
index ee0f1b4..f0d3997 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/can-i-get-commercial-support.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/can-i-get-commercial-support.adoc
@@ -1,4 +1,4 @@
 [[CanIgetcommercialsupport-CanIgetcommercialsupport]]
 === Can I get commercial support?
 
-Absolutely, see our link:../support.adoc[Support] page for more details.
+Absolutely, see our xref:../support.adoc[Support] page for more details.
diff --git a/docs/user-manual/modules/ROOT/pages/faq/does-camel-work-on-ibms-jdk.adoc b/docs/user-manual/modules/ROOT/pages/faq/does-camel-work-on-ibms-jdk.adoc
index 1b5df2c..65b2e55 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/does-camel-work-on-ibms-jdk.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/does-camel-work-on-ibms-jdk.adoc
@@ -27,6 +27,6 @@ camel-spring on another JDK (preferably a Sun JDK).
 
 Ruby scripting on IBM's JDK works for Camel 2.0 and onward. For earlier
 versions you'll need to use one of the other
-link:../scripting-languages.adoc[Scripting Languages]. See
+xref:../scripting-languages.adoc[Scripting Languages]. See
 https://issues.apache.org/activemq/browse/CAMEL-1030[CAMEL-1030] for
 more details.
diff --git a/docs/user-manual/modules/ROOT/pages/faq/exception-javaxnamingnoinitialcontextexception.adoc b/docs/user-manual/modules/ROOT/pages/faq/exception-javaxnamingnoinitialcontextexception.adoc
index 5d2bafa..ef77dd6 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/exception-javaxnamingnoinitialcontextexception.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/exception-javaxnamingnoinitialcontextexception.adoc
@@ -1,7 +1,7 @@
 [[Exception-javax.naming.NoInitialContextException-Exceptionjavax.naming.NoInitialContextException]]
 === Exception: `javax.naming.NoInitialContextException`
 
-If you try to use Camel without link:../spring.adoc[Spring] using code
+If you try to use Camel without xref:../spring.adoc[Spring] using code
 something like this:
 
 [source,java]
@@ -24,7 +24,7 @@ You might get an exception like this:
 ----
 
 This is because if you are not using Spring then the default
-link:../registry.adoc[Registry] implementation uses link:../jndi.adoc[JNDI].
+xref:../registry.adoc[Registry] implementation uses xref:../jndi.adoc[JNDI].
 
 A simple workaround for this is to specify a JNDI provider. An easy fix
 is to create a file called `jndi.properties` on the classpath and give
diff --git a/docs/user-manual/modules/ROOT/pages/faq/exception-orgxmlsaxsaxparseexception.adoc b/docs/user-manual/modules/ROOT/pages/faq/exception-orgxmlsaxsaxparseexception.adoc
index 604519e..646e7b2 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/exception-orgxmlsaxsaxparseexception.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/exception-orgxmlsaxsaxparseexception.adoc
@@ -11,7 +11,7 @@ XML.
 Because of this, you have to replace all & in your URIs by `+&amp;+` when
 using the Spring XML syntax to configure Camel routes.
 
-An example: this snippet of code in the link:../dsl.adoc[DSL]...
+An example: this snippet of code in the xref:../dsl.adoc[DSL]...
 
 [source,java]
 ----
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-can-i-create-a-custom-component-or-endpoint.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-can-i-create-a-custom-component-or-endpoint.adoc
index 2c00016..a905edd 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-can-i-create-a-custom-component-or-endpoint.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-can-i-create-a-custom-component-or-endpoint.adoc
@@ -1,13 +1,13 @@
 [[HowcanIcreateacustomcomponentorendpoint-HowcanIcreateacustomcomponentorendpoint]]
 === How can I create a custom component or endpoint?
 
-Please read link:../writing-components.adoc[Writing Components] for a
+Please read xref:../writing-components.adoc[Writing Components] for a
 background in how to implement a new component or endpoint. Its really
 easy to do! :smile:
 
 [[HowcanIcreateacustomcomponentorendpoint-SeeAlso]]
 ==== See Also
 
-* link:../writing-components.adoc[Writing Components]
-* link:../configuring-camel.adoc[How do I add a component?]
-* link:how-do-i-configure-endpoints.adoc[How do I configure endpoints?]
+* xref:../writing-components.adoc[Writing Components]
+* xref:../configuring-camel.adoc[How do I add a component?]
+* xref:how-do-i-configure-endpoints.adoc[How do I configure endpoints?]
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-can-i-get-the-source-code.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-can-i-get-the-source-code.adoc
index c488cb9..399f8b7 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-can-i-get-the-source-code.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-can-i-get-the-source-code.adoc
@@ -47,4 +47,4 @@ https://github.com/apache/camel/
 [[HowcanIgetthesourcecode-Buildingthecode]]
 ==== Building the code
 
-To then build the code see link:../building.adoc[Building].
+To then build the code see xref:../building.adoc[Building].
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-can-i-stop-a-route-from-a-route.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-can-i-stop-a-route-from-a-route.adoc
index 28c3604..2e980d0 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-can-i-stop-a-route-from-a-route.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-can-i-stop-a-route-from-a-route.adoc
@@ -1,14 +1,14 @@
 [[HowcanIstoparoutefromaroute-HowcanIstoparoutefromaroute]]
 === How can I stop a route from a route
 
-The link:../camelcontext.adoc[CamelContext] provides API for managing
+The xref:../camelcontext.adoc[CamelContext] provides API for managing
 routes at runtime. It has a `stopRoute(id)` and `startRoute(id)`
 methods.
 
 Stopping a route during routing an existing message is a bit tricky. The
-reason for that is Camel will link:../graceful-shutdown.adoc[Graceful
+reason for that is Camel will xref:../graceful-shutdown.adoc[Graceful
 Shutdown] the route you are stopping. And if you do that while a message
-is being routed the link:../graceful-shutdown.adoc[Graceful Shutdown] will
+is being routed the xref:../graceful-shutdown.adoc[Graceful Shutdown] will
 try to wait until that message has been processed.
 
 The best practice for stopping a route from a route, is to either:
@@ -43,20 +43,20 @@ shown:
 ==== Alternative solutions
 
 Camel provides another feature for managing routes at runtime which is
-link:routepolicy.adoc[RoutePolicy].
+xref:routepolicy.adoc[RoutePolicy].
 
-And link:../camelcontext.adoc[CamelContext] also provides API for
+And xref:../camelcontext.adoc[CamelContext] also provides API for
 suspend/resume of routes, and shutdown as well.
 
 * suspend/resume is faster than stop/start. For example a HTTP server
 will still run but deny any incoming requests.
 Whereas if it was stopped the HTTP listener would have been stopped.
 * shutdown means the route is being removed from
-link:../camelcontext.adoc[CamelContext] and cannot be started again. Its
+xref:../camelcontext.adoc[CamelContext] and cannot be started again. Its
 also removed from JMX.
 A route must have been stopped prior to be shutdown.
 
-See more details about the link:../lifecycle.adoc[Lifecycle].
+See more details about the xref:../lifecycle.adoc[Lifecycle].
 
 NOTE: You can also use the <<controlbus-component,ControlBus>> component to let
 it stop/start routes.
@@ -64,7 +64,7 @@ it stop/start routes.
 [[HowcanIstoparoutefromaroute-SeeAlso]]
 ==== See Also
 
-* link:routepolicy.adoc[RoutePolicy]
-* link:../graceful-shutdown.adoc[Graceful Shutdown]
-* link:../lifecycle.adoc[Lifecycle]
+* xref:routepolicy.adoc[RoutePolicy]
+* xref:../graceful-shutdown.adoc[Graceful Shutdown]
+* xref:../lifecycle.adoc[Lifecycle]
 * <<controlbus-component,ControlBus>>
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-become-a-committer.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-become-a-committer.adoc
index 25c6db2..535591a 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-become-a-committer.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-become-a-committer.adoc
@@ -2,17 +2,17 @@
 === How can I become a committer
 
 First of all you need to get involved and
-link:../../../../CONTRIBUTING.md[Contribute] via the mail list, forums, edit the
+xref:../../../../CONTRIBUTING.md[Contribute] via the mail list, forums, edit the
 documentation, work on the issue tracker and submit patches.
 
 Once you're contributing and your work is good, one of our
-link:../team.adoc[Team] may invite you to be a committer (after we've
+xref:../team.adoc[Team] may invite you to be a committer (after we've
 called a vote). When that happens, if you accept, the following process
 kicks into place...
 
 Note that becoming a committer is not just about submitting some
 patches; its also about helping out on the development and user
-link:../mailing-lists.adoc[Discussion Forums],
+xref:../mailing-lists.adoc[Discussion Forums],
 helping with documentation and the issue tracker.
 
 [[HowdoIbecomeacommitter-Becomingacommittersteps]]
@@ -34,7 +34,7 @@ to have your account created; we'll also need to know
 [[HowdoIbecomeacommitter-GettingstartedatApache]]
 ==== Getting started at Apache
 
-Firstly add yourself to the link:../team.adoc[Team] page
+Firstly add yourself to the xref:../team.adoc[Team] page
 
 Now go read the instructions on the
 http://www.apache.org/dev/new-committers-guide.html[new committers guide].
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-change-the-logging.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-change-the-logging.adoc
index fe48a44..08d5b15 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-change-the-logging.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-change-the-logging.adoc
@@ -13,7 +13,7 @@ a nutshell:
 * Create a `log4j.properties` file specifying desired logging
 configuration (The Camel distribution has example `log4j.properties` files
 you can use -- see for example in the
-link:../../../../examples/camel-example-bam/src/main/resources[/examples/camel-example-bam/src/main/resources] folder.)
+xref:../../../../examples/camel-example-bam/src/main/resources[/examples/camel-example-bam/src/main/resources] folder.)
 * Place the `log4j.properties` file in the folder where the compiled
 `.class` files are located (typically the `classes` folder) -- this will
 place the properties file on the classpath, where it needs to be at
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-compile-the-code.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-compile-the-code.adoc
index cfd54be..00c2463 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-compile-the-code.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-compile-the-code.adoc
@@ -1,4 +1,4 @@
 [[HowdoIcompilethecode-HowdoIcompilefromthesourcecode]]
 === How do I compile from the source code?
 
-See the link:../building.adoc[Building] page.
+See the xref:../building.adoc[Building] page.
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-configure-endpoints.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-configure-endpoints.adoc
index 682380e..1ddf613 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-configure-endpoints.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-configure-endpoints.adoc
@@ -79,7 +79,7 @@ class MyCdiBean {
 ==== Using Guice
 
 You can also use Guice as the dependency injection
-framework. For example see the link:../guice-jms-example.adoc[Guice JMS
+framework. For example see the xref:../guice-jms-example.adoc[Guice JMS
 Example].
 
 [[HowdoIconfigureendpoints-UsingSpringXML]]
@@ -310,8 +310,8 @@ can have multiple options in one line, eg this is the same:
 [[HowdoIconfigureendpoints-SeeAlso]]
 ==== See Also
 
-* link:../configuring-camel.adoc[How do I add a component?]
+* xref:../configuring-camel.adoc[How do I add a component?]
 * <<cdi-component,CDI>>
-* link:../spring.adoc[Spring]
-* link:../uris.adoc[URIs]
-* link:../using-propertyplaceholder.adoc[Using `PropertyPlaceholder`]
+* xref:../spring.adoc[Spring]
+* xref:../uris.adoc[URIs]
+* xref:../using-propertyplaceholder.adoc[Using `PropertyPlaceholder`]
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-configure-password-options-on-camel-endpoints-without-the-value-being-encoded.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-configure-password-options-on-camel-endpoints-without-the-value-being-encoded.adoc
index f3250e3..f2fc8fc 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-configure-password-options-on-camel-endpoints-without-the-value-being-encoded.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-configure-password-options-on-camel-endpoints-without-the-value-being-encoded.adoc
@@ -1,16 +1,16 @@
 [[HowdoIconfigurepasswordoptionsonCamelendpointswithoutthevaluebeingencoded-HowdoIconfigurepasswordoptionsonCamelendpointswithoutthevaluebeingencoded]]
 === How do I configure password options on Camel endpoints without the value being encoded?
 
-When you configure Camel endpoints using link:../uris.adoc[URIs] then the
+When you configure Camel endpoints using xref:../uris.adoc[URIs] then the
 parameter values gets url encoded by default. +
 This can be a problem when you want to configure passwords _as is_.
 
 To do that you can tell Camel to use the raw value, by enclosing the
 value with RAW(value). See more details at
-link:how-do-i-configure-endpoints.adoc[How do I configure endpoints?]
+xref:how-do-i-configure-endpoints.adoc[How do I configure endpoints?]
 which has an example also.
 
 [[HowdoIconfigurepasswordoptionsonCamelendpointswithoutthevaluebeingencoded-SeeAlso]]
 ==== See Also
 
-* link:how-do-i-configure-endpoints.adoc[How do I configure endpoints?]
+* xref:how-do-i-configure-endpoints.adoc[How do I configure endpoints?]
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-configure-the-default-maximum-cache-size-for-producercache-or-producertemplate.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-configure-the-default-maximum-cache-size-for-producercache-or-producertemplate.adoc
index a3e0cb0..f00a6b0 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-configure-the-default-maximum-cache-size-for-producercache-or-producertemplate.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-configure-the-default-maximum-cache-size-for-producercache-or-producertemplate.adoc
@@ -33,4 +33,4 @@ the `services` category.
 [[HowdoIconfigurethedefaultmaximumcachesizeforProducerCacheorProducerTemplate-SeeAlso]]
 ==== See Also
 
-* link:how-do-i-configure-the-maximum-endpoint-cache-size-for-camelcontext.adoc[How do I configure the maximum endpoint cache size for CamelContext]
+* xref:how-do-i-configure-the-maximum-endpoint-cache-size-for-camelcontext.adoc[How do I configure the maximum endpoint cache size for CamelContext]
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-configure-the-maximum-endpoint-cache-size-for-camelcontext.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-configure-the-maximum-endpoint-cache-size-for-camelcontext.adoc
index 9edeaad..7f58681 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-configure-the-maximum-endpoint-cache-size-for-camelcontext.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-configure-the-maximum-endpoint-cache-size-for-camelcontext.adoc
@@ -1,7 +1,7 @@
 [[HowdoIconfigurethemaximumendpointcachesizeforCamelContext-HowdoIconfigurethemaximumendpointcachesizeforCamelContext?]
 === How do I configure the maximum endpoint cache size for CamelContext?
 
-link:../camelcontext.adoc[CamelContext] will by default cache the last 1000
+xref:../camelcontext.adoc[CamelContext] will by default cache the last 1000
 used endpoints (based on a LRUCache).
 
 [[HowdoIconfigurethemaximumendpointcachesizeforCamelContext-Configuringcachesize]]
@@ -11,14 +11,14 @@ used endpoints (based on a LRUCache).
 
 You can configure the default maximum cache size by setting the
 `Exchange.MAXIMUM_ENDPOINT_CACHE_SIZE` property on
-link:../camelcontext.adoc[CamelContext].
+xref:../camelcontext.adoc[CamelContext].
 
 [source,java]
 ----
 getCamelContext().getProperties().put(Exchange.MAXIMUM_ENDPOINT_CACHE_SIZE, "500");
 ----
 
-You need to configure this before link:../camelcontext.adoc[CamelContext]
+You need to configure this before xref:../camelcontext.adoc[CamelContext]
 is started.
 
 And in Spring XML its done as:
@@ -39,4 +39,4 @@ in the `services` category.
 [[HowdoIconfigurethemaximumendpointcachesizeforCamelContext-SeeAlso]]
 ==== See Also
 
-* link:how-do-i-configure-the-default-maximum-cache-size-for-producercache-or-producertemplate.adoc[How do I configure the default maximum cache size for ProducerCache or ProducerTemplate]
+* xref:how-do-i-configure-the-default-maximum-cache-size-for-producercache-or-producertemplate.adoc[How do I configure the default maximum cache size for ProducerCache or ProducerTemplate]
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-debug-my-route.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-debug-my-route.adoc
index 1e61315..393e434 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-debug-my-route.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-debug-my-route.adoc
@@ -2,14 +2,14 @@
 === How do I debug my route?
 
 If you've created a route and its not doing what you think it is you
-could try using one of these features from link:../download.adoc[version 1.4 onwards]:
+could try using one of these features from xref:../download.adoc[version 1.4 onwards]:
 
-* link:tracer.adoc[Tracer] to trace in commons-logging / log4j each step
+* xref:tracer.adoc[Tracer] to trace in commons-logging / log4j each step
 that Camel takes
-* link:../debugger.adoc[Debugger] to let you set breakpoints at points in
+* xref:../debugger.adoc[Debugger] to let you set breakpoints at points in
 the route and examine historic message exchanges
-* link:../debugger.adoc[Debug] from your unit test if you use the Camel
+* xref:../debugger.adoc[Debug] from your unit test if you use the Camel
 `camel-test` component
 
-Some link:user-stories.adoc[third party tools] offers Apache Camel route
+Some xref:user-stories.adoc[third party tools] offers Apache Camel route
 debugging.
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-edit-the-website.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-edit-the-website.adoc
index 863755f..c1a45d8 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-edit-the-website.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-edit-the-website.adoc
@@ -3,7 +3,7 @@
 
 The website is all contained in
 https://github.com/apache/camel/[the GitHub repository] so that you can
-link:../../../../CONTRIBUTING.md[contribute] providing you are happy to license
+xref:../../../../CONTRIBUTING.md[contribute] providing you are happy to license
 all your contributions under the
 http://www.apache.org/licenses/LICENSE-2.0[Apache Software License version 2.0]
 
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-enable-debug-logging.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-enable-debug-logging.adoc
index e6a8660..44a09e6 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-enable-debug-logging.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-enable-debug-logging.adoc
@@ -13,7 +13,7 @@ logging via, among others:
 * https://docs.oracle.com/javase/8/docs/api/java/util/logging/package-summary.html[JDK Util Logging logging]
 
 To enable debug logging we recommend you
-link:how-do-i-use-log4j.adoc[use log4j for logging] then make sure your
+xref:how-do-i-use-log4j.adoc[use log4j for logging] then make sure your
 log4j.properties file enables DEBUG level logging for the
 `org.apache.camel` package.
 
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-handle-failures-when-consuming-for-example-from-a-ftp-server.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-handle-failures-when-consuming-for-example-from-a-ftp-server.adoc
index b1a12b3..7b70726 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-handle-failures-when-consuming-for-example-from-a-ftp-server.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-handle-failures-when-consuming-for-example-from-a-ftp-server.adoc
@@ -9,7 +9,7 @@ from("ftp://foo@somesever.com?password=secret").to("bean:logic?method=doSomethin
 ----
 
 And there is a failure with connecting to the remote FTP server. The
-existing link:../error-handling-in-camel.adoc[Error handling in Camel] is
+existing xref:../error-handling-in-camel.adoc[Error handling in Camel] is
 based on when a message is *being* routed.
 In this case the error occurs *before* a message has been initiated and
 routed. So how can I control the error handling?
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-import-rests-from-other-xml-files.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-import-rests-from-other-xml-files.adoc
index 7bc2c0a..d365a42 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-import-rests-from-other-xml-files.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-import-rests-from-other-xml-files.adoc
@@ -3,7 +3,7 @@
 
 *Available as of Camel 2.14*
 
-When defining rests in Camel using link:../xml-configuration.adoc[Xml
+When defining rests in Camel using xref:../xml-configuration.adoc[Xml
 Configuration] you may want to define some rests in other XML files. For
 example you may have many rest services and it may help to maintain the
 application if some of the rests are in separate XML files. You may also
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-import-routes-from-other-xml-files.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-import-routes-from-other-xml-files.adoc
index aa7a413..dccbf04 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-import-routes-from-other-xml-files.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-import-routes-from-other-xml-files.adoc
@@ -3,7 +3,7 @@
 
 *Available as of Camel 2.3*
 
-When defining routes in Camel using link:../xml-configuration.adoc[XML Configuration]
+When defining routes in Camel using xref:../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
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-make-my-jms-endpoint-transactional.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-make-my-jms-endpoint-transactional.adoc
index ea9637e..cb3c0d9 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-make-my-jms-endpoint-transactional.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-make-my-jms-endpoint-transactional.adoc
@@ -21,8 +21,8 @@ There are examples in the <<transactionalClient-eip,Transactional Client>>
 and it is described in the _Enabling Transacted Consumption_
 section of <<jms-component,JMS>>. To make a session transactional
 set `transacted=true` flag on the JMS endpoint and configure
-a `transactionManager` on the link:../component.adoc[Component] or
-link:../endpoint.adoc[Endpoint].
+a `transactionManager` on the xref:../component.adoc[Component] or
+xref:../endpoint.adoc[Endpoint].
 
 [[HowDoIMakeMyJMSEndpointTransactional-SeeAlso]]
 ==== See Also
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-restart-camelcontext.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-restart-camelcontext.adoc
index 50e85c9..741a4bb 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-restart-camelcontext.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-restart-camelcontext.adoc
@@ -1,8 +1,8 @@
 [[HowdoIrestartCamelContext-HowdoIrestartCamelContext]]
 === How do I restart CamelContext?
 
-A link:../camelcontext.adoc[CamelContext] provides operations to control
-its lifecycle, see more at link:../camelcontext.adoc[CamelContext].
+A xref:../camelcontext.adoc[CamelContext] provides operations to control
+its lifecycle, see more at xref:../camelcontext.adoc[CamelContext].
 
 NOTE: Obviously you can also restart a Camel application if its been
 deployed in a server. For example a WAR application can be restarted
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-reuse-the-contexttestsupport-class-in-my-unit-tests.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-reuse-the-contexttestsupport-class-in-my-unit-tests.adoc
index 9bda0ca..ac6bc9d 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-reuse-the-contexttestsupport-class-in-my-unit-tests.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-reuse-the-contexttestsupport-class-in-my-unit-tests.adoc
@@ -1,9 +1,9 @@
 [[HowdoIreusetheContextTestSupportclassinmyunittests-HowdoIreusetheContextTestSupportclassinmyunittests]]
 === How do I reuse the ContextTestSupport class in my unit tests?
 
-You might want to look at the various link:../testing.adoc[Testing]
+You might want to look at the various xref:../testing.adoc[Testing]
 options, in particular <<test-component,Camel Test>> and
-link:../spring-testing.adoc[Spring Testing] to see if those are better,
+xref:../spring-testing.adoc[Spring Testing] to see if those are better,
 more powerful options. We see `ContextTestSupport` as an older, less
 powerful option.
 
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-specify-time-period-in-a-human-friendly-syntax.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-specify-time-period-in-a-human-friendly-syntax.adoc
index db639ad..37ebccf 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-specify-time-period-in-a-human-friendly-syntax.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-specify-time-period-in-a-human-friendly-syntax.adoc
@@ -3,7 +3,7 @@
 
 *Available as of Camel 2.3*
 
-Some of the Camel link:../component.adoc[components] offers options to
+Some of the Camel xref:../component.adoc[components] offers options to
 specify a time period, which must be entered in milli second as unit.
 This may be unfriendly to read as a human when the value is large such
 as 45min = 2700000 millis.
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-specify-which-method-to-use-when-using-beans-in-routes.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-specify-which-method-to-use-when-using-beans-in-routes.adoc
index dc32095..36572f3 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-specify-which-method-to-use-when-using-beans-in-routes.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-specify-which-method-to-use-when-using-beans-in-routes.adoc
@@ -1,9 +1,9 @@
 [[HodoIspecifywhichmethodtousewhenusingbeansinroutes-HodoIspecifywhichmethodtousewhenusingbeansinroutes]]
 === Ho do I specify which method to use when using beans in routes?
 
-See <<bean-component,Bean>>, link:../bean-integration.adoc[Bean Integration]
-and link:bean-binding.adoc[Bean Binding]
+See <<bean-component,Bean>>, xref:../bean-integration.adoc[Bean Integration]
+and xref:bean-binding.adoc[Bean Binding]
 
 However if you have overloaded methods you need to specify which of
 those overloaded method you want to use by specifying parameter type
-qualifiers. See more details at link:bean-binding.adoc[Bean Binding].
+qualifiers. See more details at xref:bean-binding.adoc[Bean Binding].
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-use-spring-property-placeholder-with-camel-xml.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-use-spring-property-placeholder-with-camel-xml.adoc
index 6442268..245e59f 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-use-spring-property-placeholder-with-camel-xml.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-use-spring-property-placeholder-with-camel-xml.adoc
@@ -65,7 +65,7 @@ http://jira.springframework.org/browse/SPR-4466[SPR-4466]
 ===== Bridge Spring and Camel property placeholders
 
 From Camel 2.10 onwards you can bridge Spring and Camel property
-placeholders, see link:../using-propertyplaceholder.adoc[Using
+placeholders, see xref:../using-propertyplaceholder.adoc[Using
 PropertyPlaceholder] for more details.
 
 Here is a trick that you can use to define the uri in a property file
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-use-uris-with-parameters-in-xml.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-use-uris-with-parameters-in-xml.adoc
index f3231c9..e6cd9a9 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-use-uris-with-parameters-in-xml.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-use-uris-with-parameters-in-xml.adoc
@@ -1,8 +1,8 @@
 [[HowdoIuseURIswithparametersinXML-HowdoIuseURIswithparametersinXML]]
 === How do I use URIs with parameters in XML?
 
-If you try and use one of the Camel link:../uris.adoc[URIs] in an
-link:../xml-configuration.adoc[XML Configuration] using the URI query
+If you try and use one of the Camel xref:../uris.adoc[URIs] in an
+xref:../xml-configuration.adoc[XML Configuration] using the URI query
 parameter notation, such as:
 
 [source,xml]
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-compare-to-mule.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-compare-to-mule.adoc
index cdf99fc..63c79f1 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-compare-to-mule.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-compare-to-mule.adoc
@@ -5,12 +5,12 @@ This FAQ entry was written when Mule 1.x and 2.x existed. It doesn't
 cater for how Mule may go in Mule 3.x.
 
 I guess from 30,000 feet they're kinda
-link:why-the-name-camel.adoc[similar beasts]; they're both kinds of
+xref:why-the-name-camel.adoc[similar beasts]; they're both kinds of
 routing/mediation engines. The main differences are as follows:
 
-* Camel uses a Java link:../dsl.adoc[Domain Specific Language] in addition
+* Camel uses a Java xref:../dsl.adoc[Domain Specific Language] in addition
   to Spring XML for configuring the routing rules and providing
-  link:../enterprise-integration-patterns.adoc[Enterprise Integration
+  xref:../enterprise-integration-patterns.adoc[Enterprise Integration
   Patterns]
 * Camel's API is smaller & cleaner (IMHO) and is closely aligned with
   the APIs of JBI, <<cxf-component,CXF>> and
@@ -20,10 +20,10 @@ routing/mediation engines. The main differences are as follows:
 * Camel allows the underlying transport details to be easily exposed
   (e.g. the `JmsExchange`, `JbiExchange`, `HttpExchange` objects expose all the
   underlying transport information & behaviour if its required). See
-  link:how-does-the-camel-api-compare-to.adoc[How does the Camel API
+  xref:how-does-the-camel-api-compare-to.adoc[How does the Camel API
   compare to]
-* Camel supports an implicit link:../type-converter.adoc[Type Converter] in
+* Camel supports an implicit xref:../type-converter.adoc[Type Converter] in
   the core API to make it simpler to connect components together requiring
   different types of payload & headers
-* Camel uses the link:../notice.md[Apache 2 License] rather than Mule's more restrictive
+* Camel uses the xref:../notice.md[Apache 2 License] rather than Mule's more restrictive
   commercial license
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-compare-to-servicemix-eip.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-compare-to-servicemix-eip.adoc
index 515c1d1..613fc40 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-compare-to-servicemix-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-compare-to-servicemix-eip.adoc
@@ -6,10 +6,10 @@ ancestor though they both do similar things.
 
 The main difference with ServiceMix EIP is its integrated into the
 existing ServiceMix XBean XML configuration whereas Camel has more
-link:../enterprise-integration-patterns.adoc[Enterprise Integration
+xref:../enterprise-integration-patterns.adoc[Enterprise Integration
 Patterns] and can be used outside of JBI (e.g. just with pure
 <<jms-component,JMS>> or <<mina-component,MINA>>). Also Camel supports a
-link:../dsl.adoc[Java DSL] or link:../spring.adoc[XML configuration].
+xref:../dsl.adoc[Java DSL] or xref:../spring.adoc[XML configuration].
 
 [[HowdoesCamelcomparetoServiceMixEIP-ConvertingfromServiceMixEIPtoCamel]]
 ==== Converting from ServiceMix EIP to Camel
@@ -53,9 +53,9 @@ from("jbi:endpoint:test:messageFilter:endpoint").
 [[HowdoesCamelcomparetoServiceMixEIP-SeeAlso]]
 ==== See Also
 
-* link:how-does-camel-work-with-servicemix.adoc[How does Camel work with
+* xref:how-does-camel-work-with-servicemix.adoc[How does Camel work with
 ServiceMix]
-* link:how-does-camel-compare-to-servicemix.adoc[How does Camel compare
+* xref:how-does-camel-compare-to-servicemix.adoc[How does Camel compare
 to ServiceMix]
 * http://incubator.apache.org/servicemix/servicemix-camel.html[ServiceMix
 Camel plugin]
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-compare-to-servicemix.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-compare-to-servicemix.adoc
index 89a4d0b..5095c7b 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-compare-to-servicemix.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-compare-to-servicemix.adoc
@@ -2,7 +2,7 @@
 === How does Camel compare to ServiceMix?
 
 Camel is smart routing and mediation engine which implements the
-link:../enterprise-integration-patterns.adoc[Enterprise Integration
+xref:../enterprise-integration-patterns.adoc[Enterprise Integration
 Patterns] and is designed to be used either inside an ESB like
 ServiceMix, in a Message Broker like ActiveMQ or in a smart endpoint or
 web services framework like CXF. ServiceMix is an ESB, a JBI container
@@ -10,21 +10,21 @@ and an integration platform. So they both address different needs though
 they are both designed to work great together.
 
 Camel can be deployed as a component within ServiceMix to provide
-link:../enterprise-integration-patterns.adoc[EIP routing and mediation]
+xref:../enterprise-integration-patterns.adoc[EIP routing and mediation]
 between existing JBI components together with communicating with any of
-the other Camel link:../component.adoc[Components] along with defining new
+the other Camel xref:../component.adoc[Components] along with defining new
 JBI components on the NMR. So Camel is similar to the
-link:how-does-camel-compare-to-servicemix-eip.adoc[ServiceMix EIP
+xref:how-does-camel-compare-to-servicemix-eip.adoc[ServiceMix EIP
 component].
 
 To work with Camel and ServiceMix you take your Camel
-link:../spring.adoc[Spring] configuration and turn it into a JBI Service
+xref:../spring.adoc[Spring] configuration and turn it into a JBI Service
 Unit using the maven plugin or archetype. For more details see
 http://incubator.apache.org/servicemix/servicemix-camel.html[ServiceMix
 Camel plugin].
 
 So you could start out using Camel routing inside your application via
-link:../dsl.adoc[Java] or link:../spring.adoc[Spring]; then later on if you
+xref:../dsl.adoc[Java] or xref:../spring.adoc[Spring]; then later on if you
 choose to you could wrap up your routing and mediation rules as a JBI
 deployment unit and drop it into your ServiceMix ESB. This provides a
 nice agile approach to integration; start small & simple on an endpoint
@@ -35,9 +35,9 @@ monitoring etc.
 [[HowdoesCamelcomparetoServiceMix-SeeAlso]]
 ==== See Also
 
-* link:how-does-camel-work-with-servicemix.adoc[How does Camel work with
+* xref:how-does-camel-work-with-servicemix.adoc[How does Camel work with
 ServiceMix]
-* link:how-does-camel-compare-to-servicemix-eip.adoc[How does Camel
+* xref:how-does-camel-compare-to-servicemix-eip.adoc[How does Camel
 compare to ServiceMix EIP]
 * http://incubator.apache.org/servicemix/servicemix-camel.html[ServiceMix
 Camel plugin]
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-compare-to-synapse.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-compare-to-synapse.adoc
index 9502e02..cc37b7a 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-compare-to-synapse.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-compare-to-synapse.adoc
@@ -20,13 +20,13 @@ middleware with EIP and http://servicemix.apache.org/[Apache ServiceMix]
 the ESB based around OSGi and JBI at Apache - both of which are
 http://www.nabble.com/Apache-f90.html[very popular too].
 * Camel is designed from the ground up around
-link:../enterprise-integration-patterns.adoc[Enterprise Integration
+xref:../enterprise-integration-patterns.adoc[Enterprise Integration
 Patterns] -- having an EIP pattern language implemented in
-link:../dsl.adoc[Java], link:../spring.adoc[Spring XML],
-link:../scala-dsl.adoc[Scala] and link:../groovy-dsl.adoc[Groovy] as well as
-link:../visualisation.adoc[EIP Visualisations].
+xref:../dsl.adoc[Java], xref:../spring.adoc[Spring XML],
+xref:../scala-dsl.adoc[Scala] and xref:../groovy-dsl.adoc[Groovy] as well as
+xref:../visualisation.adoc[EIP Visualisations].
 * Camel is designed to work with pretty much all kinds of
-link:../transport.adoc[transport] as well as working with any
-link:../data-format.adoc[Data Format]. When we first looked at Synapse it
+xref:../transport.adoc[transport] as well as working with any
+xref:../data-format.adoc[Data Format]. When we first looked at Synapse it
 was based around Axis 2 and WS-* though apparently thats no longer the
 case.
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-look-up-beans-and-endpoints.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-look-up-beans-and-endpoints.adoc
index bf8b2ca..c5b1f91 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-look-up-beans-and-endpoints.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-look-up-beans-and-endpoints.adoc
@@ -4,20 +4,20 @@
 There are many times using Camel that a name is used for a bean such as
 using the <<bean-component,Bean>> endpoint or using the
 <<bean-language,Bean Language>> to create a
-link:../expression.adoc[Expression] or link:../predicate.adoc[Predicate] or
-referring to any link:../component.adoc[Component] or
-link:../endpoint.adoc[Endpoint].
+xref:../expression.adoc[Expression] or xref:../predicate.adoc[Predicate] or
+referring to any xref:../component.adoc[Component] or
+xref:../endpoint.adoc[Endpoint].
 
-Camel uses the link:../registry.adoc[Registry] to resolve names when
+Camel uses the xref:../registry.adoc[Registry] to resolve names when
 looking up beans or components or endpoints. Typically this will be
-link:../spring.adoc[Spring]; though you can use Camel without Spring in
-which case it will use the link:../jndi.adoc[JNDI] registry implementation.
+xref:../spring.adoc[Spring]; though you can use Camel without Spring in
+which case it will use the xref:../jndi.adoc[JNDI] registry implementation.
 
 Lots of test cases in the camel-core module don't use Spring (as
 camel-core explicitly doesn't depend on spring) - though test cases in
 camel-spring do.
 
 So you can just define beans, components or endpoints in your
-link:../registry.adoc[Registry] implementation then you can refer to them
-by name in the link:../endpoint.adoc[Endpoint] URIs or <<bean-component,Bean>>
+xref:../registry.adoc[Registry] implementation then you can refer to them
+by name in the xref:../endpoint.adoc[Endpoint] URIs or <<bean-component,Bean>>
 endpoints or <<bean-language,Bean Language>> expressions.
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-work-with-activemq.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-work-with-activemq.adoc
index 667ae98..8f64606 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-work-with-activemq.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-work-with-activemq.adoc
@@ -2,7 +2,7 @@
 === How does Camel work with ActiveMQ?
 
 You can use Camel to do smart routing and implement the
-link:../enterprise-integration-patterns.adoc[Enterprise Integration
+xref:../enterprise-integration-patterns.adoc[Enterprise Integration
 Patterns] inside:
 
 * the ActiveMQ message broker
@@ -11,9 +11,9 @@ Patterns] inside:
 So Camel can route messages to and from <<mail-component,Mail>>,
 <<file-component,File>>, <<ftp-component,FTP>>, <<jpa-component,JPA>>,
 <<xmpp-component,XMPP>> other <<jms-component,JMS>> providers and any of the
-other Camel link:../component.adoc[Components] as well as implementating
-all of the link:../enterprise-integration-patterns.adoc[Enterprise
-Integration Patterns] such as link:content-based-router.html[Content
+other Camel xref:../component.adoc[Components] as well as implementating
+all of the xref:../enterprise-integration-patterns.adoc[Enterprise
+Integration Patterns] such as xref:content-based-router.adoc[Content
 Based Router] or <<messageTranslator-eip,Message Translator>>.
 
 For more details see
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-work-with-servicemix.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-work-with-servicemix.adoc
index f3e0717..0cd70d1 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-work-with-servicemix.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-work-with-servicemix.adoc
@@ -2,12 +2,12 @@
 === How does Camel work with ServiceMix?
 
 You can use Camel to do smart routing and implement the
-link:../enterprise-integration-patterns.adoc[Enterprise Integration
+xref:../enterprise-integration-patterns.adoc[Enterprise Integration
 Patterns] inside of the JBI container, routing between existing JBI
 components together with communicating with any of the other Camel
-link:../component.adoc[Components].
+xref:../component.adoc[Components].
 
-To do this you take your Camel link:../spring.adoc[Spring] configuration
+To do this you take your Camel xref:../spring.adoc[Spring] configuration
 and turn it into a JBI Service Unit using the maven plugin or archetype.
 
 For more details see
@@ -17,9 +17,9 @@ Camel plugin].
 [[HowdoesCamelworkwithServiceMix-SeeAlso]]
 ==== See Also
 
-* link:how-does-camel-work-with-servicemix.adoc[How does Camel work with
+* xref:how-does-camel-work-with-servicemix.adoc[How does Camel work with
 ServiceMix]
-* link:how-does-camel-compare-to-servicemix.adoc[How does Camel compare
+* xref:how-does-camel-compare-to-servicemix.adoc[How does Camel compare
 to ServiceMix]
 * http://incubator.apache.org/servicemix/servicemix-camel.html[ServiceMix
 Camel plugin]
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-work.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-work.adoc
index 907913a..abecdfd 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-work.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-does-camel-work.adoc
@@ -1,5 +1,5 @@
 [[HowdoesCamelwork-HowdoesCamelwork]]
 === How does Camel work?
 
-Please see the link:../architecture.adoc[Architecture] for details of how
+Please see the xref:../architecture.adoc[Architecture] for details of how
 things work.
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-does-the-camel-api-compare-to.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-does-the-camel-api-compare-to.adoc
index bce28a6..80a9766 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-does-the-camel-api-compare-to.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-does-the-camel-api-compare-to.adoc
@@ -9,7 +9,7 @@ map very closely to JBI in particular but also
 <<cxf-component,CXF>>, <<http-component,HTTP>>, <<jms-component,JMS>>,
 <<mail-component,Mail>>, <<xmpp-component,XMPP>> and most other integration
 abstractions. We want to prevent leaky abstractions, so the Camel API
-exposes the underlying APIs so that a link:../processor.adoc[Processor] can
+exposes the underlying APIs so that a xref:../processor.adoc[Processor] can
 make use of the underlying abstractions if they make sense.
 
 For example:
@@ -38,6 +38,6 @@ has access to the underlying JMS Message objects
 You can probably see a pattern forming now :smile:
 
 For many routing and mediation components and
-link:../processor.adoc[Processor] objects, you maybe don't care about the
+xref:../processor.adoc[Processor] objects, you maybe don't care about the
 underlying transport and can instead stick to the abstract Camel API.
 But if you need to, the real transport APIs are there for you.
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-should-i-invoke-my-pojos-or-spring-services.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-should-i-invoke-my-pojos-or-spring-services.adoc
index e81f5cc..cdf3761 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-should-i-invoke-my-pojos-or-spring-services.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-should-i-invoke-my-pojos-or-spring-services.adoc
@@ -2,11 +2,11 @@
 === How should I invoke my POJOs or Spring Services?
 
 The various options are described in detail in
-link:../bean-integration.adoc[Bean Integration], in particular the
-link:bean-binding.adoc[Bean Binding] describes how we invoke a bean
+xref:../bean-integration.adoc[Bean Integration], in particular the
+xref:bean-binding.adoc[Bean Binding] describes how we invoke a bean
 inside a route.
 
-See the link:pojo-consuming.adoc[POJO Consuming] for examples using
+See the xref:pojo-consuming.adoc[POJO Consuming] for examples using
 either the `@Consume` annotation or using the routing DSL:
 
 [source,java]
@@ -17,6 +17,6 @@ from("jms:someQueue").bean(MyBean.class, "someMethod");
 [[HowshouldIinvokemyPOJOsorSpringServices-SeeAlso]]
 ==== See Also
 
-* link:../bean-integration.adoc[Bean Integration]
-* link:bean-binding.adoc[Bean Binding]
-* link:pojo-consuming.adoc[POJO Consuming]
+* xref:../bean-integration.adoc[Bean Integration]
+* xref:bean-binding.adoc[Bean Binding]
+* xref:pojo-consuming.adoc[POJO Consuming]
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-should-i-package-applications-using-camel-and-activemq.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-should-i-package-applications-using-camel-and-activemq.adoc
index 495635b..b764494 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-should-i-package-applications-using-camel-and-activemq.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-should-i-package-applications-using-camel-and-activemq.adoc
@@ -2,11 +2,11 @@
 === How should I package applications using Camel and ActiveMQ?
 
 So you may wish to use Camel's
-link:../enterprise-integration-patterns.adoc[Enterprise Integration Patterns]
+xref:../enterprise-integration-patterns.adoc[Enterprise Integration Patterns]
 inside the ActiveMQ Broker. In which case the
 stand alone broker is already packaged to work with Camel out of the
 box; just add your EIP routing rules to ActiveMQ's
-link:../xml-configuration.adoc[XML Configuration] like the example
+xref:../xml-configuration.adoc[XML Configuration] like the example
 routing rule which ships with ActiveMQ
 5.x or later. If you want to include some Java routing rules, then just
 add your jar to somewhere inside ActiveMQ's lib directory.
@@ -19,4 +19,4 @@ necessary jars and customise the Spring XML and you're good to go.
 ==== What jars do I need?
 
 * https://cwiki.apache.org/confluence/display/ACTIVEMQ/Initial+Configuration[What jars are required for ActiveMQ]
-* link:what-jars-do-i-need.adoc[What jars are required for Camel]
+* xref:what-jars-do-i-need.adoc[What jars are required for Camel]
diff --git a/docs/user-manual/modules/ROOT/pages/faq/how-to-avoid-sending-some-or-all-message-headers.adoc b/docs/user-manual/modules/ROOT/pages/faq/how-to-avoid-sending-some-or-all-message-headers.adoc
index 6a3e156..6e4b4b3 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/how-to-avoid-sending-some-or-all-message-headers.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/how-to-avoid-sending-some-or-all-message-headers.adoc
@@ -66,7 +66,7 @@ its name.
 ==== Use HeaderFilterStrategy
 
 An alternative is that some of the Camel
-link:../component.adoc[Components] supports configuring a custom header
+xref:../component.adoc[Components] supports configuring a custom header
 filter strategy.
 This allows you to implement the
 `org.apache.camel.spi.HeaderFilterStrategy` interface, where one can
diff --git a/docs/user-manual/modules/ROOT/pages/faq/if-i-use-servicemix-when-should-i-use-camel.adoc b/docs/user-manual/modules/ROOT/pages/faq/if-i-use-servicemix-when-should-i-use-camel.adoc
index 4fee4a2..62aa679 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/if-i-use-servicemix-when-should-i-use-camel.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/if-i-use-servicemix-when-should-i-use-camel.adoc
@@ -5,18 +5,18 @@ Camel is a routing and mediation engine which works great inside JBI.
 
 So if you are already using http://servicemix.apache.org/[ServiceMix]
 then you can use Camel implement the
-link:../enterprise-integration-patterns.adoc[Enterprise Integration Patterns]
+xref:../enterprise-integration-patterns.adoc[Enterprise Integration Patterns]
 inside JBI such as
 <<contentBasedRouter-eip,Content Based Router>>, routing messages
 between your existing JBI endpoints.
 
-You can also reuse any of the Camel link:../component.adoc[Components]
+You can also reuse any of the Camel xref:../component.adoc[Components]
 within JBI or expose Camel endpoints as JBI endpoints.
 
 [[IfIuseServiceMixwhenshouldIuseCamel-SeeAlso]]
 ==== See Also
 
-* link:how-does-camel-compare-to-servicemix.adoc[How does Camel compare
+* xref:how-does-camel-compare-to-servicemix.adoc[How does Camel compare
 to ServiceMix]
-* link:how-does-camel-compare-to-servicemix-eip.adoc[How does Camel
+* xref:how-does-camel-compare-to-servicemix-eip.adoc[How does Camel
 compare to ServiceMix EIP]
diff --git a/docs/user-manual/modules/ROOT/pages/faq/is-camel-ioc-friendly.adoc b/docs/user-manual/modules/ROOT/pages/faq/is-camel-ioc-friendly.adoc
index e7cc295..73c84b5 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/is-camel-ioc-friendly.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/is-camel-ioc-friendly.adoc
@@ -8,7 +8,7 @@ Now for the longer answer...
 ==== Spring
 
 In particular we've gone out of our way to make Camel work great with
-link:../spring.adoc[Spring] and to reuse all of Spring 2.x's power. For
+xref:../spring.adoc[Spring] and to reuse all of Spring 2.x's power. For
 example:
 
 * the CamelContext, Components and Endpoints and their dependent beans
@@ -16,12 +16,12 @@ can be configured in Spring using Spring custom XML namespaces or
 traditional bean/property elements
 * we implement a spring BeanPostProcessor to allow POJOs to be injected
 with Camel resources along with powerful
-link:../bean-integration.adoc[Bean Integration] which allows any
+xref:../bean-integration.adoc[Bean Integration] which allows any
 spring-injected POJO to be used inside Camel along with full support
 for Spring Remoting.
 
 What we've tried to do is implement the
-link:../inversion-of-control-with-smart-defaults.adoc[Inversion Of Control With Smart Defaults]
+xref:../inversion-of-control-with-smart-defaults.adoc[Inversion Of Control With Smart Defaults]
 pattern; namely that you can configure Camel in a
 single XML element (or very small amont of XML) to get going, then you
 can overload default configurations to add more explicit configuration
@@ -34,18 +34,18 @@ Spring is clearly the leading IoC container; though there are some
 others such as Guice, OSGi, Pico, HiveMind & Plexus so we have made the
 IoC pluggable in Camel.
 For example camel-core has no dependencies on anything other than
-commons-logging; camel-spring contains all the link:../spring.adoc[Spring]
+commons-logging; camel-spring contains all the xref:../spring.adoc[Spring]
 integration, etc.
 
 We hope to have closer integration to other IoC containers, particularly
 with Guice. The current mechanism for hooking into other IoC containers
 are:
 
-* link:../injector.adoc[Injector] is used to perform dependency injection
+* xref:../injector.adoc[Injector] is used to perform dependency injection
 on a type when sing the
-link:../inversion-of-control-with-smart-defaults.adoc[Inversion Of Control
+xref:../inversion-of-control-with-smart-defaults.adoc[Inversion Of Control
 With Smart Defaults] pattern
-* link:../registry.adoc[Registry] this strategy is used to abstract away
+* xref:../registry.adoc[Registry] this strategy is used to abstract away
 the ApplicationContext such as to use JNDI or OSGi to lookup services on
 demand
 
diff --git a/docs/user-manual/modules/ROOT/pages/faq/is-there-an-ide.adoc b/docs/user-manual/modules/ROOT/pages/faq/is-there-an-ide.adoc
index 0835546..2f9c8cc 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/is-there-an-ide.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/is-there-an-ide.adoc
@@ -4,11 +4,11 @@
 Apache Camel offers no IDE out of the box.
 
 You could use your Java IDE for smart completion when creating
-link:../routes.adoc[Java routing rules] via the link:../dsl.adoc[DSL] which
+xref:../routes.adoc[Java routing rules] via the xref:../dsl.adoc[DSL] which
 will give you smart completion in Java code.
 Or you can use your XML IDE (with XSD smart completion) to edit the
-link:../spring.adoc[routing rules in XML] using the
-link:../xml-configuration.adoc[XML Configuration]
+xref:../spring.adoc[routing rules in XML] using the
+xref:../xml-configuration.adoc[XML Configuration]
 
-Some of the link:../commercial-camel-offerings.adoc[Commercial Companies]
+Some of the xref:../commercial-camel-offerings.adoc[Commercial Companies]
 offers IDE's and other tooling for Camel.
diff --git a/docs/user-manual/modules/ROOT/pages/faq/memory-leak-when-adding-and-removing-routes-at-runtime.adoc b/docs/user-manual/modules/ROOT/pages/faq/memory-leak-when-adding-and-removing-routes-at-runtime.adoc
index 68f703c..0df12eb 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/memory-leak-when-adding-and-removing-routes-at-runtime.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/memory-leak-when-adding-and-removing-routes-at-runtime.adoc
@@ -2,9 +2,9 @@
 === Memory leak when adding and removing routes at runtime
 
 If you add and remove many routes at runtime, then take notice that
-link:camel-jmx.adoc[JMX] may take up memory when routes is added.
+xref:camel-jmx.adoc[JMX] may take up memory when routes is added.
 As Camel cannot 100% reclaim all MBeans when removing a route (some
 resources may be shared by other routes, etc.).
 
 Therefore it's advised to disable JMX for new routes, by setting
-`registerNewRoutes=false`. See details at link:camel-jmx.adoc[JMX].
+`registerNewRoutes=false`. See details at xref:camel-jmx.adoc[JMX].
diff --git a/docs/user-manual/modules/ROOT/pages/faq/running-camel-standalone.adoc b/docs/user-manual/modules/ROOT/pages/faq/running-camel-standalone.adoc
index e125d41..500c6ed 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/running-camel-standalone.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/running-camel-standalone.adoc
@@ -2,28 +2,28 @@
 === Is it possible to start Camel as a standalone application, without embedding it in another application?
 
 Yes, Camel can run standalone or in any container. Running Standalone is
-as simple just to create a link:../camelcontext.adoc[CamelContext], add
+as simple just to create a xref:../camelcontext.adoc[CamelContext], add
 routes and start it. If you don't want to write your own Java main, you
-could use the one from link:../spring.adoc[camel-spring]
+could use the one from xref:../spring.adoc[camel-spring]
 (http://camel.apache.org/maven/current/camel-spring/apidocs/) also used
-by the link:../camel-maven-plugin.adoc[Camel Maven Plugin].
+by the xref:../camel-maven-plugin.adoc[Camel Maven Plugin].
 
 The starting guide is a good place to start: +
-link:../getting-started.adoc[Getting Started]
+xref:../getting-started.adoc[Getting Started]
 
 And the concrete walk through a plain old java main example: +
-link:walk-through-an-example.adoc[Walk through an Example]
+xref:walk-through-an-example.adoc[Walk through an Example]
 
 The FAQ have some more details: +
-link:../faq.adoc[FAQ]
+xref:../faq.adoc[FAQ]
 
 And if you use Maven for your projects Camel has maven tools to boot up
 in standalone mode and quickly run you Camel application: +
-link:../camel-maven-plugin.adoc[Camel Maven Plugin]
+xref:../camel-maven-plugin.adoc[Camel Maven Plugin]
 
-And check this link:../cookbook.adoc[Cookbook] example: +
-link:running-camel-standalone-and-have-it-keep-running.adoc[Running
+And check this xref:../cookbook.adoc[Cookbook] example: +
+xref:running-camel-standalone-and-have-it-keep-running.adoc[Running
 Camel standalone and have it keep running]
 
-This is how you can run the link:../examples.adoc[Examples] that is
+This is how you can run the xref:../examples.adoc[Examples] that is
 included in the Camel distribution.
diff --git a/docs/user-manual/modules/ROOT/pages/faq/should-i-deploy-camel-inside-the-activemq-broker-or-in-another-application.adoc b/docs/user-manual/modules/ROOT/pages/faq/should-i-deploy-camel-inside-the-activemq-broker-or-in-another-application.adoc
index c6d61cd..4e6ebdd 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/should-i-deploy-camel-inside-the-activemq-broker-or-in-another-application.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/should-i-deploy-camel-inside-the-activemq-broker-or-in-another-application.adoc
@@ -2,7 +2,7 @@
 === Should I deploy Camel inside the ActiveMQ broker or in another application
 
 Whether you deploy the
-link:../enterprise-integration-patterns.adoc[Enterprise Integration Patterns]
+xref:../enterprise-integration-patterns.adoc[Enterprise Integration Patterns]
 inside the ActiveMQ Broker or in a separate application
 depends on your requirements.
 
diff --git a/docs/user-manual/modules/ROOT/pages/faq/using-camel-core-testsjar.adoc b/docs/user-manual/modules/ROOT/pages/faq/using-camel-core-testsjar.adoc
index 7ad9a9f..5857e39 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/using-camel-core-testsjar.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/using-camel-core-testsjar.adoc
@@ -7,4 +7,4 @@ tests using different DSL such as Spring XML, Blueprint XML, Scala DSL,
 etc.
 
 End users who need a test kit should use `camel-test` or `camel-testng`
-JARs instead. See more here link:../testing.adoc[Testing].
+JARs instead. See more here xref:../testing.adoc[Testing].
diff --git a/docs/user-manual/modules/ROOT/pages/faq/using-getin-or-getout-methods-on-exchange.adoc b/docs/user-manual/modules/ROOT/pages/faq/using-getin-or-getout-methods-on-exchange.adoc
index 6a31b77..3915a1e 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/using-getin-or-getout-methods-on-exchange.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/using-getin-or-getout-methods-on-exchange.adoc
@@ -12,7 +12,7 @@ The MEP defines the messaging style used such as one-way
 which means you have IN and optionally OUT messages. This closely maps
 to other APIs such as WS, WSDL, REST, JBI and the likes.
 
-The link:../exchange.adoc[Exchange] API provides two methods to get a
+The xref:../exchange.adoc[Exchange] API provides two methods to get a
 message, either `getIn` or `getOut`.
 Obviously the `getIn` gets the IN message, and the `getOut` gets the OUT
 message.
@@ -40,7 +40,7 @@ instead.
 [[UsinggetInorgetOutmethodsonExchange-UsinggetInorgetOutmethodsonExchange]]
 ==== Using getIn or getOut methods on Exchange
 
-Now suppose you want to use a Camel link:../processor.adoc[Processor] to
+Now suppose you want to use a Camel xref:../processor.adoc[Processor] to
 adjust a message. This can be done as follows:
 
 [source,java]
@@ -53,7 +53,7 @@ public void process(Exchange exchange) throws Exception {
 ----
 
 This seems intuitive and is what you would expect is the _right_
-approach to change a message from a link:../processor.adoc[Processor].
+approach to change a message from a xref:../processor.adoc[Processor].
 However there is an big issue -- the `getOut` method will create a new
 <<message-eip,Message>>, which means any other information
 from the IN message will not be propagated; which means you will lose
@@ -113,19 +113,19 @@ And therefore it's often easier just to adjust the IN message directly.
 ====
 
 Changing the IN message directly is possible in Camel as it doesn't
-mind. Camel will detect that the link:../exchange.adoc[Exchange] has no OUT
+mind. Camel will detect that the xref:../exchange.adoc[Exchange] has no OUT
 message and therefore use the IN message instead.
 
 [[UsinggetInorgetOutmethodsonExchange-AboutMessageExchangePatternandgetOut]]
 ==== About Message Exchange Pattern and getOut
 
-If the link:../exchange.adoc[Exchange] is using `InOnly` as the MEP, then
-you may think that the link:../exchange.adoc[Exchange] has no OUT
+If the xref:../exchange.adoc[Exchange] is using `InOnly` as the MEP, then
+you may think that the xref:../exchange.adoc[Exchange] has no OUT
 message. But you can still invoke the `getOut` method on
-link:../exchange.adoc[Exchange]; Camel will not barf.
+xref:../exchange.adoc[Exchange]; Camel will not barf.
 
 So the example code above is possible for any kind of MEP. The MEP is
-_just_ a flag on the link:../exchange.adoc[Exchange] which the Consumer and
+_just_ a flag on the xref:../exchange.adoc[Exchange] which the Consumer and
 Producer adhere to.
-You can change the MEP on the link:../exchange.adoc[Exchange] using the
+You can change the MEP on the xref:../exchange.adoc[Exchange] using the
 `setPattern` method. And likewise there is DSL to change it as well.
diff --git a/docs/user-manual/modules/ROOT/pages/faq/what-are-the-dependencies.adoc b/docs/user-manual/modules/ROOT/pages/faq/what-are-the-dependencies.adoc
index fa36cb6..be2f673 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/what-are-the-dependencies.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/what-are-the-dependencies.adoc
@@ -58,7 +58,7 @@ From *Camel 2.9*: the Spring JARs are no longer required for using JMX.
 [[Whatarethedependencies-OtherComponents]]
 ==== Other Components
 
-All the other link:../component.adoc[Components] have a range of 3rd party
+All the other xref:../component.adoc[Components] have a range of 3rd party
 .jars they depend on. They are listed in the maven pom files which files
 they require.
 
diff --git a/docs/user-manual/modules/ROOT/pages/faq/what-is-a-router.adoc b/docs/user-manual/modules/ROOT/pages/faq/what-is-a-router.adoc
index fdfca7a..c38aca4 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/what-is-a-router.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/what-is-a-router.adoc
@@ -5,19 +5,19 @@ We often talk about that Camel is a mediation and routing framework; so
 what exactly is a router and what does it do?
 
 Basically a router just consumes <<message-eip,Message>> exchanges
-from some link:../endpoint.adoc[Endpoint], then sends them on to some other
-link:../endpoint.adoc[Endpoint] using some kind of
-link:../enterprise-integration-patterns.adoc[Enterprise Integration
+from some xref:../endpoint.adoc[Endpoint], then sends them on to some other
+xref:../endpoint.adoc[Endpoint] using some kind of
+xref:../enterprise-integration-patterns.adoc[Enterprise Integration
 Patterns].
 
 For example a router could implement the
 <<contentBasedRouter-eip,Content Based Router>> pattern, to route
 from an endpoint to one or more destination endpoints using a
-link:../predicate.adoc[Predicate] based on the message content.
+xref:../predicate.adoc[Predicate] based on the message content.
 
 Typically a route or router consists of one or more consumers; either an
 <<eventDrivenConsumer-eip,Event Driven Consumer>> or a
 <<pollingConsumer-eip,Polling Consumer>> or possibly a
 <<transactionalClient-eip,Transactional Client>>. Then there are one
-or more link:../processor.adoc[Processor] instances which could send the
+or more xref:../processor.adoc[Processor] instances which could send the
 message to one or more endpoints.
diff --git a/docs/user-manual/modules/ROOT/pages/faq/what-is-camel.adoc b/docs/user-manual/modules/ROOT/pages/faq/what-is-camel.adoc
index c78e285..10bf5e3 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/what-is-camel.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/what-is-camel.adoc
@@ -1,36 +1,36 @@
 [[WhatisCamel-WhatisCamel]]
 === What is Camel?
 Apache Camel (TM) is a versatile open-source integration framework based on
-known link:../enterprise-integration-patterns.adoc[Enterprise Integration
+known xref:../enterprise-integration-patterns.adoc[Enterprise Integration
 Patterns].
 
 Camel empowers you to define routing and mediation rules in a variety of
-domain-specific languages, including a Java-based link:../dsl.adoc[Fluent
-API], link:../spring.adoc[Spring] or
-link:../using-osgi-blueprint-with-camel.adoc[Blueprint]
-link:../xml-configuration.adoc[XML Configuration] files, and a
-link:../scala-dsl.adoc[Scala DSL]. This means you get smart completion of
+domain-specific languages, including a Java-based xref:../dsl.adoc[Fluent
+API], xref:../spring.adoc[Spring] or
+xref:../using-osgi-blueprint-with-camel.adoc[Blueprint]
+xref:../xml-configuration.adoc[XML Configuration] files, and a
+xref:../scala-dsl.adoc[Scala DSL]. This means you get smart completion of
 routing rules in your IDE, whether in a Java, Scala or XML editor.
 
-Apache Camel uses link:../uris.adoc[URIs] to work directly with any kind of
-link:../transport.adoc[Transport] or messaging model such as
-<<http-component,HTTP>>, link:activemq.adoc[ActiveMQ], <<jms-component,JMS>>,
+Apache Camel uses xref:../uris.adoc[URIs] to work directly with any kind of
+xref:../transport.adoc[Transport] or messaging model such as
+<<http-component,HTTP>>, xref:activemq.adoc[ActiveMQ], <<jms-component,JMS>>,
 JBI, SCA, <<mina-component,MINA>> or <<cxf-component,CXF>>, as
-well as pluggable link:../component.adoc[Components] and
-link:../data-format.adoc[Data Format] options. Apache Camel is a small
-library with minimal link:what-are-the-dependencies.adoc[dependencies]
+well as pluggable xref:../component.adoc[Components] and
+xref:../data-format.adoc[Data Format] options. Apache Camel is a small
+library with minimal xref:what-are-the-dependencies.adoc[dependencies]
 for easy embedding in any Java application. Apache Camel lets you work
-with the same link:../exchange.adoc[API] regardless which kind of
-link:../transport.adoc[Transport] is used -- so learn the API once and you
-can interact with all the link:components.adoc[Components] provided
+with the same xref:../exchange.adoc[API] regardless which kind of
+xref:../transport.adoc[Transport] is used -- so learn the API once and you
+can interact with all the xref:components.adoc[Components] provided
 out-of-box.
 
-Apache Camel provides support for link:bean-binding.adoc[Bean Binding]
+Apache Camel provides support for xref:bean-binding.adoc[Bean Binding]
 and seamless integration with popular frameworks such as
-<<cdi-component,CDI>>, link:../spring.adoc[Spring],
-link:../using-osgi-blueprint-with-camel.adoc[Blueprint] and
-link:../guice.adoc[Guice]. Camel also has extensive support for
-link:../testing.adoc[unit testing] your routes.
+<<cdi-component,CDI>>, xref:../spring.adoc[Spring],
+xref:../using-osgi-blueprint-with-camel.adoc[Blueprint] and
+xref:../guice.adoc[Guice]. Camel also has extensive support for
+xref:../testing.adoc[unit testing] your routes.
 
 The following projects can leverage Apache Camel as a routing and
 mediation engine:
diff --git a/docs/user-manual/modules/ROOT/pages/faq/what-platforms-are-supported.adoc b/docs/user-manual/modules/ROOT/pages/faq/what-platforms-are-supported.adoc
index 5b5a697..b0a3118 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/what-platforms-are-supported.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/what-platforms-are-supported.adoc
@@ -5,4 +5,4 @@ Any platform supporting JDK 6.
 
 We regularly test Camel on Linux, Windows and OS X. If you have a
 platform that is not listed contact one of the companies that provide
-link:../support.adoc[commercial support].
+xref:../support.adoc[commercial support].
diff --git a/docs/user-manual/modules/ROOT/pages/faq/why-cant-i-use-sign-in-my-password.adoc b/docs/user-manual/modules/ROOT/pages/faq/why-cant-i-use-sign-in-my-password.adoc
index a4a3cbc..e744fd5 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/why-cant-i-use-sign-in-my-password.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/why-cant-i-use-sign-in-my-password.adoc
@@ -3,16 +3,16 @@
 
 How do I configure password options on Camel endpoints without the value being encoded?
 
-When you configure Camel endpoints using link:../uris.adoc[URIs] then the
+When you configure Camel endpoints using xref:../uris.adoc[URIs] then the
 parameter values gets url encoded by default.
 This can be a problem when you want to configure passwords _as is_.
 
 To do that you can tell Camel to use the raw value, by enclosing the
 value with RAW(value). See more details at
-link:how-do-i-configure-endpoints.adoc[How do I configure endpoints?]
+xref:how-do-i-configure-endpoints.adoc[How do I configure endpoints?]
 which has an example also.
 
 [[WhycantIusesigninmypassword-SeeAlso]]
 ==== See Also
 
-* link:how-do-i-configure-endpoints.adoc[How do I configure endpoints?]
+* xref:how-do-i-configure-endpoints.adoc[How do I configure endpoints?]
diff --git a/docs/user-manual/modules/ROOT/pages/faq/why-do-camel-throw-so-many-noclassdeffoundexception-on-startup.adoc b/docs/user-manual/modules/ROOT/pages/faq/why-do-camel-throw-so-many-noclassdeffoundexception-on-startup.adoc
index 590729d..c56969a 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/why-do-camel-throw-so-many-noclassdeffoundexception-on-startup.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/why-do-camel-throw-so-many-noclassdeffoundexception-on-startup.adoc
@@ -14,4 +14,4 @@ converters rely on 3rd. party .jar files.
 To remedy this either add the missing .jars to the classpath, or stop
 using the big .jar and use the fine grained jars.
 
-See also link:how-do-i-use-a-big-uber-jar.adoc[How do I use a big (uber) JAR?]
+See also xref:how-do-i-use-a-big-uber-jar.adoc[How do I use a big (uber) JAR?]
diff --git a/docs/user-manual/modules/ROOT/pages/faq/why-do-my-message-lose-its-headers-during-routing.adoc b/docs/user-manual/modules/ROOT/pages/faq/why-do-my-message-lose-its-headers-during-routing.adoc
index efdb3d6..f2d332e 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/why-do-my-message-lose-its-headers-during-routing.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/why-do-my-message-lose-its-headers-during-routing.adoc
@@ -1,4 +1,4 @@
 [[Whydomymessageloseitsheadersduringrouting-Whydomymessageloseitsheadersduringrouting]]
 === Why do my message lose its headers during routing?
 
-See this link:using-getin-or-getout-methods-on-exchange.adoc[FAQ entry].
+See this xref:using-getin-or-getout-methods-on-exchange.adoc[FAQ entry].
diff --git a/docs/user-manual/modules/ROOT/pages/faq/why-does-camel-use-too-many-threads-with-producertemplate.adoc b/docs/user-manual/modules/ROOT/pages/faq/why-does-camel-use-too-many-threads-with-producertemplate.adoc
index 25635ee..5e3fb6e 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/why-does-camel-use-too-many-threads-with-producertemplate.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/why-does-camel-use-too-many-threads-with-producertemplate.adoc
@@ -2,7 +2,7 @@
 === Why does Camel use too many threads with `ProducerTemplate`?
 
 A common reason is creating a new `ProducerTemplate` inside a `Processor` or
-link:../bean-integration.adoc[bean method invocation].
+xref:../bean-integration.adoc[bean method invocation].
 
 You are not meant to create a `ProducerTemplate` for each message
 invocation; you are meant to create a single instance on startup and
@@ -12,11 +12,11 @@ Also when you have finished using the `ProducerTemplate` you should call
 the `stop()` method to close down all the resources it has been using.
 
 It's better to either explicitly create one on startup or get your IoC
-container (link:../spring.adoc[Spring] or link:../guice.adoc[Guice]) to inject
+container (xref:../spring.adoc[Spring] or xref:../guice.adoc[Guice]) to inject
 it into your `Processor` or bean then it can take care of creating it and
 destroying all the resources when you have finished with it.
 
-For instance using link:../spring.adoc[Spring] you can define a template
+For instance using xref:../spring.adoc[Spring] you can define a template
 and have Spring handle the lifecycle of it:
 
 [source,java]
diff --git a/docs/user-manual/modules/ROOT/pages/faq/why-does-my-file-consumer-not-pick-up-the-file-and-how-do-i-let-the-file-consumer-use-the-camel-error-handler.adoc b/docs/user-manual/modules/ROOT/pages/faq/why-does-my-file-consumer-not-pick-up-the-file-and-how-do-i-let-the-file-consumer-use-the-camel-error-handler.adoc
index b1f44d4..b186b80 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/why-does-my-file-consumer-not-pick-up-the-file-and-how-do-i-let-the-file-consumer-use-the-camel-error-handler.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/why-does-my-file-consumer-not-pick-up-the-file-and-how-do-i-let-the-file-consumer-use-the-camel-error-handler.adoc
@@ -4,9 +4,9 @@
 There could be several reasons why the <<file-component,File>> consumer is
 not picking up files. For example it may not run at all, or it cannot
 acquire a read lock on the file.
-link:../faq.adoc#logging-questions[Check the logs] for any exceptions or other
+xref:../faq.adoc#logging-questions[Check the logs] for any exceptions or other
 informative messages. You can
-link:how-do-i-enable-debug-logging.adoc[turn on DEBUG logging] at
+xref:how-do-i-enable-debug-logging.adoc[turn on DEBUG logging] at
 `org.apache.camel.component.file` to see more detail.
 
 [[WhydoesmyfileconsumernotpickupthefileandhowdoIletthefileconsumerusetheCamelerrorhandler-HowtouseCamelsroutingerrorhandlerswiththefileconsumer]]
@@ -14,16 +14,16 @@ link:how-do-i-enable-debug-logging.adoc[turn on DEBUG logging] at
 
 Well, this is really a
 http://en.wikipedia.org/wiki/Chicken_or_the_egg["chicken or the egg"]
-question. The Camel link:../error-handling-in-camel.adoc[error handler]
+question. The Camel xref:../error-handling-in-camel.adoc[error handler]
 (e.g., in the routes) only applies when a message is being routed by the
 routing engine.
 Before this happens, a consumer must successfully receive a message,
-create a Camel link:../exchange.adoc[Exchange], populate the
-link:../exchange.adoc[Exchange] with message details (e.g., body and
-headers), and then pass the link:../exchange.adoc[Exchange] to the routing
+create a Camel xref:../exchange.adoc[Exchange], populate the
+xref:../exchange.adoc[Exchange] with message details (e.g., body and
+headers), and then pass the xref:../exchange.adoc[Exchange] to the routing
 engine. Only at this point can the routing error handler deal with
 exceptions occurring. Before this point, any error handling is really
-link:../component.adoc[component]-specific.
+xref:../component.adoc[component]-specific.
 
 [NOTE]
 ====
diff --git a/docs/user-manual/modules/ROOT/pages/faq/why-is-my-message-body-empty.adoc b/docs/user-manual/modules/ROOT/pages/faq/why-is-my-message-body-empty.adoc
index 719f8f3..8291748 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/why-is-my-message-body-empty.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/why-is-my-message-body-empty.adoc
@@ -14,6 +14,6 @@ This happens with types that are streaming based, such as
 A number of Camel components supports and use streaming types out of the
 box. For example the HTTP related components, CXF, etc.
 
-Camel offers a functionality link:stream-caching.adoc[Stream caching];
+Camel offers a functionality xref:stream-caching.adoc[Stream caching];
 that caches the stream, so it can be re-readable. By enabling this
 cache, the message body would no longer be empty.
diff --git a/docs/user-manual/modules/ROOT/pages/faq/why-is-my-processor-not-showing-up-in-jconsole.adoc b/docs/user-manual/modules/ROOT/pages/faq/why-is-my-processor-not-showing-up-in-jconsole.adoc
index 6a682c3..4c74544 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/why-is-my-processor-not-showing-up-in-jconsole.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/why-is-my-processor-not-showing-up-in-jconsole.adoc
@@ -32,4 +32,4 @@ to not depend on Spring JARs anymore.
 [[WhyismyprocessornotshowingupinJConsole-Seealso]]
 ==== See also
 
-* link:camel-jmx.adoc[Camel JMX]
+* xref:camel-jmx.adoc[Camel JMX]
diff --git a/docs/user-manual/modules/ROOT/pages/faq/why-the-name-camel.adoc b/docs/user-manual/modules/ROOT/pages/faq/why-the-name-camel.adoc
index e8b03c8..6abac39 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/why-the-name-camel.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/why-the-name-camel.adoc
@@ -2,12 +2,12 @@
 === Why did you choose the name Camel?
 
 * it stands for Concise Application Message Exchange Language (i.e. the
-Java link:../dsl.adoc[DSL] for routing)
+Java xref:../dsl.adoc[DSL] for routing)
 * a Camel can carry http://www.fao.org/sd/EGdirect/EGan0006.htm[4 times
 the load] of other beasts of burden
 * a Camel can travel for great distances without water; similarly a
 Camel does not require bucket loads of XML as you can use a pure Java
-link:../dsl.adoc[DSL]
+xref:../dsl.adoc[DSL]
 * some members of the team used to love Camel cigarettes!
 * it's short, simple and easy to remember name
 * very fast, even when the going gets tough!
diff --git a/docs/user-manual/modules/ROOT/pages/fluent-builders.adoc b/docs/user-manual/modules/ROOT/pages/fluent-builders.adoc
index c6e64c0..e6473a5 100644
--- a/docs/user-manual/modules/ROOT/pages/fluent-builders.adoc
+++ b/docs/user-manual/modules/ROOT/pages/fluent-builders.adoc
@@ -7,5 +7,5 @@ and is refactoring safe.
 
 For more information see:
 
-* link:dsl.adoc[Java Domain Specific Language]
-* link:xml-configuration.adoc[XML Configuration]
+* xref:dsl.adoc[Java Domain Specific Language]
+* xref:xml-configuration.adoc[XML Configuration]
diff --git a/docs/user-manual/modules/ROOT/pages/from-eip.adoc b/docs/user-manual/modules/ROOT/pages/from-eip.adoc
index 6eb1746..0ab24f2 100644
--- a/docs/user-manual/modules/ROOT/pages/from-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/from-eip.adoc
@@ -1,6 +1,6 @@
 [[from-eip]]
 == From EIP
-Starting point for a Camel route that starts a route with a given endpoint. The endpoint can be from one of the many Camel link:https://github.com/apache/camel/tree/master/components[Components]. The component creates Camel exchanges from their respective sources and puts them into the route.
+Starting point for a Camel route that starts a route with a given endpoint. The endpoint can be from one of the many Camel https://github.com/apache/camel/tree/master/components[Components]. The component creates Camel exchanges from their respective sources and puts them into the route.
 
 === Options
 
diff --git a/docs/user-manual/modules/ROOT/pages/getting-started.adoc b/docs/user-manual/modules/ROOT/pages/getting-started.adoc
index 887efa0..e05f497 100644
--- a/docs/user-manual/modules/ROOT/pages/getting-started.adoc
+++ b/docs/user-manual/modules/ROOT/pages/getting-started.adoc
@@ -9,11 +9,11 @@ Then come back here and you might want to read the following
 documentation before continuing:
 
 * Longer Getting Started Guide
-* Find out about link:enterprise-integration-patterns.adoc[Enterprise
+* Find out about xref:enterprise-integration-patterns.adoc[Enterprise
 Integration Patterns] and how to implement them with Camel
 * Review the Architecture guide to see how to
 build Routes using the Java DSL or
-Spring based link:xml-configuration.adoc[Xml
+Spring based xref:xml-configuration.adoc[Xml
 Configuration]
 
 [[GettingStarted-WorkingwithCamelContextsandRouteBuilders]]
@@ -22,7 +22,7 @@ Configuration]
 To get started with Camel:
 
 1.  Create a CamelContext.
-2.  Optionally, link:configuring-camel.adoc[configure components or
+2.  Optionally, xref:configuring-camel.adoc[configure components or
 endpoints].
 3.  Add whatever routing rules you wish using the DSL and
 RouteBuilder or using
@@ -32,9 +32,9 @@ XML Configuration.
 When your application is closing you may wish to
 stop the context
 
-When you are ready, why not link:walk-through-an-example.adoc[Walk
+When you are ready, why not xref:walk-through-an-example.adoc[Walk
 through an Example]? +
- And then continue the walk link:walk-through-another-example.html[Walk
+ And then continue the walk xref:walk-through-another-example.adoc[Walk
 through another example] +
  And after the walks head over to the tutorials.
 
diff --git a/docs/user-manual/modules/ROOT/pages/graceful-shutdown.adoc b/docs/user-manual/modules/ROOT/pages/graceful-shutdown.adoc
index b14d326..c7fd1e9 100644
--- a/docs/user-manual/modules/ROOT/pages/graceful-shutdown.adoc
+++ b/docs/user-manual/modules/ROOT/pages/graceful-shutdown.adoc
@@ -6,7 +6,7 @@
 Camel now supports a pluggable shutdown strategy using
 `org.apache.camel.spi.ShutdownStrategy`. Its responsible for shutting
 down routes in a graceful manner. The other resources will still be
-handled by link:camelcontext.html[CamelContext] to shutdown. This leaves
+handled by xref:camelcontext.adoc[CamelContext] to shutdown. This leaves
 the problem at hand with properly shutting down all the routes in a
 reliable manner to the `ShutdownStrategy`.
 
@@ -69,8 +69,8 @@ processed before it can shutdown.
 If a graceful shutdown could not shutdown cleanly within the given
 timeout period, then Camel performs a more aggressive shutdown by
 forcing routes and thread pools etc to shutdown. And as well the routing
-engine will reject continue processing link:exchange.adoc[Exchange]s. If
-this happens you may see WARN logs about link:exchange.adoc[Exchange]s
+engine will reject continue processing xref:exchange.adoc[Exchange]s. If
+this happens you may see WARN logs about xref:exchange.adoc[Exchange]s
 being rejected and other failures due the forced shutdown.
 
 If you do not want to see these logs, you can suppress this by setting
@@ -128,7 +128,7 @@ context.getShutdownStrategy().setLogInflightExchangesOnTimeout(false);
 You can configure the order in which routes should be started, and thus
 also the same order they are being shutdown. 
  See more at
-link:configuring-route-startup-ordering-and-autostartup.adoc[Configuring
+xref:configuring-route-startup-ordering-and-autostartup.adoc[Configuring
 route startup ordering and autostartup].
 
 [[GracefulShutdown-Finegrainedconfiguration]]
@@ -142,7 +142,7 @@ routing:
 
 These options can be configured on two scopes: `context` and `route`.
 Where a route will fallback to the `context` scoped option, if not
-explicit configured. (same principle as link:error-handler.html[Error
+explicit configured. (same principle as xref:error-handler.adoc[Error
 Handler], etc.).
 
 [[GracefulShutdown-ShutdownRoute]]
@@ -272,13 +272,13 @@ even have it timeout if a lot of new messages keep coming in.
 
 This option control how a given route consumer acts during shutdown.
 Most route consumer will only operate on a single task (message),
-however the link:batch-consumer.html[Batch Consumer] can operate on many
+however the xref:batch-consumer.adoc[Batch Consumer] can operate on many
 messages (in a batch). This option is for those kind of consumers. By
 default it uses the option `CompleteCurrentTaskOnly` which mean that the
 current _in progress_ task (message) will be completed and then the
 consumer will shutdown. The other option `CompleteAllTasks` allows the
 consumer to complete all the tasks (messages) before shutting down. For
-example a link:file2.html[File] consumer will process all the pending
+example a xref:file2.adoc[File] consumer will process all the pending
 files it has picked up before shutting down.
 
 [source,java]
@@ -400,7 +400,7 @@ on the `CamelContext` using the `setShutdownStrategy` method.
 When using Spring XML you then just define a spring bean which
 implements the `org.apache.camel.spi.ShutdownStrategy` and Camel will
 look it up at startup and use it instead of its default. See more at
-link:advanced-configuration-of-camelcontext-using-spring.html[Advanced
+xref:advanced-configuration-of-camelcontext-using-spring.adoc[Advanced
 configuration of CamelContext using Spring].
 
 [[GracefulShutdown-ShutdownAware]]
@@ -420,16 +420,16 @@ messages which reside on the in memory queues. +
  The method `deferShutdown` should return `true` to defer the shutdown
 to a later stage, when there are no more pending and inflight messages.
 
-link:batch-consumer.html[Batch Consumer] should implement
+xref:batch-consumer.adoc[Batch Consumer] should implement
 `ShutdownAware` so they properly support the `ShutdownRunningTask`
 option. See `GenericFileConsumer` for an example.
 
 [[GracefulShutdown-SeeAlso]]
 ==== See Also
 
-* link:configuring-route-startup-ordering-and-autostartup.adoc[Configuring
+* xref:configuring-route-startup-ordering-and-autostartup.adoc[Configuring
 route startup ordering and autostartup]
-* link:advanced-configuration-of-camelcontext-using-spring.html[Advanced
+* xref:advanced-configuration-of-camelcontext-using-spring.adoc[Advanced
 configuration of CamelContext using Spring]
-* link:user-guide.html[User Guide]
+* xref:user-guide.adoc[User Guide]
 
diff --git a/docs/user-manual/modules/ROOT/pages/groovy-dsl.adoc b/docs/user-manual/modules/ROOT/pages/groovy-dsl.adoc
index 049ff36..7111584 100644
--- a/docs/user-manual/modules/ROOT/pages/groovy-dsl.adoc
+++ b/docs/user-manual/modules/ROOT/pages/groovy-dsl.adoc
@@ -6,7 +6,7 @@ DSL, but it additionally allows to use Groovy language
 features in your routes, particularly
 http://www.groovy-lang.org/closures.html[Closures] acting as
 Processor, Expression,
-Predicate, or link:aggregator.html[Aggregation
+Predicate, or xref:aggregator.adoc[Aggregation
 Strategy]. +
  With the Groovy DSL you write your RouteBuilder classes entirely in
 Groovy, while the scripting component
@@ -397,4 +397,4 @@ Using the plain Java DSL, the route would look something like this:
 [[GroovyDSL-SeeAlso]]
 ==== See Also
 
-* link:dsl.adoc[DSL]
+* xref:dsl.adoc[DSL]
diff --git a/docs/user-manual/modules/ROOT/pages/guaranteed-delivery.adoc b/docs/user-manual/modules/ROOT/pages/guaranteed-delivery.adoc
index 246faa1..02ee27e 100644
--- a/docs/user-manual/modules/ROOT/pages/guaranteed-delivery.adoc
+++ b/docs/user-manual/modules/ROOT/pages/guaranteed-delivery.adoc
@@ -3,10 +3,10 @@
 
 Camel supports the
 http://www.enterpriseintegrationpatterns.com/GuaranteedMessaging.html[Guaranteed
-Delivery] from the link:enterprise-integration-patterns.html[EIP
+Delivery] from the xref:enterprise-integration-patterns.html[EIP
 patterns] using among others the following components:
 
-* link:file2.html[File] for using file systems as a persistent store of
+* xref:file2.adoc[File] for using file systems as a persistent store of
 messages
 * <<jms-component,JMS>> when using persistent delivery (the default) for
 working with JMS Queues and Topics for high performance, clustering and
@@ -15,8 +15,8 @@ load balancing
 any of the many other database component such as <<sql-component,SQL>>,
 <<jdbc-component,JDBC>>,
 <<mybatis-component,MyBatis>>,
-link:hibernate.html[Hibernate]
-* link:hawtdb.html[HawtDB] for a lightweight key-value persistent store
+xref:hibernate.adoc[Hibernate]
+* xref:hawtdb.adoc[HawtDB] for a lightweight key-value persistent store
 
 image:http://www.enterpriseintegrationpatterns.com/img/GuaranteedMessagingSolution.gif[image]
 
diff --git a/docs/user-manual/modules/ROOT/pages/guice-jms-example.adoc b/docs/user-manual/modules/ROOT/pages/guice-jms-example.adoc
index bef4ebc..895851a 100644
--- a/docs/user-manual/modules/ROOT/pages/guice-jms-example.adoc
+++ b/docs/user-manual/modules/ROOT/pages/guice-jms-example.adoc
@@ -4,9 +4,9 @@
 *Available as of Camel 1.5 onwards*
 
 The Guice JMS example is functionally similar to both the
-link:walk-through-an-example.adoc[first example] and the
-link:spring-example.adoc[Spring Example] but using
-link:guice.adoc[Guice] as the Dependency Injection framework.
+xref:walk-through-an-example.adoc[first example] and the
+xref:spring-example.adoc[Spring Example] but using
+xref:guice.adoc[Guice] as the Dependency Injection framework.
 
 In this example we just write RouteBuilder implementations, then we
 write a Guice module
@@ -50,10 +50,10 @@ specific (such as URLs, machine names, usernames/passwords and so forth)
 while leaving all of the other configuration which does not change in
 different environments in Java code.
 
-So you can use link:guice.adoc[Guice] to dependency inject whatever
-objects you need to create, be it an link:endpoint.adoc[Endpoint],
-link:component.adoc[Component], link:route-builder.adoc[RouteBuilder] or
-arbitrary link:bean-integration.adoc[bean used within a route]. Then you
+So you can use xref:guice.adoc[Guice] to dependency inject whatever
+objects you need to create, be it an xref:endpoint.adoc[Endpoint],
+xref:component.adoc[Component], xref:route-builder.adoc[RouteBuilder] or
+arbitrary xref:bean-integration.adoc[bean used within a route]. Then you
 can inject any properties from the jndi.properties file easily -- so that
 most of your configuration is all in Java code which is typesafe and
 easily refactorable - then leaving some properties to be environment
diff --git a/docs/user-manual/modules/ROOT/pages/guice-maven-plugin.adoc b/docs/user-manual/modules/ROOT/pages/guice-maven-plugin.adoc
index 43820c9..0b17a3e 100644
--- a/docs/user-manual/modules/ROOT/pages/guice-maven-plugin.adoc
+++ b/docs/user-manual/modules/ROOT/pages/guice-maven-plugin.adoc
@@ -2,11 +2,11 @@
 === Guice Maven Plugin
 
 The Guice Maven Plugin allows you to run your
-link:enterprise-integration-patterns.adoc[Enterprise Integration
-Patterns] using link:guice.adoc[Guice] for
-link:dependency-injection.adoc[Dependency Injection] inside Maven along
-with being able to support link:visualisation.adoc[Visualisation] along
-with integration of the link:visualisation.adoc[Visualisation] diagrams
+xref:enterprise-integration-patterns.adoc[Enterprise Integration
+Patterns] using xref:guice.adoc[Guice] for
+xref:dependency-injection.adoc[Dependency Injection] inside Maven along
+with being able to support xref:visualisation.adoc[Visualisation] along
+with integration of the xref:visualisation.adoc[Visualisation] diagrams
 into the standard maven reports for your project.
 
 
@@ -16,16 +16,16 @@ into the standard maven reports for your project.
 [width="100%",cols="34%,66%",options="header",]
 |=======================================================================
 |Goal |Description
-|link:guice-run-maven-goal.adoc[guice:run]
+|xref:guice-run-maven-goal.adoc[guice:run]
 |Boots up Camel in the context of a separately initiated Java thread
-using the link:guice.adoc[Guice] configuration in the `jndi.properties`
+using the xref:guice.adoc[Guice] configuration in the `jndi.properties`
 file on the classpath and runs your routing rules
 
-|link:guice-embedded-maven-goal.adoc[guice:embedded]
-|Boots up Camel using the link:guice.adoc[Guice] configuration at
+|xref:guice-embedded-maven-goal.adoc[guice:embedded]
+|Boots up Camel using the xref:guice.adoc[Guice] configuration at
 `jndi.properties` on the classpath and runs your routing rules
 
-|link:guice-dot-maven-goal.adoc[guice:dot]
+|xref:guice-dot-maven-goal.adoc[guice:dot]
 |Generates DOT files and then HTML, PNG, SVG files for your EIP routing
 rules with integration into Maven Reports
 |=======================================================================
@@ -121,7 +121,7 @@ This should produce a log statement similar to:
 
 If you add the guice-maven-plugin to your `<reporting>` section of your
 pom you will automatically get the
-link:visualisation.adoc[Visualisation] reporting generated for your
+xref:visualisation.adoc[Visualisation] reporting generated for your
 project as part of the regular maven site generation.
 
 For example add the following into your pom:
@@ -157,4 +157,4 @@ will need to install the http://graphviz.org[GraphViz] DOT executable
 and add it to your PATH so that the plugin can invoke DOT to generate
 the PNG/SVG files.
 
-For more details see the link:camel-dot-maven-goal.adoc[guice:dot].
+For more details see the xref:camel-dot-maven-goal.adoc[guice:dot].
diff --git a/docs/user-manual/modules/ROOT/pages/guice.adoc b/docs/user-manual/modules/ROOT/pages/guice.adoc
index 36650e8..8e57ad1 100644
--- a/docs/user-manual/modules/ROOT/pages/guice.adoc
+++ b/docs/user-manual/modules/ROOT/pages/guice.adoc
@@ -40,7 +40,7 @@ extends CamelModule so that all bound RouteBuilder instances will be
 injected into the CamelContext or you can supply an optional Matcher to
 find RouteBuilder instances matching some kind of predicate.
 
-So you can specify the exact link:route-builder.adoc[RouteBuilder]
+So you can specify the exact xref:route-builder.adoc[RouteBuilder]
 instances you want:
 
 [source,java]
@@ -85,9 +85,9 @@ to load right jndi properties file.
 ==== Configuring Component, Endpoint or RouteBuilder instances
 
 You can use Guice to dependency inject whatever objects
-you need to create, be it an link:endpoint.adoc[Endpoint],
-link:component.adoc[Component], link:route-builder.adoc[RouteBuilder] or
-arbitrary link:bean-integration.adoc[bean used within a route].
+you need to create, be it an xref:endpoint.adoc[Endpoint],
+xref:component.adoc[Component], xref:route-builder.adoc[RouteBuilder] or
+arbitrary xref:bean-integration.adoc[bean used within a route].
 
 The easiest way to do this is to create your own Guice Module class
 which extends one of the above module classes and add a provider method
@@ -122,7 +122,7 @@ change based on development, testing, production, etc.
 ==== Creating multiple RouteBuilder instances per type
 
 It is sometimes useful to create multiple instances of a particular
-link:route-builder.adoc[RouteBuilder] with different configurations.
+xref:route-builder.adoc[RouteBuilder] with different configurations.
 
 To do this just create multiple provider methods for each configuration;
 or create a single provider method that returns a collection of
@@ -148,8 +148,8 @@ public class MyModule extends CamelModuleWithMatchingRoutes {
 [[Guice-SeeAlso]]
 ==== See Also
 
-* There are a number of link:examples.adoc[Examples] you can look at to
-see Guice and Camel being used such as link:guice-jms-example.adoc[Guice
+* There are a number of xref:examples.adoc[Examples] you can look at to
+see Guice and Camel being used such as xref:guice-jms-example.adoc[Guice
 JMS Example]
-* link:guice-maven-plugin.adoc[Guice Maven Plugin] for running your
+* xref:guice-maven-plugin.adoc[Guice Maven Plugin] for running your
 Guice based routes via Maven
diff --git a/docs/user-manual/modules/ROOT/pages/http-session-handling.adoc b/docs/user-manual/modules/ROOT/pages/http-session-handling.adoc
index f5df360..bfae9d5 100644
--- a/docs/user-manual/modules/ROOT/pages/http-session-handling.adoc
+++ b/docs/user-manual/modules/ROOT/pages/http-session-handling.adoc
@@ -22,14 +22,14 @@ domain of the handled cookies.
 ==== Route/Context Scope
 
 It might be desirable to have a single session for a route or a
-link:camelcontext.html[CamelContext]. This essentially means that all
+xref:camelcontext.adoc[CamelContext]. This essentially means that all
 calls to a server issued from a route or CamelContext share a single
 HTTP session.
 
 [[HTTP-SessionHandling-EndpointScope]]
 ==== Endpoint Scope
 
-It is also possible to have a session on an link:endpoint.html[Endpoint]
+It is also possible to have a session on an xref:endpoint.adoc[Endpoint]
 entity. This would mean that all invocations of an HTTP call issued by a
 single Endpoint share a session, whereas different Endpoints never share
 sessions, even if the call is sent to the same server. 
@@ -40,7 +40,7 @@ sessions even prior to version 2.19.
 ====  Exchange Scope
 
 The third option to define a session scope is on
-link:exchange.html[Exchange]level. This is particularly useful for
+xref:exchange.adoc[Exchange]level. This is particularly useful for
 scenarios where the server session is really maintaining state.
 
 In this case the route could e.g. first do a login call, then some
diff --git a/docs/user-manual/modules/ROOT/pages/hystrix-eip.adoc b/docs/user-manual/modules/ROOT/pages/hystrix-eip.adoc
index bb6701b..8b87690 100644
--- a/docs/user-manual/modules/ROOT/pages/hystrix-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/hystrix-eip.adoc
@@ -3,7 +3,7 @@
 
 *Available as of Camel 2.18*
 
-The Hystrix EIP provides integration with Netflix link:https://github.com/Netflix/Hystrix[Hystrix] to be used as circuit breaker in the Camel routes. Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems where failure is inevitable.
+The Hystrix EIP provides integration with Netflix https://github.com/Netflix/Hystrix[Hystrix] to be used as circuit breaker in the Camel routes. Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems where failure is inevitable.
 
 Maven users will need to add the following dependency to their pom.xml to use this EIP:
 
@@ -95,8 +95,8 @@ And in XML DSL:
 </camelContext>
 ----
 
-See link:https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/onFallback-eip.adoc[onFallback]
+See https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/onFallback-eip.adoc[onFallback]
 
 === Other examples
 
-You can find an example with the source code: link:https://github.com/apache/camel/tree/master/examples/camel-example-hystrix[camel-example-hystrix].
+You can find an example with the source code: https://github.com/apache/camel/tree/master/examples/camel-example-hystrix[camel-example-hystrix].
diff --git a/docs/user-manual/modules/ROOT/pages/idempotentConsumer-eip.adoc b/docs/user-manual/modules/ROOT/pages/idempotentConsumer-eip.adoc
index 5381a69..0b035a6 100644
--- a/docs/user-manual/modules/ROOT/pages/idempotentConsumer-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/idempotentConsumer-eip.adoc
@@ -3,11 +3,11 @@
 
 The
 http://www.enterpriseintegrationpatterns.com/IdempotentReceiver.html[Idempotent
-Consumer] from the link:enterprise-integration-patterns.html[EIP
+Consumer] from the xref:enterprise-integration-patterns.adoc[EIP
 patterns] is used to filter out duplicate messages.
 
 The Idempotent Consumer essentially acts like a
-link:message-filter.html[Message Filter] to filter out duplicates.
+xref:message-filter.adoc[Message Filter] to filter out duplicates.
 
 Camel will add the message id eagerly to the repository to detect
 duplication also for Exchanges currently in progress. 
@@ -17,8 +17,8 @@ the Exchange failed, otherwise it stays there.
 Camel provides the following Idempotent Consumer implementations:
 
 * MemoryIdempotentRepository
-* link:file2.html[FileIdempotentRepository]
-* link:hazelcast-component.html[HazelcastIdempotentRepository]
+* xref:file2.adoc[FileIdempotentRepository]
+* xref:hazelcast-component.adoc[HazelcastIdempotentRepository]
 (*Available as of Camel 2.8*)
 * <<sql-component,JdbcMessageIdRepository>> (*Available as of
 Camel 2.7*)
@@ -27,7 +27,7 @@ Camel 2.7*)
 Camel 2.13.0)*
 * <<jcache-component,JCacheIdempotentRepository>>* (*Available as of Camel
 2.17.0)**
-* link:spring.html[SpringCacheIdempotentRepository] *(*Available as of
+* xref:spring.adoc[SpringCacheIdempotentRepository] *(*Available as of
 Camel 2.17.1)**** 
 **
 * <<ehcache-component,EhcacheIdempotentRepository>>** *(*Available as of
diff --git a/docs/user-manual/modules/ROOT/pages/injector.adoc b/docs/user-manual/modules/ROOT/pages/injector.adoc
index 3c183e9..4ba28bb 100644
--- a/docs/user-manual/modules/ROOT/pages/injector.adoc
+++ b/docs/user-manual/modules/ROOT/pages/injector.adoc
@@ -8,7 +8,7 @@ Spring or Guice to be able to create and
 dependency-inject objects of a certain type.
 
 For example if you are using the
-link:inversion-of-control-with-smart-defaults.adoc[Inversion Of Control
+xref:inversion-of-control-with-smart-defaults.adoc[Inversion Of Control
 With Smart Defaults] pattern to minimize your XML dependency; Camel will
 automatically discover and use new endpoints when they are referenced
 via their URIs by using the META-INF/services settings.
diff --git a/docs/user-manual/modules/ROOT/pages/intercept.adoc b/docs/user-manual/modules/ROOT/pages/intercept.adoc
index fa7b4b4..f6c4aa6 100644
--- a/docs/user-manual/modules/ROOT/pages/intercept.adoc
+++ b/docs/user-manual/modules/ROOT/pages/intercept.adoc
@@ -258,6 +258,6 @@ Endpoint then the `interceptFrom` is not triggered.
 [[Intercept-SeeAlso]]
 ==== See Also
 
-* link:architecture.adoc[Architecture]
+* xref:architecture.adoc[Architecture]
 
 
diff --git a/docs/user-manual/modules/ROOT/pages/inversion-of-control-with-smart-defaults.adoc b/docs/user-manual/modules/ROOT/pages/inversion-of-control-with-smart-defaults.adoc
index 1e36ecc..ca888e1 100644
--- a/docs/user-manual/modules/ROOT/pages/inversion-of-control-with-smart-defaults.adoc
+++ b/docs/user-manual/modules/ROOT/pages/inversion-of-control-with-smart-defaults.adoc
@@ -15,7 +15,7 @@ behavior.
 For example with Camel you can configure a
 CamelContext; capable of creating on demand
 Component and Endpoint
-instances along with providing a powerful link:type-converter.html[Type
+instances along with providing a powerful xref:type-converter.adoc[Type
 Converter] registry all by using a single XML element...
 
 [source,java]
diff --git a/docs/user-manual/modules/ROOT/pages/java-dsl.adoc b/docs/user-manual/modules/ROOT/pages/java-dsl.adoc
index 45288c7..5994fce 100644
--- a/docs/user-manual/modules/ROOT/pages/java-dsl.adoc
+++ b/docs/user-manual/modules/ROOT/pages/java-dsl.adoc
@@ -188,6 +188,6 @@ RouteBuilder builder = new RouteBuilder() {
 [[JavaDSL-SeeAlso]]
 ==== See Also
 
-* link:dsl.adoc[DSL]
+* xref:dsl.adoc[DSL]
 
 
diff --git a/docs/user-manual/modules/ROOT/pages/jndi.adoc b/docs/user-manual/modules/ROOT/pages/jndi.adoc
index d0636fa..e9c9203 100644
--- a/docs/user-manual/modules/ROOT/pages/jndi.adoc
+++ b/docs/user-manual/modules/ROOT/pages/jndi.adoc
@@ -1,15 +1,15 @@
 [[JNDI-JNDI]]
 === JNDI
 
-Camel will use JNDI as the default link:registry.adoc[Registry]
-implementation if you do not use link:spring.adoc[Spring]. This means
+Camel will use JNDI as the default xref:registry.adoc[Registry]
+implementation if you do not use xref:spring.adoc[Spring]. This means
 that using a DefaultCamelContext will try and create a
 http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/impl/JndiRegistry.html[JndiRegistry]
 which uses the JNDI InitialContext as the registry.
 
 This means you need to configure some JNDI provider to be able to use
 this. This is described in this
-link:faq/exception-javaxnamingnoinitialcontextexception.adoc[FAQ entry],
+xref:faq/exception-javaxnamingnoinitialcontextexception.adoc[FAQ entry],
 but essentially you just need to create a file called `jndi.properties` on
 the classpath and configure it with the JNDI provider you wish.
 
diff --git a/docs/user-manual/modules/ROOT/pages/languages.adoc b/docs/user-manual/modules/ROOT/pages/languages.adoc
index 34a7188..51e0d6b 100644
--- a/docs/user-manual/modules/ROOT/pages/languages.adoc
+++ b/docs/user-manual/modules/ROOT/pages/languages.adoc
@@ -2,11 +2,11 @@
 === Languages
 
 To support flexible and powerful
-link:enterprise-integration-patterns.adoc[Enterprise Integration
+xref:enterprise-integration-patterns.adoc[Enterprise Integration
 Patterns], Camel supports various Languages to create an
-link:expression.adoc[Expression] or link:predicate.adoc[Predicate]
-within either the link:dsl.adoc[Routing Domain Specific Language] or the
-link:xml-configuration.adoc[XML Configuration].
+xref:expression.adoc[Expression] or xref:predicate.adoc[Predicate]
+within either the xref:dsl.adoc[Routing Domain Specific Language] or the
+xref:xml-configuration.adoc[XML Configuration].
 
 ==== Note
 *Combining Predicates**
@@ -14,7 +14,7 @@ link:xml-configuration.adoc[XML Configuration].
 When creating predicates (expressions that evaluate to `true` or
 `false`), you can combine several predicates -- regardless of the
 language they are built with -- by using the `PredicateBuilder` class.
-For more information, see link:predicate.adoc[Compound Predicates].
+For more information, see xref:predicate.adoc[Compound Predicates].
 ====
 
 The following is the list of currently supported languages:
@@ -46,5 +46,5 @@ The following is the list of currently supported languages:
 * https://github.com/camel-extra/camel-extra/blob/master/components/camel-vtdxml/src/main/docs/vtdxml-component.adoc[VTD-XML]
 
 Most of these languages are also supported used as
-link:annotation-based-expression-language.html[Annotation Based
+xref:annotation-based-expression-language.adoc[Annotation Based
 Expression Language].
diff --git a/docs/user-manual/modules/ROOT/pages/lifecycle.adoc b/docs/user-manual/modules/ROOT/pages/lifecycle.adoc
index c34c8c6..3b82498 100644
--- a/docs/user-manual/modules/ROOT/pages/lifecycle.adoc
+++ b/docs/user-manual/modules/ROOT/pages/lifecycle.adoc
@@ -105,7 +105,7 @@ stop the route instead.
 [[Lifecycle-SeeAlso]]
 ==== See Also
 
-* link:camelcontext.adoc[CamelContext]
-* link:architecture.adoc[Architecture]
+* xref:camelcontext.adoc[CamelContext]
+* xref:architecture.adoc[Architecture]
 * JMX
 
diff --git a/docs/user-manual/modules/ROOT/pages/mailing-lists.adoc b/docs/user-manual/modules/ROOT/pages/mailing-lists.adoc
index 42e69fd..8d43cd3 100644
--- a/docs/user-manual/modules/ROOT/pages/mailing-lists.adoc
+++ b/docs/user-manual/modules/ROOT/pages/mailing-lists.adoc
@@ -2,7 +2,7 @@
 === Mailing Lists
 
 The following mailing lists are available. Before posting you might want
-to read the link:support.adoc[Support] page before posting to the
+to read the xref:support.adoc[Support] page before posting to the
 mailing list.
 
 [IMPORTANT]
diff --git a/docs/user-manual/modules/ROOT/pages/marshal-eip.adoc b/docs/user-manual/modules/ROOT/pages/marshal-eip.adoc
index 858abe4..1f57d8c 100644
--- a/docs/user-manual/modules/ROOT/pages/marshal-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/marshal-eip.adoc
@@ -1,7 +1,7 @@
 [[marshal-eip]]
 == Marshal EIP
 
-Marshalling is the opposite of unmarshalling, where a bean is marshalled into some binary or textual format for transmission over some transport via a Camel link:https://github.com/apache/camel/tree/master/components[Components]. Marshalling is used in the same way as unmarshalling above; in the link:https://github.com/apache/camel/blob/master/docs/user-manual/en/dsl.adoc[DSL] you can use a DataFormat instance, you can configure the DataFormat dynamically using the DSL or you can refer t [...]
+Marshalling is the opposite of unmarshalling, where a bean is marshalled into some binary or textual format for transmission over some transport via a Camel https://github.com/apache/camel/tree/master/components[Components]. Marshalling is used in the same way as unmarshalling above; in the https://github.com/apache/camel/blob/master/docs/user-manual/en/dsl.adoc[DSL] you can use a DataFormat instance, you can configure the DataFormat dynamically using the DSL or you can refer to a named  [...]
 
 == Options
 
@@ -17,7 +17,7 @@ The Marshal EIP supports 1 options which are listed below:
 
 === Samples
 
-The following example unmarshals via serialization then marshals using a named JAXB data format to perform a kind of link:https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/message-translator.adoc[Message Translator]
+The following example unmarshals via serialization then marshals using a named JAXB data format to perform a kind of https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/message-translator.adoc[Message Translator]
 
 [source,java]
 ----
diff --git a/docs/user-manual/modules/ROOT/pages/message-bus.adoc b/docs/user-manual/modules/ROOT/pages/message-bus.adoc
index e90b20b..a5407c5 100644
--- a/docs/user-manual/modules/ROOT/pages/message-bus.adoc
+++ b/docs/user-manual/modules/ROOT/pages/message-bus.adoc
@@ -3,7 +3,7 @@
 
 Camel supports the
 http://www.enterpriseintegrationpatterns.com/PointToPointChannel.html[Message
-Bus] from the link:enterprise-integration-patterns.html[EIP patterns].
+Bus] from the xref:enterprise-integration-patterns.adoc[EIP patterns].
 You could view Camel as a Message Bus itself as it allows producers and
 consumers to be decoupled.
 
diff --git a/docs/user-manual/modules/ROOT/pages/message-channel.adoc b/docs/user-manual/modules/ROOT/pages/message-channel.adoc
index b7d3b64..01083a4 100644
--- a/docs/user-manual/modules/ROOT/pages/message-channel.adoc
+++ b/docs/user-manual/modules/ROOT/pages/message-channel.adoc
@@ -3,7 +3,7 @@
 
 Camel supports the
 http://www.enterpriseintegrationpatterns.com/MessageChannel.html[Message
-Channel] from the link:enterprise-integration-patterns.html[EIP
+Channel] from the xref:enterprise-integration-patterns.adoc[EIP
 patterns]. The Message Channel is an internal implementation detail of
 the
 http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Endpoint.html[Endpoint]
@@ -47,5 +47,5 @@ And in XML:
 
 For more details see
 
-* link:message.html[Message]
+* xref:message.adoc[Message]
 * <<messageEndpoint-eip,Message Endpoint>>
diff --git a/docs/user-manual/modules/ROOT/pages/message-endpoint.adoc b/docs/user-manual/modules/ROOT/pages/message-endpoint.adoc
index 486a692..213aaef 100644
--- a/docs/user-manual/modules/ROOT/pages/message-endpoint.adoc
+++ b/docs/user-manual/modules/ROOT/pages/message-endpoint.adoc
@@ -3,15 +3,15 @@
 
 Camel supports the
 http://www.enterpriseintegrationpatterns.com/MessageEndpoint.html[Message
-Endpoint] from the link:enterprise-integration-patterns.html[EIP
+Endpoint] from the xref:enterprise-integration-patterns.adoc[EIP
 patterns] using the
 http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Endpoint.html[Endpoint]
 interface.
 
 image:http://www.enterpriseintegrationpatterns.com/img/MessageEndpointSolution.gif[image]
 
-When using the link:dsl.html[DSL] to create link:routes.html[Routes] you
-typically refer to Message Endpoints by their link:uris.html[URIs]
+When using the xref:dsl.adoc[DSL] to create xref:routes.adoc[Routes] you
+typically refer to Message Endpoints by their xref:uris.adoc[URIs]
 rather than directly using the
 http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Endpoint.html[Endpoint]
 interface. Its then a responsibility of the
@@ -24,14 +24,14 @@ implementations.
 [[messageEndpoint-Example]]
 === Samples
 
-See first example in link:https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/to-eip.adoc[To EIP]
+See first example in https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/to-eip.adoc[To EIP]
 
 === See Also
 
 For more details see:
 
-* link:https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/toD-eip.adoc[ToD EIP]
-* link:recipient-list.html[Recipient List]
-* link:message.html[Message]
-* link:wire-tap.html[Wire Tap] 
+* https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/toD-eip.adoc[ToD EIP]
+* xref:recipient-list.adoc[Recipient List]
+* xref:message.adoc[Message]
+* xref:wire-tap.adoc[Wire Tap] 
 
diff --git a/docs/user-manual/modules/ROOT/pages/message-router.adoc b/docs/user-manual/modules/ROOT/pages/message-router.adoc
index 861f12e..813aa3a 100644
--- a/docs/user-manual/modules/ROOT/pages/message-router.adoc
+++ b/docs/user-manual/modules/ROOT/pages/message-router.adoc
@@ -3,7 +3,7 @@
 
 The
 http://www.enterpriseintegrationpatterns.com/MessageRouter.html[Message
-Router] from the link:enterprise-integration-patterns.html[EIP patterns]
+Router] from the xref:enterprise-integration-patterns.adoc[EIP patterns]
 allows you to consume from an input destination, evaluate some predicate
 then choose the right output destination.
 
@@ -11,13 +11,13 @@ image:http://www.enterpriseintegrationpatterns.com/img/MessageRouter.gif[image]
 
 The following example shows how to route a request from an input
 *queue:a* endpoint to either *queue:b*, *queue:c* or *queue:d* depending
-on the evaluation of various link:predicate.html[Predicate] expressions
+on the evaluation of various xref:predicate.adoc[Predicate] expressions
 
 === Examples
 
 The following example shows how to route a request from an input
 *seda:a* endpoint to either *seda:b*, *seda:c* or *seda:d* depending on
-the evaluation of various link:predicate.html[Predicate] expressions
+the evaluation of various xref:predicate.adoc[Predicate] expressions
 
 [source,java]
 ----
@@ -35,7 +35,7 @@ RouteBuilder builder = new RouteBuilder() {
 };
 ----
 
-TIP: See link:why-can-i-not-use-when-or-otherwise-in-a-java-camel-route.html[Why
+TIP: See xref:why-can-i-not-use-when-or-otherwise-in-a-java-camel-route.adoc[Why
 can I not use when or otherwise in a Java Camel route] if you have
 problems with the Java DSL, accepting using `when` or `otherwise`.
 
diff --git a/docs/user-manual/modules/ROOT/pages/message-translator.adoc b/docs/user-manual/modules/ROOT/pages/message-translator.adoc
index f2ba7c8..e21337d 100644
--- a/docs/user-manual/modules/ROOT/pages/message-translator.adoc
+++ b/docs/user-manual/modules/ROOT/pages/message-translator.adoc
@@ -3,11 +3,11 @@
 
 Camel supports the
 http://www.enterpriseintegrationpatterns.com/MessageTranslator.html[Message
-Translator] from the link:enterprise-integration-patterns.html[EIP
-patterns] by using an arbitrary link:processor.html[Processor] in the
-routing logic, by using a link:bean-integration.html[bean] to perform
+Translator] from the xref:enterprise-integration-patterns.adoc[EIP
+patterns] by using an arbitrary xref:processor.adoc[Processor] in the
+routing logic, by using a xref:bean-integration.adoc[bean] to perform
 the transformation, or by using transform() in the DSL. You can also use
-a link:data-format.html[Data Format] to marshal and unmarshal messages
+a xref:data-format.adoc[Data Format] to marshal and unmarshal messages
 in different encodings.
 
 image:http://www.enterpriseintegrationpatterns.com/img/MessageTranslator.gif[image]
@@ -15,9 +15,9 @@ image:http://www.enterpriseintegrationpatterns.com/img/MessageTranslator.gif[ima
 === Samples
 
 You can transform a message using Camel's
-link:bean-integration.html[Bean Integration] to call any method on a
+xref:bean-integration.adoc[Bean Integration] to call any method on a
 bean in your <<Registry-Registry,Registry>> such as your
-link:spring.html[Spring] XML configuration file as follows
+xref:spring.adoc[Spring] XML configuration file as follows
 
 [source,java]
 ----
@@ -28,19 +28,19 @@ from("activemq:SomeQueue")
 
 Where the "myTransformerBean" would be defined in a Spring XML file or
 defined in JNDI etc. You can omit the method name parameter from
-beanRef() and the link:bean-integration.html[Bean Integration] will try
+beanRef() and the xref:bean-integration.adoc[Bean Integration] will try
 to deduce the method to invoke from the message exchange.
 
-or you can add your own explicit link:processor.html[Processor] to do
+or you can add your own explicit xref:processor.adoc[Processor] to do
 the transformation
 
 or you can use the DSL to explicitly configure the transformation
 
 You can also use <<SpringXMLExtensions-SpringXMLExtensions,Spring XML Extensions>>
-to do a transformation. Basically any link:expression.html[Expression]
+to do a transformation. Basically any xref:expression.adoc[Expression]
 language can be substituted inside the transform element as shown below
 
-Or you can use the link:bean-integration.html[Bean Integration] to
+Or you can use the xref:bean-integration.adoc[Bean Integration] to
 invoke a bean
 
 [source,xml]
@@ -52,7 +52,7 @@ invoke a bean
 </route>
 ----
 
-You can also use link:templating.html[Templating] to consume a message
+You can also use xref:templating.adoc[Templating] to consume a message
 from one destination, transform it with something like
 <<velocity-component,Velocity>> or <<velocity-component,XQuery>> and then send
 it on to another destination. For example using InOnly (one way
@@ -66,7 +66,7 @@ from("activemq:My.Queue")
 ----
 
 If you want to use InOut (request-reply) semantics to process requests
-on the *My.Queue* queue on link:activemq.html[ActiveMQ] with a template
+on the *My.Queue* queue on xref:activemq.adoc[ActiveMQ] with a template
 generated response, then sending responses back to the JMSReplyTo
 Destination you could use this.
 
diff --git a/docs/user-manual/modules/ROOT/pages/message.adoc b/docs/user-manual/modules/ROOT/pages/message.adoc
index ccee101..fbcdc9b 100644
--- a/docs/user-manual/modules/ROOT/pages/message.adoc
+++ b/docs/user-manual/modules/ROOT/pages/message.adoc
@@ -3,19 +3,19 @@
 
 Camel supports the
 http://www.enterpriseintegrationpatterns.com/Message.html[Message] from
-the link:enterprise-integration-patterns.html[EIP patterns] using the
+the xref:enterprise-integration-patterns.adoc[EIP patterns] using the
 http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Message.html[Message]
 interface.
 
 image:http://www.enterpriseintegrationpatterns.com/img/MessageSolution.gif[image]
 
-To support various message link:exchange-pattern.html[exchange patterns]
-like one way link:event-message.html[Event Message] and
-link:request-reply.html[Request Reply] messages Camel uses an
-link:exchange.html[Exchange] interface which has a *pattern* property
-which can be set to *InOnly* for an link:event-message.html[Event
+To support various message xref:exchange-pattern.adoc[exchange patterns]
+like one way xref:event-message.adoc[Event Message] and
+xref:request-reply.adoc[Request Reply] messages Camel uses an
+xref:exchange.adoc[Exchange] interface which has a *pattern* property
+which can be set to *InOnly* for an xref:event-message.adoc[Event
 Message] which has a single inbound Message, or *InOut* for a
-link:request-reply.html[Request Reply] where there is an inbound and
+xref:request-reply.adoc[Request Reply] where there is an inbound and
 outbound message.
 
 Here is a basic example of sending a Message to a route in *InOnly* and
@@ -41,4 +41,4 @@ from("direct:startInOut")
   .inOut("bean:process");
 ----
 
-See link:https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/to-eip.adoc[to-eip with pattern]
+See https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/to-eip.adoc[to-eip with pattern]
diff --git a/docs/user-manual/modules/ROOT/pages/multicast-eip.adoc b/docs/user-manual/modules/ROOT/pages/multicast-eip.adoc
index 0429a9f..4181ad4 100644
--- a/docs/user-manual/modules/ROOT/pages/multicast-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/multicast-eip.adoc
@@ -132,5 +132,5 @@ allows you to do this using the processor
 interface.
 
 Notice the `onPrepare` can be used for any kind of custom logic which
-you would like to execute before the link:exchange.html[Exchange] is
+you would like to execute before the xref:exchange.adoc[Exchange] is
 being multicasted.
diff --git a/docs/user-manual/modules/ROOT/pages/otherwise-eip.adoc b/docs/user-manual/modules/ROOT/pages/otherwise-eip.adoc
index 724781c..b282bf5 100644
--- a/docs/user-manual/modules/ROOT/pages/otherwise-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/otherwise-eip.adoc
@@ -2,7 +2,7 @@
 == Otherwise EIP
 
 The Otherwise EIP is related to http://www.enterpriseintegrationpatterns.com/ContentBasedRouter.html[Content
-Based Router] from the link:enterprise-integration-patterns.html[EIP
+Based Router] from the xref:enterprise-integration-patterns.adoc[EIP
 patterns]
 
 image:http://www.enterpriseintegrationpatterns.com/img/ContentBasedRouter.gif[image]
@@ -17,7 +17,7 @@ The Otherwise EIP has no options.
 
 The following example shows how to route a request from an input
 *direct:a* endpoint to either *direct:b*, *direct:c* or *direct:d* depending on
-the evaluation of various link:predicate.html[Predicate] expressions
+the evaluation of various xref:predicate.adoc[Predicate] expressions
 
 [source,java]
 ----
diff --git a/docs/user-manual/modules/ROOT/pages/pipeline-eip.adoc b/docs/user-manual/modules/ROOT/pages/pipeline-eip.adoc
index 05aaabf..144d973 100644
--- a/docs/user-manual/modules/ROOT/pages/pipeline-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/pipeline-eip.adoc
@@ -1,12 +1,12 @@
 [[pipeline-eip]]
 == Pipeline EIP
 
-Camel supports the link:http://www.enterpriseintegrationpatterns.com/PipesAndFilters.html[Pipes and Filters] from the link:https://github.com/apache/camel/blob/master/docs/user-manual/en/enterprise-integration-patterns.adoc[EIP patterns] in various ways.
+Camel supports the xref:http://www.enterpriseintegrationpatterns.com/PipesAndFilters.html[Pipes and Filters] from the https://github.com/apache/camel/blob/master/docs/user-manual/en/enterprise-integration-patterns.adoc[EIP patterns] in various ways.
 
 image:http://www.enterpriseintegrationpatterns.com/img/PipesAndFilters.gif[image]
 
 With Camel you can split your processing across multiple independent
-link:https://github.com/apache/camel/blob/master/docs/user-manual/en/endpoint.adoc[Endpoint] instances which can then be chained
+https://github.com/apache/camel/blob/master/docs/user-manual/en/endpoint.adoc[Endpoint] instances which can then be chained
 together.
 
 === Options
@@ -19,7 +19,7 @@ The Pipeline EIP has no options.
 === Examples
 
 You can create pipelines of logic using multiple
-link:https://github.com/apache/camel/blob/master/docs/user-manual/en/endpoint.adoc[Endpoint] or link:https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/message-translator.adoc[Message
+https://github.com/apache/camel/blob/master/docs/user-manual/en/endpoint.adoc[Endpoint] or https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/message-translator.adoc[Message
 Translator] instances as follows
 
 Though pipeline is the default mode of operation when you specify
diff --git a/docs/user-manual/modules/ROOT/pages/point-to-point-channel.adoc b/docs/user-manual/modules/ROOT/pages/point-to-point-channel.adoc
index 24190d3..0416bcb 100644
--- a/docs/user-manual/modules/ROOT/pages/point-to-point-channel.adoc
+++ b/docs/user-manual/modules/ROOT/pages/point-to-point-channel.adoc
@@ -3,7 +3,7 @@
 
 Camel supports the
 http://www.enterpriseintegrationpatterns.com/PointToPointChannel.html[Point
-to Point Channel] from the link:enterprise-integration-patterns.html[EIP
+to Point Channel] from the xref:enterprise-integration-patterns.adoc[EIP
 patterns] using the following components
 
 * <<seda-component,SEDA>> for in-VM seda based messaging
diff --git a/docs/user-manual/modules/ROOT/pages/predicate.adoc b/docs/user-manual/modules/ROOT/pages/predicate.adoc
index 103b936..b7ba9d7 100644
--- a/docs/user-manual/modules/ROOT/pages/predicate.adoc
+++ b/docs/user-manual/modules/ROOT/pages/predicate.adoc
@@ -4,16 +4,16 @@
 Camel supports a pluggable interface called
 http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Predicate.html[Predicate]
 which can be used to integrate a dynamic predicate into
-link:enterprise-integration-patterns.adoc[Enterprise Integration
+xref:enterprise-integration-patterns.adoc[Enterprise Integration
 Patterns] such as when using the <<filter-eip,Message Filter>>
 or <<contentBasedRouter-eip,Content Based Router>>.
 
 A Predicate is being evaluated to a boolean value so the result is
-either `true` or `false`. This makes link:predicate.adoc[Predicate] so
+either `true` or `false`. This makes xref:predicate.adoc[Predicate] so
 powerful as it is often used to control the routing of message in which
 path they should be routed.
 
-A simple example is to route an link:exchange.adoc[Exchange] based on a
+A simple example is to route an xref:exchange.adoc[Exchange] based on a
 header value:
 
 [source,java]
@@ -27,12 +27,12 @@ from("jms:queue:order")
    .end();
 ----
 
-In the route above the link:predicate.adoc[Predicate] is the
+In the route above the xref:predicate.adoc[Predicate] is the
 `header("type").isEqualTo("widget")` as its constructed as an
-link:expression.adoc[Expression] that is evaluated as a
-link:predicate.adoc[Predicate]. To do this the various Builder classes
+xref:expression.adoc[Expression] that is evaluated as a
+xref:predicate.adoc[Predicate]. To do this the various Builder classes
 helps us here to create a nice and fluent syntax. `isEqualTo` is a
-builder method that returns a link:predicate.adoc[Predicate] based on
+builder method that returns a xref:predicate.adoc[Predicate] based on
 the input.
 
 Sometimes the fluent builders can get long and a bit complex to read,
@@ -149,37 +149,37 @@ from("direct:start").choice()
 ==== Extensible Predicates
 
 Camel supports extensible Predicates using multiple
-link:languages.adoc[Languages]; the following languages are supported
+xref:languages.adoc[Languages]; the following languages are supported
 out of the box
 
-* link:bean-language.adoc[Bean Language] for using Java for expressions
-* link:constant.adoc[Constant]
-* the unified link:el.adoc[EL] from JSP and JSF
-* link:header.adoc[Header]
-* link:jsonpath.adoc[JSonPath]
-* link:jxpath.adoc[JXPath]
-* link:mvel.adoc[Mvel]
-* link:ognl.adoc[OGNL]
-* link:ref-language.adoc[Ref Language]
-* link:exchangeproperty.adoc[ExchangeProperty] / link:property.adoc[Property]
-* link:scripting-languages.adoc[Scripting Languages] such as
-** link:beanshell.adoc[BeanShell]
-** link:javascript.adoc[JavaScript]
-** link:groovy.adoc[Groovy]
-** link:python.adoc[Python]
-** link:php.adoc[PHP]
-** link:ruby.adoc[Ruby]
-* link:simple.adoc[Simple]
-** link:file-language.adoc[File Language]
-* link:spel.adoc[Spring Expression Language]
-* link:sql.adoc[SQL]
-* link:tokenizer.adoc[Tokenizer]
-* link:xpath.adoc[XPath]
-* link:xquery.adoc[XQuery]
+* xref:bean-language.adoc[Bean Language] for using Java for expressions
+* xref:constant.adoc[Constant]
+* the unified xref:el.adoc[EL] from JSP and JSF
+* xref:header.adoc[Header]
+* xref:jsonpath.adoc[JSonPath]
+* xref:jxpath.adoc[JXPath]
+* xref:mvel.adoc[Mvel]
+* xref:ognl.adoc[OGNL]
+* xref:ref-language.adoc[Ref Language]
+* xref:exchangeproperty.adoc[ExchangeProperty] / xref:property.adoc[Property]
+* xref:scripting-languages.adoc[Scripting Languages] such as
+** xref:beanshell.adoc[BeanShell]
+** xref:javascript.adoc[JavaScript]
+** xref:groovy.adoc[Groovy]
+** xref:python.adoc[Python]
+** xref:php.adoc[PHP]
+** xref:ruby.adoc[Ruby]
+* xref:simple.adoc[Simple]
+** xref:file-language.adoc[File Language]
+* xref:spel.adoc[Spring Expression Language]
+* xref:sql.adoc[SQL]
+* xref:tokenizer.adoc[Tokenizer]
+* xref:xpath.adoc[XPath]
+* xref:xquery.adoc[XQuery]
 * https://github.com/camel-extra/camel-extra/blob/master/components/camel-vtdxml/src/main/docs/vtdxml-component.adoc[VTD-XML]
 
 Most of these languages is also supported used as
-link:annotation-based-expression-language.adoc[Annotation Based
+xref:annotation-based-expression-language.adoc[Annotation Based
 Expression Language].
 
 You can easily write your own plugin predicate by implementing the
@@ -200,23 +200,23 @@ wish to use.
 [width="100%",cols="50%,50%",options="header",]
 |=======================================================================
 |Language(s) |Builder class to import
-|link:scripting-languages.adoc[Scripting Languages] such as
-link:beanshell.adoc[BeanShell], link:javascript.adoc[JavaScript],
-link:groovy.adoc[Groovy], link:php.adoc[PHP], link:python.adoc[Python]
-and link:ruby.adoc[Ruby]
+|xref:scripting-languages.adoc[Scripting Languages] such as
+xref:beanshell.adoc[BeanShell], xref:javascript.adoc[JavaScript],
+xref:groovy.adoc[Groovy], xref:php.adoc[PHP], xref:python.adoc[Python]
+and xref:ruby.adoc[Ruby]
 |http://camel.apache.org/maven/current/camel-script/apidocs/org/apache/camel/builder/script/ScriptBuilder.html[org.apache.camel.builder.script.ScriptBuilder]
 
-|link:sql.adoc[SQL]
+|xref:sql.adoc[SQL]
 |http://camel.apache.org/maven/current/camel-josql/apidocs/org/apache/camel/builder/sql/SqlBuilder.html[org.apache.camel.builder.josql.SqlBuilder]
 
-|link:xpath.adoc[XPath]
+|xref:xpath.adoc[XPath]
 |http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/builder/xml/XPathBuilder.html[org.apache.camel.builder.xml.XPathBuilder]
 
-|link:xquery.adoc[XQuery]
+|xref:xquery.adoc[XQuery]
 |http://camel.apache.org/maven/current/camel-saxon/apidocs/org/apache/camel/builder/saxon/XQueryBuilder.html[org.apache.camel.builder.saxon.XQueryBuilder]
 |=======================================================================
 
 [[Predicate-SeeAlso]]
 ==== See Also
 
-* link:expression.adoc[Expression]
+* xref:expression.adoc[Expression]
diff --git a/docs/user-manual/modules/ROOT/pages/process-eip.adoc b/docs/user-manual/modules/ROOT/pages/process-eip.adoc
index 04cdd48..17c2d0b 100644
--- a/docs/user-manual/modules/ROOT/pages/process-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/process-eip.adoc
@@ -1,7 +1,7 @@
 [[process-eip]]
 == Process EIP
 
-The http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Processor.html[Processor] interface is used to implement consumers of message exchanges or to implement a link:https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/message-translator.adoc[Message Translator]
+The http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Processor.html[Processor] interface is used to implement consumers of message exchanges or to implement a https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/message-translator.adoc[Message Translator]
 
 === Options
 
@@ -31,7 +31,7 @@ public class MyProcessor implements Processor {
 
 You can then easily use this inside a route by declaring the bean in
 Spring, say via the XML (or registering it in JNDI if that is your
-link:https://github.com/apache/camel/blob/master/docs/user-manual/en/registry.adoc[Registry])
+https://github.com/apache/camel/blob/master/docs/user-manual/en/registry.adoc[Registry])
 
 [source,xml]
 --------------------------------------------------------
@@ -57,7 +57,7 @@ Processor myProcessor = new MyProcessor();
 from("activemq:myQueue").process(myProcessor);
 ----
 
-If you need to lookup the processor in the link:https://github.com/apache/camel/blob/master/docs/user-manual/en/registry.adoc[Registry]
+If you need to lookup the processor in the https://github.com/apache/camel/blob/master/docs/user-manual/en/registry.adoc[Registry]
 then you should use the *processRef* DSL:
 
 [source,java]
@@ -91,15 +91,15 @@ http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/impl/P
 which supports the full <<Endpoint-Endpoints,Endpoint>> semantics given a
 Processor instance.
 
-So you just need to create a link:https://github.com/apache/camel/tree/master/components[Component] class by
+So you just need to create a https://github.com/apache/camel/tree/master/components[Component] class by
 deriving from
 http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/impl/DefaultComponent.html[DefaultComponent]
 which returns instances of ProcessorEndpoint. For more details see
-link:writing-components.html[Writing Components]
+xref:writing-components.adoc[Writing Components]
 
 === See Also
 
-* link:https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/message-translator.adoc[Message Translator]
-* link:https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/enrich-eip.adoc[Content Enricher-Enrich EIP]
-* link:https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/pollEnrich-eip.adoc[Content Enricher-Poll Enrich EIP]
-* link:https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/content-filter.adoc[Content Filter]
+* https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/message-translator.adoc[Message Translator]
+* https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/enrich-eip.adoc[Content Enricher-Enrich EIP]
+* https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/pollEnrich-eip.adoc[Content Enricher-Poll Enrich EIP]
+* https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/content-filter.adoc[Content Filter]
diff --git a/docs/user-manual/modules/ROOT/pages/processor.adoc b/docs/user-manual/modules/ROOT/pages/processor.adoc
index c5e7c93..2d0bfd2 100644
--- a/docs/user-manual/modules/ROOT/pages/processor.adoc
+++ b/docs/user-manual/modules/ROOT/pages/processor.adoc
@@ -22,7 +22,7 @@ public class MyProcessor implements Processor {
 
 You can then easily use this inside a route by declaring the bean in
 Spring, say via the XML (or registering it in JNDI if that is your
-link:registry.adoc[Registry]):
+xref:registry.adoc[Registry]):
 
 [source,xml]
 ----
@@ -49,7 +49,7 @@ Processor myProcessor = new MyProcessor();
 from("activemq:myQueue").process(myProcessor);
 ----
 
-If you need to lookup the processor in the link:registry.adoc[Registry]
+If you need to lookup the processor in the xref:registry.adoc[Registry]
 then you should use the `processRef` DSL:
 
 [source,java]
@@ -82,14 +82,14 @@ refactor it into a separate class.
 
 There is a base class called
 http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/impl/ProcessorEndpoint.html[ProcessorEndpoint]
-which supports the full link:endpoint.adoc[Endpoint] semantics given a
+which supports the full xref:endpoint.adoc[Endpoint] semantics given a
 Processor instance.
 
-So you just need to create a link:component.adoc[Component] class by
+So you just need to create a xref:component.adoc[Component] class by
 deriving from
 http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/impl/DefaultComponent.html[DefaultComponent]
 which returns instances of ProcessorEndpoint. For more details see
-link:writing-components.adoc[Writing Components]
+xref:writing-components.adoc[Writing Components]
 
 [[Processor-SeeAlso]]
 ==== See Also
diff --git a/docs/user-manual/modules/ROOT/pages/producertemplate.adoc b/docs/user-manual/modules/ROOT/pages/producertemplate.adoc
index e6348a5..2e47cd7 100644
--- a/docs/user-manual/modules/ROOT/pages/producertemplate.adoc
+++ b/docs/user-manual/modules/ROOT/pages/producertemplate.adoc
@@ -3,11 +3,11 @@
 
 The ProducerTemplate interface allows you to send message exchanges to
 endpoints in a variety of different ways to make it easy to work with
-Camel link:endpoint.adoc[Endpoint] instances from Java code.
+Camel xref:endpoint.adoc[Endpoint] instances from Java code.
 
 It can be configured with a default endpoint if you just want to send
 lots of messages to the same endpoint; or you can specify an
-link:endpoint.adoc[Endpoint] or uri as the first parameter.
+xref:endpoint.adoc[Endpoint] or uri as the first parameter.
 
 The `sendBody()` method allows you to send any object to an endpoint
 easily.
diff --git a/docs/user-manual/modules/ROOT/pages/publish-subscribe-channel.adoc b/docs/user-manual/modules/ROOT/pages/publish-subscribe-channel.adoc
index aab788d..c0708e2 100644
--- a/docs/user-manual/modules/ROOT/pages/publish-subscribe-channel.adoc
+++ b/docs/user-manual/modules/ROOT/pages/publish-subscribe-channel.adoc
@@ -4,14 +4,14 @@
 Camel supports the
 http://www.enterpriseintegrationpatterns.com/PublishSubscribeChannel.html[Publish
 Subscribe Channel] from the
-link:enterprise-integration-patterns.html[EIP patterns] using for
+xref:enterprise-integration-patterns.adoc[EIP patterns] using for
 example the following components:
 
 * <<jms-component,JMS>> for working with JMS Topics for high performance,
 clustering and load balancing
 * <<xmpp-component,XMPP>> when using rooms for group communication
 * <<seda-component,SEDA>> for working with SEDA in the same
-link:camelcontext.html[CamelContext] which can work in pub-sub, but
+xref:camelcontext.adoc[CamelContext] which can work in pub-sub, but
 allowing multiple consumers.
 * <<vm-component,VM>> as SEDA but for intra-JVM.
 
@@ -23,7 +23,7 @@ image:http://www.enterpriseintegrationpatterns.com/img/PublishSubscribeSolution.
 Another option is to explicitly list the publish-subscribe relationship
 in your routing logic; this keeps the producer and consumer decoupled
 but lets you control the fine grained routing configuration using the
-link:dsl.html[DSL] or link:xml-configuration.html[Xml Configuration].
+xref:dsl.adoc[DSL] or xref:xml-configuration.adoc[Xml Configuration].
 
 In Java code:
 
diff --git a/docs/user-manual/modules/ROOT/pages/recipientList-eip.adoc b/docs/user-manual/modules/ROOT/pages/recipientList-eip.adoc
index 7245644..fe72bf8 100644
--- a/docs/user-manual/modules/ROOT/pages/recipientList-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/recipientList-eip.adoc
@@ -1,6 +1,6 @@
 [[recipientList-eip]]
 == Recipient List EIP
-The link:http://www.enterpriseintegrationpatterns.com/RecipientList.html[Recipient List] from the EIP patterns allows you to route messages to a number of dynamically specified recipients.
+The xref:http://www.enterpriseintegrationpatterns.com/RecipientList.html[Recipient List] from the EIP patterns allows you to route messages to a number of dynamically specified recipients.
 
 image:http://www.enterpriseintegrationpatterns.com/img/RecipientList.gif[image]
 
diff --git a/docs/user-manual/modules/ROOT/pages/resequence-eip.adoc b/docs/user-manual/modules/ROOT/pages/resequence-eip.adoc
index a2a698f..949e8aa 100644
--- a/docs/user-manual/modules/ROOT/pages/resequence-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/resequence-eip.adoc
@@ -1,7 +1,7 @@
 [[resequence-eip]]
 == Resequence EIP
 
-The link:http://www.enterpriseintegrationpatterns.com/Resequencer.html[Resequencer] from the link:https://camel.apache.org/enterprise-integration-patterns.html[EIP patterns] allows you to reorganise messages based on some comparator. +
+The xref:http://www.enterpriseintegrationpatterns.com/Resequencer.html[Resequencer] from the https://camel.apache.org/enterprise-integration-patterns.adoc[EIP patterns] allows you to reorganise messages based on some comparator. +
 By default in Camel we use an Expression to create the comparator; so that you can compare by a message header or the body or a piece of a message etc.
 
 image:http://www.enterpriseintegrationpatterns.com/img/Resequencer.gif[image]
diff --git a/docs/user-manual/modules/ROOT/pages/rest-dsl.adoc b/docs/user-manual/modules/ROOT/pages/rest-dsl.adoc
index 2a97d78..31a75ea 100644
--- a/docs/user-manual/modules/ROOT/pages/rest-dsl.adoc
+++ b/docs/user-manual/modules/ROOT/pages/rest-dsl.adoc
@@ -558,15 +558,15 @@ whether the Content-Type and Accept headers from
 |componentProperty | -|Allows to configure as many additional properties.
   This is used to configure component specific options such as for Restlet / Spark-Rest etc.
   The options value can use the # notation to refer to a bean to lookup in
-  the link:../../../../docs/user-manual/en/registry.adoc[Registry]
+  the xref:../../../../docs/user-manual/en/registry.adoc[Registry]
 |endpointProperty | -|Allows to configure as many additional properties.
   This is used to configure endpoint specific options for  Restlet / Spark-Rest etc.
   The options value can use the # notation to refer to a bean to lookup in
-  the link:../../../../docs/user-manual/en/registry.adoc[Registry]
+  the xref:../../../../docs/user-manual/en/registry.adoc[Registry]
 |consumerProperty |- |Allows to configure as many additional properties.
   This is used to configure consumer specific options for  Restlet / Spark-Rest etc.
   The options value can use the # notation to refer to a bean to lookup in
-  the link:../../../../docs/user-manual/en/registry.adoc[Registry]
+  the xref:../../../../docs/user-manual/en/registry.adoc[Registry]
 |dataFormatProperty |- |Allows to configure as many additional properties.
   This is used to configure the data format specific options.
 
diff --git a/docs/user-manual/modules/ROOT/pages/return-address.adoc b/docs/user-manual/modules/ROOT/pages/return-address.adoc
index a2c76b1..962d811 100644
--- a/docs/user-manual/modules/ROOT/pages/return-address.adoc
+++ b/docs/user-manual/modules/ROOT/pages/return-address.adoc
@@ -2,7 +2,7 @@
 
 Camel supports the
 http://www.enterpriseintegrationpatterns.com/ReturnAddress.html[Return
-Address] from the link:enterprise-integration-patterns.html[EIP
+Address] from the xref:enterprise-integration-patterns.adoc[EIP
 patterns] by using the `JMSReplyTo` header.
 
 image:http://www.enterpriseintegrationpatterns.com/img/ReturnAddressSolution.gif[image]
diff --git a/docs/user-manual/modules/ROOT/pages/rollback-eip.adoc b/docs/user-manual/modules/ROOT/pages/rollback-eip.adoc
index b86d65e..3e9e546 100644
--- a/docs/user-manual/modules/ROOT/pages/rollback-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/rollback-eip.adoc
@@ -4,12 +4,12 @@ Rollback might be needed if there is a transaction or transactional pieces in yo
 
 Camel recommends supporting the
 http://www.enterpriseintegrationpatterns.com/TransactionalClient.html[Transactional
-Client] from the link:enterprise-integration-patterns.html[EIP patterns]
+Client] from the xref:enterprise-integration-patterns.adoc[EIP patterns]
 using spring transactions.
 
 image:http://www.enterpriseintegrationpatterns.com/img/TransactionalClientSolution.gif[image]
 
-Transaction Oriented Endpoints like link:https://github.com/apache/camel/blob/master/components/camel-jms/src/main/docs/jms-component.adoc[JMS] support using a
+Transaction Oriented Endpoints like https://github.com/apache/camel/blob/master/components/camel-jms/src/main/docs/jms-component.adoc[JMS] support using a
 transaction for both inbound and outbound message exchanges. Endpoints
 that support transactions will participate in the current transaction
 context that they are called from.
@@ -115,7 +115,7 @@ from("activemq:queue:foo").policy(notsupported).to("activemq:queue:bar");
 
 ==== OSGi Blueprint
 
-If you are using link:https://github.com/apache/camel/blob/master/docs/user-manual/en/using-osgi-blueprint-with-camel.adoc[OSGi
+If you are using https://github.com/apache/camel/blob/master/docs/user-manual/en/using-osgi-blueprint-with-camel.adoc[OSGi
 Blueprint] then you most likely have to explicit declare a policy and
 refer to the policy from the transacted in the route.
 
@@ -159,12 +159,12 @@ configure a transaction policy bean, so we do not have any
 `PROPAGATION_REQUIRED` beans. All the beans needed to be configured is
 *standard* Spring beans only, eg. there are no Camel specific
 configuration at
-all.link:https://github.com/apache/camel/blob/master/components/camel-spring/src/test/resources/org/apache/camel/spring/interceptor/springTransactionalClientDataSourceMinimalConfiguration.xml[springTransactionalClientDataSourceMinimalConfiguration]Then
+all.https://github.com/apache/camel/blob/master/components/camel-spring/src/test/resources/org/apache/camel/spring/interceptor/springTransactionalClientDataSourceMinimalConfiguration.xml[springTransactionalClientDataSourceMinimalConfiguration]Then
 we are ready to define our Camel routes. We have two routes: 1 for
 success conditions, and 1 for a forced rollback condition. +
 This is after all based on a unit test. Notice that we mark each route
 as transacted using the *transacted*
-tag.link:https://github.com/apache/camel/blob/master/components/camel-spring/src/test/resources/org/apache/camel/spring/interceptor/springTransactionalClientDataSourceMinimalConfiguration.xml[springTransactionalClientDataSourceMinimalConfiguration]That
+tag.https://github.com/apache/camel/blob/master/components/camel-spring/src/test/resources/org/apache/camel/spring/interceptor/springTransactionalClientDataSourceMinimalConfiguration.xml[springTransactionalClientDataSourceMinimalConfiguration]That
 is all that is needed to configure a Camel route as being transacted.
 Just remember to use the *transacted* DSL. The rest is standard Spring
 XML to setup the transaction manager.
@@ -173,24 +173,24 @@ XML to setup the transaction manager.
 
 In this sample we want to listen for messages on a queue and process the
 messages with our business logic java code and send them along. Since
-its based on a link:https://github.com/apache/camel/blob/master/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/TransactionMinimalConfigurationTest.java[TransactionMinimalConfigurationTest.java] the destination is a mock endpoint.
+its based on a https://github.com/apache/camel/blob/master/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/TransactionMinimalConfigurationTest.java[TransactionMinimalConfigurationTest.java] the destination is a mock endpoint.
 
 First we configure the standard Spring XML to declare a JMS connection
 factory, a JMS transaction manager and our ActiveMQ component that we
 use in our
-routing.link:https://github.com/apache/camel/blob/master/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactionMinimalConfigurationTest.xml[TransactionMinimalConfigurationTest.xml]And
+routing.https://github.com/apache/camel/blob/master/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactionMinimalConfigurationTest.xml[TransactionMinimalConfigurationTest.xml]And
 then we configure our routes. Notice that all we have to do is mark the
 route as transacted using the *transacted*
-tag.link:https://github.com/apache/camel/blob/master/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactionMinimalConfigurationTest.xml[TransactionMinimalConfigurationTest.xml]
+tag.https://github.com/apache/camel/blob/master/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactionMinimalConfigurationTest.xml[TransactionMinimalConfigurationTest.xml]
 
 Transaction error handler
 
 When a route is marked as transacted using *transacted* Camel will
 automatic use the
-link:transactionerrorhandler.html[TransactionErrorHandler] as
-link:https://github.com/apache/camel/blob/master/docs/user-manual/en/error-handler.adoc[Error Handler]. It supports basically the same
-feature set as the link:defaulterrorhandler.html[DefaultErrorHandler],
-so you can for instance use link:exception-clause.html[Exception Clause]
+xref:transactionerrorhandler.adoc[TransactionErrorHandler] as
+https://github.com/apache/camel/blob/master/docs/user-manual/en/error-handler.adoc[Error Handler]. It supports basically the same
+feature set as the xref:defaulterrorhandler.adoc[DefaultErrorHandler],
+so you can for instance use xref:exception-clause.adoc[Exception Clause]
 as well.
 
 === Integration Testing with Spring
@@ -231,10 +231,10 @@ propagation behaviors for that where you configure it as follows:
 * The second route use `PROPAGATION_REQUIRES_NEW`
 
 This is configured in the Spring XML
-file.link:https://github.com/apache/camel/blob/master/components/camel-spring/src/test/resources/org/apache/camel/spring/interceptor/MixedTransactionPropagationTest.xml[MixedTransactionPropagationTest.xml]Then
+file.https://github.com/apache/camel/blob/master/components/camel-spring/src/test/resources/org/apache/camel/spring/interceptor/MixedTransactionPropagationTest.xml[MixedTransactionPropagationTest.xml]Then
 in the routes you use transacted DSL to indicate which of these two
 propagations it
-uses.link:https://github.com/apache/camel/blob/master/components/camel-spring/src/test/java/org/apache/camel/spring/interceptor/MixedTransactionPropagationTest.java[MixedTransactionPropagationTest.java]Notice
+uses.https://github.com/apache/camel/blob/master/components/camel-spring/src/test/java/org/apache/camel/spring/interceptor/MixedTransactionPropagationTest.java[MixedTransactionPropagationTest.java]Notice
 how we have configured the `onException` in the 2nd route to indicate in
 case of any exceptions we should handle it and just rollback this
 transaction. This is done using the `markRollbackOnlyLast` which tells
@@ -242,10 +242,10 @@ Camel to only do it for the current transaction and not globally.
 
 ==== See Also
 
-* link:error-handling-in-camel.html[Error handling in Camel]
-* link:transactionerrorhandler.html[TransactionErrorHandler]
-* link:https://github.com/apache/camel/blob/master/docs/user-manual/en/error-handler.adoc[Error Handler]
-* link:https://github.com/apache/camel/blob/master/components/camel-jms/src/main/docs/jms-component.adoc[JMS]
-* link:https://github.com/apache/camel/blob/master/docs/user-manual/en/oncompletion.adoc[On Completion]
+* xref:error-handling-in-camel.adoc[Error handling in Camel]
+* xref:transactionerrorhandler.adoc[TransactionErrorHandler]
+* https://github.com/apache/camel/blob/master/docs/user-manual/en/error-handler.adoc[Error Handler]
+* https://github.com/apache/camel/blob/master/components/camel-jms/src/main/docs/jms-component.adoc[JMS]
+* https://github.com/apache/camel/blob/master/docs/user-manual/en/oncompletion.adoc[On Completion]
 
-link:using-this-pattern.html[Using This Pattern]
+xref:using-this-pattern.adoc[Using This Pattern]
diff --git a/docs/user-manual/modules/ROOT/pages/route-builder.adoc b/docs/user-manual/modules/ROOT/pages/route-builder.adoc
index b5adcfe..26e5868 100644
--- a/docs/user-manual/modules/ROOT/pages/route-builder.adoc
+++ b/docs/user-manual/modules/ROOT/pages/route-builder.adoc
@@ -6,6 +6,6 @@ Instances of RouteBuilder are then added to the CamelContext.
 
 ==== See Also
 
-* link:camelcontext.adoc[CamelContext]
-* link:routes.adoc[Routes]
-* link:architecture.adoc[Architecture]
+* xref:camelcontext.adoc[CamelContext]
+* xref:routes.adoc[Routes]
+* xref:architecture.adoc[Architecture]
diff --git a/docs/user-manual/modules/ROOT/pages/route-policy.adoc b/docs/user-manual/modules/ROOT/pages/route-policy.adoc
index ba326a1..e231b34 100644
--- a/docs/user-manual/modules/ROOT/pages/route-policy.adoc
+++ b/docs/user-manual/modules/ROOT/pages/route-policy.adoc
@@ -37,13 +37,13 @@ Camel provides the following policies out of the box:
 * *`org.apache.camel.impl.ThrottlingInflightRoutePolicy`* - a throttling
 based policy that automatic suspends/resumes route(s) based on metrics
 from the current in flight exchanges. You can use this to dynamically
-throttle e.g. a link:jms.html[JMS] consumer, to avoid it consuming too
+throttle e.g. a xref:jms.adoc[JMS] consumer, to avoid it consuming too
 fast.
 
 As of *Camel 2.5*, Camel also provides an ability to schedule routes to
 be activated, deactivated, suspended and/or resumed at certain times
 during the day using a
-link:scheduledroutepolicy.html[ScheduledRoutePolicy] (offered via the
+xref:scheduledroutepolicy.adoc[ScheduledRoutePolicy] (offered via the
 http://camel.apache.org/quartz.html[camel-quartz] component).
 
 [[RoutePolicy-SuspendableService]]
@@ -61,8 +61,8 @@ operations as it support fallback for regular
 ==== `ThrottlingInflightRoutePolicy`
 
 The *`ThrottlingInflightRoutePolicy`* is triggered when an
-link:exchange.adoc[Exchange] is complete, which means that it requires
-at least one link:exchange.adoc[Exchange] to be complete before it
+xref:exchange.adoc[Exchange] is complete, which means that it requires
+at least one xref:exchange.adoc[Exchange] to be complete before it
 _works_.
 
 The throttling inflight route policy has the following options:
@@ -92,14 +92,14 @@ again in case it has been suspended.
 ====  ThrottlingInflightRoutePolicy compared to the Throttler EIP
 
 The *`ThrottlingInflightRoutePolicy`* compared to
-link:throttler.html[Throttler] is that it does *not* block during
+xref:throttler.adoc[Throttler] is that it does *not* block during
 throttling. It does throttling that is approximate based, meaning that
 its more coarse grained and not explicit precise as the
-link:throttler.html[Throttler]. The link:throttler.html[Throttler] can
+xref:throttler.adoc[Throttler]. The xref:throttler.adoc[Throttler] can
 be much more accurate and only allow a specific number of messages being
 passed per a given time unit. Also the *`ThrottlingInflightRoutePolicy`*
 is based its metrics on number of inflight exchanges where as
-link:throttler.html[Throttler] is based on number of messages per time
+xref:throttler.adoc[Throttler] is based on number of messages per time
 unit.
 
 [[RoutePolicy-ScheduledRoutePolicy(SimpleandCronbased)usingcamelQuartz]]
@@ -215,13 +215,13 @@ as *`<bean>`* in XML.
 [[RoutePolicy-SeeAlso]]
 ==== See Also
 
-* link:route-throttling-example.html[Route Throttling Example] for an
+* xref:route-throttling-example.adoc[Route Throttling Example] for an
 example using this in practice with
 the *`ThrottlingInflightRoutePolicy`*
-* link:scheduledroutepolicy.html[ScheduledRoutePolicy] for information
+* xref:scheduledroutepolicy.adoc[ScheduledRoutePolicy] for information
 on policy based scheduling capability for camel routes
-* link:metrics-component.html[MetricsRoutePolicyFactory] for information
+* xref:metrics-component.adoc[MetricsRoutePolicyFactory] for information
 on a policy using the metrics component to expose route statistics using
 the metrics library.
-* link:architecture.html[Architecture]
+* xref:architecture.adoc[Architecture]
 
diff --git a/docs/user-manual/modules/ROOT/pages/routingSlip-eip.adoc b/docs/user-manual/modules/ROOT/pages/routingSlip-eip.adoc
index 4de7c26..2fe47e5 100644
--- a/docs/user-manual/modules/ROOT/pages/routingSlip-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/routingSlip-eip.adoc
@@ -1,6 +1,6 @@
 [[routingSlip-eip]]
 == Routing Slip EIP
-The Routing Slip from the link:https://camel.apache.org/enterprise-integration-patterns.html[EIP patterns] allows you to route a message consecutively through a series of processing steps where the sequence of steps is not known at design time and can vary for each message.
+The Routing Slip from the https://camel.apache.org/enterprise-integration-patterns.html[EIP patterns] allows you to route a message consecutively through a series of processing steps where the sequence of steps is not known at design time and can vary for each message.
 
 image:http://www.enterpriseintegrationpatterns.com/img/RoutingTableSimple.gif[image]
 
diff --git a/docs/user-manual/modules/ROOT/pages/scala-dsl.adoc b/docs/user-manual/modules/ROOT/pages/scala-dsl.adoc
index 06cede6..5faa90d 100644
--- a/docs/user-manual/modules/ROOT/pages/scala-dsl.adoc
+++ b/docs/user-manual/modules/ROOT/pages/scala-dsl.adoc
@@ -16,7 +16,7 @@ you basic information on how to use the Scala DSL.
 * Scala DSL - EIP shows you the Scala DSL
 syntax for every EIP supported. Scala DSL supports
 every EIP from the Java DSL.
-* link:scala-dsl-supported-languages.html[Scala DSL - Supported
+* xref:scala-dsl-supported-languages.adoc[Scala DSL - Supported
 languages] explains the usage of traits to add support for other
 languages (e.g. XPath)
 
diff --git a/docs/user-manual/modules/ROOT/pages/script-eip.adoc b/docs/user-manual/modules/ROOT/pages/script-eip.adoc
index 5de851b..905541a 100644
--- a/docs/user-manual/modules/ROOT/pages/script-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/script-eip.adoc
@@ -7,7 +7,7 @@ This is useful when you need to invoke some logic that are not in Java code such
 Groovy or any of the other Languages. The message body is not changed (by default) however the scripting
 context has access to the current Exchange and can essentially change the message or headers directly.
 But the return value from the script is discarded and not used.
-If the return value should be used as a changed message body then use link:./message-translator.adoc[Message Translator] EIP instead.
+If the return value should be used as a changed message body then use xref:./message-translator.adoc[Message Translator] EIP instead.
 
 === Options
 
diff --git a/docs/user-manual/modules/ROOT/pages/scripting-languages.adoc b/docs/user-manual/modules/ROOT/pages/scripting-languages.adoc
index ab3c204..f8e9281 100644
--- a/docs/user-manual/modules/ROOT/pages/scripting-languages.adoc
+++ b/docs/user-manual/modules/ROOT/pages/scripting-languages.adoc
@@ -162,6 +162,6 @@ the download page for the latest versions).
 === See Also
 
 * Languages
-* link:dsl.adoc[DSL]
+* xref:dsl.adoc[DSL]
 * XML Configuration
 
diff --git a/docs/user-manual/modules/ROOT/pages/security-advisories.adoc b/docs/user-manual/modules/ROOT/pages/security-advisories.adoc
index a558e22..6d1890c 100644
--- a/docs/user-manual/modules/ROOT/pages/security-advisories.adoc
+++ b/docs/user-manual/modules/ROOT/pages/security-advisories.adoc
@@ -1,36 +1,36 @@
 [[SecurityAdvisories]]
 ### 2017
 
-link:security-advisories/CVE-2017-5643.txt.asc[CVE-2017-5643] - Apache
+xref:security-advisories/CVE-2017-5643.txt.asc[CVE-2017-5643] - Apache
 Camel's Validation Component is vulnerable against SSRF via remote DTDs
 and XXE
 
-link:security-advisories/CVE-2017-3159.txt.asc[CVE-2017-3159] - Apache
+xref:security-advisories/CVE-2017-3159.txt.asc[CVE-2017-3159] - Apache
 Camel's Snakeyaml unmarshalling operation is vulnerable to Remote Code
 Execution attacks
 
 ### 2016
 
-link:security-advisories/CVE-2016-8749.txt.asc[CVE-2016-8749] - Apache
+xref:security-advisories/CVE-2016-8749.txt.asc[CVE-2016-8749] - Apache
 Camel's Jackson and JacksonXML unmarshalling operation are vulnerable to
 Remote Code Execution attacks
 
 ### 2015
 
-link:security-advisories/CVE-2015-5344.txt.asc[CVE-2015-5344] - Apache
+xref:security-advisories/CVE-2015-5344.txt.asc[CVE-2015-5344] - Apache
 Camel's XStream usage is vulnerable to Remote Code Execution attacks.
 
-link:security-advisories/CVE-2015-5348.txt.asc[CVE-2015-5348]
+xref:security-advisories/CVE-2015-5348.txt.asc[CVE-2015-5348]
 - Apache Camel's Jetty/Servlet usage is vulnerable to Java object
 de-serialisation vulnerability.
 
-link:security-advisories/CVE-2015-0264.txt.asc[CVE-2015-0264]
+xref:security-advisories/CVE-2015-0264.txt.asc[CVE-2015-0264]
 - The XPath handling in Apache Camel for invalid XML Strings or invalid
 XML GenericFile objects allows remote attackers to read arbitrary files
 via an XML External Entity (XXE) declaration. The XML External Entity
 (XXE) will be resolved before the Exception is thrown.
 
-link:security-advisories/CVE-2015-0263.txt.asc[CVE-2015-0263]
+xref:security-advisories/CVE-2015-0263.txt.asc[CVE-2015-0263]
 - The XML converter setup in Apache Camel allows remote attackers to
 read arbitrary files via an SAXSource containing an XML External Entity
 (XXE) declaration.
@@ -38,17 +38,17 @@ read arbitrary files via an SAXSource containing an XML External Entity
 ### 2014
 
 
-link:security-advisories/CVE-2014-0003.txt.asc[CVE-2014-0003]
+xref:security-advisories/CVE-2014-0003.txt.asc[CVE-2014-0003]
 - The Apache Camel XSLT component allows XSL stylesheets to perform
 calls to external Java methods.
 
-link:security-advisories/CVE-2014-0002.txt.asc[CVE-2014-0002]
+xref:security-advisories/CVE-2014-0002.txt.asc[CVE-2014-0002]
 - The Apache Camel XSLT component will resolve entities in XML messages
 when transforming them using an xslt route.
 
 ### 2013
 
-link:security-advisories/CVE-2013-4330.txt.asc[CVE-2013-4330]
+xref:security-advisories/CVE-2013-4330.txt.asc[CVE-2013-4330]
 - Writing files using FILE or FTP components, can potentially be
 exploited by a malicious user.
 
diff --git a/docs/user-manual/modules/ROOT/pages/security.adoc b/docs/user-manual/modules/ROOT/pages/security.adoc
index ea7757b..6eade09 100644
--- a/docs/user-manual/modules/ROOT/pages/security.adoc
+++ b/docs/user-manual/modules/ROOT/pages/security.adoc
@@ -28,8 +28,8 @@ etc) on sections/segments of a camel route.
 The components offering authentication and authorization Services
 utilizing Route Policies are
 
-* link:../../../components/camel-shiro/src/main/docs/shiro.adoc[Shiro Security]
-* link:../../../components/camel-spring-security/src/main/docs/spring-security.adoc[Spring Security]
+* xref:../../../components/camel-shiro/src/main/docs/shiro.adoc[Shiro Security]
+* xref:../../../components/camel-spring-security/src/main/docs/spring-security.adoc[Spring Security]
 
 [[Security-PayloadSecurity-DataFormatsandProducers/Consumersofferingencryption/decryptionservices]]
 ==== Payload Security - Data Formats and Producers/Consumers offering encryption/decryption services
@@ -40,12 +40,12 @@ portions/sections of a payload.
 
 These capabilites are offered by the following components
 
-* link:../../../components/camel-xmlsecurity/src/main/docs/secureXML-dataformat.adoc[XMLSecurity DataFormat] (XML
+* xref:../../../components/camel-xmlsecurity/src/main/docs/secureXML-dataformat.adoc[XMLSecurity DataFormat] (XML
 Encryption support)
-* link:../../../components/camel-xmlsecurity/src/main/docs/xmlsecurity-component.adoc[XML Security component] (XML
+* xref:../../../components/camel-xmlsecurity/src/main/docs/xmlsecurity-component.adoc[XML Security component] (XML
 Signature support)
-* link:../../../components/camel-crypto/src/main/docs/crypto-dataformat.adoc[Crypto DataFormat] (Encryption + PGP support)
-* link:../../../components/camel-crypto/src/main/docs/crypto-component.adoc[Crypto component] (Signature
+* xref:../../../components/camel-crypto/src/main/docs/crypto-dataformat.adoc[Crypto DataFormat] (Encryption + PGP support)
+* xref:../../../components/camel-crypto/src/main/docs/crypto-component.adoc[Crypto component] (Signature
 support)
 
 [[Security-EndpointSecurity]]
@@ -59,16 +59,16 @@ components.
 
 Some such components are
 
-* link:../../../components/camel-jetty9/src/main/docs/jetty-component.adoc[Jetty] - HTTP Basic Authentication support * SSL
+* xref:../../../components/camel-jetty9/src/main/docs/jetty-component.adoc[Jetty] - HTTP Basic Authentication support * SSL
 support
-* link:../../../components/camel-cxf/src/main/docs/cxf-component.adoc[CXF] - HTTP Basic Authentication & WS-Security support
+* xref:../../../components/camel-cxf/src/main/docs/cxf-component.adoc[CXF] - HTTP Basic Authentication & WS-Security support
 using the CXF Bus driven interceptor chain
-* link:../../../components/camel-spring-ws/src/main/docs/spring-ws-component.adoc[Spring Web Services] - HTTP Basic
+* xref:../../../components/camel-spring-ws/src/main/docs/spring-ws-component.adoc[Spring Web Services] - HTTP Basic
 Authentication & WS-Security support
-* link:../../../components/camel-netty4/src/main/docs/netty4-component.adoc[Netty] - SSL support
-* link:../../../components/camel-mina2/src/main/docs/mina2-component.adoc[MINA] - SSL support
-* link:../../../components/camel-cometd/src/main/docs/cometd-component.adoc[Cometd] - SSL support
-* link:../../../components/camel-jms/src/main/docs/jms-component.adoc[JMS] - JAAS and SSL based security for client <-->
+* xref:../../../components/camel-netty4/src/main/docs/netty4-component.adoc[Netty] - SSL support
+* xref:../../../components/camel-mina2/src/main/docs/mina2-component.adoc[MINA] - SSL support
+* xref:../../../components/camel-cometd/src/main/docs/cometd-component.adoc[Cometd] - SSL support
+* xref:../../../components/camel-jms/src/main/docs/jms-component.adoc[JMS] - JAAS and SSL based security for client <-->
 broker communication
 
 [[Security-ConfigurationSecurity]]
@@ -76,14 +76,14 @@ broker communication
 
 *Available as of Camel 2.5*
 
-Camel offers the link:../../../camel-core/src/main/docs/properties-component.adoc[Properties] component to
+Camel offers the xref:../../../camel-core/src/main/docs/properties-component.adoc[Properties] component to
 externalize configuration values to properties files. Those values could
 contain sensitive information such as usernames and passwords. Those
 values can be encrypted and automatic decrypted by Camel.
 
-* link:../../../components/camel-jasypt/src/main/docs/jasypt.adoc[Jasypt]
+* xref:../../../components/camel-jasypt/src/main/docs/jasypt.adoc[Jasypt]
 
 *Available as of Camel 2.8*
 
-Camel offers the link:camel-configuration-utilities.adoc[JSSE Utility]
+Camel offers the xref:camel-configuration-utilities.adoc[JSSE Utility]
 for configuring SSL/TLS related aspects of a number of Camel components.
diff --git a/docs/user-manual/modules/ROOT/pages/servicepool.adoc b/docs/user-manual/modules/ROOT/pages/servicepool.adoc
index a9b36e2..f9ec5ef 100644
--- a/docs/user-manual/modules/ROOT/pages/servicepool.adoc
+++ b/docs/user-manual/modules/ROOT/pages/servicepool.adoc
@@ -13,14 +13,14 @@ The default producer service pool is
 default in Camel for pooling Producer.
 
 The need for pooling Producer is only apparent in some
-link:components.html[Components] in Camel to support thread safe
+xref:components.adoc[Components] in Camel to support thread safe
 producers and support concurrency. And using pooling we can improve
 performance as we do not have the overhead of creating, starting and
 stopping the Producer at each invocation. So where is it needed then?
 Well these components uses pooled producers:
 
-* link:ftp2-component.adoc[FTP]
-* link:mina-component.adoc[Mina]
+* xref:ftp2-component.adoc[FTP]
+* xref:mina-component.adoc[Mina]
 
 [[ServicePool-Usage]]
 ==== Usage
@@ -28,9 +28,9 @@ Well these components uses pooled producers:
 By default Camel uses a shared
 `org.apache.camel.impl.DefaultProducerServicePool` provided by
 `CamelContext`. This default pool will pool up till 100 producers per
-link:endpoint.html[Endpoint]. So if you have 6 endpoints there can be up
+xref:endpoint.adoc[Endpoint]. So if you have 6 endpoints there can be up
 till 6 x 100 in total in the pool, where each distinct
-link:endpoint.html[Endpoint] have a limit of up till 100 producers.
+xref:endpoint.adoc[Endpoint] have a limit of up till 100 producers.
 
 [[ServicePool-Pluggableproducerpooling]]
 ==== Pluggable producer pooling
@@ -56,5 +56,5 @@ implement logic that re connects if needed.
 [[ServicePool-SeeAlso]]
 ==== See Also
 
-* link:architecture.adoc[Architecture]
+* xref:architecture.adoc[Architecture]
 
diff --git a/docs/user-manual/modules/ROOT/pages/servlet-tomcat-example.adoc b/docs/user-manual/modules/ROOT/pages/servlet-tomcat-example.adoc
index 99cfed5..228a990 100644
--- a/docs/user-manual/modules/ROOT/pages/servlet-tomcat-example.adoc
+++ b/docs/user-manual/modules/ROOT/pages/servlet-tomcat-example.adoc
@@ -4,7 +4,7 @@
 *Available as of Camel 2.7*
 
 This example is located in the
-link:https://github.com/apache/camel/blob/master/examples/camel-example-servlet-tomcat[examples/camel-example-servlet-tomcat]
+https://github.com/apache/camel/blob/master/examples/camel-example-servlet-tomcat[examples/camel-example-servlet-tomcat]
 directory of the Camel distribution.
 There is a `README.txt` file with instructions how to run it.
 
@@ -116,6 +116,6 @@ http://localhost:8080/camel-example-servlet-tomcat/camel/hello URL.
 [[ServletTomcatExample-SeeAlso]]
 ==== See Also
 
-* link:examples.adoc[Examples]
+* xref:examples.adoc[Examples]
 *  <<servlet-component,Servlet>>
 *  <<http-component,HTTP>>
diff --git a/docs/user-manual/modules/ROOT/pages/split-eip.adoc b/docs/user-manual/modules/ROOT/pages/split-eip.adoc
index a365137..e86a194 100644
--- a/docs/user-manual/modules/ROOT/pages/split-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/split-eip.adoc
@@ -1,7 +1,7 @@
 [[split-eip]]
 == Split EIP
 
-The link:http://www.enterpriseintegrationpatterns.com/patterns/messaging/Sequencer.html[Splitter] from the link:enterprise-integration-patterns.html[EIP patterns] allows you split a message into a number of pieces and process them individually.
+The xref:http://www.enterpriseintegrationpatterns.com/patterns/messaging/Sequencer.html[Splitter] from the xref:enterprise-integration-patterns.adoc[EIP patterns] allows you split a message into a number of pieces and process them individually.
 
 image:http://www.enterpriseintegrationpatterns.com/img/Sequencer.gif[image]
 
diff --git a/docs/user-manual/modules/ROOT/pages/spring-testing.adoc b/docs/user-manual/modules/ROOT/pages/spring-testing.adoc
index 2faede8..df2f122 100644
--- a/docs/user-manual/modules/ROOT/pages/spring-testing.adoc
+++ b/docs/user-manual/modules/ROOT/pages/spring-testing.adoc
@@ -385,7 +385,7 @@ public class MyCamelTest extends AbstractJUnit38SpringContextTests {
 ==== Sending and receiving messages
 
 It might be that the
-link:enterprise-integration-patterns.adoc[Enterprise Integration
+xref:enterprise-integration-patterns.adoc[Enterprise Integration
 Patterns] you have defined in either Spring XML or
 using the Java DSL do all of the sending and receiving
 and you might just work with the <<mock-component,Mock>> endpoints as
diff --git a/docs/user-manual/modules/ROOT/pages/spring-xml-extensions.adoc b/docs/user-manual/modules/ROOT/pages/spring-xml-extensions.adoc
index 2627d97..fa59228 100644
--- a/docs/user-manual/modules/ROOT/pages/spring-xml-extensions.adoc
+++ b/docs/user-manual/modules/ROOT/pages/spring-xml-extensions.adoc
@@ -30,4 +30,4 @@ The following is an example of what it looks like:
 ----
 
 For more usage examples see the
-link:enterprise-integration-patterns.adoc[Enterprise Integration Patterns].
+xref:enterprise-integration-patterns.adoc[Enterprise Integration Patterns].
diff --git a/docs/user-manual/modules/ROOT/pages/spring.adoc b/docs/user-manual/modules/ROOT/pages/spring.adoc
index e39d709..e60aadc 100644
--- a/docs/user-manual/modules/ROOT/pages/spring.adoc
+++ b/docs/user-manual/modules/ROOT/pages/spring.adoc
@@ -9,7 +9,7 @@ Apache Camel is designed to work nicely with the Spring Framework in a number of
 * Camel supports a powerful version of Spring Remoting which can use powerful routing between the client and server side along with using all of the available Components for the transport
 * Camel provides powerful Bean Integration with any bean defined in a Spring ApplicationContext.
 * Camel integrates with various Spring helper classes; such as providing Type Converter support for Spring Resources etc
-* Allows Spring to dependency inject Component instances or the link:camelcontext.adoc[CamelContext] instance itself and auto-expose Spring beans as components and endpoints.
+* Allows Spring to dependency inject Component instances or the xref:camelcontext.adoc[CamelContext] instance itself and auto-expose Spring beans as components and endpoints.
 * Allows you to reuse the Spring Testing framework to simplify your unit and integration testing using Enterprise Integration Patterns and Camel's powerful Mock and Test endpoints
 * From Camel 2.15: Camel supports Spring Boot using the camel-spring-boot component.
 * From Camel 2.17.1: Camel supports Spring Cache based Idempotent repository
@@ -87,7 +87,7 @@ http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/came
 See more details at Advanced configuration of CamelContext using Spring
 
 === Using Java Code
-You can use Java Code to define your link:route-builder.adoc[RouteBuilder] implementations. These can be defined as beans in spring and then referenced in your camel context e.g.
+You can use Java Code to define your xref:route-builder.adoc[RouteBuilder] implementations. These can be defined as beans in spring and then referenced in your camel context e.g.
 [source,xml]
 --------------------------------------------------------------------------------------------------------------
 <camelContext id="camel5" xmlns="http://camel.apache.org/schema/spring">
@@ -218,7 +218,7 @@ protected Class[] excludeRoutes() {
 
 
 === Using Spring XML
-You can use Spring 2.0 XML configuration to specify your XML Configuration for link:routes.adoc[Routes] such as in the following http://svn.apache.org/repos/asf/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/routingUsingCamelContextFactory.xml[example].
+You can use Spring 2.0 XML configuration to specify your XML Configuration for xref:routes.adoc[Routes] such as in the following http://svn.apache.org/repos/asf/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/routingUsingCamelContextFactory.xml[example].
 [source,xml]
 --------------------------------------------------------------------------------------------------------------
 <camelContext id="camel-A" xmlns="http://camel.apache.org/schema/spring">
@@ -231,7 +231,7 @@ You can use Spring 2.0 XML configuration to specify your XML Configuration for l
 
 Configuring Components and Endpoints
 
-You can configure your Component or link:endpoint.adoc[Endpoint] instances in your Spring XML as follows in this example.
+You can configure your Component or xref:endpoint.adoc[Endpoint] instances in your Spring XML as follows in this example.
 [source,xml]
 --------------------------------------------------------------------------------------------------------------
 <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
@@ -275,7 +275,7 @@ Available as of *Camel 2.17.1*
 --------------------------------------------------------------------------------------------------------------
 
 CamelContextAware
-If you want to be injected with the link:camelcontext.adoc[CamelContext] in your POJO just implement the http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/CamelContextAware.html[CamelContextAware interface]; then when Spring creates your POJO the CamelContext will be injected into your POJO. Also see the Bean Integration for further injections.
+If you want to be injected with the xref:camelcontext.adoc[CamelContext] in your POJO just implement the http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/CamelContextAware.html[CamelContextAware interface]; then when Spring creates your POJO the CamelContext will be injected into your POJO. Also see the Bean Integration for further injections.
 
 === Integration Testing
 
diff --git a/docs/user-manual/modules/ROOT/pages/step-eip.adoc b/docs/user-manual/modules/ROOT/pages/step-eip.adoc
index 9de0495..a61726f 100644
--- a/docs/user-manual/modules/ROOT/pages/step-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/step-eip.adoc
@@ -1,7 +1,7 @@
 [[step-eip]]
 == Step EIP
 
-Camel supports the link:http://www.enterpriseintegrationpatterns.com/PipesAndFilters.html[Pipes and Filters] from the link:https://github.com/apache/camel/blob/master/docs/user-manual/en/enterprise-integration-patterns.adoc[EIP patterns] in various ways.
+Camel supports the http://www.enterpriseintegrationpatterns.com/PipesAndFilters.html[Pipes and Filters] from the https://github.com/apache/camel/blob/master/docs/user-manual/en/enterprise-integration-patterns.adoc[EIP patterns] in various ways.
 
 image:http://www.enterpriseintegrationpatterns.com/img/PipesAndFilters.gif[image]
 
diff --git a/docs/user-manual/modules/ROOT/pages/stream-caching.adoc b/docs/user-manual/modules/ROOT/pages/stream-caching.adoc
index 9cc3bee..35e44d1 100644
--- a/docs/user-manual/modules/ROOT/pages/stream-caching.adoc
+++ b/docs/user-manual/modules/ROOT/pages/stream-caching.adoc
@@ -197,7 +197,7 @@ And in XML you do:
 *Available as of Camel 2.12*
 
 Stream caching is from Camel 2.12 onwards intended to be configured using `org.apache.camel.spi.StreamCachingStrategy`.
-The old kind of configuration using properties on the link:camelcontext.adoc[CamelContext] has been marked as deprecated.
+The old kind of configuration using properties on the xref:camelcontext.adoc[CamelContext] has been marked as deprecated.
 
 The strategy has the following options:
 
@@ -227,7 +227,7 @@ The strategy has the following options:
 | Initial size if in-memory created stream buffers.
 
 | removeSpoolDirectoryWhenStopping | true
-| Whether to remove the spool directory when stopping link:camelcontext.adoc[CamelContext].
+| Whether to remove the spool directory when stopping xref:camelcontext.adoc[CamelContext].
 
 | statisticsEnabled | false
 | Whether utilization statistics is enabled. By enabling this you can see these statics for example with JMX.
diff --git a/docs/user-manual/modules/ROOT/pages/support.adoc b/docs/user-manual/modules/ROOT/pages/support.adoc
index e0607cc..2be2498 100644
--- a/docs/user-manual/modules/ROOT/pages/support.adoc
+++ b/docs/user-manual/modules/ROOT/pages/support.adoc
@@ -9,8 +9,8 @@ http://issues.apache.org/jira/browse/CAMEL[Issue Tracker]. Please
 refrain from immediately opening a ticket in the issue tracker unless
 you are certain it's a problem in the Camel software. If you are in
 doubt, we appreciate asking the
-link:mailing-lists.adoc[mailing list],
-link:irc-room.adoc[IRC chat], or
+xref:mailing-lists.adoc[mailing list],
+xref:irc-room.adoc[IRC chat], or
 https://gitter.im/apache/apache-camel[Gitter chat] first.
 
 [TIP]
@@ -24,10 +24,10 @@ bullets advised there first.
 *Reporting bugs - Please read this first*
 
 We prefer people to get in touch first using the
-link:mailing-lists.adoc[mailing list],
-link:irc-room.adoc[IRC chat] or
+xref:mailing-lists.adoc[mailing list],
+xref:irc-room.adoc[IRC chat] or
 https://gitter.im/apache/apache-camel[Gitter chat]. Or take time to read
-link:faq.adoc[FAQs], or search in the mailing list archives to find answers.
+xref:faq.adoc[FAQs], or search in the mailing list archives to find answers.
 Unfortunately some people create a JIRA ticket as first thing. *Please
 don't do that!* Only if you are sure it really is a bug, etc. JIRA tickets
 create noise for the Camel team to react on issues that are not bugs
@@ -37,7 +37,7 @@ Also on the mailing lists there are more people active to help you better.
 ====
 
 * http://issues.apache.org/jira/browse/CAMEL[Issue Tracker]
-* link:faq.adoc[FAQ]
+* xref:faq.adoc[FAQ]
 
 [[Support-Alternativediscussionforums]]
 ==== Alternative discussion forums
@@ -64,7 +64,7 @@ https://github.com/apache/camel/tree/master/components#components
 ==== How to get help
 
 Before you report a problem, you may wish to read the
-link:faq.adoc[FAQ].
+xref:faq.adoc[FAQ].
 When you report an issue, please be sure to include as much information
 as possible. The more we know, the easier it is to reach an effective
 solution quickly.
@@ -87,7 +87,7 @@ other exceptions and the exception right near the bottom explains the
 actual error, not the first few lines at the top. It's very easy for us
 to skim-read past unnecessary parts of a stack trace.
 * log output can be useful too; sometimes
-link:faq/how-do-i-change-the-logging.adoc[enabling DEBUG logging] can help
+xref:faq/how-do-i-change-the-logging.adoc[enabling DEBUG logging] can help
 * your code & configuration files are often useful
 * did it work before? what have you changed to break it?
 * try upgrading to the latest release and see if it's fixed there
@@ -96,10 +96,10 @@ link:faq/how-do-i-change-the-logging.adoc[enabling DEBUG logging] can help
 * see the "known issues" section in the release notes
 * and check the http://issues.apache.org/jira/browse/CAMEL[issue
 tracker] to see if the issue has already been reported
-* do *not* send private emails to Camel link:team.adoc[Team] members to
+* do *not* send private emails to Camel xref:team.adoc[Team] members to
 ask them to help you faster, or in the private only. Help on Apache
 Camel is volunteer based and *must* happen in the *open* on the public
-link:mailing-lists.adoc[Mailing Lists]. If you want to get help faster
+xref:mailing-lists.adoc[Mailing Lists]. If you want to get help faster
 or in private, then see further below.
 
 [[Support-Howtogethelpfaster]]
@@ -110,7 +110,7 @@ We can help you much quicker if you try the following:
 * provide us with a JUnit test case that demonstrates your issue. e.g.
 if you think you've found a bug, can you create a test case to
 demonstrate the bug?
-* link:../../../CONTRIBUTING.md[submit a patch] fixing the
+* xref:../../../CONTRIBUTING.md[submit a patch] fixing the
 bug! (We also buy you beer when we meet you if you submit bug fixes
 :smile:)
 * for memory leak or performance related issues, if you can run a
@@ -131,4 +131,4 @@ to help resolve your issue is often limited as all help is provided on a
 volunteer basis. If you want to get priority help, need to get up to
 speed quickly, require some training or mentoring, or need full 24 x 7
 production support you could contact one of the following companies with
-link:commercial-camel-offerings.adoc[Commercial Camel Offerings].
+xref:commercial-camel-offerings.adoc[Commercial Camel Offerings].
diff --git a/docs/user-manual/modules/ROOT/pages/team.adoc b/docs/user-manual/modules/ROOT/pages/team.adoc
index 0b0fe98..d0f4c67 100644
--- a/docs/user-manual/modules/ROOT/pages/team.adoc
+++ b/docs/user-manual/modules/ROOT/pages/team.adoc
@@ -70,7 +70,7 @@ sort it in alphabetical order.
 
 If you have been contributing to the Apache Camel project, and you want
 your name added to the list below. Then you can get in touch with the
-Camel team from the link:mailing-lists.adoc[Mailing Lists] and ask to be
+Camel team from the xref:mailing-lists.adoc[Mailing Lists] and ask to be
 added.
 ====
 
diff --git a/docs/user-manual/modules/ROOT/pages/testing.adoc b/docs/user-manual/modules/ROOT/pages/testing.adoc
index 4d4df53..8d0f655 100644
--- a/docs/user-manual/modules/ROOT/pages/testing.adoc
+++ b/docs/user-manual/modules/ROOT/pages/testing.adoc
@@ -81,14 +81,14 @@ Spring Testing.
 |=======================================================================
 
 In all approaches the test classes look pretty much the same in that
-they all reuse the link:bean-integration.adoc[Camel binding and
+they all reuse the xref:bean-integration.adoc[Camel binding and
 injection annotations].
 
 [[Testing-CamelTestExample]]
 ===== Camel Test Example
 
 Here is the Camel Test
-link:../../../components/camel-test/src/test/java/org/apache/camel/test/patterns/FilterTest.java[example]:
+xref:../../../components/camel-test/src/test/java/org/apache/camel/test/patterns/FilterTest.java[example]:
 
 [source,java]
 ----
@@ -103,7 +103,7 @@ overrides the `createRouteBuilder()` method.
 ===== CDI Test Example
 
 Here is the CDI Testing
-link:../../../components/camel-test-cdi/src/test/java/org/apache/camel/test/cdi/FilterTest.java[example]:
+xref:../../../components/camel-test-cdi/src/test/java/org/apache/camel/test/cdi/FilterTest.java[example]:
 
 [source,java]
 ----
@@ -117,7 +117,7 @@ and the test classes that come with it.
 ===== Spring Test with XML Config Example
 
 Here is the Spring Testing
-link:../../../components/camel-spring/src/test/java/org/apache/camel/spring/patterns/FilterTest.java[example
+xref:../../../components/camel-spring/src/test/java/org/apache/camel/spring/patterns/FilterTest.java[example
 using XML Config]:
 
 [source,java]
@@ -133,7 +133,7 @@ sending to an endpoint that is then reused in another test method).
 
 Also notice the use of `@ContextConfiguration` to indicate that by
 default we should look for the
-link:../../../components/camel-spring/src/test/resources/org/apache/camel/spring/patterns/FilterTest-context.xml[`FilterTest-context.xml`
+xref:../../../components/camel-spring/src/test/resources/org/apache/camel/spring/patterns/FilterTest-context.xml[`FilterTest-context.xml`
 on the classpath] to configure the test case which looks like this:
 
 [source,xml]
@@ -145,7 +145,7 @@ include::../../../components/camel-spring/src/test/resources/org/apache/camel/sp
 ===== Spring Test with Java Config Example
 
 Here is the Spring Testing
-link:../../../components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/patterns/FilterTest.java[example
+xref:../../../components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/patterns/FilterTest.java[example
 using Java Config]:
 
 [source,java]
@@ -153,7 +153,7 @@ using Java Config]:
 include::../../../components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/patterns/FilterTest.java[tags=example]
 ----
 
-For more information see link:spring-java-config.html[Spring Java
+For more information see xref:spring-java-config.adoc[Spring Java
 Config].
 
 This is similar to the XML Config example above except that there is no
@@ -171,7 +171,7 @@ register the RouteBuilder we create.
 
 Since *Camel 2.11.0* you can use the `CamelSpringJUnit4ClassRunner` with
 `CamelSpringDelegatingTestContextLoader` like
-link:../../../components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/test/CamelSpringDelegatingTestContextLoaderTest.java[example
+xref:../../../components/camel-spring-javaconfig/src/test/java/org/apache/camel/spring/javaconfig/test/CamelSpringDelegatingTestContextLoaderTest.java[example
 using Java Config with `CamelSpringJUnit4ClassRunner`]:
 
 Since *Camel 2.18.0* `CamelSpringJUnit4ClassRunner` is deprecated. you can use the `CamelSpringRunner`
@@ -184,8 +184,8 @@ include::../../../components/camel-spring-javaconfig/src/test/java/org/apache/ca
 [[Testing-SpringTestwithXMLConfigandDeclarativeConfigurationExample]]
 ===== Spring Test with XML Config and Declarative Configuration Example
 
-Here is a Camel test support enhanced link:spring-testing.adoc[Spring
-Testing] link:../../../components/camel-test-spring/src/test/java/org/apache/camel/test/spring/CamelSpringRunnerPlainTest.java[example
+Here is a Camel test support enhanced xref:spring-testing.adoc[Spring
+Testing] xref:../../../components/camel-test-spring/src/test/java/org/apache/camel/test/spring/CamelSpringRunnerPlainTest.java[example
 using XML Config and pure Spring Test based configuration of the Camel
 Context]:
 
@@ -203,7 +203,7 @@ of annotations you can use in your tests.
 ===== Blueprint Test
 
 Here is the Blueprint Testing
-link:../../../components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/DebugBlueprintTest.java[example
+xref:../../../components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/DebugBlueprintTest.java[example
 using XML Config]:
 
 [source,java]
@@ -213,7 +213,7 @@ include::../../../components/camel-test-blueprint/src/test/java/org/apache/camel
 
 Also notice the use of `getBlueprintDescriptors` to indicate that by
 default we should look for the
-link:camel-test-blueprint/src/test/resources/org/apache/camel/test/blueprint/camelContext.xml[`camelContext.xml`
+xref:camel-test-blueprint/src/test/resources/org/apache/camel/test/blueprint/camelContext.xml[`camelContext.xml`
 in the package] to configure the test case which looks like this:
 
 [source,xml]
diff --git a/docs/user-manual/modules/ROOT/pages/threading-model.adoc b/docs/user-manual/modules/ROOT/pages/threading-model.adoc
index e05636b..e15c8bc 100644
--- a/docs/user-manual/modules/ROOT/pages/threading-model.adoc
+++ b/docs/user-manual/modules/ROOT/pages/threading-model.adoc
@@ -8,13 +8,13 @@ API which provides thread pools, named `ExecutorService`.
 
 Camel leverages thread pools in the following places:
 
-* several link:eip.html[EIP] patterns supports using thread pools for
+* several xref:eip.adoc[EIP] patterns supports using thread pools for
 concurrency
-* link:seda.html[SEDA] component for asynchronous connectivity
-* link:async.html[Threads DSL] in the Camel route
-* link:servicepool.html[ServicePool] for pooling services
+* xref:seda.adoc[SEDA] component for asynchronous connectivity
+* xref:async.adoc[Threads DSL] in the Camel route
+* xref:servicepool.adoc[ServicePool] for pooling services
 * And some component provide thread pools by nature such as
-link:jms.html[JMS], link:jetty.html[Jetty]
+xref:jms.adoc[JMS], xref:jetty.adoc[Jetty]
 
 [[ThreadingModel-Threadpoolprofiles]]
 ==== Thread pool profiles
@@ -30,7 +30,7 @@ default thread pool profile which is:
 --------------------------------------------------------------------------------------------------------
 
 What that means is that for example when you use
-link:multicast.html[Multicast] with `parallelProcessing=true` enabled,
+xref:multicast.adoc[Multicast] with `parallelProcessing=true` enabled,
 then it would create a thread pool based on the profile above. The
 `rejectedPolicy` has four options:
 `Abort, CallerRuns, Discard, DiscardOldest` which corresponds to the
@@ -76,11 +76,11 @@ attribute as shown:
 ---------------------------------------------------------------------------
 
 What Camel will do at runtime is to lookup in the
-link:registry.html[Registry] for a `ExecutorService` with the id =
+xref:registry.adoc[Registry] for a `ExecutorService` with the id =
 fooProfile. If none found it will fallback and see if there is a
 `ThreadPoolProfile` defined with that id. And in this example there is
 and so the profile is used for creating a new `ExecutorService` which is
-handed back to the link:multicast.html[Multicast] EIP to use in the
+handed back to the xref:multicast.adoc[Multicast] EIP to use in the
 route.
 
 [[ThreadingModel-Createcustomthreadpool]]
@@ -109,7 +109,7 @@ provider, for example from a WorkManager in a J2EE server etc. +
 you should implement and hook into the WorkManager.
 
 See
-link:advanced-configuration-of-camelcontext-using-spring.html[Advanced
+xref:advanced-configuration-of-camelcontext-using-spring.adoc[Advanced
 configuration of CamelContext using Spring] for how to configure it.
 
 You can configure it on the `CamelContext` from Java DSL using the
@@ -132,7 +132,7 @@ simpler then the former `ExecutorServiceStrategy` and makes the job of
 integrators much easier.
 
 See
-link:advanced-configuration-of-camelcontext-using-spring.html[Advanced
+xref:advanced-configuration-of-camelcontext-using-spring.adoc[Advanced
 configuration of CamelContext using Spring] for how to configure it.
 
 [[ThreadingModel-Customizingthreadnames]]
@@ -150,11 +150,11 @@ The default pattern is for:
 * *Camel 2.10 onwards:* `Camel (#camelId#) thread ##counter# - #name#`
 
 Notice we renamed the tokens from Camel 2.10 onwards to not clash with
-tokens by the link:using-propertyplaceholder.html[Property Placeholder].
+tokens by the xref:using-propertyplaceholder.adoc[Property Placeholder].
 
 In the pattern you can use the following placeholders
 
-* $\{camelId} *Camel 2.6:* is the link:camelcontext.html[CamelContext]
+* $\{camelId} *Camel 2.6:* is the xref:camelcontext.adoc[CamelContext]
 name
 * $\{counter} is a unique incrementing counter.
 * $\{name} is the regular thread name.
@@ -239,6 +239,6 @@ completed or a timeout value is hit.
 [[ThreadingModel-SeeAlso]]
 ==== See Also
 
-* link:architecture.html[Architecture]
-* link:async.html[Async]
+* xref:architecture.adoc[Architecture]
+* xref:async.adoc[Async]
 
diff --git a/docs/user-manual/modules/ROOT/pages/to-eip.adoc b/docs/user-manual/modules/ROOT/pages/to-eip.adoc
index e70001e..c1192e4 100644
--- a/docs/user-manual/modules/ROOT/pages/to-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/to-eip.adoc
@@ -3,12 +3,12 @@
 
 See message related documentation
 
-* link:https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/message.adoc[Message]
-* link:https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/message-bus.adoc[Message Bus]
-* link:https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/message-channel.adoc[Message Channel]
-* link:https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/message-endpoint.adoc[Message Endpoint]
-* link:https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/message-router.adoc[Message Router]
-* link:https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/message-translator.adoc[Message Translator]
+* https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/message.adoc[Message]
+* https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/message-bus.adoc[Message Bus]
+* https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/message-channel.adoc[Message Channel]
+* https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/message-endpoint.adoc[Message Endpoint]
+* https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/message-router.adoc[Message Router]
+* https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/message-translator.adoc[Message Translator]
 
 === Options
 
diff --git a/docs/user-manual/modules/ROOT/pages/toD-eip.adoc b/docs/user-manual/modules/ROOT/pages/toD-eip.adoc
index e566172..d6742d8 100644
--- a/docs/user-manual/modules/ROOT/pages/toD-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/toD-eip.adoc
@@ -3,7 +3,7 @@
 
 There is a new `.toD` / `<toD>` that allows to send a message to a dynamic
 computed <<Endpoint-Endpoints,Endpoint>> using one or
-more link:expression.html[Expression] that are concat together. By
+more xref:expression.adoc[Expression] that are concat together. By
 default the <<simple-language,Simple>> language is used to compute
 the endpoint.
 
diff --git a/docs/user-manual/modules/ROOT/pages/transactional-client.adoc b/docs/user-manual/modules/ROOT/pages/transactional-client.adoc
index 31bb8c1..2bf5908 100644
--- a/docs/user-manual/modules/ROOT/pages/transactional-client.adoc
+++ b/docs/user-manual/modules/ROOT/pages/transactional-client.adoc
@@ -3,7 +3,7 @@
 
 Camel recommends supporting the
 http://www.enterpriseintegrationpatterns.com/TransactionalClient.html[Transactional
-Client] from the link:enterprise-integration-patterns.html[EIP patterns]
+Client] from the xref:enterprise-integration-patterns.html[EIP patterns]
 using spring transactions.
 
 image:http://www.enterpriseintegrationpatterns.com/img/TransactionalClientSolution.gif[image]
@@ -390,4 +390,4 @@ Camel to only do it for the current transaction and not globally.
 * <<TransactionErrorHandler-TransactionErrorHandler,TransactionErrorHandler>>
 * <<ErrorHandler-ErrorHandler,Error Handler>>
 * <<jms-component,JMS>>
-* link:using-this-pattern.html[Using This Pattern]
+* xref:using-this-pattern.html[Using This Pattern]
diff --git a/docs/user-manual/modules/ROOT/pages/transactionerrorhandler.adoc b/docs/user-manual/modules/ROOT/pages/transactionerrorhandler.adoc
index 3f5bccf..bb3550d 100644
--- a/docs/user-manual/modules/ROOT/pages/transactionerrorhandler.adoc
+++ b/docs/user-manual/modules/ROOT/pages/transactionerrorhandler.adoc
@@ -7,15 +7,15 @@ This is the new default transaction error handler in Camel 2.0 onwards,
 used for transacted routes.
 
 It uses the same base as the
-link:defaulterrorhandler.adoc[DefaultErrorHandler] so it has the same
+xref:defaulterrorhandler.adoc[DefaultErrorHandler] so it has the same
 feature set as this error handler.
 
 By default any exception thrown during routing will be propagated back
-to the caller and the link:exchange.adoc[Exchange] ends immediately.
-However you can use the link:exception-clause.adoc[Exception Clause] to
+to the caller and the xref:exchange.adoc[Exchange] ends immediately.
+However you can use the xref:exception-clause.adoc[Exception Clause] to
 catch a given exception and lower the exception by marking it as
 handled. If so the exception will *not* be sent back to the caller and
-the link:exchange.adoc[Exchange] continues to be routed.
+the xref:exchange.adoc[Exchange] continues to be routed.
 
 [[TransactionErrorHandler-Example]]
 ==== Example
@@ -42,9 +42,9 @@ from("jetty:http://localhost/myservice/order").transacted().to("bean:validateOrd
 
 When the *ValidationException* is thrown from the validate order bean it
 is intercepted by the
-link:transactionerrorhandler.adoc[TransactionErrorHandler] and it let
+xref:transactionerrorhandler.adoc[TransactionErrorHandler] and it let
 the `onException(ValidationException.class` handle it so the
-link:exchange.adoc[Exchange] is routed to this route and since we use
+xref:exchange.adoc[Exchange] is routed to this route and since we use
 *handled(true)* then the original exception is lowered (= cleared) and
 we transform the message into a fixed response that are returned to
 jetty endpoint that returns it to the original caller.
@@ -109,7 +109,7 @@ TransactionTemplate or a PlatformTransactionManager.
 [[TransactionErrorHandler-UsingCameltodoredeliveries]]
 ==== Using Camel to do redeliveries
 
-As the link:transactionerrorhandler.adoc[TransactionErrorHandler] also
+As the xref:transactionerrorhandler.adoc[TransactionErrorHandler] also
 supports to let Camel do redeliveries you can use both worlds. Letting
 Camel do some redeliveries and at the end the backing transaction
 manager doing other redeliveries. In fact in the end the transaction
@@ -127,7 +127,7 @@ transaction manager that will do a rollback, and a redelivery if it was
 configured to do so.
 
 Notice that as we have all the powers from
-link:defaulterrorhandler.adoc[DefaultErrorHandler] we can configure an
+xref:defaulterrorhandler.adoc[DefaultErrorHandler] we can configure an
 *onException* where we state that in case of this particular exception,
 an IllegalArgumentException we will only do redeliveries up till 4
 times. (Yes the code is based on an unit test).
@@ -173,6 +173,6 @@ from("direct:fail")
 [[TransactionErrorHandler-SeeAlso]]
 ==== See Also
 
-* link:error-handler.adoc[Error Handler]
-* link:error-handling-in-camel.adoc[Error handling in Camel]
+* xref:error-handler.adoc[Error Handler]
+* xref:error-handling-in-camel.adoc[Error handling in Camel]
 * <<transactionalClient-eip,Transactional Client>>
diff --git a/docs/user-manual/modules/ROOT/pages/transform-eip.adoc b/docs/user-manual/modules/ROOT/pages/transform-eip.adoc
index ab0ac79..d5d695f 100644
--- a/docs/user-manual/modules/ROOT/pages/transform-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/transform-eip.adoc
@@ -3,7 +3,7 @@
 
 See below for details
 
-* link:https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/message-translator.adoc[Message Translator]
+* https://github.com/apache/camel/blob/master/camel-core/src/main/docs/eips/message-translator.adoc[Message Translator]
 
 === Options
 
diff --git a/docs/user-manual/modules/ROOT/pages/transport.adoc b/docs/user-manual/modules/ROOT/pages/transport.adoc
index d13f1e2..b5e5951 100644
--- a/docs/user-manual/modules/ROOT/pages/transport.adoc
+++ b/docs/user-manual/modules/ROOT/pages/transport.adoc
@@ -8,15 +8,15 @@ components.
 [[Transport-ComponentsIncluded]]
 ==== Components Included
 
-Camel includes the following Component implementations via link:uris.adoc[URIs].
+Camel includes the following Component implementations via xref:uris.adoc[URIs].
 
 [IMPORTANT]
 ====
-Make sure to read link:faq/how-do-i-configure-endpoints.adoc[How do I configure endpoints?]
+Make sure to read xref:faq/how-do-i-configure-endpoints.adoc[How do I configure endpoints?]
 to learn more about configuring endpoints. For
-example how to refer to beans in the link:registry.adoc[Registry] or how
+example how to refer to beans in the xref:registry.adoc[Registry] or how
 to use raw values for password options, and using
-link:using-propertyplaceholder.adoc[property placeholders] etc.
+xref:using-propertyplaceholder.adoc[property placeholders] etc.
 ====
 
 ===== Core Components
@@ -31,9 +31,9 @@ include::../../../components/readme.adoc[]
 [[Transport-SeeAlso]]
 ==== See Also
 
-* link:endpoint.adoc[Endpoint]
-* link:uris.adoc[URIs]
-* link:writing-components.adoc[Writing Components]
-* link:configuring-camel.adoc[How do I add a component?]
-* link:faq/how-do-i-configure-endpoints.adoc[How do I configure endpoints?]
-* link:using-propertyplaceholder.adoc[Using `PropertyPlaceholder`]
+* xref:endpoint.adoc[Endpoint]
+* xref:uris.adoc[URIs]
+* xref:writing-components.adoc[Writing Components]
+* xref:configuring-camel.adoc[How do I add a component?]
+* xref:faq/how-do-i-configure-endpoints.adoc[How do I configure endpoints?]
+* xref:using-propertyplaceholder.adoc[Using `PropertyPlaceholder`]
diff --git a/docs/user-manual/modules/ROOT/pages/try-catch-finally.adoc b/docs/user-manual/modules/ROOT/pages/try-catch-finally.adoc
index b9750c3..e3cf1d8 100644
--- a/docs/user-manual/modules/ROOT/pages/try-catch-finally.adoc
+++ b/docs/user-manual/modules/ROOT/pages/try-catch-finally.adoc
@@ -21,7 +21,7 @@ names.
 ===== Camel error handling is disabled
 
 When using `doTry .. doCatch .. doFinally` then the regular Camel
-link:error-handler.adoc[Error Handler] does not apply. That means any
+xref:error-handler.adoc[Error Handler] does not apply. That means any
 `onException` or the likes does not trigger. The reason is that
 `doTry .. doCatch .. doFinally` is in fact its own error handler and
 that it aims to mimic and work like how try/catch/finally works in Java.
@@ -47,7 +47,7 @@ Camel will still match a `doCatch` block defined with an
 multiple `doCatch` blocks matter. Camel will iterate from the top going
 down and use the first `doCatch` that matches the exception. The reason
 is to keep it similar to the regular java and how it selects a catch
-block. This differers from the link:exception-clause.adoc[Exception
+block. This differers from the xref:exception-clause.adoc[Exception
 Clause] that has a more intelligent exception selection strategy among
 multiple `onException` definitions, where it also consider the delta in
 the exception hierarchy to select the best definition.
@@ -57,7 +57,7 @@ the catch should trigger or not at runtime.
 
 And to simulate _rethrowing_ an exception from a `doCatch` you should
 use the `handled` predicate. If its evaluated to `false` Camel will
-reattach the exception on the link:exchange.adoc[Exchange].
+reattach the exception on the xref:exchange.adoc[Exchange].
 
 [[TryCatchFinally-UsingtrycatchfinallyinJavaDSL]]
 ==== Using try .. catch .. finally in Java DSL
@@ -126,6 +126,6 @@ https://github.com/apache/camel/tree/master/components/camel-spring/src/test/res
 [[TryCatchFinally-SeeAlso]]
 ==== See Also
 
-* link:error-handling-in-camel.adoc[Error handling in Camel]
-* link:error-handler.adoc[Error Handler]
-* link:exception-clause.adoc[Exception Clause]
+* xref:error-handling-in-camel.adoc[Error handling in Camel]
+* xref:error-handler.adoc[Error Handler]
+* xref:exception-clause.adoc[Exception Clause]
diff --git a/docs/user-manual/modules/ROOT/pages/type-converter.adoc b/docs/user-manual/modules/ROOT/pages/type-converter.adoc
index 80bcf63..ffab7cd 100644
--- a/docs/user-manual/modules/ROOT/pages/type-converter.adoc
+++ b/docs/user-manual/modules/ROOT/pages/type-converter.adoc
@@ -45,7 +45,7 @@ From Camel 3 onwards there type converter registry implementation uses source co
 
 Exposed the
 http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/spi/TypeConverterRegistry.html[TypeConverterRegistry]
-from link:camelcontext.adoc[CamelContext] so end users more easily will
+from xref:camelcontext.adoc[CamelContext] so end users more easily will
 be able to add type converters at runtime. This is also usable in
 situations where the default discovering of type converters fails on
 platforms with classloading issues.
diff --git a/docs/user-manual/modules/ROOT/pages/unmarshal-eip.adoc b/docs/user-manual/modules/ROOT/pages/unmarshal-eip.adoc
index 732293c..2bb37a5 100644
--- a/docs/user-manual/modules/ROOT/pages/unmarshal-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/unmarshal-eip.adoc
@@ -1,7 +1,7 @@
 [[unmarshal-eip]]
 == Unmarshal EIP
 
-If you receive a message from one of the Camel link:https://github.com/apache/camel/tree/master/components[Components] such as link:https://github.com/apache/camel/blob/master/camel-core/src/main/docs/file-component.adoc[File], link:https://github.com/apache/camel/blob/master/components/camel-http/src/main/docs/http-component.adoc[HTTP] or link:https://github.com/apache/camel/blob/master/components/camel-jms/src/main/docs/jms-component.adoc[JMS] you often want to unmarshal the payload in [...]
+If you receive a message from one of the Camel https://github.com/apache/camel/tree/master/components[Components] such as https://github.com/apache/camel/blob/master/camel-core/src/main/docs/file-component.adoc[File], https://github.com/apache/camel/blob/master/components/camel-http/src/main/docs/http-component.adoc[HTTP] or https://github.com/apache/camel/blob/master/components/camel-jms/src/main/docs/jms-component.adoc[JMS] you often want to unmarshal the payload into some bean so that [...]
 
 == Options
 
@@ -28,11 +28,11 @@ from("activemq:My.Queue").
   to("mqseries:Another.Queue");
 ----
 
-The above uses a named DataFormat of _jaxb_ which is configured with a number of Java package names. You can if you prefer use a named reference to a data format which can then be defined in your link:https://github.com/apache/camel/blob/master/docs/user-manual/en/registry.adoc[Registry] such as via your link:spring.html[Spring] XML file.
+The above uses a named DataFormat of _jaxb_ which is configured with a number of Java package names. You can if you prefer use a named reference to a data format which can then be defined in your https://github.com/apache/camel/blob/master/docs/user-manual/en/registry.adoc[Registry] such as via your xref:spring.adoc[Spring] XML file.
 
 You can also use the DSL itself to define the data format as you use it.
 For example the following uses Java serialization to unmarshal a binary
-file then send it as an ObjectMessage to link:https://github.com/apache/camel/tree/master/docs/user-manual/en/activemq.adoc[ActiveMQ]
+file then send it as an ObjectMessage to https://github.com/apache/camel/tree/master/docs/user-manual/en/activemq.adoc[ActiveMQ]
 
 [source,java]
 ----
diff --git a/docs/user-manual/modules/ROOT/pages/uris.adoc b/docs/user-manual/modules/ROOT/pages/uris.adoc
index c3f7de5..1b4c5fb 100644
--- a/docs/user-manual/modules/ROOT/pages/uris.adoc
+++ b/docs/user-manual/modules/ROOT/pages/uris.adoc
@@ -2,17 +2,17 @@
 === URIs
 
 Camel makes extensive use of URIs to allow you to refer to endpoints
-which are lazily created by a link:component.adoc[Component] if you
-refer to them within link:routes.adoc[Routes].
+which are lazily created by a xref:component.adoc[Component] if you
+refer to them within xref:routes.adoc[Routes].
 
 [IMPORTANT]
 ====
 Make sure to read
-link:faq/how-do-i-configure-endpoints.adoc[How do I configure endpoints]
+xref:faq/how-do-i-configure-endpoints.adoc[How do I configure endpoints]
 to learn more about configuring endpoints. For
-example how to refer to beans in the link:registry.adoc[Registry] or how
+example how to refer to beans in the xref:registry.adoc[Registry] or how
 to use raw values for password options, and using
-link:using-propertyplaceholder.adoc[property placeholders] etc.
+xref:using-propertyplaceholder.adoc[property placeholders] etc.
 ====
 
 
diff --git a/docs/user-manual/modules/ROOT/pages/user-stories.adoc b/docs/user-manual/modules/ROOT/pages/user-stories.adoc
index 5b9e45a..c45c0f9 100644
--- a/docs/user-manual/modules/ROOT/pages/user-stories.adoc
+++ b/docs/user-manual/modules/ROOT/pages/user-stories.adoc
@@ -9,13 +9,13 @@ entry or comment; or post to the mailing list.
 |=======================================================================
 |Company, Product, or Project |Description
 |http://activemq.apache.org/[Apache ActiveMQ] |Uses Camel to add
-link:enterprise-integration-patterns.adoc[Enterprise Integration Patterns]
+xref:enterprise-integration-patterns.adoc[Enterprise Integration Patterns]
 support into the
 http://activemq.apache.org/enterprise-integration-patterns.html[ActiveMQ
 broker]. If you run an out of the box ActiveMQ broker, look in
 conf/camel.xml and you'll see `<camelContext>` with some example routing
 rules. Can be used to bridge ActiveMQ with any of the camel
-link:component.adoc[Components].
+xref:component.adoc[Components].
 
 |http://servicemix.apache.org/home.html[Apache ServiceMix] |Uses Camel
 as a routing engine as a
diff --git a/docs/user-manual/modules/ROOT/pages/using-osgi-blueprint-with-camel.adoc b/docs/user-manual/modules/ROOT/pages/using-osgi-blueprint-with-camel.adoc
index d3d9864..29e7c5b 100644
--- a/docs/user-manual/modules/ROOT/pages/using-osgi-blueprint-with-camel.adoc
+++ b/docs/user-manual/modules/ROOT/pages/using-osgi-blueprint-with-camel.adoc
@@ -47,7 +47,7 @@ packages that are imported by your bundle
 * no startup ordering issue with respect to the custom namespaces and
 your bundles
 * you can use Blueprint property placeholders, see more at
-link:using-propertyplaceholder.html[Using PropertyPlaceholder]
+xref:using-propertyplaceholder.adoc[Using PropertyPlaceholder]
 
 [[UsingOSGiblueprintwithCamel-Usingcamel-blueprint]]
 ==== Using camel-blueprint
diff --git a/docs/user-manual/modules/ROOT/pages/using-propertyplaceholder.adoc b/docs/user-manual/modules/ROOT/pages/using-propertyplaceholder.adoc
index 4aa6540..8e1a7f9 100644
--- a/docs/user-manual/modules/ROOT/pages/using-propertyplaceholder.adoc
+++ b/docs/user-manual/modules/ROOT/pages/using-propertyplaceholder.adoc
@@ -5,13 +5,13 @@
 
 Camel now provides a new `PropertiesComponent` in `camel-core` which
 allows you to use property placeholders when defining Camel
-link:endpoint.adoc[Endpoint] URIs. This works much like you would do if
+xref:endpoint.adoc[Endpoint] URIs. This works much like you would do if
 using Spring's `<property-placeholder>` tag. However Spring has a
 limitation that prevents third-party frameworks from fully leveraging
 Spring property placeholders.
 
 For more details see:
-link:faq/how-do-i-use-spring-property-placeholder-with-camel-xml.adoc[How do
+xref:faq/how-do-i-use-spring-property-placeholder-with-camel-xml.adoc[How do
 I use Spring Property Placeholder with Camel XML].
 
 [[UsingPropertyPlaceholder-BridgingSpringandCamelPropertyPlaceholders]]
@@ -24,7 +24,7 @@ The property placeholder is typically used when trying to do any of the
 following:
 
 * Lookup or creating endpoints
-* Lookup of beans in the link:registry.adoc[Registry]
+* Lookup of beans in the xref:registry.adoc[Registry]
 * Additional supported in Spring XML (see below in examples)
 * Using Blueprint `PropertyPlaceholder` with Camel
 <<properties-component,Properties>> component
@@ -70,7 +70,7 @@ specify their own resolver to use for the lookup of properties.
 Camel provides a default implementation
 `org.apache.camel.component.properties.DefaultPropertiesResolver`
 which is capable of loading properties from the file system, classpath
-or link:registry.adoc[Registry]. To indicate which source to use the
+or xref:registry.adoc[Registry]. To indicate which source to use the
 location must contain the appropriate prefix.
 
 The list of prefixes is:
@@ -78,7 +78,7 @@ The list of prefixes is:
 [width="100%",cols="50%,50%",options="header",]
 |=======================================================================
 |Prefix |Description
-|`ref:` |Lookup in the link:registry.adoc[Registry.]
+|`ref:` |Lookup in the xref:registry.adoc[Registry.]
 
 |`file:` |Load the from file system.
 
@@ -243,14 +243,14 @@ option both inside the Spring as well as the Blueprint XML.
 
 
 [[UsingPropertyPlaceholder-UsingaPropertiesfromthe]]
-==== Using a Properties from the link:registry.adoc[Registry]
+==== Using a Properties from the xref:registry.adoc[Registry]
 
 *Available as of Camel 2.4*
 
 For example in OSGi you may want to expose a service which returns the
 properties as a `java.util.Properties` object.
 
-Then you could setup the link:properties.adoc[Properties] component as
+Then you could setup the xref:properties.adoc[Properties] component as
 follows:
 
 [source,xml]
@@ -260,7 +260,7 @@ follows:
 
 Where `myProperties` is the id to use for lookup in the OSGi registry.
 Notice we use the `ref:` prefix to tell Camel that it should lookup
-the properties for the link:registry.adoc[Registry].
+the properties for the xref:registry.adoc[Registry].
 
 [[UsingPropertyPlaceholder-ExamplesUsingPropertiesComponent]]
 ==== Examples Using Properties Component
@@ -353,7 +353,7 @@ from("{{cool.start}}")
 ----
 
 You can also your property placeholders when using
-link:producertemplate.adoc[ProducerTemplate] for example:
+xref:producertemplate.adoc[ProducerTemplate] for example:
 
 
 [source,java]
@@ -491,7 +491,7 @@ placeholder namespace.
 In the example below we use the `prop` prefix for the namespace
 `http://camel.apache.org/schema/placeholder` by which we can use the
 `prop` prefix in the attributes in the XML DSLs. Notice how we use
-that in the link:multicast.adoc[Multicast] to indicate that the option
+that in the xref:multicast.adoc[Multicast] to indicate that the option
 `stopOnException` should be the value of the placeholder with the key
 `stop`.
 
@@ -555,7 +555,7 @@ from("direct:start")
 
 *Available as of Camel 2.7*
 
-Camel supports link:using-osgi-blueprint-with-camel.adoc[Blueprint]
+Camel supports xref:using-osgi-blueprint-with-camel.adoc[Blueprint]
 which also offers a property placeholder service. Camel supports
 convention over configuration, so all you have to do is to define the
 OSGi Blueprint property placeholder in the XML file as shown below:
@@ -964,8 +964,8 @@ with `ignoreUnresolvablePlaceholders` option to `true`.
 
 *Available as of Camel 2.10*
 
-When link:testing.adoc[Testing] with Camel and using the
-link:properties.adoc[Properties] component, you may want to be able to
+When xref:testing.adoc[Testing] with Camel and using the
+xref:properties.adoc[Properties] component, you may want to be able to
 provide the properties to be used from directly within the unit test
 source code. This is now possible from Camel 2.10, as the Camel test
 kits, e.g., `CamelTestSupport` class offers the following methods
@@ -1053,7 +1053,7 @@ private int timeout;
 
 *Available as of Camel 2.14.1*
 
-The link:properties.adoc[Properties] component includes the following
+The xref:properties.adoc[Properties] component includes the following
 functions out of the box
 
 * `env` - A function to lookup the property from OS environment
@@ -1115,7 +1115,7 @@ export $FOO_SERVICE_HOST=myserver export $FOO_SERVICE_PORT=8888
 
 For example if the `FOO` service a remote HTTP service, then we can
 refer to the service in the Camel endpoint URI, and use
-the link:http.adoc[HTTP] component to make the HTTP call:
+the xref:http.adoc[HTTP] component to make the HTTP call:
 
 [source,xml]
 ----
@@ -1145,7 +1145,7 @@ example to call a service on localhost, maybe for unit testing etc:
 
 *Available as of Camel 2.14.1*
 
-The link:properties.adoc[Properties] component allow to plugin 3rd party
+The xref:properties.adoc[Properties] component allow to plugin 3rd party
 functions which can be used during parsing of the property placeholders.
 These functions are then able to do custom logic to resolve the
 placeholders, such as looking up in databases, do custom computations,
diff --git a/docs/user-manual/modules/ROOT/pages/validator.adoc b/docs/user-manual/modules/ROOT/pages/validator.adoc
index ee5b56e..9d47385 100644
--- a/docs/user-manual/modules/ROOT/pages/validator.adoc
+++ b/docs/user-manual/modules/ROOT/pages/validator.adoc
@@ -105,7 +105,7 @@ And here is an example to specify endpoint ref in XML DSL:
 
 Note that the Endpoint Validator just forwards the message to the specified endpoint. In above example,
 camel forwards the message to the `validator:` endpoint, which actually is a
-link:validator-component.adoc[Validation Component]. You can also use any other validation component like
+xref:validator-component.adoc[Validation Component]. You can also use any other validation component like
 Bean Validation Component.
 
 [[Validator-Custom]]
diff --git a/docs/user-manual/modules/ROOT/pages/when-eip.adoc b/docs/user-manual/modules/ROOT/pages/when-eip.adoc
index cf6747c..368f866 100644
--- a/docs/user-manual/modules/ROOT/pages/when-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/when-eip.adoc
@@ -2,7 +2,7 @@
 == When EIP
 
 The When EIP is related to http://www.enterpriseintegrationpatterns.com/ContentBasedRouter.html[Content
-Based Router] from the link:enterprise-integration-patterns.html[EIP
+Based Router] from the xref:enterprise-integration-patterns.adoc[EIP
 patterns]
 
 image:http://www.enterpriseintegrationpatterns.com/img/ContentBasedRouter.gif[image]
@@ -17,7 +17,7 @@ The When EIP has no options.
 
 The following example shows how to route a request from an input
 *direct:a* endpoint to either *direct:b*, *direct:c* or *direct:d* depending on
-the evaluation of various link:predicate.html[Predicate] expressions
+the evaluation of various xref:predicate.adoc[Predicate] expressions
 
 [source,java]
 ----
diff --git a/docs/user-manual/modules/ROOT/pages/wireTap-eip.adoc b/docs/user-manual/modules/ROOT/pages/wireTap-eip.adoc
index 03bbd38..aac3c6b 100644
--- a/docs/user-manual/modules/ROOT/pages/wireTap-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/wireTap-eip.adoc
@@ -2,7 +2,7 @@
 == Wire Tap EIP
 
 http://www.enterpriseintegrationpatterns.com/WireTap.html[Wire Tap]
-(from the link:enterprise-integration-patterns.html[EIP patterns])
+(from the xref:enterprise-integration-patterns.adoc[EIP patterns])
 allows you to route messages to a separate location while they are being
 forwarded to the ultimate destination.
 
@@ -10,10 +10,10 @@ image:http://www.enterpriseintegrationpatterns.com/img/WireTap.gif[image]
 
 === Streams
 
-If you link:wire-tap.html[Wire Tap] a stream message body then you
-should consider enabling link:stream-caching.html[Stream caching] to
+If you xref:wire-tap.adoc[Wire Tap] a stream message body then you
+should consider enabling xref:stream-caching.adoc[Stream caching] to
 ensure the message body can be read at each endpoint. See more details
-at link:stream-caching.html[Stream caching].
+at xref:stream-caching.adoc[Stream caching].
 
 === Options
 
@@ -41,29 +41,29 @@ The Wire Tap EIP supports 11 options which are listed below:
 
 The WireTap uses a thread pool to process the
 tapped messages. This thread pool will by default use the settings
-detailed at link:threading-model.html[Threading Model]. In particular,
+detailed at xref:threading-model.adoc[Threading Model]. In particular,
 when the pool is exhausted (with all threads utilized), further wiretaps
 will be executed synchronously by the calling thread. To remedy this,
-you can configure an explicit thread pool on the link:wire-tap.html[Wire
+you can configure an explicit thread pool on the xref:wire-tap.adoc[Wire
 Tap] having either a different rejection policy, a larger worker queue,
 or more worker threads.
 
 === WireTap Node
 
 Camel's Wire Tap node supports two flavors when tapping an
-link:exchange.html[Exchange]:
+xref:exchange.adoc[Exchange]:
 
 - With the traditional Wire Tap, Camel will copy the original
-link:exchange.html[Exchange] and set its
-link:exchange-pattern.html[Exchange Pattern] to *`InOnly`*, as we want
-the tapped link:exchange.html[Exchange] to be sent in a fire and forget
-style. The tapped link:exchange.html[Exchange] is then sent in a
+xref:exchange.adoc[Exchange] and set its
+xref:exchange-pattern.adoc[Exchange Pattern] to *`InOnly`*, as we want
+the tapped xref:exchange.adoc[Exchange] to be sent in a fire and forget
+style. The tapped xref:exchange.adoc[Exchange] is then sent in a
 separate thread so it can run in parallel with the original. Beware that
 only the Exchange is copied - Wire Tap won't do a deep clone (unless you
 specify a custom processor via *`onPrepareRef`* which does that). So all
 copies could share objects from the original Exchange.
 - Camel also provides an option of sending a new
-link:exchange.html[Exchange] allowing you to populate it with new
+xref:exchange.adoc[Exchange] allowing you to populate it with new
 values.
 
 === Sending a Copy (traditional wiretap)
@@ -93,29 +93,29 @@ values.
     }
 ----
 
-=== Sending a New link:exchange.html[Exchange]
+=== Sending a New xref:exchange.adoc[Exchange]
 
 *Using the <<FluentBuilders-FluentBuilders,Fluent Builders>>*
 
 Camel supports either a processor or an
-link:expression.html[Expression] to populate the new
-link:exchange.html[Exchange]. Using a processor gives you full power
-over how the link:exchange.html[Exchange] is populated as you can set
-properties, headers, etc. An link:expression.html[Expression] can only
+xref:expression.adoc[Expression] to populate the new
+xref:exchange.adoc[Exchange]. Using a processor gives you full power
+over how the xref:exchange.adoc[Exchange] is populated as you can set
+properties, headers, etc. An xref:expression.adoc[Expression] can only
 be used to set the *`IN`* body.
 
-From *Camel 2.3*: the link:expression.html[Expression] or
-link:processor.html[Processor] is pre-populated with a copy of the
-original link:exchange.html[Exchange], which allows you to access the
-original message when you prepare a new link:exchange.html[Exchange] to
+From *Camel 2.3*: the xref:expression.adoc[Expression] or
+xref:processor.adoc[Processor] is pre-populated with a copy of the
+original xref:exchange.adoc[Exchange], which allows you to access the
+original message when you prepare a new xref:exchange.adoc[Exchange] to
 be sent. You can use the *`copy`* option (enabled by default) to
 indicate whether you want this. If you set *`copy=false`*, then it works
-as in *Camel 2.2* or older where the link:exchange.html[Exchange] will
+as in *Camel 2.2* or older where the xref:exchange.adoc[Exchange] will
 be empty.
 
 Below is the processor variation. This example is from *Camel 2.3*,
 where we disable *`copy`* by passing in *`false`* to create a new, empty
-link:exchange.html[Exchange]
+xref:exchange.adoc[Exchange]
 
 [source,java]
 ----
@@ -146,7 +146,7 @@ link:exchange.html[Exchange]
 *Available as of Camel 2.16:*
 
 For example to wire tap to a dynamic URI, then it supports the same
-dynamic URIs as documented in link:message-endpoint.html[Message
+dynamic URIs as documented in xref:message-endpoint.adoc[Message
 Endpoint]. For example to wire tap to a JMS queue where the header ID is
 part of the queue name:
 
@@ -160,10 +160,10 @@ part of the queue name:
 
 *Available as of Camel 2.8*
 
-If you send a new message using link:wire-tap.html[Wire Tap], then you
+If you send a new message using xref:wire-tap.adoc[Wire Tap], then you
 could only set the message body using an
-link:expression.html[Expression] from the DSL. If you also need to set
-headers, you would have to use a link:processor.html[Processor]. From
+xref:expression.adoc[Expression] from the DSL. If you also need to set
+headers, you would have to use a xref:processor.adoc[Processor]. From
 *Camel 2.8*: it's possible to set headers as well using the DSL.
 
 The following example sends a new message which has
@@ -208,6 +208,6 @@ The following example sends a new message which has
 
 *Available as of Camel 2.8*
 
-See details at link:multicast.html[Multicast]
+See details at xref:multicast.adoc[Multicast]
 
-link:using-this-pattern.html[Using This Pattern]
+xref:using-this-pattern.adoc[Using This Pattern]
diff --git a/docs/user-manual/modules/ROOT/pages/writing-components.adoc b/docs/user-manual/modules/ROOT/pages/writing-components.adoc
index 5d937c1..ec48eb7 100644
--- a/docs/user-manual/modules/ROOT/pages/writing-components.adoc
+++ b/docs/user-manual/modules/ROOT/pages/writing-components.adoc
@@ -4,7 +4,7 @@
 Apache Camel is designed to make it very easy to drop in new components
 whether they be routing components, transformers, transports etc. The
 idea of a component is to be a factory and manager of
-link:endpoint.adoc[Endpoints].
+xref:endpoint.adoc[Endpoints].
 
 Here are the main steps to writing a component:
 
@@ -28,7 +28,7 @@ or users can use a URI which auto-creates your component.
 [[WritingComponents-WritingEndpoints]]
 ==== Writing Endpoints
 
-When implementing an link:endpoint.adoc[Endpoint] you typically may
+When implementing an xref:endpoint.adoc[Endpoint] you typically may
 implement one or more of the following methods:
 
 * http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Endpoint.html#createProducer()[createProducer()]
@@ -36,13 +36,13 @@ will create a
 http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Producer.html[Producer]
 for sending message exchanges to the endpoint
 * http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Endpoint.html#createConsumer(org.apache.camel.Processor)[createConsumer()]
-implements the link:event-driven-consumer.adoc[Event Driven Consumer]
+implements the xref:event-driven-consumer.adoc[Event Driven Consumer]
 pattern for consuming message exchanges from the endpoint via a
 http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Processor.html[Processor]
 when creating a
 http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Consumer.html[Consumer]
 * http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Endpoint.html#createPollingConsumer()[createPollingConsumer()]
-implements the link:polling-consumer.adoc[Polling Consumer] pattern for
+implements the xref:polling-consumer.adoc[Polling Consumer] pattern for
 consuming message exchanges from the endpoint via a
 http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/PollingConsumer.html[PollingConsumer]
 
@@ -73,7 +73,7 @@ polling code.
 As of *Camel 2.12* if you want to benefit from the automatic generation
 of HTML documentation for all the parameters on your endpoint as part of
 the maven site reports, you need to
-link:endpoint-annotations.adoc[annotate your Endpoint's parameters].
+xref:endpoint-annotations.adoc[annotate your Endpoint's parameters].
 
 So this means you add a `@UriEndpoint` annotation to your Endpoint class
 and then annotate each parameter you wish to be configured via the URI
@@ -83,25 +83,25 @@ configuration objects).
 In addition its recommended that your Component implementation inherit
 from the UriEndpointComponent base class as that means your Component
 will automatically generate better metadata for the
-link:componentconfiguration.adoc[ComponentConfiguration] API.
+xref:componentconfiguration.adoc[ComponentConfiguration] API.
 
-Refer to the link:endpoint-annotations.adoc[Endpoint Annotations guide
+Refer to the xref:endpoint-annotations.adoc[Endpoint Annotations guide
 for details].
 
 [[WritingComponents-UsingaProcessor]]
 ==== Using a Processor
 
 If you are writing a simple endpoint which just processes messages in
-some way, you can just implement a link:processor.adoc[Processor] and
-link:processor.adoc[use that to create an endpoint].
+some way, you can just implement a xref:processor.adoc[Processor] and
+xref:processor.adoc[use that to create an endpoint].
 
 [[WritingComponents-Dependencyinjectionandauto-discovery]]
 ==== Dependency injection and auto-discovery
 
 When using auto-discovery the CamelContext will default to its
-link:injector.adoc[Injector] implementation to inject any required or
+xref:injector.adoc[Injector] implementation to inject any required or
 optional dependencies on the component. This allows you to use
-auto-discovery of components via link:uris.adoc[URIs] while still
+auto-discovery of components via xref:uris.adoc[URIs] while still
 getting the benefits of dependency injection.
 
 For example your component can depend on a JDBC DataSource or JMS
@@ -151,8 +151,8 @@ parameter:
 [[WritingComponents-SeeAlso]]
 ==== See Also
 
-* link:configuring-camel.adoc[Configuring Camel]
-* link:endpoint.adoc[Endpoint]
-* link:component.adoc[Component]
+* xref:configuring-camel.adoc[Configuring Camel]
+* xref:endpoint.adoc[Endpoint]
+* xref:component.adoc[Component]
 * http://camel.apache.org/creating-a-new-camel-component.html[Creating a
 new Camel Component with Maven]
diff --git a/docs/user-manual/modules/ROOT/pages/xml-reference.adoc b/docs/user-manual/modules/ROOT/pages/xml-reference.adoc
index c67d028..c776851 100644
--- a/docs/user-manual/modules/ROOT/pages/xml-reference.adoc
+++ b/docs/user-manual/modules/ROOT/pages/xml-reference.adoc
@@ -2,7 +2,7 @@
 === Camel XML Reference
 
 This page contains a link to the XML schema documents for
-link:xml-configuration.adoc[XML Configuration] with Camel releases. You
+xref:xml-configuration.adoc[XML Configuration] with Camel releases. You
 can refer to http://camel.apache.org/schema/ to see the individual XSDs
 available.
 
@@ -1402,7 +1402,7 @@ available.
 [[XMLReference-UsingtheXSDsinconfigurationfiles]]
 ==== Using the XSDs in configuration files
 
-When you are using link:spring.adoc[Spring]'s 2.5 XML handling to parse
+When you are using xref:spring.adoc[Spring]'s 2.5 XML handling to parse
 the XML then you need to refer to the XSD locations in your XML
 document.