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 90f7fb865be54b37e51839ff9fa9e4bd26423d78
Author: nayananga@acerubuntu18.04 <nayanangamuhandi...@gmail.com>
AuthorDate: Fri Jul 19 17:55:45 2019 +0530

    fixed incorrect cross references in docs/user-manual
---
 .../modules/ROOT/pages/aggregate-eip.adoc          |  2 +-
 docs/user-manual/modules/ROOT/pages/async.adoc     |  4 +-
 .../ROOT/pages/asynchronous-routing-engine.adoc    | 38 +++++++--------
 .../modules/ROOT/pages/backlog-tracer.adoc         |  2 +-
 .../modules/ROOT/pages/backlogdebugger.adoc        |  2 +-
 .../modules/ROOT/pages/bam-example.adoc            |  8 ++--
 .../modules/ROOT/pages/batch-consumer.adoc         | 20 ++++----
 docs/user-manual/modules/ROOT/pages/bean-eip.adoc  |  6 +--
 .../modules/ROOT/pages/bean-integration.adoc       |  6 +--
 .../modules/ROOT/pages/browsable-endpoint.adoc     |  8 ++--
 .../ROOT/pages/camel-configuration-utilities.adoc  | 14 +++---
 .../modules/ROOT/pages/configuring-camel.adoc      |  2 +-
 ...ing-route-startup-ordering-and-autostartup.adoc |  2 +-
 .../modules/ROOT/pages/content-filter-eip.adoc     |  2 +-
 .../modules/ROOT/pages/correlation-identifier.adoc |  4 +-
 .../modules/ROOT/pages/data-format.adoc            | 56 +++++++++++-----------
 .../modules/ROOT/pages/dead-letter-channel.adoc    |  2 +-
 docs/user-manual/modules/ROOT/pages/dsl.adoc       |  2 +-
 .../modules/ROOT/pages/dynamic-router.adoc         |  6 +--
 .../pages/enterprise-integration-patterns.adoc     |  2 +-
 .../ROOT/pages/error-handling-in-camel.adoc        |  8 ++--
 .../modules/ROOT/pages/event-message.adoc          |  4 +-
 .../ROOT/pages/eventDrivenConsumer-eip.adoc        |  2 +-
 .../modules/ROOT/pages/exception-clause.adoc       |  2 +-
 .../modules/ROOT/pages/exchange-pattern.adoc       |  2 +-
 .../user-manual/modules/ROOT/pages/expression.adoc | 24 +++++-----
 docs/user-manual/modules/ROOT/pages/faq.adoc       |  4 +-
 ...ption-javaxnamingnoinitialcontextexception.adoc |  2 +-
 .../faq/how-can-i-stop-a-route-from-a-route.adoc   |  4 +-
 .../pages/faq/how-do-i-configure-endpoints.adoc    |  6 +--
 ...en-consuming-for-example-from-a-ftp-server.adoc |  4 +-
 .../faq/how-do-i-let-jetty-match-wildcards.adoc    |  4 +-
 ...ow-do-i-make-my-jms-endpoint-transactional.adoc |  4 +-
 ...om-a-certain-point-back-or-an-entire-route.adoc |  2 +-
 ...ify-time-period-in-a-human-friendly-syntax.adoc |  2 +-
 ...h-method-to-use-when-using-beans-in-routes.adoc |  2 +-
 ...spring-property-placeholder-with-camel-xml.adoc |  4 +-
 ...direct-event-seda-and-vm-endpoints-compare.adoc | 10 ++--
 ...-do-the-timer-and-quartz-endpoints-compare.adoc |  2 +-
 .../pages/faq/how-does-camel-compare-to-mule.adoc  |  4 +-
 .../how-does-camel-compare-to-servicemix-eip.adoc  |  4 +-
 .../faq/how-does-camel-compare-to-servicemix.adoc  |  4 +-
 .../faq/how-does-camel-compare-to-synapse.adoc     |  2 +-
 ...how-does-camel-look-up-beans-and-endpoints.adoc |  6 +--
 .../faq/how-does-camel-work-with-activemq.adoc     |  6 +--
 .../faq/how-does-camel-work-with-servicemix.adoc   |  2 +-
 .../faq/how-does-the-camel-api-compare-to.adoc     |  8 ++--
 ...-avoid-sending-some-or-all-message-headers.adoc |  2 +-
 .../ROOT/pages/faq/is-camel-ioc-friendly.adoc      |  4 +-
 .../modules/ROOT/pages/faq/is-there-an-ide.adoc    |  2 +-
 .../ROOT/pages/faq/running-camel-standalone.adoc   |  2 +-
 ...-activemq-broker-or-in-another-application.adoc |  2 +-
 .../modules/ROOT/pages/faq/what-is-camel.adoc      |  8 ++--
 ...se-when-or-otherwise-in-a-java-camel-route.adoc |  2 +-
 ...use-too-many-threads-with-producertemplate.adoc |  4 +-
 ...-does-ftp-component-not-download-any-files.adoc |  2 +-
 ...-file-consumer-use-the-camel-error-handler.adoc |  6 +--
 ...jms-route-only-consume-one-message-at-once.adoc |  4 +-
 .../pages/faq/why-use-multiple-camelcontext.adoc   |  4 +-
 .../modules/ROOT/pages/file-language.adoc          |  4 +-
 .../modules/ROOT/pages/graceful-shutdown.adoc      |  4 +-
 .../modules/ROOT/pages/guaranteed-delivery.adoc    | 12 ++---
 .../modules/ROOT/pages/idempotentConsumer-eip.adoc | 14 +++---
 docs/user-manual/modules/ROOT/pages/index.adoc     |  8 ++--
 docs/user-manual/modules/ROOT/pages/injector.adoc  |  2 +-
 docs/user-manual/modules/ROOT/pages/intercept.adoc |  2 +-
 docs/user-manual/modules/ROOT/pages/jndi.adoc      |  2 +-
 docs/user-manual/modules/ROOT/pages/languages.adoc | 14 +++---
 docs/user-manual/modules/ROOT/pages/log-eip.adoc   |  4 +-
 .../modules/ROOT/pages/message-bus.adoc            |  2 +-
 .../modules/ROOT/pages/message-channel.adoc        |  2 +-
 .../modules/ROOT/pages/message-translator.adoc     |  4 +-
 .../modules/ROOT/pages/point-to-point-channel.adoc | 10 ++--
 .../ROOT/pages/publish-subscribe-channel.adoc      |  8 ++--
 .../modules/ROOT/pages/requestReply-eip.adoc       |  4 +-
 docs/user-manual/modules/ROOT/pages/rest-dsl.adoc  | 20 ++++----
 .../modules/ROOT/pages/return-address.adoc         |  2 +-
 .../modules/ROOT/pages/route-policy.adoc           |  2 +-
 .../ROOT/pages/scala-dsl-supported-languages.adoc  |  2 +-
 .../modules/ROOT/pages/scripting-languages.adoc    |  4 +-
 .../modules/ROOT/pages/servlet-tomcat-example.adoc |  6 +--
 .../modules/ROOT/pages/simple-language.adoc        | 16 +++----
 .../modules/ROOT/pages/spring-testing.adoc         | 10 ++--
 docs/user-manual/modules/ROOT/pages/testing.adoc   | 14 +++---
 docs/user-manual/modules/ROOT/pages/toD-eip.adoc   |  4 +-
 .../modules/ROOT/pages/transactional-client.adoc   |  4 +-
 .../modules/ROOT/pages/try-catch-finally.adoc      |  4 +-
 .../modules/ROOT/pages/unmarshal-eip.adoc          |  2 +-
 .../ROOT/pages/using-propertyplaceholder.adoc      |  4 +-
 docs/user-manual/modules/ROOT/pages/validator.adoc |  2 +-
 .../modules/ROOT/pages/writing-components.adoc     |  2 +-
 .../modules/ROOT/pages/xml-configuration.adoc      |  6 +--
 .../modules/ROOT/pages/xml-reference.adoc          |  2 +-
 93 files changed, 280 insertions(+), 280 deletions(-)

diff --git a/docs/user-manual/modules/ROOT/pages/aggregate-eip.adoc 
b/docs/user-manual/modules/ROOT/pages/aggregate-eip.adoc
index 9965366..e4e0d3c 100644
--- a/docs/user-manual/modules/ROOT/pages/aggregate-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/aggregate-eip.adoc
@@ -187,7 +187,7 @@ consumer etc)
 The aggregator provides a pluggable repository which you can implement
 your own `org.apache.camel.spi.AggregationRepository`. +
  If you need persistent repository then you can use either Camel
-xref:leveldb.adoc[LevelDB], or xref:sql-component.adoc[SQL Component] 
components.
+xref:components::leveldb.adoc[LevelDB], or 
xref:components::sql-component.adoc[SQL Component] components.
 
 === Using TimeoutAwareAggregationStrategy
 
diff --git a/docs/user-manual/modules/ROOT/pages/async.adoc 
b/docs/user-manual/modules/ROOT/pages/async.adoc
index 4376adc..5da1683 100644
--- a/docs/user-manual/modules/ROOT/pages/async.adoc
+++ b/docs/user-manual/modules/ROOT/pages/async.adoc
@@ -628,8 +628,8 @@ transaction.
 * Request Only
 * 
http://davsclaus.blogspot.com/2009/05/on-road-to-camel-20-concurrency-with.html[Blog
 entry on using async for concurrent file processing]
-* xref:seda-component.adoc[SEDA]
-* xref:direct-component.adoc[Direct]
+* xref:components::seda-component.adoc[SEDA]
+* xref:components::direct-component.adoc[Direct]
 * To Async for non blocking
 Request Reply
 
diff --git 
a/docs/user-manual/modules/ROOT/pages/asynchronous-routing-engine.adoc 
b/docs/user-manual/modules/ROOT/pages/asynchronous-routing-engine.adoc
index f3daf84..c17e413 100644
--- a/docs/user-manual/modules/ROOT/pages/asynchronous-routing-engine.adoc
+++ b/docs/user-manual/modules/ROOT/pages/asynchronous-routing-engine.adoc
@@ -8,37 +8,37 @@ All the xref:enterprise-integration-patterns.adoc[Enterprise 
Integration Pattern
 are supported as well a selected number of
 Components:
 
-* xref:ahc-component.adoc[AHC] *Camel 2.8:* (only producer)
+* xref:components::ahc-component.adoc[AHC] *Camel 2.8:* (only producer)
 * AWS *Camel 2.11:* (only consumer) for S3 and SNS.
-* xref:avro-component.adoc[Avro] *Camel 2.10:* (only producer)
-* xref:cxf-component.adoc[CXF] *Camel 2.5:* (both consumer and producer)
-* xref:cxfrs-component.adoc[CXFRS] *Camel 2.5:* (only consumer)
-* xref:direct-vm-component.adoc[Direct-VM] *Camel 2.10.5/2.11.0:* (both 
consumer
+* xref:components::avro-component.adoc[Avro] *Camel 2.10:* (only producer)
+* xref:components::cxf-component.adoc[CXF] *Camel 2.5:* (both consumer and 
producer)
+* xref:components::cxfrs-component.adoc[CXFRS] *Camel 2.5:* (only consumer)
+* xref:components::direct-vm-component.adoc[Direct-VM] *Camel 2.10.5/2.11.0:* 
(both consumer
 and producer)
-* xref:file-component.adoc[File] - (only consumer)
-* xref:ftp-component.adoc[FTP] - (only consumer)
-* xref:guava-eventbus-component.adoc[Guava EventBus] *Camel 2.10:* (only 
consumer)
+* xref:components::file-component.adoc[File] - (only consumer)
+* xref:components::ftp-component.adoc[FTP] - (only consumer)
+* xref:components::guava-eventbus-component.adoc[Guava EventBus] *Camel 2.10:* 
(only consumer)
 * JBI (both consumer and producer)
-* xref:jetty-component.adoc[Jetty] (both consumer and producer)
-* xref:jgroups-component.adoc[JGroups] *Camel 2.10:* (only consumer)
-* xref:jms-component.adoc[JMS] *Camel 2.5:* (only producer for
+* xref:components::jetty-component.adoc[Jetty] (both consumer and producer)
+* xref:components::jgroups-component.adoc[JGroups] *Camel 2.10:* (only 
consumer)
+* xref:components::jms-component.adoc[JMS] *Camel 2.5:* (only producer for
 Request Reply messaging over JMS). *Camel 2.9:*
 (consumer, if option `asyncConsumer=true` is used).
-* xref:jms-component.adoc[JMS] *Camel 2.9:* (also consumer)
-* xref:mqtt-component.adoc[MQTT] *Camel 2.10.2:* (only producer)
+* xref:components::jms-component.adoc[JMS] *Camel 2.9:* (also consumer)
+* xref:components::mqtt-component.adoc[MQTT] *Camel 2.10.2:* (only producer)
 * NMR (both consumer and producer)
 * xref:netty-component.adoc[Netty] only producer (*Camel 2.10:* also consumer)
-* xref:restlet-component.adoc[Restlet] *Camel 2.8:* (only producer)
-* xref:seda-component.adoc[SEDA] (both consumer and producer) SEDA was 
mistakenly
+* xref:components::restlet-component.adoc[Restlet] *Camel 2.8:* (only producer)
+* xref:components::seda-component.adoc[SEDA] (both consumer and producer) SEDA 
was mistakenly
 in this list until November 3rd 2012. As of Camel 2.10.x, it still does
 not leverage the Async Routing Engine, but support is planned for
 
http://camel.apache.org/camel-30-roadmap.html#Camel3.0-Roadmap-SEDA%2FVMcomponentstoleverageasyncroutingengine[Camel
 3.0].
 
-* xref:timer-component.adoc[Timer] *Camel 2.12:* (only consumer)
+* xref:components::timer-component.adoc[Timer] *Camel 2.12:* (only consumer)
 
 When we say a component is supported, that means, the component is
-leveraging the asynchronous model. For example xref:jetty-component.adoc[Jetty]
+leveraging the asynchronous model. For example 
xref:components::jetty-component.adoc[Jetty]
 uses continuations and the async http client to be fully asynchronous
 and non blocked. That means no threads will ever be blocked while
 waiting for a reply.
@@ -51,10 +51,10 @@ supported as well where it's applicable.
 
 You can configure the endpoints with the option `synchronous=true` to
 force using synchronous processing. For example when sending a web
-service request using xref:cxf-component.adoc[CXF], the caller will wait for 
the
+service request using xref:components::cxf-component.adoc[CXF], the caller 
will wait for the
 reply if `synchronous=true` was configured. Currently this option is
 supported by the all the producers. If you don't want to let the
-xref:cxf-component.adoc[CXF] consumer leverage the CXF continuation API to use 
the
+xref:components::cxf-component.adoc[CXF] consumer leverage the CXF 
continuation API to use the
 asynchronous processing, you can also use this option `synchronous=true`
 to disable it. The JBI and NMR component
 are always asynchronous and doesn't support this option.
diff --git a/docs/user-manual/modules/ROOT/pages/backlog-tracer.adoc 
b/docs/user-manual/modules/ROOT/pages/backlog-tracer.adoc
index 0081282..0b17c43 100644
--- a/docs/user-manual/modules/ROOT/pages/backlog-tracer.adoc
+++ b/docs/user-manual/modules/ROOT/pages/backlog-tracer.adoc
@@ -110,5 +110,5 @@ You would need to enable this using the JMX API.
 * xref:tracer-example.adoc[Tracer Example]
 * xref:debugger.adoc[Debugger]
 * xref:delay-interceptor.adoc[Delay Interceptor]
-* xref:log-component.adoc[Log]
+* xref:components::log-component.adoc[Log]
 
diff --git a/docs/user-manual/modules/ROOT/pages/backlogdebugger.adoc 
b/docs/user-manual/modules/ROOT/pages/backlogdebugger.adoc
index 4438f68..e1f01fa 100644
--- a/docs/user-manual/modules/ROOT/pages/backlogdebugger.adoc
+++ b/docs/user-manual/modules/ROOT/pages/backlogdebugger.adoc
@@ -98,5 +98,5 @@ You would need to enable this using the JMX API.
 
 * BacklogTracer
 * xref:debugger.adoc[Debugger]
-* xref:log-component.adoc[Log]
+* xref:components::log-component.adoc[Log]
 
diff --git a/docs/user-manual/modules/ROOT/pages/bam-example.adoc 
b/docs/user-manual/modules/ROOT/pages/bam-example.adoc
index 568b397..ca6462b 100644
--- a/docs/user-manual/modules/ROOT/pages/bam-example.adoc
+++ b/docs/user-manual/modules/ROOT/pages/bam-example.adoc
@@ -76,17 +76,17 @@ the Camel Components
 correlate together the purchase order and invoice messages which can be
 any Expression via any of the
 Languages Supported. In this case we are
-using xref:xpath-language.adoc[XPath].
+using xref:components::xpath-language.adoc[XPath].
 
 Then the final line of code defines the temporal rules to use; namely
 that it is considered to be an error if an invoice is not received
 within 2 seconds of a purchase order being received. When a failure
-occurs in this example we just send it to the xref:log-component.adoc[Log]
+occurs in this example we just send it to the 
xref:components::log-component.adoc[Log]
 component to log out an error level message to commons-logging / log4j.
 You could change this to use some of the other
 Components such as ActiveMQ,
-xref:jms-component.adoc[JMS], xref:jms-component.adoc[IRC], 
xref:jms-component.adoc[Mail],
-xref:xmpp-component.adoc[XMPP] etc.
+xref:components::jms-component.adoc[JMS], 
xref:components::jms-component.adoc[IRC], 
xref:components::jms-component.adoc[Mail],
+xref:components::xmpp-component.adoc[XMPP] etc.
 
 [[BAMExample-Runningtheexample]]
 ==== Running the example
diff --git a/docs/user-manual/modules/ROOT/pages/batch-consumer.adoc 
b/docs/user-manual/modules/ROOT/pages/batch-consumer.adoc
index 7115c47..3cab287 100644
--- a/docs/user-manual/modules/ROOT/pages/batch-consumer.adoc
+++ b/docs/user-manual/modules/ROOT/pages/batch-consumer.adoc
@@ -12,19 +12,19 @@ that a consumer can implement to indicate it support 
batching as well.
 The following components supports xref:batch-consumer.adoc[Batch
 Consumer] by its consumer:
 
-* xref:atom-component.adoc[Atom]
+* xref:components::atom-component.adoc[Atom]
 * File
 * FTP
-* xref:hbase-component.adoc[hbase]
+* xref:components::hbase-component.adoc[hbase]
 * xref:ibatis-component.adoc[iBatis]
-* xref:jpa-component.adoc[JPA]
-* xref:jclouds-component.adoc[JCLOUDS]
-* xref:mail-component.adoc[Mail]
-* xref:mybatis-component.adoc[MyBatis]
-* xref:snmp-component.adoc[SNMP]
-* xref:sql-component.adoc[SQL]
-* xref:aws-sqs-component.adoc[SQS]
-* xref:aws-s3-component.adoc[S3]
+* xref:components::jpa-component.adoc[JPA]
+* xref:components::jclouds-component.adoc[JCLOUDS]
+* xref:components::mail-component.adoc[Mail]
+* xref:components::mybatis-component.adoc[MyBatis]
+* xref:components::snmp-component.adoc[SNMP]
+* xref:components::sql-component.adoc[SQL]
+* xref:components::aws-sqs-component.adoc[SQS]
+* xref:components::aws-s3-component.adoc[S3]
 
 [[BatchConsumer-ConsumerOptions]]
 ==== Consumer Options
diff --git a/docs/user-manual/modules/ROOT/pages/bean-eip.adoc 
b/docs/user-manual/modules/ROOT/pages/bean-eip.adoc
index d0c9ccc..003c728 100644
--- a/docs/user-manual/modules/ROOT/pages/bean-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/bean-eip.adoc
@@ -30,7 +30,7 @@ The Bean EIP supports 4 options which are listed below:
 
 === Bean as endpoint
 
-Camel also supports invoking xref:bean-component.adoc[Bean] as an Endpoint. In 
the
+Camel also supports invoking xref:components::bean-component.adoc[Bean] as an 
Endpoint. In the
 route below:
 
 What happens is that when the exchange is routed to the `myBean` Camel
@@ -43,7 +43,7 @@ type and storing the output of the method on the Exchange Out 
body.
 
 === Java DSL bean syntax
 
-Java DSL comes with syntactic sugar for the xref:bean-component.adoc[Bean]
+Java DSL comes with syntactic sugar for the 
xref:components::bean-component.adoc[Bean]
 component. Instead of specifying the bean explicitly as the endpoint
 (i.e. `to("bean:beanName")`) you can use the following syntax:
 
@@ -84,6 +84,6 @@ mechanisms in Camel.
 
 === See also
 
-* xref:class-component.adoc[Class] component
+* xref:components::class-component.adoc[Class] component
 * 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 8f40c19..afd9b3d 100644
--- a/docs/user-manual/modules/ROOT/pages/bean-integration.adoc
+++ b/docs/user-manual/modules/ROOT/pages/bean-integration.adoc
@@ -64,8 +64,8 @@ to use the annotations for routing and messaging.
 [[BeanIntegration-BeanComponent]]
 ==== Bean Component
 
-The xref:bean-component.adoc[Bean] component allows one to invoke a particular
-method. Alternately the xref:bean-component.adoc[Bean] component supports the
+The xref:components::bean-component.adoc[Bean] component allows one to invoke 
a particular
+method. Alternately the xref:components::bean-component.adoc[Bean] component 
supports the
 creation of a proxy via
 
http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/component/bean/ProxyHelper.html[ProxyHelper]
 to a Java interface; which the implementation just sends a message
@@ -90,7 +90,7 @@ headers and so forth.
 *Bean binding*
 
 Whenever Camel invokes a bean method via one of the above methods
-(xref:bean-component.adoc[Bean] component, xref:spring-remoting.adoc[Spring
+(xref:components::bean-component.adoc[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/browsable-endpoint.adoc 
b/docs/user-manual/modules/ROOT/pages/browsable-endpoint.adoc
index 01550b5..ba5e80d 100644
--- a/docs/user-manual/modules/ROOT/pages/browsable-endpoint.adoc
+++ b/docs/user-manual/modules/ROOT/pages/browsable-endpoint.adoc
@@ -8,9 +8,9 @@ which are pending or have been sent on it.
 
 Some example implementations include
 
-* xref:jms-component.adoc[JMS] for queues only (as of 1.3.0)
+* xref:components::jms-component.adoc[JMS] for queues only (as of 1.3.0)
 * List
-* xref:mock-component.adoc[Mock]
-* xref:seda-component.adoc[Seda]
-* xref:vm-component.adoc[VM]
+* xref:components::mock-component.adoc[Mock]
+* xref:components::seda-component.adoc[Seda]
+* xref:components::vm-component.adoc[VM]
 
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 7e701e0..2a1f91f 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-configuration-utilities.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-configuration-utilities.adoc
@@ -13,20 +13,20 @@ of custom transport layer security (TLS) settings on Camel 
components.
 The following Camel components directly support the use of this
 configuration utility:
 
-* xref:http4-component.adoc[HTTP4]
-* xref:jetty-component.adoc[Jetty]
-* xref:ahc-component.adoc[AHC]
+* xref:components::http4-component.adoc[HTTP4]
+* xref:components::jetty-component.adoc[Jetty]
+* xref:components::ahc-component.adoc[AHC]
 * xref:netty-component.adoc[Netty]
-* xref:cometd-component.adoc[Cometd]
+* xref:components::cometd-component.adoc[Cometd]
 * FTP2
-* xref:irc-component.adoc[IRC]
-* xref:mail-component.adoc[Mail]
+* xref:components::irc-component.adoc[IRC]
+* xref:components::mail-component.adoc[Mail]
 * MINA 2
 
 The following Camel components indirectly support the use of this
 configuration utility:
 
-* xref:cxf-component.adoc[CXF]
+* xref:components::cxf-component.adoc[CXF]
 * xref:http-component.adoc[HTTP]
 
 [[CamelConfigurationUtilities-Configuration]]
diff --git a/docs/user-manual/modules/ROOT/pages/configuring-camel.adoc 
b/docs/user-manual/modules/ROOT/pages/configuring-camel.adoc
index 716f3e0..30d5a15 100644
--- a/docs/user-manual/modules/ROOT/pages/configuring-camel.adoc
+++ b/docs/user-manual/modules/ROOT/pages/configuring-camel.adoc
@@ -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 xref:spring.adoc[Spring] based auto-wiring, or to
+such as to support xref:components::spring.adoc[Spring] based auto-wiring, or 
to
 support `@Resource` (EJB3 style) injection or Guice style `@Inject`
 injection.
 
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 c6202a5..6581e7b 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
@@ -90,7 +90,7 @@ 
from("activemq:queue:special").noAutoStartup().to("file://backup");
 *Available as of Camel 2.9*
 
 To startup based on a boolean, String or
-xref:properties-component.adoc[Property], do one of the following:
+xref:components::properties-component.adoc[Property], do one of the following:
 
 [source,java]
 ----
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 7801314..08a9d98 100644
--- a/docs/user-manual/modules/ROOT/pages/content-filter-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/content-filter-eip.adoc
@@ -16,7 +16,7 @@ 
image:http://www.enterpriseintegrationpatterns.com/img/ContentFilter.gif[image]
 
 A common way to filter messages is to use an
 xref:Expression-Expressions.adoc[Expression] in the xref:DSL-DSL.adoc[DSL] like
-xref:xquery-language.adoc[XQuery], xref:sql-language.adoc[SQL] or one of the 
supported
+xref:components::xquery-language.adoc[XQuery], xref:sql-language.adoc[SQL] or 
one of the supported
 xref:ScriptingLanguages-ScriptingLanguages.adoc[Scripting Languages].
 
 === Using the xref:FluentBuilders-FluentBuilders.adoc[Fluent Builders]
diff --git a/docs/user-manual/modules/ROOT/pages/correlation-identifier.adoc 
b/docs/user-manual/modules/ROOT/pages/correlation-identifier.adoc
index 42662b3..38af51f 100644
--- a/docs/user-manual/modules/ROOT/pages/correlation-identifier.adoc
+++ b/docs/user-manual/modules/ROOT/pages/correlation-identifier.adoc
@@ -18,7 +18,7 @@ 
image:http://www.enterpriseintegrationpatterns.com/img/CorrelationIdentifierSolu
 The use of a Correlation Identifier is key to working with the
 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 xref:mock-component.adoc[Mock testing framework]
+with the xref:components::mock-component.adoc[Mock testing framework]
 
 Some xref:eip.adoc[EIP] patterns will spin off a sub message, and in
 those cases, Camel will add a correlation id on the
@@ -31,7 +31,7 @@ Tap] EIP does this.
 
 The following example demonstrates using the Camel JMSMessageID as the
 Correlation Identifier within a request/reply pattern in
-the xref:jms-component.adoc[JMS] component
+the xref:components::jms-component.adoc[JMS] component
 
 === Samples
 
diff --git a/docs/user-manual/modules/ROOT/pages/data-format.adoc 
b/docs/user-manual/modules/ROOT/pages/data-format.adoc
index 05ec6d7..0ccd9e2 100644
--- a/docs/user-manual/modules/ROOT/pages/data-format.adoc
+++ b/docs/user-manual/modules/ROOT/pages/data-format.adoc
@@ -12,20 +12,20 @@ The following data formats are currently supported:
 ** xref:string-dataformat.adoc[String]
 
 * Object marshalling
-** xref:avro-dataformat.adoc[Avro]
-** xref:boon-dataformat.adoc[Boon]
+** xref:components::avro-dataformat.adoc[Avro]
+** xref:components::boon-dataformat.adoc[Boon]
 ** xref:hessian-dataformat.adoc[Hessian]
 ** xref:json.adoc[JSON]
-** xref:protobuf-dataformat.adoc[Protobuf]
-** xref:yaml-snakeyaml-dataformat.adoc[YAML]
+** xref:components::protobuf-dataformat.adoc[Protobuf]
+** xref:components::yaml-snakeyaml-dataformat.adoc[YAML]
 
 * Object/XML marshalling
 ** xref:castor-dataformat.adoc[Castor]
-** xref:jaxb-dataformat.adoc[JAXB]
+** xref:components::jaxb-dataformat.adoc[JAXB]
 ** xref:xmlBeans-dataformat.adoc[XmlBeans]
-** xref:xstream-dataformat.adoc[XStream]
+** xref:components::xstream-dataformat.adoc[XStream]
 ** xref:jibx-dataformat.adoc[JiBX]
-** xref:jacksonxml-dataformat.adoc[Jackson XML]
+** xref:components::jacksonxml-dataformat.adoc[Jackson XML]
 
 * Object/XML/Webservice marshalling
 ** xref:soap-dataformat.adoc[SOAP]
@@ -34,43 +34,43 @@ The following data formats are currently supported:
 ** xref:xmljson-dataformat.adoc[XmlJson]
 
 * Flat data structure marshalling
-** xref:beanio-dataformat.adoc[BeanIO]
-** xref:bindy-dataformat.adoc[Bindy]
-** xref:csv-dataformat.adoc[CSV]
+** xref:components::beanio-dataformat.adoc[BeanIO]
+** xref:components::bindy-dataformat.adoc[Bindy]
+** xref:components::csv-dataformat.adoc[CSV]
 ** xref:edi-dataformat.adoc[EDI]
-** xref:flatpack-dataformat.adoc[Flatpack DataFormat]
-** uniVocity DataFormats xref:univocity-csv-dataformat.adoc[CSV] / 
xref:univocity-tsv-dataformat.adoc[TSV] / 
xref:univocity-fixed-dataformat.adoc[Fixed Length]
+** xref:components::flatpack-dataformat.adoc[Flatpack DataFormat]
+** uniVocity DataFormats xref:components::univocity-csv-dataformat.adoc[CSV] / 
xref:components::univocity-tsv-dataformat.adoc[TSV] / 
xref:components::univocity-fixed-dataformat.adoc[Fixed Length]
 
 * Domain specific marshalling
-** xref:hl7-dataformat.adoc[HL7 DataFormat]
+** xref:components::hl7-dataformat.adoc[HL7 DataFormat]
 
 * Compression
 ** xref:gzip-dataformat.adoc[GZip DataFormat]
 ** xref:zip-dataformat.adoc[Zip DataFormat]
-** xref:zipfile-dataformat.adoc[Zip File DataFormat]
-** xref:lzf-dataformat.adoc[LZF Data Format]
+** xref:components::zipfile-dataformat.adoc[Zip File DataFormat]
+** xref:components::lzf-dataformat.adoc[LZF Data Format]
 ** xref:tar-dataformat.adoc[Tar DataFormat]
 
 * Security
-** xref:crypto-component.adoc[Crypto]
-** xref:crypto-component.adoc[PGP]
-** xref:secureXML-dataformat.adoc[XMLSecurity DataFormat]
+** xref:components::crypto-component.adoc[Crypto]
+** xref:components::crypto-component.adoc[PGP]
+** xref:components::secureXML-dataformat.adoc[XMLSecurity DataFormat]
 
 * Misc.
-** xref:base64-dataformat.adoc[Base64]
+** xref:components::base64-dataformat.adoc[Base64]
 ** xref:custom-dataformat.adoc[Custom DataFormat] -- to use your own
 custom implementation
-** xref:mime-multipart-dataformat.adoc[MIME-Multipart]
-** xref:rss-dataformat.adoc[RSS]
+** xref:components::mime-multipart-dataformat.adoc[MIME-Multipart]
+** xref:components::rss-dataformat.adoc[RSS]
 ** xref:tidymarkup-dataformat.adoc[TidyMarkup]
-** xref:syslog-dataformat.adoc[Syslog]
-** xref:ical-dataformat.adoc[ICal]
-** xref:barcode-dataformat.adoc[Barcode] -- to read and generate barcodes
+** xref:components::syslog-dataformat.adoc[Syslog]
+** xref:components::ical-dataformat.adoc[ICal]
+** xref:components::barcode-dataformat.adoc[Barcode] -- to read and generate 
barcodes
 (QR-Code, PDF417, ...)
 
 And related is the following:
 
-* xref:dataformat-component.adoc[DataFormat Component] for working with
+* xref:components::dataformat-component.adoc[DataFormat Component] for working 
with
   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
@@ -80,8 +80,8 @@ And related is the following:
 ==== Unmarshalling
 
 If you receive a message from one of the Camel
-xref:component.adoc[Components] such as xref:file-component.adoc[File],
-xref:http-component.adoc[HTTP] or xref:jms-component.adoc[JMS] you often want 
to unmarshal
+xref:component.adoc[Components] such as 
xref:components::file-component.adoc[File],
+xref:http-component.adoc[HTTP] or xref:components::jms-component.adoc[JMS] you 
often want to unmarshal
 the payload into some bean so that you can process it using some
 xref:bean-integration.adoc[Bean Integration] or perform
 xref:predicate.adoc[Predicate] evaluation and so forth. To do this use
@@ -102,7 +102,7 @@ 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
-xref:registry.adoc[Registry] such as via your xref:spring.adoc[Spring]
+xref:registry.adoc[Registry] such as via your 
xref:components::spring.adoc[Spring]
 XML file.
 
 You can also use the DSL itself to define the data format as you use it.
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 ed42735..01889dc 100644
--- a/docs/user-manual/modules/ROOT/pages/dead-letter-channel.adoc
+++ b/docs/user-manual/modules/ROOT/pages/dead-letter-channel.adoc
@@ -323,7 +323,7 @@ failed.
 
 These information is kept on the Exchange even if the message
 was successfully processed by a given endpoint, and then later fails for
-example in a local xref:bean-component.adoc[Bean] processing instead. So beware
+example in a local xref:components::bean-component.adoc[Bean] processing 
instead. So beware
 that this is a hint that helps pinpoint errors.
 
 [source,java]
diff --git a/docs/user-manual/modules/ROOT/pages/dsl.adoc 
b/docs/user-manual/modules/ROOT/pages/dsl.adoc
index 9c20375..0f53368 100644
--- a/docs/user-manual/modules/ROOT/pages/dsl.adoc
+++ b/docs/user-manual/modules/ROOT/pages/dsl.adoc
@@ -8,7 +8,7 @@ languages (DSL) as listed below.
 
 * xref:java-dsl.adoc[Java DSL] - A Java based DSL using the fluent
 builder style.
-* xref:spring.adoc[Spring XML] - A XML based DSL in Spring XML files
+* xref:components::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
diff --git a/docs/user-manual/modules/ROOT/pages/dynamic-router.adoc 
b/docs/user-manual/modules/ROOT/pages/dynamic-router.adoc
index c4c592e..e6866fd 100644
--- a/docs/user-manual/modules/ROOT/pages/dynamic-router.adoc
+++ b/docs/user-manual/modules/ROOT/pages/dynamic-router.adoc
@@ -60,7 +60,7 @@ from("direct:start")
     .dynamicRouter(method(DynamicRouterTest.class, "slip"));
 ----
 
-Which will leverage a xref:bean-component.adoc[Bean] to compute the slip
+Which will leverage a xref:components::bean-component.adoc[Bean] to compute 
the slip
 _on-the-fly_, which could be implemented as follows:
 
 [source,java]
@@ -191,12 +191,12 @@ In the above we can use the
 Parameter Binding Annotations
 to bind different parts of the Message to method
 parameters or use an Expression such as using
-xref:xpath-language.adoc[XPath] or xref:xpath-language.adoc[XQuery].
+xref:components::xpath-language.adoc[XPath] or 
xref:components::xpath-language.adoc[XQuery].
 
 The method can be invoked in a number of ways as described in the
 Bean Integration such as
 
 * POJO Producing
 * Spring Remoting
-* xref:bean-component.adoc[Bean] component
+* xref:components::bean-component.adoc[Bean] component
 
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 337c8db..439e7b3 100644
--- a/docs/user-manual/modules/ROOT/pages/enterprise-integration-patterns.adoc
+++ b/docs/user-manual/modules/ROOT/pages/enterprise-integration-patterns.adoc
@@ -288,7 +288,7 @@ and via non-messaging techniques?
 [width="100%",cols="10%,10%,80%",]
 |=======================================================================
 |image:http://www.eaipatterns.com/img/ControlBusIcon.gif[image]
-|xref:controlbus-component.adoc[ControlBus] |How can we effectively administer 
a
+|xref:components::controlbus-component.adoc[ControlBus] |How can we 
effectively administer a
 messaging system that is distributed across multiple platforms and a
 wide geographic area?
 
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 6aff968..029a753 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
@@ -61,7 +61,7 @@ ERROR level :star:
 A dead letter queue is like a black hole, it will consume the
 xref:exchange.adoc[Exchange] and the xref:exchange.adoc[Exchange]
 routing is ended with no indication that it failed. +
-This works great in the xref:jms-component.adoc[JMS] Messaging world where we
+This works great in the xref:components::jms-component.adoc[JMS] Messaging 
world where we
 don't want a bad message to cause endless retries and causing the system
 to exhaust. The message is said to be poison and thus we want to move it
 to a dead letter queue so the system can continue to operate and work
@@ -175,9 +175,9 @@ just a ERROR logger.
 [NOTE]
 ====
 This applies to all kind of xref:component.adoc[Components] in Camel.
-The sample above only uses xref:bean-component.adoc[Bean] but it's the same for
-xref:file-component.adoc[File], xref:mail-component.adoc[Mail],
-xref:velocity-component.adoc[Velocity] or whatever component you use.
+The sample above only uses xref:components::bean-component.adoc[Bean] but it's 
the same for
+xref:components::file-component.adoc[File], 
xref:components::mail-component.adoc[Mail],
+xref:components::velocity-component.adoc[Velocity] or whatever component you 
use.
 ====
 
 [[ErrorhandlinginCamel-Transactional]]
diff --git a/docs/user-manual/modules/ROOT/pages/event-message.adoc 
b/docs/user-manual/modules/ROOT/pages/event-message.adoc
index 5fa45f0..48f2a15 100644
--- a/docs/user-manual/modules/ROOT/pages/event-message.adoc
+++ b/docs/user-manual/modules/ROOT/pages/event-message.adoc
@@ -12,8 +12,8 @@ implement this pattern using the underlying transport or 
protocols.
 
image:http://www.enterpriseintegrationpatterns.com/img/EventMessageSolution.gif[image]
 
 The default behaviour of many xref:components.adoc[Components] is InOnly
-such as for xref:jms-component.adoc[JMS], xref:jms-component.adoc[File] or
-xref:seda-component.adoc[SEDA]
+such as for xref:components::jms-component.adoc[JMS], 
xref:components::jms-component.adoc[File] or
+xref:components::seda-component.adoc[SEDA]
 
 TIP: See the related xref:request-reply.adoc[Request Reply] message.
 
diff --git a/docs/user-manual/modules/ROOT/pages/eventDrivenConsumer-eip.adoc 
b/docs/user-manual/modules/ROOT/pages/eventDrivenConsumer-eip.adoc
index 47a2d62..2fc4f98 100644
--- a/docs/user-manual/modules/ROOT/pages/eventDrivenConsumer-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/eventDrivenConsumer-eip.adoc
@@ -22,7 +22,7 @@ when a xref:message-eip.adoc[Message] is available for 
processing.
 The following demonstrates a
 
http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Processor.html[Processor]
 defined in the Camel xref:Registry-Registry.adoc[Registry] which is
-invoked when an event occurs from a xref:jms-component.adoc[JMS] queue.
+invoked when an event occurs from a xref:components::jms-component.adoc[JMS] 
queue.
 
 *Using the xref:FluentBuilders-FluentBuilders.adoc[Fluent Builders]*
 
diff --git a/docs/user-manual/modules/ROOT/pages/exception-clause.adoc 
b/docs/user-manual/modules/ROOT/pages/exception-clause.adoc
index fca12a5..860b15a 100644
--- a/docs/user-manual/modules/ROOT/pages/exception-clause.adoc
+++ b/docs/user-manual/modules/ROOT/pages/exception-clause.adoc
@@ -25,7 +25,7 @@ from("seda:inputB")
 Here if the processing of *`seda:inputA`* or *`seda:inputB`* cause
 a *`ValidationException`* to be thrown (such as due to the XSD
 validation of the xref:validator-components.adoc[Validation] component or the
-Relax NG Compact syntax validation of the xref:jing-component.adoc[Jing]
+Relax NG Compact syntax validation of the 
xref:components::jing-component.adoc[Jing]
 component), then the message will be sent to the
 *`activemq:validationFailed`* queue.
 
diff --git a/docs/user-manual/modules/ROOT/pages/exchange-pattern.adoc 
b/docs/user-manual/modules/ROOT/pages/exchange-pattern.adoc
index ea782da..adbbea8 100644
--- a/docs/user-manual/modules/ROOT/pages/exchange-pattern.adoc
+++ b/docs/user-manual/modules/ROOT/pages/exchange-pattern.adoc
@@ -17,7 +17,7 @@ the Message Exchange indicating if a message
 exchange is a one way Event Message (InOnly) or
 a Request Reply message exchange (InOut).
 
-For example to override the default pattern on a xref:jms-component.adoc[JMS]
+For example to override the default pattern on a 
xref:components::jms-component.adoc[JMS]
 endpoint you could use this URI
 
 [source,java]
diff --git a/docs/user-manual/modules/ROOT/pages/expression.adoc 
b/docs/user-manual/modules/ROOT/pages/expression.adoc
index 82cbf26..ee241aa 100644
--- a/docs/user-manual/modules/ROOT/pages/expression.adoc
+++ b/docs/user-manual/modules/ROOT/pages/expression.adoc
@@ -72,27 +72,27 @@ The following languages are supported out of the box
 * xref:constant-language.adoc[Constant]
 * the unified xref:el-language.adoc[EL] from JSP and JSF
 * xref:header-language.adoc[Header]
-* xref:jsonpath-language.adoc[JSonPath]
+* xref:components::jsonpath-language.adoc[JSonPath]
 * xref:jxpath-language.adoc[JXPath]
-* xref:mvel-component.adoc[Mvel]
-* xref:ognl-language.adoc[OGNL]
+* xref:components::mvel-component.adoc[Mvel]
+* xref:components::ognl-language.adoc[OGNL]
 * xref:ref-language.adoc[Ref Language]
 * ExchangeProperty
 / Property
 * Scripting Languages such as
 ** BeanShell
 ** JavaScript
-** xref:groovy-language.adoc[Groovy]
+** xref:components::groovy-language.adoc[Groovy]
 ** xref:python-language.adoc[Python]
 ** xref:php-language.adoc[PHP]
 ** xref:ruby-language.adoc[Ruby]
 * xref:simple-language.adoc[Simple]
 ** xref:file-language.adoc[File Language]
-* xref:spel-language.adoc[Spring Expression Language]
-* xref:sql-component.adoc[SQL]
+* xref:components::spel-language.adoc[Spring Expression Language]
+* xref:components::sql-component.adoc[SQL]
 * Tokenizer
-* xref:xpath-language.adoc[XPath]
-* xref:xquery-component.adoc[XQuery]
+* xref:components::xpath-language.adoc[XPath]
+* xref:components::xquery-component.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
@@ -112,14 +112,14 @@ wish to use.
 
 |Scripting Languages such as
 BeanShell, JavaScript,
-xref:groovy-language.adoc[Groovy], xref:groovy-language.adoc[PHP], 
xref:groovy-language.adoc[Python]
+xref:components::groovy-language.adoc[Groovy], 
xref:components::groovy-language.adoc[PHP], 
xref:components::groovy-language.adoc[Python]
 and xref:ruby-language.adoc[Ruby] 
|http://camel.apache.org/maven/current/camel-script/apidocs/org/apache/camel/builder/script/ScriptBuilder.html[org.apache.camel.builder.script.ScriptBuilder]
 
-|xref:sql-component.adoc[SQL] 
|http://camel.apache.org/maven/current/camel-josql/apidocs/org/apache/camel/builder/sql/SqlBuilder.html[org.apache.camel.builder.josql.SqlBuilder]
+|xref:components::sql-component.adoc[SQL] 
|http://camel.apache.org/maven/current/camel-josql/apidocs/org/apache/camel/builder/sql/SqlBuilder.html[org.apache.camel.builder.josql.SqlBuilder]
 
-|xref:xpath-language.adoc[XPath] 
|http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/builder/xml/XPathBuilder.html[org.apache.camel.builder.xml.XPathBuilder]
+|xref:components::xpath-language.adoc[XPath] 
|http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/builder/xml/XPathBuilder.html[org.apache.camel.builder.xml.XPathBuilder]
 
-|xref:xquery-component.adoc[XQuery] 
|http://camel.apache.org/maven/current/camel-saxon/apidocs/org/apache/camel/builder/saxon/XQueryBuilder.html[org.apache.camel.builder.saxon.XQueryBuilder]
+|xref:components::xquery-component.adoc[XQuery] 
|http://camel.apache.org/maven/current/camel-saxon/apidocs/org/apache/camel/builder/saxon/XQueryBuilder.html[org.apache.camel.builder.saxon.XQueryBuilder]
 |=======================================================================
 
 [[Expression-SeeAlso]]
diff --git a/docs/user-manual/modules/ROOT/pages/faq.adoc 
b/docs/user-manual/modules/ROOT/pages/faq.adoc
index 7d1b5ea..88df8cf 100644
--- a/docs/user-manual/modules/ROOT/pages/faq.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq.adoc
@@ -124,7 +124,7 @@ Questions on using Apache Camel
 ==== Logging Questions
 
 Questions on logging output from Camel to a console, using the
-xref:log-component.adoc[Log] endpoint or JDK 1.4 logging or Log4j etc
+xref:components::log-component.adoc[Log] endpoint or JDK 1.4 logging or Log4j 
etc
 
 * 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?]
@@ -150,7 +150,7 @@ Questions on using specific components
 [[FAQ-JMSQuestions]]
 ===== JMS Questions
 
-Questions on using the xref:jms-component.adoc[JMS] endpoints in Camel
+Questions on using the xref:components::jms-component.adoc[JMS] endpoints in 
Camel
 
 * 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?]
 
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 2df3ca4..b706df7 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 xref:spring.adoc[Spring] using code
+If you try to use Camel without xref:components::spring.adoc[Spring] using code
 something like this:
 
 [source,java]
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 96fd13b..05c67a8 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
@@ -58,7 +58,7 @@ A route must have been stopped prior to be shutdown.
 
 See more details about the xref:lifecycle.adoc[Lifecycle].
 
-NOTE: You can also use the xref:controlbus-component.adoc[ControlBus] 
component to let
+NOTE: You can also use the 
xref:components::controlbus-component.adoc[ControlBus] component to let
 it stop/start routes.
 
 [[HowcanIstoparoutefromaroute-SeeAlso]]
@@ -67,4 +67,4 @@ it stop/start routes.
 * xref:routepolicy.adoc[RoutePolicy]
 * xref:graceful-shutdown.adoc[Graceful Shutdown]
 * xref:lifecycle.adoc[Lifecycle]
-* xref:controlbus-component.adoc[ControlBus]
+* xref:components::controlbus-component.adoc[ControlBus]
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 860325e..743d4fe 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
@@ -11,7 +11,7 @@ You can explicitly configure a Component using Java
 code as shown in this example
 
 Or you can explicitly get hold of an Endpoint and
-configure it using Java code as shown in the xref:mock-component.adoc[Mock 
endpoint examples].
+configure it using Java code as shown in the 
xref:components::mock-component.adoc[Mock endpoint examples].
 
 [source,java]
 ----
@@ -115,7 +115,7 @@ URIs
 ==== Using Endpoint URIs
 
 Another approach is to use the URI syntax. The URI syntax supports the
-query notation. So for example with the xref:mail-component.adoc[Mail] 
component
+query notation. So for example with the 
xref:components::mail-component.adoc[Mail] component
 you can configure the password property via the URI
 
 [source]
@@ -312,6 +312,6 @@ can have multiple options in one line, eg this is the same:
 
 * xref:configuring-camel.adoc[How do I add a component?]
 * xref:cdi-component.adoc[CDI]
-* xref:spring.adoc[Spring]
+* xref:components::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-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 7ca91f4..caf5b0b 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
@@ -14,7 +14,7 @@ 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?
 
-The xref:ftp-component.adoc[FTP] component have a few options
+The xref:components::ftp-component.adoc[FTP] component have a few options
 (`maximumReconnectAttempts, reconnectDelay` to control number of retries
 and delay in between.
 
@@ -27,5 +27,5 @@ a `ScheduledPollConsumer` consumer. The page lists those.
 [[HowdoIhandlefailureswhenconsumingforexamplefromaFTPserver-Seealso]]
 ==== See also
 
-* xref:ftp-component.adoc[FTP]
+* xref:components::ftp-component.adoc[FTP]
 * xref:pollingConsumer-eip.adoc[Polling Consumer]
diff --git 
a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-let-jetty-match-wildcards.adoc
 
b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-let-jetty-match-wildcards.adoc
index d65f2bf..7ef41c8 100644
--- 
a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-let-jetty-match-wildcards.adoc
+++ 
b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-let-jetty-match-wildcards.adoc
@@ -1,7 +1,7 @@
 [[HowdoIletJettymatchwildcards-HowdoIletJettymatchwildcards]]
 === How do I let Jetty match wildcards?
 
-By default xref:jetty-component.adoc[Jetty] will only match on exact uri's. But
+By default xref:components::jetty-component.adoc[Jetty] will only match on 
exact uri's. But
 you can instruct Jetty to match prefixes. For example:
 
 [source,java]
@@ -9,7 +9,7 @@ you can instruct Jetty to match prefixes. For example:
 from("jetty://0.0.0.0:8123/foo").to("mock:foo");
 ----
 
-In the route above xref:jetty-component.adoc[Jetty] will only match if the uri 
is
+In the route above xref:components::jetty-component.adoc[Jetty] will only 
match if the uri is
 an exact match, so it will match if you enter
 `\http://0.0.0.0:8123/foo` but not match if you do
 `\http://0.0.0.0:8123/foo/bar`.
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 050be48..d933bd0 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
@@ -19,7 +19,7 @@ How Do I Make It Transactional?
 
 There are examples in the xref:transactionalClient-eip.adoc[Transactional 
Client]
 and it is described in the _Enabling Transacted Consumption_
-section of xref:jms-component.adoc[JMS]. To make a session transactional
+section of xref:components::jms-component.adoc[JMS]. To make a session 
transactional
 set `transacted=true` flag on the JMS endpoint and configure
 a `transactionManager` on the xref:component.adoc[Component] or
 xref:endpoint.adoc[Endpoint].
@@ -28,4 +28,4 @@ xref:endpoint.adoc[Endpoint].
 ==== See Also
 
 * xref:transactionalClient-eip.adoc[Transactional Client]
-* xref:jms-component.adoc[JMS]
+* xref:components::jms-component.adoc[JMS]
diff --git 
a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-retry-processing-a-message-from-a-certain-point-back-or-an-entire-route.adoc
 
b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-retry-processing-a-message-from-a-certain-point-back-or-an-entire-route.adoc
index 3569d68..f695621 100644
--- 
a/docs/user-manual/modules/ROOT/pages/faq/how-do-i-retry-processing-a-message-from-a-certain-point-back-or-an-entire-route.adoc
+++ 
b/docs/user-manual/modules/ROOT/pages/faq/how-do-i-retry-processing-a-message-from-a-certain-point-back-or-an-entire-route.adoc
@@ -9,7 +9,7 @@ In the example above we have 2 routes (`direct:start`, 
`direct:sub`). In
 case of a failure anywhere in the `direct:sub` route, then the entire
 route is retried. This happens because we have instructed the `direct:sub`
 route to not use any error handler (eg the no error handler). Then we
-link the routes using the xref:direct-component.adoc[Direct] component by 
calling
+link the routes using the xref:components::direct-component.adoc[Direct] 
component by calling
 the sub route from the 1st route.
 
 [source,java]
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 ba3b709..9273613 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
@@ -22,7 +22,7 @@ You can use the following short syntax, which is most common 
to use:
 |s |second
 |============
 
-So for example the xref:timer-component.adoc[Timer] endpoint can be configured 
as
+So for example the xref:components::timer-component.adoc[Timer] endpoint can 
be configured as
 follows:
 
 [source,java]
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 049d312..98186ae 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,7 +1,7 @@
 
[[HodoIspecifywhichmethodtousewhenusingbeansinroutes-HodoIspecifywhichmethodtousewhenusingbeansinroutes]]
 === Ho do I specify which method to use when using beans in routes?
 
-See xref:bean-component.adoc[Bean], xref:bean-integration.adoc[Bean 
Integration]
+See xref:components::bean-component.adoc[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
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 0d5e6bf..69fc8a3 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
@@ -30,7 +30,7 @@ Camel XML. For example at the time of writing this is *NOT* 
supported
 
 However you can use the `<endpoint/>` element to define endpoints which
 does support the property resolving which you can then refer to by name,
-using the xref:ref-component.adoc[Ref] component as shown below (notice the 
`ref:`
+using the xref:components::ref-component.adoc[Ref] component as shown below 
(notice the `ref:`
 in the URI):
 
 *SUPPORTED*
@@ -72,6 +72,6 @@ Here is a trick that you can use to define the uri in a 
property file
 using Spring injection and Camel endpoint:
 
http://cmoulliard.blogspot.com/2009/05/trick-to-pass-uri-declared-in-property.html.
 
-From Camel 2.3 onwards there is a xref:properties-component.adoc[Properties]
+From Camel 2.3 onwards there is a 
xref:components::properties-component.adoc[Properties]
 component build in Camel core which allows you to use properties in the
 same way as Spring property placeholders, and even more.
diff --git 
a/docs/user-manual/modules/ROOT/pages/faq/how-do-the-direct-event-seda-and-vm-endpoints-compare.adoc
 
b/docs/user-manual/modules/ROOT/pages/faq/how-do-the-direct-event-seda-and-vm-endpoints-compare.adoc
index 6ba2814..a58b75f 100644
--- 
a/docs/user-manual/modules/ROOT/pages/faq/how-do-the-direct-event-seda-and-vm-endpoints-compare.adoc
+++ 
b/docs/user-manual/modules/ROOT/pages/faq/how-do-the-direct-event-seda-and-vm-endpoints-compare.adoc
@@ -1,14 +1,14 @@
 
[[Howdothedirecteventsedaandvmendpointscompare-Howdothedirecteventsedaandvmendpointscompare]]
 === How do the `direct`, `event`, `seda`, and `vm` endpoints compare?
 
-* xref:vm-component.adoc[VM] and xref:seda-component.adoc[SEDA] endpoints are 
basically the
+* xref:components::vm-component.adoc[VM] and 
xref:components::seda-component.adoc[SEDA] endpoints are basically the
 same; they both offer asychronous in memory SEDA queues; they differ in
 visibility -- endpoints are visible inside the same JVM or within the same
 CamelContext respectively.
-* xref:direct-component.adoc[Direct] uses no threading; it directly invokes the
+* xref:components::direct-component.adoc[Direct] uses no threading; it 
directly invokes the
 consumer when sending.
-* xref:spring-event-component.adoc[Spring Event] adds a listener to Spring's
+* xref:components::spring-event-component.adoc[Spring Event] adds a listener 
to Spring's
 application events; so the consumer is invoked the same thread as Spring
 notifies events. Event differs in that the payload should be a Spring
-`ApplicationEvent` object whereas xref:direct-component.adoc[Direct],
-xref:seda-component.adoc[SEDA] and xref:vm-component.adoc[VM] can use any 
payload.
+`ApplicationEvent` object whereas 
xref:components::direct-component.adoc[Direct],
+xref:components::seda-component.adoc[SEDA] and 
xref:components::vm-component.adoc[VM] can use any payload.
diff --git 
a/docs/user-manual/modules/ROOT/pages/faq/how-do-the-timer-and-quartz-endpoints-compare.adoc
 
b/docs/user-manual/modules/ROOT/pages/faq/how-do-the-timer-and-quartz-endpoints-compare.adoc
index f244cae..9fd6616 100644
--- 
a/docs/user-manual/modules/ROOT/pages/faq/how-do-the-timer-and-quartz-endpoints-compare.adoc
+++ 
b/docs/user-manual/modules/ROOT/pages/faq/how-do-the-timer-and-quartz-endpoints-compare.adoc
@@ -1,7 +1,7 @@
 
[[HowdotheTimerandQuartzendpointscompare-HowdotheTimerandQuartzendpointscompare]]
 === How do the Timer and Quartz endpoints compare?
 
-xref:timer-component.adoc[Timer] is a simple, non persistence timer using the
+xref:components::timer-component.adoc[Timer] is a simple, non persistence 
timer using the
 JDK's in built timer mechanism.
 
 xref:quartz-component.adoc[Quartz] uses the Quartz library which uses a 
database
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 5937cd3..0e38d6b 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
@@ -13,8 +13,8 @@ routing/mediation engines. The main differences are as 
follows:
   xref:enterprise-integration-patterns.adoc[Enterprise Integration
   Patterns]
 * Camel's API is smaller & cleaner (IMHO) and is closely aligned with
-  the APIs of JBI, xref:cxf-component.adoc[CXF] and
-  xref:jms-component.adoc[JMS]; based around message exchanges (with in and 
optional
+  the APIs of JBI, xref:components::cxf-component.adoc[CXF] and
+  xref:components::jms-component.adoc[JMS]; based around message exchanges 
(with in and optional
   out messages) which more closely maps to REST, WS, WSDL & JBI than the
   UMO model Mule is based on
 * Camel allows the underlying transport details to be easily exposed
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 78a66e1..021bcaa 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
@@ -8,8 +8,8 @@ The main difference with ServiceMix EIP is its integrated into 
the
 existing ServiceMix XBean XML configuration whereas Camel has more
 xref:enterprise-integration-patterns.adoc[Enterprise Integration
 Patterns] and can be used outside of JBI (e.g. just with pure
-xref:jms-component.adoc[JMS] or xref:mina-component.adoc[MINA]). Also Camel 
supports a
-xref:dsl.adoc[Java DSL] or xref:spring.adoc[XML configuration].
+xref:components::jms-component.adoc[JMS] or xref:mina-component.adoc[MINA]). 
Also Camel supports a
+xref:dsl.adoc[Java DSL] or xref:components::spring.adoc[XML configuration].
 
 [[HowdoesCamelcomparetoServiceMixEIP-ConvertingfromServiceMixEIPtoCamel]]
 ==== Converting from ServiceMix EIP to Camel
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 a0e8922..c1d095d 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
@@ -18,13 +18,13 @@ 
xref:how-does-camel-compare-to-servicemix-eip.adoc[ServiceMix EIP
 component].
 
 To work with Camel and ServiceMix you take your Camel
-xref:spring.adoc[Spring] configuration and turn it into a JBI Service
+xref:components::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
-xref:dsl.adoc[Java] or xref:spring.adoc[Spring]; then later on if you
+xref:dsl.adoc[Java] or xref:components::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
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 b158f7e..baa337f 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
@@ -22,7 +22,7 @@ http://www.nabble.com/Apache-f90.html[very popular too].
 * Camel is designed from the ground up around
 xref:enterprise-integration-patterns.adoc[Enterprise Integration
 Patterns] -- having an EIP pattern language implemented in
-xref:dsl.adoc[Java], xref:spring.adoc[Spring XML],
+xref:dsl.adoc[Java], xref:components::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
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 3fe8b93..f59af0c 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
@@ -2,7 +2,7 @@
 === How does Camel look up beans, components or endpoints?
 
 There are many times using Camel that a name is used for a bean such as
-using the xref:bean-component.adoc[Bean] endpoint or using the
+using the xref:components::bean-component.adoc[Bean] endpoint or using the
 xref:bean-language.adoc[Bean Language] to create a
 xref:expression.adoc[Expression] or xref:predicate.adoc[Predicate] or
 referring to any xref:component.adoc[Component] or
@@ -10,7 +10,7 @@ xref:endpoint.adoc[Endpoint].
 
 Camel uses the xref:registry.adoc[Registry] to resolve names when
 looking up beans or components or endpoints. Typically this will be
-xref:spring.adoc[Spring]; though you can use Camel without Spring in
+xref:components::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
@@ -19,5 +19,5 @@ camel-spring do.
 
 So you can just define beans, components or endpoints in your
 xref:registry.adoc[Registry] implementation then you can refer to them
-by name in the xref:endpoint.adoc[Endpoint] URIs or 
xref:bean-component.adoc[Bean]
+by name in the xref:endpoint.adoc[Endpoint] URIs or 
xref:components::bean-component.adoc[Bean]
 endpoints or xref:bean-language.adoc[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 351e5ee..197085b 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
@@ -8,9 +8,9 @@ Patterns] inside:
 * the ActiveMQ message broker
 * the ActiveMQ JMS client
 
-So Camel can route messages to and from xref:mail-component.adoc[Mail],
-xref:file-component.adoc[File], xref:ftp-component.adoc[FTP], 
xref:jpa-component.adoc[JPA],
-xref:xmpp-component.adoc[XMPP] other xref:jms-component.adoc[JMS] providers 
and any of the
+So Camel can route messages to and from 
xref:components::mail-component.adoc[Mail],
+xref:components::file-component.adoc[File], 
xref:components::ftp-component.adoc[FTP], 
xref:components::jpa-component.adoc[JPA],
+xref:components::xmpp-component.adoc[XMPP] other 
xref:components::jms-component.adoc[JMS] providers and any of the
 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
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 02fc436..3a89fd8 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
@@ -7,7 +7,7 @@ Patterns] inside of the JBI container, routing between existing 
JBI
 components together with communicating with any of the other Camel
 xref:component.adoc[Components].
 
-To do this you take your Camel xref:spring.adoc[Spring] configuration
+To do this you take your Camel xref:components::spring.adoc[Spring] 
configuration
 and turn it into a JBI Service Unit using the maven plugin or archetype.
 
 For more details see
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 33e63fa..dd17354 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
@@ -6,8 +6,8 @@ 
http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Exchan
 and
 
http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Message.html[Message]
 map very closely to JBI in particular but also
-xref:cxf-component.adoc[CXF], xref:http-component.adoc[HTTP], 
xref:jms-component.adoc[JMS],
-xref:mail-component.adoc[Mail], xref:xmpp-component.adoc[XMPP] and most other 
integration
+xref:components::cxf-component.adoc[CXF], xref:http-component.adoc[HTTP], 
xref:components::jms-component.adoc[JMS],
+xref:components::mail-component.adoc[Mail], 
xref:components::xmpp-component.adoc[XMPP] and most other integration
 abstractions. We want to prevent leaky abstractions, so the Camel API
 exposes the underlying APIs so that a xref:processor.adoc[Processor] can
 make use of the underlying abstractions if they make sense.
@@ -17,7 +17,7 @@ For example:
 [width="100%",cols="50%,50%",options="header",]
 |=======================================================================
 |Component |Inbound exchange exposes
-|xref:cxf-component.adoc[CXF] |Each Inbound
+|xref:components::cxf-component.adoc[CXF] |Each Inbound
 
http://camel.apache.org/maven/current/camel-cxf/apidocs/org/apache/camel/component/cxf/CxfExchange.html[CxfExchange]
 has access to the underlying Exchange and Message from CXF
 
@@ -30,7 +30,7 @@ 
http://camel.apache.org/maven/current/camel-jbi/apidocs/org/apache/camel/compone
 has access to the underlying JBI MessageExchange and NormalizedMessage
 objects
 
-|xref:jms-component.adoc[JMS] |Each inbound
+|xref:components::jms-component.adoc[JMS] |Each inbound
 
http://camel.apache.org/maven/current/camel-jms/apidocs/org/apache/camel/component/jms/JmsExchange.html[JmsExchange]
 has access to the underlying JMS Message objects
 |=======================================================================
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 4971c9d..e333df1 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
@@ -2,7 +2,7 @@
 === How to avoid sending some or all message headers?
 
 When I send a message to a Camel endpoint such as the
-xref:mail-component.adoc[Mail] component, then the mail include some message
+xref:components::mail-component.adoc[Mail] component, then the mail include 
some message
 headers I do not want. How can I avoid this?
 
 [[Howtoavoidsendingsomeorallmessageheaders-UseremoveHeadersintheroute]]
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 cabe72c..b735cb4 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
-xref:spring.adoc[Spring] and to reuse all of Spring 2.x's power. For
+xref:components::spring.adoc[Spring] and to reuse all of Spring 2.x's power. 
For
 example:
 
 * the CamelContext, Components and Endpoints and their dependent beans
@@ -34,7 +34,7 @@ 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 xref:spring.adoc[Spring]
+commons-logging; camel-spring contains all the 
xref:components::spring.adoc[Spring]
 integration, etc.
 
 We hope to have closer integration to other IoC containers, particularly
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 beadca3..e28ef8c 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
@@ -7,7 +7,7 @@ You could use your Java IDE for smart completion when creating
 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
-xref:spring.adoc[routing rules in XML] using the
+xref:components::spring.adoc[routing rules in XML] using the
 xref:xml-configuration.adoc[XML Configuration]
 
 Some of the xref:commercial-camel-offerings.adoc[Commercial Companies]
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 5bd507a..5b71ac1 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
@@ -4,7 +4,7 @@
 Yes, Camel can run standalone or in any container. Running Standalone is
 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 xref:spring.adoc[camel-spring]
+could use the one from xref:components::spring.adoc[camel-spring]
 (http://camel.apache.org/maven/current/camel-spring/apidocs/) also used
 by the xref:camel-maven-plugin.adoc[Camel Maven Plugin].
 
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 f4aac0c..7a7030f 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
@@ -15,7 +15,7 @@ to deploy something.
 databases and bridging them to queues or topics then its usually more
 efficient to host in the broker; as there's less contention and there's
 no network communication between the EIP rules and the message broker as
-its all in the same JVM (so you can use the xref:vm-component.adoc[VM 
Transport]
+its all in the same JVM (so you can use the 
xref:components::vm-component.adoc[VM Transport]
 to avoid network overhead.
 
 
[[ShouldIdeployCamelinsidetheActiveMQbrokerorinanotherapplication-AdvantagesofdeployingEIPinsideaseparateapplication]]
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 11f91bd..a9ee79e 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
@@ -6,7 +6,7 @@ Patterns].
 
 Camel empowers you to define routing and mediation rules in a variety of
 domain-specific languages, including a Java-based xref:dsl.adoc[Fluent
-API], xref:spring.adoc[Spring] or
+API], xref:components::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
@@ -14,8 +14,8 @@ routing rules in your IDE, whether in a Java, Scala or XML 
editor.
 
 Apache Camel uses xref:uris.adoc[URIs] to work directly with any kind of
 xref:transport.adoc[Transport] or messaging model such as
-xref:components::http4-component.adoc[HTTP], xref:activemq.adoc[ActiveMQ], 
xref:jms-component.adoc[JMS],
-JBI, SCA, xref:components::mina2-component.adoc[MINA] or 
xref:cxf-component.adoc[CXF], as
+xref:components::http4-component.adoc[HTTP], xref:activemq.adoc[ActiveMQ], 
xref:components::jms-component.adoc[JMS],
+JBI, SCA, xref:components::mina2-component.adoc[MINA] or 
xref:components::cxf-component.adoc[CXF], as
 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]
@@ -27,7 +27,7 @@ out-of-box.
 
 Apache Camel provides support for xref:bean-binding.adoc[Bean Binding]
 and seamless integration with popular frameworks such as
-xref:cdi-component.adoc[CDI], xref:spring.adoc[Spring],
+xref:cdi-component.adoc[CDI], xref:components::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.
diff --git 
a/docs/user-manual/modules/ROOT/pages/faq/why-can-i-not-use-when-or-otherwise-in-a-java-camel-route.adoc
 
b/docs/user-manual/modules/ROOT/pages/faq/why-can-i-not-use-when-or-otherwise-in-a-java-camel-route.adoc
index babd735..225bad2 100644
--- 
a/docs/user-manual/modules/ROOT/pages/faq/why-can-i-not-use-when-or-otherwise-in-a-java-camel-route.adoc
+++ 
b/docs/user-manual/modules/ROOT/pages/faq/why-can-i-not-use-when-or-otherwise-in-a-java-camel-route.adoc
@@ -91,7 +91,7 @@ to the xref:contentBasedRouter-eip.adoc[Content Based 
Router]. Note
 ==== Still problems
 
 If there are still problems, then you can split your route into multiple
-routes, and link them together using the xref:direct-component.adoc[Direct]
+routes, and link them together using the 
xref:components::direct-component.adoc[Direct]
 component.
 There can be some combinations of 
xref:enterprise-integration-patterns.adoc[EIP]s
 that can hit limits in how far we can take the fluent builder DSL with
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 f01d983..9b237b1 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
@@ -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 (xref:spring.adoc[Spring] or xref:guice.adoc[Guice]) to inject
+container (xref:components::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 xref:spring.adoc[Spring] you can define a template
+For instance using xref:components::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-ftp-component-not-download-any-files.adoc
 
b/docs/user-manual/modules/ROOT/pages/faq/why-does-ftp-component-not-download-any-files.adoc
index 7687b62..b4a60df 100644
--- 
a/docs/user-manual/modules/ROOT/pages/faq/why-does-ftp-component-not-download-any-files.adoc
+++ 
b/docs/user-manual/modules/ROOT/pages/faq/why-does-ftp-component-not-download-any-files.adoc
@@ -1,7 +1,7 @@
 
[[WhydoesFTPcomponentnotdownloadanyfiles-WhydoesFTPcomponentnotdownloadanyfiles]]
 === Why does FTP component not download any files?
 
-The xref:ftp-component.adoc[FTP] component has many options. So make sure you
+The xref:components::ftp-component.adoc[FTP] component has many options. So 
make sure you
 have configured it properly.
 Also a common issue is that you have to use either active or passive
 mode. So you may have to set `passiveMode=true` on the endpoint
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 fcb3b19..a5ba352 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
@@ -1,7 +1,7 @@
 
[[WhydoesmyfileconsumernotpickupthefileandhowdoIletthefileconsumerusetheCamelerrorhandler-WhydoesmyfileconsumernotpickupthefileandhowdoIletthefileconsumerusetheCamelerrorhandler]]
 === Why does my file consumer not pick up the file, and how do I let the file 
consumer use the Camel error handler?
 
-There could be several reasons why the xref:file-component.adoc[File] consumer 
is
+There could be several reasons why the 
xref:components::file-component.adoc[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.
 xref:faq.adoc#FAQ-LoggingQuestions[Check the logs] for any exceptions or other
@@ -31,7 +31,7 @@ xref:component.adoc[component]-specific.
 
 From Camel 2.10 onwards the file and ftp consumers can now bridge to the
 Camel routing engine's error handler. See more details at the
-`consumer.bridgeErrorHandler` option on the xref:file-component.adoc[File]
+`consumer.bridgeErrorHandler` option on the 
xref:components::file-component.adoc[File]
 documentation.
 ====
 
@@ -45,7 +45,7 @@ 
https://github.com/apache/camel/blob/master/camel-core/src/main/java/org/apache/
 that will log the exception at `ERROR`/`WARN` level, and then ignore the
 exception.
 
-See the xref:file-component.adoc[File] page in the bottom for an example how to
+See the xref:components::file-component.adoc[File] page in the bottom for an 
example how to
 use a custom `ExceptionHandler` that sends a new message to the Camel
 routing engine, which then allows the routing engine to trigger its own
 error handling to deal with the exception.
diff --git 
a/docs/user-manual/modules/ROOT/pages/faq/why-does-my-jms-route-only-consume-one-message-at-once.adoc
 
b/docs/user-manual/modules/ROOT/pages/faq/why-does-my-jms-route-only-consume-one-message-at-once.adoc
index 3a232b5..c8d600f 100644
--- 
a/docs/user-manual/modules/ROOT/pages/faq/why-does-my-jms-route-only-consume-one-message-at-once.adoc
+++ 
b/docs/user-manual/modules/ROOT/pages/faq/why-does-my-jms-route-only-consume-one-message-at-once.adoc
@@ -1,7 +1,7 @@
 
[[WhydoesmyJMSrouteonlyconsumeonemessageatonce-WhydoesmyJMSrouteonlyconsumeonemessageatonce]]
 === Why does my JMS route only consume one message at once?
 
-The default xref:jms-component.adoc[JMS] endpoint configuration defines
+The default xref:components::jms-component.adoc[JMS] endpoint configuration 
defines
 *concurrentConsumers* to be 1 so only 1 message is processed
 concurrently at any point in time. To change this to make things more
 concurrent, just configure this value; either at the JMS component level
@@ -18,4 +18,4 @@ from("activemq:SomeQueue?concurrentConsumers=25").
 [[WhydoesmyJMSrouteonlyconsumeonemessageatonce-SeeAlso]]
 ==== See Also
 
-* xref:jms-component.adoc[JMS] for more configuration details
+* xref:components::jms-component.adoc[JMS] for more configuration details
diff --git 
a/docs/user-manual/modules/ROOT/pages/faq/why-use-multiple-camelcontext.adoc 
b/docs/user-manual/modules/ROOT/pages/faq/why-use-multiple-camelcontext.adoc
index 9772bfa..86c9c4c 100644
--- a/docs/user-manual/modules/ROOT/pages/faq/why-use-multiple-camelcontext.adoc
+++ b/docs/user-manual/modules/ROOT/pages/faq/why-use-multiple-camelcontext.adoc
@@ -12,5 +12,5 @@ other Camel applications.
 
 If you want the endpoints or producers in different camel contexts to
 communicate with another, there are a number of solutions. You can use
-the ServiceMix NMR, or you can use xref:jms-component.adoc[JMS], or
-you can use Camel's xref:vm-component.adoc[VM] transport.
+the ServiceMix NMR, or you can use xref:components::jms-component.adoc[JMS], or
+you can use Camel's xref:components::vm-component.adoc[VM] transport.
diff --git a/docs/user-manual/modules/ROOT/pages/file-language.adoc 
b/docs/user-manual/modules/ROOT/pages/file-language.adoc
index aa2e77d..f241fc9 100644
--- a/docs/user-manual/modules/ROOT/pages/file-language.adoc
+++ b/docs/user-manual/modules/ROOT/pages/file-language.adoc
@@ -42,7 +42,7 @@ filename.
 All the file tokens use the same expression name as the method on the
 `java.io.File` object, for instance `file:absolute` refers to the
 `java.io.File.getAbsolute()` method. Notice that not all expressions are
-supported by the current Exchange. For instance the 
xref:ftp-component.adoc[FTP]
+supported by the current Exchange. For instance the 
xref:components::ftp-component.adoc[FTP]
 component supports some of the options, where as the
 File component supports all of them.
 
@@ -223,7 +223,7 @@ fileName="uniquefile-${bean:myguidgenerator.generateid}.txt"
 
 And of course all this can be combined in one expression where you can
 use the xref:file-language.adoc[File Language], xref:file-language.adoc[Simple]
-and the xref:bean-component.adoc[Bean] language in one combined expression. 
This
+and the xref:components::bean-component.adoc[Bean] language in one combined 
expression. This
 is pretty powerful for those common file path patterns.
 
 === Using Spring PropertyPlaceholderConfigurer together with the File component
diff --git a/docs/user-manual/modules/ROOT/pages/graceful-shutdown.adoc 
b/docs/user-manual/modules/ROOT/pages/graceful-shutdown.adoc
index 1501faa..6d498e7 100644
--- a/docs/user-manual/modules/ROOT/pages/graceful-shutdown.adoc
+++ b/docs/user-manual/modules/ROOT/pages/graceful-shutdown.adoc
@@ -159,7 +159,7 @@ For example in the route below we have two routes, where 
route 1 is
 dependent upon route 2. At shutdown we want route 1 to complete all its
 current messages and we also want the 2nd route to do this as well. So
 we can mark both routes to `Defer` but since route 1 is a
-xref:seda-component.adoc[SEDA] based route its `Defer` by default (it uses
+xref:components::seda-component.adoc[SEDA] based route its `Defer` by default 
(it uses
 `ShutdownAware`).
 
 A Java DSL based example to defer shutting down the 2nd
@@ -410,7 +410,7 @@ The interface `org.apache.camel.spi.ShutdownAware` is an 
optional
 interface consumers can implement to have fine grained control during
 shutdown. The `ShutdownStrategy` must be able to deal with consumers
 which implement this interface. This interface was introduced to cater
-for in memory consumers such as xref:seda-component.adoc[SEDA] which 
potentially
+for in memory consumers such as xref:components::seda-component.adoc[SEDA] 
which potentially
 have a number of pending messages on its internal in memory queues. What
 this allows is to let it control the shutdown process to let it complete
 its pending messages.
diff --git a/docs/user-manual/modules/ROOT/pages/guaranteed-delivery.adoc 
b/docs/user-manual/modules/ROOT/pages/guaranteed-delivery.adoc
index 9f36d79..502e0c6 100644
--- a/docs/user-manual/modules/ROOT/pages/guaranteed-delivery.adoc
+++ b/docs/user-manual/modules/ROOT/pages/guaranteed-delivery.adoc
@@ -8,13 +8,13 @@ patterns] using among others the following components:
 
 * xref:file2.adoc[File] for using file systems as a persistent store of
 messages
-* xref:jms-component.adoc[JMS] when using persistent delivery (the default) for
+* xref:components::jms-component.adoc[JMS] when using persistent delivery (the 
default) for
 working with JMS Queues and Topics for high performance, clustering and
 load balancing
-* xref:jpa-component.adoc[JPA] for using a database as a persistence layer, or 
use
-any of the many other database component such as xref:sql-component.adoc[SQL],
-xref:jdbc-component.adoc[JDBC],
-xref:mybatis-component.adoc[MyBatis],
+* xref:components::jpa-component.adoc[JPA] for using a database as a 
persistence layer, or use
+any of the many other database component such as 
xref:components::sql-component.adoc[SQL],
+xref:components::jdbc-component.adoc[JDBC],
+xref:components::mybatis-component.adoc[MyBatis],
 xref:hibernate.adoc[Hibernate]
 * xref:hawtdb.adoc[HawtDB] for a lightweight key-value persistent store
 
@@ -25,7 +25,7 @@ 
image:http://www.enterpriseintegrationpatterns.com/img/GuaranteedMessagingSoluti
 
 The following example demonstrates illustrates the use
 of 
http://www.enterpriseintegrationpatterns.com/GuaranteedMessaging.html[Guaranteed
-Delivery] within the xref:jms-component.adoc[JMS] component. By default, a 
message
+Delivery] within the xref:components::jms-component.adoc[JMS] component. By 
default, a message
 is not considered successfully delivered until the recipient has
 persisted the message locally guaranteeing its receipt in the event the
 destination becomes unavailable.
diff --git a/docs/user-manual/modules/ROOT/pages/idempotentConsumer-eip.adoc 
b/docs/user-manual/modules/ROOT/pages/idempotentConsumer-eip.adoc
index 2c61d34..da153e4 100644
--- a/docs/user-manual/modules/ROOT/pages/idempotentConsumer-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/idempotentConsumer-eip.adoc
@@ -19,13 +19,13 @@ Camel provides the following Idempotent Consumer 
implementations:
 * MemoryIdempotentRepository
 * xref:file2.adoc[FileIdempotentRepository]
 * xref:hazelcast-component.adoc[HazelcastIdempotentRepository]
-* xref:sql-component.adoc[JdbcMessageIdRepository]
-* xref:jpa-component.adoc[JpaMessageIdRepository]
-* xref:infinispan-component.adoc[InfinispanIdempotentRepository]
-* xref:jcache-component.adoc[JCacheIdempotentRepository]
-* xref:spring.adoc[SpringCacheIdempotentRepository]
-* xref:ehcache-component.adoc[EhcacheIdempotentRepository]
-* xref:kafka-component.adoc[KafkaIdempotentRepository]
+* xref:components::sql-component.adoc[JdbcMessageIdRepository]
+* xref:components::jpa-component.adoc[JpaMessageIdRepository]
+* xref:components::infinispan-component.adoc[InfinispanIdempotentRepository]
+* xref:components::jcache-component.adoc[JCacheIdempotentRepository]
+* xref:components::spring.adoc[SpringCacheIdempotentRepository]
+* xref:components::ehcache-component.adoc[EhcacheIdempotentRepository]
+* xref:components::kafka-component.adoc[KafkaIdempotentRepository]
 
 === Options
 
diff --git a/docs/user-manual/modules/ROOT/pages/index.adoc 
b/docs/user-manual/modules/ROOT/pages/index.adoc
index 10e2ef8..9957967 100644
--- a/docs/user-manual/modules/ROOT/pages/index.adoc
+++ b/docs/user-manual/modules/ROOT/pages/index.adoc
@@ -36,7 +36,7 @@
 * xref:camel-jar-dependencies.adoc[Camel JAR Dependencies]
 * xref:camel-boot.adoc[Camel Boot]
 * xref:components::cdi-component.adoc[Working with Camel and CDI]
-* xref:spring.adoc[Working with Camel and Spring]
+* xref:components::spring.adoc[Working with Camel and Spring]
 * xref:guice.adoc[Working with Camel and Guice]
 * xref:karaf.adoc[Working with Camel and Karaf]
 * xref:faq/how-do-i-configure-endpoints.adoc[How do I configure endpoints?]
@@ -127,7 +127,7 @@ camel routes without them knowing
 === xref:dsl.adoc[DSL]
 
 * xref:java-dsl.adoc[Java DSL]
-* xref:spring.adoc[Spring DSL]
+* xref:components::spring.adoc[Spring DSL]
 * xref:using-osgi-blueprint-with-camel.adoc[Blueprint DSL]
 * xref:rest-dsl.adoc[Rest DSL]
 * xref:groovy-dsl.adoc[Groovy DSL]
@@ -537,11 +537,11 @@ camel routes without them knowing
 ** xref:constant-language.adoc[Constant]
 ** xref:exchangeProperty-language.adoc[ExchangeProperty]
 ** xref:file-language.adoc[File]
-** xref:groovy-language.adoc[Groovy]
+** xref:components::groovy-language.adoc[Groovy]
 ** xref:header-language.adoc[Header]
 ** xref:terser-language.adoc[HL7 Terser]
 ** xref:javaScript-language.adoc[JavaScript]
-** xref:jsonpath-language.adoc[JsonPath]
+** xref:components::jsonpath-language.adoc[JsonPath]
 ** xref:components::mvel-language.adoc[MVEL]
 ** xref:components::ognl-language.adoc[OGNL]
 ** xref:ref-language.adoc[Ref]
diff --git a/docs/user-manual/modules/ROOT/pages/injector.adoc 
b/docs/user-manual/modules/ROOT/pages/injector.adoc
index d0d73b4..201f0a6 100644
--- a/docs/user-manual/modules/ROOT/pages/injector.adoc
+++ b/docs/user-manual/modules/ROOT/pages/injector.adoc
@@ -17,7 +17,7 @@ Endpoint in your Spring XML file; or let Camel find
 the defaults then use the Injector to create and inject any of its
 dependencies.
 
-As an example; consider the xref:jms-component.adoc[JMS] component. Rather than
+As an example; consider the xref:components::jms-component.adoc[JMS] 
component. Rather than
 explicitly configuring the JMS component in Spring XML you can just
 provide a ConnectionFactory in your Spring XML which the Injector will
 use to properly configure the JmsComponent when it is instantiated.
diff --git a/docs/user-manual/modules/ROOT/pages/intercept.adoc 
b/docs/user-manual/modules/ROOT/pages/intercept.adoc
index 0621688..059e541 100644
--- a/docs/user-manual/modules/ROOT/pages/intercept.adoc
+++ b/docs/user-manual/modules/ROOT/pages/intercept.adoc
@@ -113,7 +113,7 @@ particular route.
 
 So lets start with the logging example. We want to log all the
 *incoming* requests so we use `interceptFrom` to route to the
-xref:log-component.adoc[Log] component. As `proceed` is default then the
+xref:components::log-component.adoc[Log] component. As `proceed` is default 
then the
 Exchange will continue its route, and thus it will
 continue to `mock:first`.
 
diff --git a/docs/user-manual/modules/ROOT/pages/jndi.adoc 
b/docs/user-manual/modules/ROOT/pages/jndi.adoc
index e9c9203..5c8b906 100644
--- a/docs/user-manual/modules/ROOT/pages/jndi.adoc
+++ b/docs/user-manual/modules/ROOT/pages/jndi.adoc
@@ -2,7 +2,7 @@
 === JNDI
 
 Camel will use JNDI as the default xref:registry.adoc[Registry]
-implementation if you do not use xref:spring.adoc[Spring]. This means
+implementation if you do not use xref:components::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.
diff --git a/docs/user-manual/modules/ROOT/pages/languages.adoc 
b/docs/user-manual/modules/ROOT/pages/languages.adoc
index e1bceeb..a668016 100644
--- a/docs/user-manual/modules/ROOT/pages/languages.adoc
+++ b/docs/user-manual/modules/ROOT/pages/languages.adoc
@@ -23,26 +23,26 @@ The following is the list of currently supported languages:
 * xref:constant-language.adoc[Constant]
 * the unified xref:el-language.adoc[EL] from JSP and JSF
 * xref:header-language.adoc[Header]
-* xref:jsonpath-language.adoc[JSonPath]
+* xref:components::jsonpath-language.adoc[JSonPath]
 * xref:jxpath-language.adoc[JXPath]
-* xref:mvel-language.adoc[Mvel]
-* xref:ognl-language.adoc[OGNL]
+* xref:components::mvel-language.adoc[Mvel]
+* xref:components::ognl-language.adoc[OGNL]
 * xref:ref-language.adoc[Ref Language]
 * xref:exchangeproperty-language.adoc[ExchangeProperty] / 
xref:property-language.adoc[Property]
 * xref:scripting-languages-language.adoc[Scripting Languages] such as:
 ** xref:beanshell-language.adoc[BeanShell]
 ** xref:javascript-language.adoc[JavaScript]
-** xref:groovy-language.adoc[Groovy]
+** xref:components::groovy-language.adoc[Groovy]
 ** xref:python-language.adoc[Python]
 ** xref:php-language.adoc[PHP]
 ** xref:ruby-language.adoc[Ruby]
 * xref:simple-language.adoc[Simple]
 ** xref:file-language.adoc[File Language]
-* xref:spel-language.adoc[Spring Expression Language]
+* xref:components::spel-language.adoc[Spring Expression Language]
 * xref:sql-language.adoc[SQL]
 * xref:tokenizer-language.adoc[Tokenizer]
-* xref:xpath-language.adoc[XPath]
-* xref:xquery-language.adoc[XQuery]
+* xref:components::xpath-language.adoc[XPath]
+* xref:components::xquery-language.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 are also supported used as
diff --git a/docs/user-manual/modules/ROOT/pages/log-eip.adoc 
b/docs/user-manual/modules/ROOT/pages/log-eip.adoc
index d2f1420..86240ac 100644
--- a/docs/user-manual/modules/ROOT/pages/log-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/log-eip.adoc
@@ -4,7 +4,7 @@
 How can I log the processing of a xref:message.adoc[Message]?
 
 Camel provides many ways to log the fact that you are processing a message. 
Here are just a few examples:
-* You can use the xref:log-component.adoc[Log] component which logs the 
Message content.
+* You can use the xref:components::log-component.adoc[Log] component which 
logs the Message content.
 * You can use the xref:tracer.adoc[Tracer] which trace logs message flow.
 * You can also use a xref:processor.adoc[Processor] or xref:bean.adoc[Bean] 
and log from Java code.
 * You can use the log DSL.
@@ -165,7 +165,7 @@ In some scenarios it is required that the bundle associated 
with logger should b
 *Available as of Camel 2.19*
 
 You can enable security masking for logging by setting `logMask` flag to 
`true`.
-Note that this option also affects xref:log-component.adoc[Log] component.
+Note that this option also affects xref:components::log-component.adoc[Log] 
component.
 
 To enable mask in Java DSL at CamelContext level:
 [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 db5d3a9..674b5d6 100644
--- a/docs/user-manual/modules/ROOT/pages/message-bus.adoc
+++ b/docs/user-manual/modules/ROOT/pages/message-bus.adoc
@@ -10,7 +10,7 @@ consumers to be decoupled.
 
image:http://www.enterpriseintegrationpatterns.com/img/MessageBusSolution.gif[image]
 
 Folks often assume that a Message Bus is a JMS though so you may wish to
-refer to the xref:jms-component.adoc[JMS] component for traditional MOM 
support. +
+refer to the xref:components::jms-component.adoc[JMS] component for 
traditional MOM support. +
 
 
 [[MessageBus-Example]]
diff --git a/docs/user-manual/modules/ROOT/pages/message-channel.adoc 
b/docs/user-manual/modules/ROOT/pages/message-channel.adoc
index 669b1f5..26b26cb 100644
--- a/docs/user-manual/modules/ROOT/pages/message-channel.adoc
+++ b/docs/user-manual/modules/ROOT/pages/message-channel.adoc
@@ -23,7 +23,7 @@ jms:queue:foo
 -------------
 
 This message channel can be then used within the
-xref:jms-component.adoc[JMS] component
+xref:components::jms-component.adoc[JMS] component
 
 And the following shows a little Java route snippet:
 
diff --git a/docs/user-manual/modules/ROOT/pages/message-translator.adoc 
b/docs/user-manual/modules/ROOT/pages/message-translator.adoc
index ce2c31f..05ee20c 100644
--- a/docs/user-manual/modules/ROOT/pages/message-translator.adoc
+++ b/docs/user-manual/modules/ROOT/pages/message-translator.adoc
@@ -17,7 +17,7 @@ 
image:http://www.enterpriseintegrationpatterns.com/img/MessageTranslator.gif[ima
 You can transform a message using Camel's
 xref:bean-integration.adoc[Bean Integration] to call any method on a
 bean in your xref:Registry-Registry.adoc[Registry] such as your
-xref:spring.adoc[Spring] XML configuration file as follows
+xref:components::spring.adoc[Spring] XML configuration file as follows
 
 [source,java]
 ----
@@ -54,7 +54,7 @@ invoke a bean
 
 You can also use xref:templating.adoc[Templating] to consume a message
 from one destination, transform it with something like
-xref:velocity-component.adoc[Velocity] or xref:velocity-component.adoc[XQuery] 
and then send
+xref:components::velocity-component.adoc[Velocity] or 
xref:components::velocity-component.adoc[XQuery] and then send
 it on to another destination. For example using InOnly (one way
 messaging)
 
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 831fe7a..26d65d1 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
@@ -6,18 +6,18 @@ 
http://www.enterpriseintegrationpatterns.com/PointToPointChannel.html[Point
 to Point Channel] from the xref:enterprise-integration-patterns.adoc[EIP
 patterns] using the following components
 
-* xref:seda-component.adoc[SEDA] for in-VM seda based messaging
-* xref:jms-component.adoc[JMS] for working with JMS Queues for high 
performance,
+* xref:components::seda-component.adoc[SEDA] for in-VM seda based messaging
+* xref:components::jms-component.adoc[JMS] for working with JMS Queues for 
high performance,
 clustering and load balancing
-* xref:jpa-component.adoc[JPA] for using a database as a simple message queue
-* xref:xmpp-component.adoc[XMPP] for point-to-point communication over XMPP
+* xref:components::jpa-component.adoc[JPA] for using a database as a simple 
message queue
+* xref:components::xmpp-component.adoc[XMPP] for point-to-point communication 
over XMPP
 (Jabber)
 * and others
 
 
image:http://www.enterpriseintegrationpatterns.com/img/PointToPointSolution.gif[image]
 
 The following example demonstrates point to point messaging using
-the xref:jms-component.adoc[JMS] component 
+the xref:components::jms-component.adoc[JMS] component 
 
 [[PointtoPointChannel-Samples]]
 === Samples
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 4a106af..9b6f32a 100644
--- a/docs/user-manual/modules/ROOT/pages/publish-subscribe-channel.adoc
+++ b/docs/user-manual/modules/ROOT/pages/publish-subscribe-channel.adoc
@@ -7,13 +7,13 @@ Subscribe Channel] from the
 xref:enterprise-integration-patterns.adoc[EIP patterns] using for
 example the following components:
 
-* xref:jms-component.adoc[JMS] for working with JMS Topics for high 
performance,
+* xref:components::jms-component.adoc[JMS] for working with JMS Topics for 
high performance,
 clustering and load balancing
-* xref:xmpp-component.adoc[XMPP] when using rooms for group communication
-* xref:seda-component.adoc[SEDA] for working with SEDA in the same
+* xref:components::xmpp-component.adoc[XMPP] when using rooms for group 
communication
+* xref:components::seda-component.adoc[SEDA] for working with SEDA in the same
 xref:camelcontext.adoc[CamelContext] which can work in pub-sub, but
 allowing multiple consumers.
-* xref:vm-component.adoc[VM] as SEDA but for intra-JVM.
+* xref:components::vm-component.adoc[VM] as SEDA but for intra-JVM.
 
 
image:http://www.enterpriseintegrationpatterns.com/img/PublishSubscribeSolution.gif[image]
 
diff --git a/docs/user-manual/modules/ROOT/pages/requestReply-eip.adoc 
b/docs/user-manual/modules/ROOT/pages/requestReply-eip.adoc
index 68ac289..9c44cba 100644
--- a/docs/user-manual/modules/ROOT/pages/requestReply-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/requestReply-eip.adoc
@@ -11,7 +11,7 @@ this pattern using the underlying transport or protocols.
 
 image:http://www.enterpriseintegrationpatterns.com/img/RequestReply.gif[image]
 
-For example when using xref:jms-component.adoc[JMS] with InOut the component 
will
+For example when using xref:components::jms-component.adoc[JMS] with InOut the 
component will
 by default perform these actions
 
 * create by default a temporary inbound queue
@@ -27,7 +27,7 @@ TIP: *Related* See the related Event Message message
 [[RequestReply-ExplicitlyspecifyingInOut]]
 === Explicitly specifying InOut
 
-When consuming messages from xref:jms-component.adoc[JMS] a Request-Reply is
+When consuming messages from xref:components::jms-component.adoc[JMS] a 
Request-Reply is
 indicated by the presence of the *JMSReplyTo* header.
 
 You can explicitly force an endpoint to be in Request Reply mode by
diff --git a/docs/user-manual/modules/ROOT/pages/rest-dsl.adoc 
b/docs/user-manual/modules/ROOT/pages/rest-dsl.adoc
index fd2e6b6..b8d0c1e 100644
--- a/docs/user-manual/modules/ROOT/pages/rest-dsl.adoc
+++ b/docs/user-manual/modules/ROOT/pages/rest-dsl.adoc
@@ -8,10 +8,10 @@ REST style with verbs such as get, post, delete etc.
 
 === How it works
 
-The Rest DSL is a facade that builds xref:rest-component.adoc[Rest] endpoints 
as
+The Rest DSL is a facade that builds 
xref:components::rest-component.adoc[Rest] endpoints as
 consumers for Camel routes. The actual REST transport is leveraged by
 using Camel REST components such
-as xref:restlet-component.adoc[Restlet], 
xref:restlet-component.adoc[Spark-rest], and
+as xref:components::restlet-component.adoc[Restlet], 
xref:components::restlet-component.adoc[Spark-rest], and
 others that has native REST integration.
 
 === Components supporting Rest DSL
@@ -19,20 +19,20 @@ others that has native REST integration.
 The following Camel components supports the Rest DSL. See the bottom of
 this page for how to integrate a component with the Rest DSL.
 
-* xref:rest-component.adoc[came-rest] *required* contains the base rest 
component needed by Rest DSL
+* xref:components::rest-component.adoc[came-rest] *required* contains the base 
rest component needed by Rest DSL
 * xref:netty-http-component.adoc[camel-netty-http] (also
 supports Swagger Java)
-* xref:netty4-http-component.adoc[camel-netty4-http] (also
+* xref:components::netty4-http-component.adoc[camel-netty4-http] (also
 supports Swagger Java)
-* xref:jetty-component.adoc[camel-jetty] (also
+* xref:components::jetty-component.adoc[camel-jetty] (also
 supports Swagger Java)
-* xref:restlet-component.adoc[camel-restlet] (also
+* xref:components::restlet-component.adoc[camel-restlet] (also
 supports Swagger Java)
-* xref:servlet-component.adoc[camel-servlet] (also
+* xref:components::servlet-component.adoc[camel-servlet] (also
 supports Swagger Java)
-* xref:spark-rest-component.adoc[camel-spark-rest] (also
+* xref:components::spark-rest-component.adoc[camel-spark-rest] (also
 supports Swagger Java from Camel 2.17 onwards)
-* xref:undertow-component.adoc[camel-undertow] (also
+* xref:components::undertow-component.adoc[camel-undertow] (also
 supports Swagger Java from Camel 2.17 onwards)
 
 === Rest DSL with Java
@@ -181,7 +181,7 @@ only. The example above can be defined as:
 
 The Rest DSL supports the new .toD <toD> as dynamic
 to in the rest-dsl. For example to do a request/reply
-over xref:jms-component.adoc[JMS] where the queue name is dynamic defined
+over xref:components::jms-component.adoc[JMS] where the queue name is dynamic 
defined
 
 [source,java]
 ----
diff --git a/docs/user-manual/modules/ROOT/pages/return-address.adoc 
b/docs/user-manual/modules/ROOT/pages/return-address.adoc
index f840f87..6f5b029 100644
--- a/docs/user-manual/modules/ROOT/pages/return-address.adoc
+++ b/docs/user-manual/modules/ROOT/pages/return-address.adoc
@@ -7,7 +7,7 @@ patterns] by using the `JMSReplyTo` header.
 
 
image:http://www.enterpriseintegrationpatterns.com/img/ReturnAddressSolution.gif[image]
 
-For example when using xref:jms-component.adoc[JMS] with InOut the component 
will
+For example when using xref:components::jms-component.adoc[JMS] with InOut the 
component will
 by default return to the address given in `JMSReplyTo`.
 
 *Requestor Code*
diff --git a/docs/user-manual/modules/ROOT/pages/route-policy.adoc 
b/docs/user-manual/modules/ROOT/pages/route-policy.adoc
index e231b34..4253ce3 100644
--- a/docs/user-manual/modules/ROOT/pages/route-policy.adoc
+++ b/docs/user-manual/modules/ROOT/pages/route-policy.adoc
@@ -220,7 +220,7 @@ example using this in practice with
 the *`ThrottlingInflightRoutePolicy`*
 * xref:scheduledroutepolicy.adoc[ScheduledRoutePolicy] for information
 on policy based scheduling capability for camel routes
-* xref:metrics-component.adoc[MetricsRoutePolicyFactory] for information
+* xref:components::metrics-component.adoc[MetricsRoutePolicyFactory] for 
information
 on a policy using the metrics component to expose route statistics using
 the metrics library.
 * xref:architecture.adoc[Architecture]
diff --git 
a/docs/user-manual/modules/ROOT/pages/scala-dsl-supported-languages.adoc 
b/docs/user-manual/modules/ROOT/pages/scala-dsl-supported-languages.adoc
index 0fd1c7c..59fd24a 100644
--- a/docs/user-manual/modules/ROOT/pages/scala-dsl-supported-languages.adoc
+++ b/docs/user-manual/modules/ROOT/pages/scala-dsl-supported-languages.adoc
@@ -10,7 +10,7 @@ You can use any of the supported Camel Languages in
 the Scala DSL; see below for a couple of examples:
 
 [[ScalaDSL-Supportedlanguages-Using]]
-Using xref:xpath-language.adoc[XPath]
+Using xref:components::xpath-language.adoc[XPath]
 
 With the XPath trait, you have an additional method available on an
 `Exchange` to do XPath queries against the message. Just look at this
diff --git a/docs/user-manual/modules/ROOT/pages/scripting-languages.adoc 
b/docs/user-manual/modules/ROOT/pages/scripting-languages.adoc
index e0c8867..ea61cf9 100644
--- a/docs/user-manual/modules/ROOT/pages/scripting-languages.adoc
+++ b/docs/user-manual/modules/ROOT/pages/scripting-languages.adoc
@@ -63,7 +63,7 @@ following attributes all set at `ENGINE_SCOPE`:
 IN message instead.
 
 |properties |`org.apache.camel.builder.script.PropertiesFunction` |*Camel 
2.9:* Function with a `resolve` method to make it easier to use
-Camels xref:properties-component.adoc[Properties] component from scripts. See
+Camels xref:components::properties-component.adoc[Properties] component from 
scripts. See
 further below for example.
 |=======================================================================
 
@@ -84,7 +84,7 @@ See this example:
 
 *Available as of Camel 2.9*
 
-If you need to use the xref:properties-component.adoc[Properties] component 
from a
+If you need to use the xref:components::properties-component.adoc[Properties] 
component from a
 script to lookup property placeholders, then its a bit cumbersome to do
 so. For example to set a header name myHeader with a value from a property
 placeholder, which key is provided in a header named "foo".
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 3ecd34c..65aff29 100644
--- a/docs/user-manual/modules/ROOT/pages/servlet-tomcat-example.adoc
+++ b/docs/user-manual/modules/ROOT/pages/servlet-tomcat-example.adoc
@@ -17,14 +17,14 @@ mvn package
 [[ServletTomcatExample-About]]
 ==== About
 
-This example demonstrates how you can use xref:servlet-component.adoc[Servlet] 
to expose
+This example demonstrates how you can use 
xref:components::servlet-component.adoc[Servlet] to expose
 a http service in a Camel route.
 
 [[ServletTomcatExample-Implementation]]
 ==== Implementation
 
 In the `web.xml` file in the `src/main/webapp/WEB-INF` folder the 
`CamelServlet`
-is defined. This is mandatory to do when using the 
xref:servlet-component.adoc[Servlet]
+is defined. This is mandatory to do when using the 
xref:components::servlet-component.adoc[Servlet]
 component.
 
 [source,xml]
@@ -117,5 +117,5 @@ 
http://localhost:8080/camel-example-servlet-tomcat/camel/hello URL.
 ==== See Also
 
 * xref:examples.adoc[Examples]
-*  xref:servlet-component.adoc[Servlet]
+*  xref:components::servlet-component.adoc[Servlet]
 *  xref:http-component.adoc[HTTP]
diff --git a/docs/user-manual/modules/ROOT/pages/simple-language.adoc 
b/docs/user-manual/modules/ROOT/pages/simple-language.adoc
index cc08482..4366e30 100644
--- a/docs/user-manual/modules/ROOT/pages/simple-language.adoc
+++ b/docs/user-manual/modules/ROOT/pages/simple-language.adoc
@@ -8,17 +8,17 @@ created, but has since grown more powerful. It is primarily 
intended for
 being a really small and simple language for evaluating
 Expressions and Predicates
 without requiring any new dependencies or knowledge of
-xref:xpath-language.adoc[XPath]; so it is ideal for testing in camel-core. The
+xref:components::xpath-language.adoc[XPath]; so it is ideal for testing in 
camel-core. The
 idea was to cover 95% of the common use cases when you need a little bit
 of expression based script in your Camel routes.
 
 However for much more complex use cases you are generally recommended to
 choose a more expressive and powerful language such as:
 
-* xref:groovy-language.adoc[Groovy]
-* xref:spel-language.adoc[SpEL]
-* xref:mvel-component.adoc[MVEL]
-* xref:ognl-language.adoc[OGNL]
+* xref:components::groovy-language.adoc[Groovy]
+* xref:components::spel-language.adoc[SpEL]
+* xref:components::mvel-component.adoc[MVEL]
+* xref:components::ognl-language.adoc[OGNL]
 
 The simple language uses `${body`} placeholders for complex expressions
 where the expression contains constant literals. The $\{ } placeholders
@@ -188,9 +188,9 @@ Command accepts offsets such as: *now-24h* or 
*in.header.xxx+1h* or even *now+1h
 
 |date-with-timezone:_command:timezone:pattern_ |String |Date formatting using 
`java.text.SimpleDataFormat` timezones and patterns.
 
-|bean:_bean expression_ |Object |Invoking a bean expression using the 
xref:bean-component.adoc[Bean] language.
+|bean:_bean expression_ |Object |Invoking a bean expression using the 
xref:components::bean-component.adoc[Bean] language.
 Specifying a method name you must use dot as separator. We also support
-the ?method=methodname syntax that is used by the 
xref:bean-component.adoc[Bean]
+the ?method=methodname syntax that is used by the 
xref:components::bean-component.adoc[Bean]
 component.
 
 |`properties:key:default` |String |Lookup a property with the given key. If 
the key does
@@ -755,7 +755,7 @@ from("direct:order")
 ----
 
 We can use the `?method=methodname` option that we are familiar with the
-xref:bean-component.adoc[Bean] component itself:
+xref:components::bean-component.adoc[Bean] component itself:
 
 [source,java]
 ----
diff --git a/docs/user-manual/modules/ROOT/pages/spring-testing.adoc 
b/docs/user-manual/modules/ROOT/pages/spring-testing.adoc
index 4f013bf..1fbd2e0 100644
--- a/docs/user-manual/modules/ROOT/pages/spring-testing.adoc
+++ b/docs/user-manual/modules/ROOT/pages/spring-testing.adoc
@@ -6,7 +6,7 @@ integration work. The Spring Framework offers a number of 
features that
 makes it easy to test while using Spring for Inversion of Control which
 works with JUnit 3.x, JUnit 4.x, and http://testng.org[TestNG].
 
-We can use Spring for IoC and the Camel xref:mock-component.adoc[Mock] and
+We can use Spring for IoC and the Camel 
xref:components::mock-component.adoc[Mock] and
 xref:test-component.adoc[Test] endpoints to create sophisticated 
integration/unit
 tests that are easy to run and debug inside your IDE.  There are three
 supported approaches for testing with Spring in Camel.
@@ -323,7 +323,7 @@ public class CamelSpringJUnit4ClassRunnerPlainTest {
 
 If you wish to programmatically add any new assertions to your test you
 can easily do so with the following. Notice how we use @EndpointInject
-to inject a Camel endpoint into our code then the 
xref:mock-component.adoc[Mock]
+to inject a Camel endpoint into our code then the 
xref:components::mock-component.adoc[Mock]
 API to add an expectation on a specific message.
 
 [source,java]
@@ -349,7 +349,7 @@ public class MyCamelTest extends 
AbstractJUnit38SpringContextTests {
 [[SpringTesting-Furtherprocessingthereceivedmessages]]
 ==== Further processing the received messages
 
-Sometimes once a xref:mock-component.adoc[Mock] endpoint has received some
+Sometimes once a xref:components::mock-component.adoc[Mock] endpoint has 
received some
 messages you want to then process them further to add further assertions
 that your test case worked as you expect.
 
@@ -388,7 +388,7 @@ It might be that the
 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 xref:mock-component.adoc[Mock] endpoints as
+and you might just work with the xref:components::mock-component.adoc[Mock] 
endpoints as
 described above. However sometimes in a test case its useful to
 explicitly send or receive messages directly.
 
@@ -428,6 +428,6 @@ example test case using Mock and Spring] along with its
 
https://svn.apache.org/repos/asf/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/mock/InterceptSendToMockEndpointStrategyTest.xml[Spring
 XML]
 * Bean Integration
-* xref:mock-component.adoc[Mock] endpoint
+* xref:components::mock-component.adoc[Mock] endpoint
 * xref:test-component.adoc[Test] endpoint
 
diff --git a/docs/user-manual/modules/ROOT/pages/testing.adoc 
b/docs/user-manual/modules/ROOT/pages/testing.adoc
index 552225d..289c241 100644
--- a/docs/user-manual/modules/ROOT/pages/testing.adoc
+++ b/docs/user-manual/modules/ROOT/pages/testing.adoc
@@ -229,12 +229,12 @@ Camel provides a number of endpoints which can make 
testing easier.
 [width="100%",cols="1,3",options="header",]
 |=======================================================================
 |Name |Description
-|xref:dataset-component.adoc[DataSet] |For load & soak testing this endpoint
+|xref:components::dataset-component.adoc[DataSet] |For load & soak testing 
this endpoint
 provides a way to create huge numbers of messages for sending to
 Components and asserting that they are consumed
 correctly
 
-|xref:mock-component.adoc[Mock] |For testing routes and mediation rules using
+|xref:components::mock-component.adoc[Mock] |For testing routes and mediation 
rules using
 mocks and allowing assertions to be added to an endpoint
 
 |xref:test-component.adoc[Test] |Creates a xref:test-component.adoc[Mock] 
endpoint which
@@ -242,7 +242,7 @@ expects to receive all the message bodies that could be 
polled from the
 given underlying endpoint
 |=======================================================================
 
-The main endpoint is the xref:mock-component.adoc[Mock] endpoint which allows
+The main endpoint is the xref:components::mock-component.adoc[Mock] endpoint 
which allows
 expectations to be added to different endpoints; you can then run your
 tests and assert that your expectations are met at the end.
 
@@ -257,16 +257,16 @@ endpoints can be useful:
 [width="100%",cols="1,3",options="header",]
 |=======================================================================
 |Name |Description
-|xref:direct-component.adoc[Direct] |Direct invocation of the consumer from the
+|xref:components::direct-component.adoc[Direct] |Direct invocation of the 
consumer from the
 producer so that single threaded (non-SEDA) in VM invocation is
 performed which can be useful to mock out physical transports
 
-|xref:seda-component.adoc[SEDA] |Delivers messages asynchronously to consumers 
via
+|xref:components::seda-component.adoc[SEDA] |Delivers messages asynchronously 
to consumers via
 a
 
http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/BlockingQueue.html[`java.util.concurrent.BlockingQueue`]
 which is good for testing asynchronous transports
 
-|xref:stub-component.adoc[Stub] |Works like xref:stub-component.adoc[SEDA] but 
does not
+|xref:components::stub-component.adoc[Stub] |Works like 
xref:components::stub-component.adoc[SEDA] but does not
 validate the endpoint URI, which makes stubbing much easier.
 |=======================================================================
 
@@ -274,7 +274,7 @@ validate the endpoint URI, which makes stubbing much easier.
 ==== Testing existing routes
 
 Camel provides some features to aid during testing of existing routes
-where you cannot or will not use xref:mock-component.adoc[Mock] etc. For 
example
+where you cannot or will not use xref:components::mock-component.adoc[Mock] 
etc. For example
 you may have a production ready route which you want to test with some
 3rd party API which sends messages into this route.
 
diff --git a/docs/user-manual/modules/ROOT/pages/toD-eip.adoc 
b/docs/user-manual/modules/ROOT/pages/toD-eip.adoc
index baf1b62..cbdb5f4 100644
--- a/docs/user-manual/modules/ROOT/pages/toD-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/toD-eip.adoc
@@ -68,7 +68,7 @@ then the header foo is appended. So for example if the header 
foo has
 value order, then the endpoint is computed as "mock:order".
 
 You can also use other languages than xref:simple-language.adoc[Simple] such
-as xref:xpath-language.adoc[XPath] - this requires to prefix with language: as
+as xref:components::xpath-language.adoc[XPath] - this requires to prefix with 
language: as
 shown below (simple language is the default language). If you do not
 specify language: then the endpoint is a component name. And in some
 cases there is both a component and language with the same name such as
@@ -90,7 +90,7 @@ from("direct:start")
   .toD("language:xpath:/order/@uri");
 ----
 
-You can also concat multiple xref:language-component.adoc[Language](s) together
+You can also concat multiple 
xref:components::language-component.adoc[Language](s) together
 using the plus sign `+` such as shown below:
 
 [source,xml]
diff --git a/docs/user-manual/modules/ROOT/pages/transactional-client.adoc 
b/docs/user-manual/modules/ROOT/pages/transactional-client.adoc
index d88688e..4bed40f 100644
--- a/docs/user-manual/modules/ROOT/pages/transactional-client.adoc
+++ b/docs/user-manual/modules/ROOT/pages/transactional-client.adoc
@@ -8,7 +8,7 @@ using spring transactions.
 
 
image:http://www.enterpriseintegrationpatterns.com/img/TransactionalClientSolution.gif[image]
 
-Transaction Oriented Endpoints like xref:jms-component.adoc[JMS] support using 
a
+Transaction Oriented Endpoints like xref:components::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.
@@ -389,5 +389,5 @@ Camel to only do it for the current transaction and not 
globally.
 * xref:ErrorhandlinginCamel-ErrorhandlinginCamel.adoc[Error handling in Camel]
 * 
xref:TransactionErrorHandler-TransactionErrorHandler.adoc[TransactionErrorHandler]
 * xref:ErrorHandler-ErrorHandler.adoc[Error Handler]
-* xref:jms-component.adoc[JMS]
+* xref:components::jms-component.adoc[JMS]
 * xref:using-this-pattern.adoc[Using This Pattern]
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 02e787d..4dad4df 100644
--- a/docs/user-manual/modules/ROOT/pages/try-catch-finally.adoc
+++ b/docs/user-manual/modules/ROOT/pages/try-catch-finally.adoc
@@ -63,7 +63,7 @@ reattach the exception on the xref:exchange.adoc[Exchange].
 ==== Using try .. catch .. finally in Java DSL
 
 In the route below we have all keywords in action. As the code is based
-on a unit test we route using xref:mock-component.adoc[Mock].
+on a unit test we route using xref:components::mock-component.adoc[Mock].
 
 
https://github.com/apache/camel/tree/master/camel-core/src/test/java/org/apache/camel/processor/TryProcessorMultipleExceptionTest.java[TryProcessorMultipleExceptionTest.java]
 
@@ -100,7 +100,7 @@ to indicate the end there.
 We show the three sample samples using Spring DSL instead.
 
 In the route below we have all keywords in action. As the code is based
-on a unit test we route using xref:mock-component.adoc[Mock].
+on a unit test we route using xref:components::mock-component.adoc[Mock].
 
 
https://github.com/apache/camel/tree/master/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/SpringTryProcessorMultipleExceptionTest.xml[SpringTryProcessorMultipleExceptionTest.xml]
 
diff --git a/docs/user-manual/modules/ROOT/pages/unmarshal-eip.adoc 
b/docs/user-manual/modules/ROOT/pages/unmarshal-eip.adoc
index 2bb37a5..fe917a8 100644
--- a/docs/user-manual/modules/ROOT/pages/unmarshal-eip.adoc
+++ b/docs/user-manual/modules/ROOT/pages/unmarshal-eip.adoc
@@ -28,7 +28,7 @@ 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 
https://github.com/apache/camel/blob/master/docs/user-manual/en/registry.adoc[Registry]
 such as via your xref:spring.adoc[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:components::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
diff --git a/docs/user-manual/modules/ROOT/pages/using-propertyplaceholder.adoc 
b/docs/user-manual/modules/ROOT/pages/using-propertyplaceholder.adoc
index 9bbf752..b97c58b 100644
--- a/docs/user-manual/modules/ROOT/pages/using-propertyplaceholder.adoc
+++ b/docs/user-manual/modules/ROOT/pages/using-propertyplaceholder.adoc
@@ -27,7 +27,7 @@ following:
 * Lookup of beans in the xref:registry.adoc[Registry]
 * Additional supported in Spring XML (see below in examples)
 * Using Blueprint `PropertyPlaceholder` with Camel
-xref:properties-component.adoc[Properties] component
+xref:components::properties-component.adoc[Properties] component
 * Using `@PropertyInject` to inject a property in a POJO
 * *Camel 2.14.1* Using default value if a property does not exists
 * *Camel 2.14.1* Include out of the box functions, to lookup property
@@ -1208,4 +1208,4 @@ pc.addFunction(new MyBeerFunction());
 [[UsingPropertyPlaceholder-SeeAlso]]
 ==== See Also
 
-* xref:properties-component.adoc[Properties] component
+* xref:components::properties-component.adoc[Properties] component
diff --git a/docs/user-manual/modules/ROOT/pages/validator.adoc 
b/docs/user-manual/modules/ROOT/pages/validator.adoc
index 4c75466..7f93728 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
-xref:validator-component.adoc[Validation Component]. You can also use any 
other validation component like
+xref:components::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/writing-components.adoc 
b/docs/user-manual/modules/ROOT/pages/writing-components.adoc
index c684d3e..d70509d 100644
--- a/docs/user-manual/modules/ROOT/pages/writing-components.adoc
+++ b/docs/user-manual/modules/ROOT/pages/writing-components.adoc
@@ -130,7 +130,7 @@ DefaultComponent:
 protected abstract Endpoint<E> createEndpoint(String uri, String remaining, 
Map parameters)
 ----
 
-The code is an example from the xref:seda-component.adoc[SEDA] component that 
removes the size
+The code is an example from the xref:components::seda-component.adoc[SEDA] 
component that removes the size
 parameter:
 
 [source,java]
diff --git a/docs/user-manual/modules/ROOT/pages/xml-configuration.adoc 
b/docs/user-manual/modules/ROOT/pages/xml-configuration.adoc
index 3db1384..d631258 100644
--- a/docs/user-manual/modules/ROOT/pages/xml-configuration.adoc
+++ b/docs/user-manual/modules/ROOT/pages/xml-configuration.adoc
@@ -6,13 +6,13 @@ completion and functionality while being the most expressive. 
However if
 you wish to put your routing rules in XML you can via the Camel XML
 language.
 
-Camel XML uses xref:spring.adoc[Spring] 2 namespaces; so that you can
+Camel XML uses xref:components::spring.adoc[Spring] 2 namespaces; so that you 
can
 configure your routing rules within your 
-xref:spring.adoc[Spring XML configuration file]; you can also use
+xref:components::spring.adoc[Spring XML configuration file]; you can also use
 xref:faq/how-do-i-configure-endpoints.adoc[Java code to configure components 
and endpoints].
 
 For examples on how to use Camel XML, see the
-xref:enterprise-integration-patterns.adoc[Enterprise Integration Patterns] or 
refer to the xref:spring.adoc[Spring Support].
+xref:enterprise-integration-patterns.adoc[Enterprise Integration Patterns] or 
refer to the xref:components::spring.adoc[Spring Support].
 
 [[XMLConfiguration-SeeAlso]]
 === See Also
diff --git a/docs/user-manual/modules/ROOT/pages/xml-reference.adoc 
b/docs/user-manual/modules/ROOT/pages/xml-reference.adoc
index c776851..e9c544d 100644
--- a/docs/user-manual/modules/ROOT/pages/xml-reference.adoc
+++ b/docs/user-manual/modules/ROOT/pages/xml-reference.adoc
@@ -1402,7 +1402,7 @@ available.
 [[XMLReference-UsingtheXSDsinconfigurationfiles]]
 ==== Using the XSDs in configuration files
 
-When you are using xref:spring.adoc[Spring]'s 2.5 XML handling to parse
+When you are using xref:components::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.
 

Reply via email to