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

[camel] branch camel-3.0.x updated: fix xrefs

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

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


The following commit(s) were added to refs/heads/camel-3.0.x by this push:
     new 0f77d4e  fix xrefs
     new 447456d  Merge pull request #3675 from djencks/camel-3.0.x-issue-14782-task-14784
0f77d4e is described below

commit 0f77d4e237eef9f59accd72e1ffdabf4eb065b22
Author: David Jencks <dj...@apache.org>
AuthorDate: Tue Mar 24 16:37:03 2020 -0700

    fix xrefs
---
 .../camel-bean/src/main/docs/bean-language.adoc    |   2 +-
 .../src/main/docs/controlbus-component.adoc        |   8 +-
 .../src/main/docs/crypto-dataformat.adoc           |   2 +-
 .../src/main/docs/dataformat-component.adoc        |   2 +-
 .../camel-elsql/src/main/docs/elsql-component.adoc |   2 +-
 .../camel-file/src/main/docs/file-component.adoc   |  24 +-
 .../src/main/docs/flatpack-dataformat.adoc         |   2 +-
 .../src/main/docs/groovy-language.adoc             |   4 +-
 .../camel-hl7/src/main/docs/hl7-dataformat.adoc    |  10 +-
 .../camel-jetty/src/main/docs/jetty-component.adoc |   2 +-
 .../src/main/docs/language-component.adoc          |   8 +-
 .../camel-mina/src/main/docs/mina-component.adoc   |   2 +-
 .../camel-mock/src/main/docs/mock-component.adoc   |   2 +-
 .../src/main/docs/quickfix-component.adoc          |   2 +-
 .../src/main/docs/salesforce-component.adoc        |   2 +-
 .../src/main/docs/syslog-dataformat.adoc           |  14 +-
 .../camel-xpath/src/main/docs/xpath-language.adoc  |   2 +-
 .../ROOT/pages}/properties-component.adoc          |   8 +-
 .../modules/languages/pages/simple-language.adoc   |   8 +-
 docs/components/modules/ROOT/nav.adoc              |   1 -
 .../modules/ROOT/pages/controlbus-component.adoc   |   8 +-
 .../modules/ROOT/pages/dataformat-component.adoc   |   2 +-
 .../modules/ROOT/pages/elsql-component.adoc        |   2 +-
 .../modules/ROOT/pages/file-component.adoc         |  24 +-
 .../modules/ROOT/pages/jetty-component.adoc        |   2 +-
 .../modules/ROOT/pages/language-component.adoc     |   8 +-
 .../modules/ROOT/pages/mina-component.adoc         |   2 +-
 .../modules/ROOT/pages/mock-component.adoc         |   2 +-
 .../modules/ROOT/pages/properties-component.adoc   | 833 ---------------------
 .../modules/ROOT/pages/quickfix-component.adoc     |   2 +-
 .../modules/ROOT/pages/salesforce-component.adoc   |   2 +-
 .../dataformats/pages/crypto-dataformat.adoc       |   2 +-
 .../dataformats/pages/flatpack-dataformat.adoc     |   2 +-
 .../modules/dataformats/pages/hl7-dataformat.adoc  |  10 +-
 .../dataformats/pages/syslog-dataformat.adoc       |  14 +-
 .../modules/languages/pages/bean-language.adoc     |   2 +-
 .../modules/languages/pages/groovy-language.adoc   |   4 +-
 .../modules/languages/pages/xpath-language.adoc    |   2 +-
 38 files changed, 98 insertions(+), 932 deletions(-)

diff --git a/components/camel-bean/src/main/docs/bean-language.adoc b/components/camel-bean/src/main/docs/bean-language.adoc
index 02cea5d..b59c6bf 100644
--- a/components/camel-bean/src/main/docs/bean-language.adoc
+++ b/components/camel-bean/src/main/docs/bean-language.adoc
@@ -148,7 +148,7 @@ The xref:bean-language.adoc[Bean Language] also supports invoking beans
 that isn't registered in the xref:latest@manual::registry.adoc[Registry]. This is
 usable for quickly to invoke a bean from Java DSL where you don't need
 to register the bean in the xref:latest@manual::registry.adoc[Registry] such as the
-xref:spring.adoc[Spring] *`ApplicationContext`*. Camel can instantiate
+xref:latest@manual::spring.adoc[Spring] *`ApplicationContext`*. Camel can instantiate
 the bean and invoke the method if given a class or invoke an already
 existing instance.
 
diff --git a/components/camel-controlbus/src/main/docs/controlbus-component.adoc b/components/camel-controlbus/src/main/docs/controlbus-component.adoc
index 7c3535c..59c416c 100644
--- a/components/camel-controlbus/src/main/docs/controlbus-component.adoc
+++ b/components/camel-controlbus/src/main/docs/controlbus-component.adoc
@@ -191,7 +191,7 @@ String xml = template.requestBody("controlbus:route?action=stats", null, String.
 
 == Using Simple language
 
-You can use the xref:simple-language.adoc[Simple] language with the control bus,
+You can use the xref:languages:simple-language.adoc[Simple] language with the control bus,
 for example to stop a specific route, you can send a message to the
 `"controlbus:language:simple"` endpoint containing the following
 message:
@@ -211,8 +211,8 @@ String status = template.requestBody("controlbus:language:simple", "${camelConte
 
 It's easier to use the `route` command to control lifecycle of
 routes. The `language` command allows you to execute a language script
-that has stronger powers such as xref:groovy-language.adoc[Groovy] or to some
-extend the xref:simple-language.adoc[Simple] language.
+that has stronger powers such as xref:languages:groovy-language.adoc[Groovy] or to some
+extend the xref:languages:simple-language.adoc[Simple] language.
 
 For example to shutdown Camel itself you can do:
 
@@ -225,4 +225,4 @@ We use `async=true` to stop Camel asynchronously as otherwise we
 would be trying to stop Camel while it was in-flight processing the
 message we sent to the control bus component.
 
-TIP: You can also use other languages such as xref:groovy-language.adoc[Groovy], etc.
+TIP: You can also use other languages such as xref:languages:groovy-language.adoc[Groovy], etc.
diff --git a/components/camel-crypto/src/main/docs/crypto-dataformat.adoc b/components/camel-crypto/src/main/docs/crypto-dataformat.adoc
index 3a80ac5..a801da9 100644
--- a/components/camel-crypto/src/main/docs/crypto-dataformat.adoc
+++ b/components/camel-crypto/src/main/docs/crypto-dataformat.adoc
@@ -323,7 +323,7 @@ or with spring.
 
 == Dependencies
 
-To use the xref:crypto-component.adoc[Crypto] dataformat in your camel routes you
+To use the xref:ROOT:crypto-component.adoc[Crypto] dataformat in your camel routes you
 need to add the following dependency to your pom.
 
 [source,xml]
diff --git a/components/camel-dataformat/src/main/docs/dataformat-component.adoc b/components/camel-dataformat/src/main/docs/dataformat-component.adoc
index 7e99343..40ca21f 100644
--- a/components/camel-dataformat/src/main/docs/dataformat-component.adoc
+++ b/components/camel-dataformat/src/main/docs/dataformat-component.adoc
@@ -106,7 +106,7 @@ The component supports 4 options, which are listed below.
 
 == Samples
 
-For example to use the xref:jaxb-dataformat.adoc[JAXB] xref:latest@manual::data-format.adoc[Data
+For example to use the xref:dataformats:jaxb-dataformat.adoc[JAXB] xref:latest@manual::data-format.adoc[Data
 Format] we can do as follows:
 
 [source,java]
diff --git a/components/camel-elsql/src/main/docs/elsql-component.adoc b/components/camel-elsql/src/main/docs/elsql-component.adoc
index 3463675..fcb4720 100644
--- a/components/camel-elsql/src/main/docs/elsql-component.adoc
+++ b/components/camel-elsql/src/main/docs/elsql-component.adoc
@@ -44,7 +44,7 @@ The parameters to the SQL queries are named parameters in the elsql
 mapping files, and maps to corresponding keys from the Camel message, in
 the given precedence:
 
-1. from message body if xref:simple-language.adoc[Simple]
+1. from message body if xref:languages:simple-language.adoc[Simple]
 expression.
 
 2. from message body if its a `java.util.Map`
diff --git a/components/camel-file/src/main/docs/file-component.adoc b/components/camel-file/src/main/docs/file-component.adoc
index 1877b28..8f4ef34 100644
--- a/components/camel-file/src/main/docs/file-component.adoc
+++ b/components/camel-file/src/main/docs/file-component.adoc
@@ -262,7 +262,7 @@ bean completes, and thus the route is completed, the file consumer will
 perform the move operation and move the file to the `.done` sub-folder.
 
 The *move* and the *preMove* options are considered as a directory name
-(though if you use an expression such as xref:file-language.adoc[File Language], or xref:simple-language.adoc[Simple] then the result of the expression
+(though if you use an expression such as xref:languages:file-language.adoc[File Language], or xref:languages:simple-language.adoc[Simple] then the result of the expression
 evaluation is the file name to be used - eg if you set
 
 [source]
@@ -270,7 +270,7 @@ evaluation is the file name to be used - eg if you set
 move=../backup/copy-of-${file:name}
 ----
 
-then that's using the xref:file-language.adoc[File Language] which we
+then that's using the xref:languages:file-language.adoc[File Language] which we
 use return the file name to be used), which can be either relative or
 absolute. If relative, the directory is created as a sub-folder from
 within the folder where the file was consumed.
@@ -308,10 +308,10 @@ processed and after it's processed, it's moved to the `.done` folder.
 
 The *move* and *preMove* options
 are Expression-based, so we have the full power of
-the xref:file-language.adoc[File Language] to do advanced configuration
+the xref:languages:file-language.adoc[File Language] to do advanced configuration
 of the directory and name pattern. +
  Camel will, in fact, internally convert the directory name you enter
-into a xref:file-language.adoc[File Language] expression. So when we
+into a xref:languages:file-language.adoc[File Language] expression. So when we
 enter `move=.done` Camel will convert this into:
 `\${file:parent}/.done/${file:onlyname}`. This is only done if
 Camel detects that you have not provided a $\{ } in the option value
@@ -334,7 +334,7 @@ choice. For example to move the files in an error folder with a
 timestamp you can use
 `moveFailed=/error/${``file:name.noext``}-${date:now:yyyyMMddHHmmssSSS}.${``file:ext`}.
 
-See more examples at xref:file-language.adoc[File Language]
+See more examples at xref:languages:file-language.adoc[File Language]
 
 == Message Headers
 
@@ -348,7 +348,7 @@ The following headers are supported by this component:
 
 |`CamelFileName` |Specifies the name of the file to write (relative to the endpoint
 directory). This name can be a `String`; a `String` with a
-xref:file-language.adoc[File Language] or xref:simple-language.adoc[Simple]
+xref:languages:file-language.adoc[File Language] or xref:languages:simple-language.adoc[Simple]
 expression; or an Expression object. If it's
 `null` then Camel will auto-generate a filename based on the message
 unique ID.
@@ -555,8 +555,8 @@ from("direct:report").to("file:target/reports/?fileName=report.txt");
 == Filename Expression
 
 Filename can be set either using the *expression* option or as a
-string-based xref:file-language.adoc[File Language] expression in the
-`CamelFileName` header. See the xref:file-language.adoc[File Language]
+string-based xref:languages:file-language.adoc[File Language] expression in the
+`CamelFileName` header. See the xref:languages:file-language.adoc[File Language]
 for syntax and samples.
 
 [[File2-Consumingfilesfromfolderswhereothersdropfilesdirectly]]
@@ -839,7 +839,7 @@ today's date as a sub-folder name:
 from("file://inbox?move=backup/${date:now:yyyyMMdd}/${file:name}").to("...");
 ----
 
-See xref:file-language.adoc[File Language] for more samples.
+See xref:languages:file-language.adoc[File Language] for more samples.
 
 == Avoiding reading the same file more than once (idempotent consumer)
 
@@ -1036,7 +1036,7 @@ Registry for a bean with the ID, `mySorter`.
 === Sorting using sortBy
 
 Camel supports pluggable sorting strategies. This strategy it to use the
-xref:file-language.adoc[File Language] to configure the sorting. The
+xref:languages:file-language.adoc[File Language] to configure the sorting. The
 `sortBy` option is configured as follows:
 
 [source]
@@ -1060,7 +1060,7 @@ This will sort by file name, you can reverse the order by prefixing
 sortBy=reverse:file:name
 ----
 
-As we have the full power of xref:file-language.adoc[File Language] we
+As we have the full power of xref:languages:file-language.adoc[File Language] we
 can use some of the other parameters, so if we want to sort by file size
 we do:
 
@@ -1104,7 +1104,7 @@ sortBy=file:modified;file:name
 Now there is an issue here, can you spot it? Well the modified timestamp
 of the file is too fine as it will be in milliseconds, but what if we
 want to sort by date only and then subgroup by name? +
- Well as we have the true power of xref:file-language.adoc[File Language] we can use its date command that supports patterns. So this
+ Well as we have the true power of xref:languages:file-language.adoc[File Language] we can use its date command that supports patterns. So this
 can be solved as:
 
 [source]
diff --git a/components/camel-flatpack/src/main/docs/flatpack-dataformat.adoc b/components/camel-flatpack/src/main/docs/flatpack-dataformat.adoc
index effc2c2..b4d0649 100644
--- a/components/camel-flatpack/src/main/docs/flatpack-dataformat.adoc
+++ b/components/camel-flatpack/src/main/docs/flatpack-dataformat.adoc
@@ -3,7 +3,7 @@
 
 *Since Camel 2.1*
 
-The xref:flatpack-component.adoc[Flatpack] component ships with the Flatpack data
+The xref:ROOT:flatpack-component.adoc[Flatpack] component ships with the Flatpack data
 format that can be used to format between fixed width or delimited text
 messages to a `List` of rows as `Map`.
 
diff --git a/components/camel-groovy/src/main/docs/groovy-language.adoc b/components/camel-groovy/src/main/docs/groovy-language.adoc
index 99e8e5e..8f96687 100644
--- a/components/camel-groovy/src/main/docs/groovy-language.adoc
+++ b/components/camel-groovy/src/main/docs/groovy-language.adoc
@@ -134,7 +134,7 @@ following attributes all set at `ENGINE_SCOPE`:
 IN message instead.
 
 |properties |`org.apache.camel.builder.script.PropertiesFunction` |Function with a `resolve` method to make it easier to use
-Camels xref:properties-component.adoc[Properties] component from scripts. See
+Camels xref:ROOT:properties-component.adoc[Properties] component from scripts. See
 further below for example.
 |=======================================================================
 
@@ -153,7 +153,7 @@ header on the Camel message with the key `CamelScriptArguments`. +
 
 *Since Camel 2.9*
 
-If you need to use the xref:properties-component.adoc[Properties] component from a
+If you need to use the xref:ROOT: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
diff --git a/components/camel-hl7/src/main/docs/hl7-dataformat.adoc b/components/camel-hl7/src/main/docs/hl7-dataformat.adoc
index a7cfc17..e997e60 100644
--- a/components/camel-hl7/src/main/docs/hl7-dataformat.adoc
+++ b/components/camel-hl7/src/main/docs/hl7-dataformat.adoc
@@ -9,12 +9,12 @@ v2 messages] using the http://hl7api.sourceforge.net[HAPI library].
 
 This component supports the following:
 
-* HL7 MLLP codec for xref:mina-component.adoc[Mina]
-* HL7 MLLP codec for xref:netty-component.adoc[Netty]
+* HL7 MLLP codec for xref:ROOT:mina-component.adoc[Mina]
+* HL7 MLLP codec for xref:ROOT:netty-component.adoc[Netty]
 * Type Converter from/to HAPI and String
 * HL7 DataFormat using the HAPI library
 * Even more ease-of-use as it's integrated well with the
-xref:mina-component.adoc[camel-mina] component.
+xref:ROOT:mina-component.adoc[camel-mina] component.
 
 Maven users will need to add the following dependency to their `pom.xml`
 for this component:
@@ -35,8 +35,8 @@ HL7 is often used with the HL7 MLLP protocol, which is a text based TCP
 socket based protocol. This component ships with a Mina and Netty Codec
 that conforms to the MLLP protocol so you can easily expose an HL7
 listener accepting HL7 requests over the TCP transport layer. To expose
-a HL7 listener service, the xref:mina-component.adoc[camel-mina] or
-xref:netty-component.adoc[camel-netty] component is used with the
+a HL7 listener service, the xref:ROOT:mina-component.adoc[camel-mina] or
+xref:ROOT:netty-component.adoc[camel-netty] component is used with the
 `HL7MLLPCodec` (mina) or `HL7MLLPNettyDecoder/HL7MLLPNettyEncoder`
 (Netty).
 
diff --git a/components/camel-jetty/src/main/docs/jetty-component.adoc b/components/camel-jetty/src/main/docs/jetty-component.adoc
index 3c30f1b..878d4b8 100644
--- a/components/camel-jetty/src/main/docs/jetty-component.adoc
+++ b/components/camel-jetty/src/main/docs/jetty-component.adoc
@@ -285,7 +285,7 @@ Jetty component will copy the HTTP request parameter, `one` to the
 exchange's `in.header`. We can then use the `simple` language to route
 exchanges that contain this header to a specific endpoint and all others
 to another. If we used a language more powerful than
-xref:simple-language.adoc[Simple] (such as xref:ognl-language.adoc[OGNL])
+xref:languages:simple-language.adoc[Simple] (such as xref:languages:ognl-language.adoc[OGNL])
 we could also test for the parameter value and do routing based on the
 header value as well.
 
diff --git a/components/camel-language/src/main/docs/language-component.adoc b/components/camel-language/src/main/docs/language-component.adoc
index 229b58e..78ae22a 100644
--- a/components/camel-language/src/main/docs/language-component.adoc
+++ b/components/camel-language/src/main/docs/language-component.adoc
@@ -19,7 +19,7 @@ script is dynamic defined as well.
 This component is provided out of the box in `camel-core` and hence no
 additional JARs is needed. You only have to include additional Camel
 components if the language of choice mandates it, such as using
-xref:groovy-language.adoc[Groovy] or xref:groovy-language.adoc[JavaScript] languages.
+xref:languages:groovy-language.adoc[Groovy] or xref:languages:groovy-language.adoc[JavaScript] languages.
 
 == URI format
 
@@ -138,17 +138,17 @@ script configured on the endpoint.
 
 == Examples
 
-For example you can use the xref:simple-language.adoc[Simple] language to
+For example you can use the xref:languages:simple-language.adoc[Simple] language to
 Message Translator a message:
 
 In case you want to convert the message body type you can do this as
 well:
 
-You can also use the xref:groovy-language.adoc[Groovy] language, such as this
+You can also use the xref:languages:groovy-language.adoc[Groovy] language, such as this
 example where the input message will by multiplied with 2:
 
 You can also provide the script as a header as shown below. Here we use
-xref:xpath-language.adoc[XPath] language to extract the text from the `<foo>`
+xref:languages:xpath-language.adoc[XPath] language to extract the text from the `<foo>`
 tag.
 
 [source,java]
diff --git a/components/camel-mina/src/main/docs/mina-component.adoc b/components/camel-mina/src/main/docs/mina-component.adoc
index 9f386c8..0189cac 100644
--- a/components/camel-mina/src/main/docs/mina-component.adoc
+++ b/components/camel-mina/src/main/docs/mina-component.adoc
@@ -215,7 +215,7 @@ See the Mina how to write your own codec. To use your custom codec with
 `camel-mina`, you should register your codec in the
 Registry; for example, by creating a bean in the
 Spring XML file. Then use the `codec` option to specify the bean ID of
-your codec. See xref:hl7-dataformat.adoc[HL7] that has a custom codec.
+your codec. See xref:dataformats:hl7-dataformat.adoc[HL7] that has a custom codec.
 
 === Sample with sync=false
 
diff --git a/components/camel-mock/src/main/docs/mock-component.adoc b/components/camel-mock/src/main/docs/mock-component.adoc
index 17f8158..04d3c9b 100644
--- a/components/camel-mock/src/main/docs/mock-component.adoc
+++ b/components/camel-mock/src/main/docs/mock-component.adoc
@@ -32,7 +32,7 @@ Expression to create an order testing function,
 * Messages arrive match some kind of Predicate such
 as that specific headers have certain values, or that parts of the
 messages match some predicate, such as by evaluating an
-xref:xpath-language.adoc[XPath] or xref:xpath-language.adoc[XQuery]
+xref:languages:xpath-language.adoc[XPath] or xref:languages:xpath-language.adoc[XQuery]
 Expression.
 
 [NOTE]
diff --git a/components/camel-quickfix/src/main/docs/quickfix-component.adoc b/components/camel-quickfix/src/main/docs/quickfix-component.adoc
index 2c0ec54..1803ed6 100644
--- a/components/camel-quickfix/src/main/docs/quickfix-component.adoc
+++ b/components/camel-quickfix/src/main/docs/quickfix-component.adoc
@@ -589,7 +589,7 @@ initially as a collection of key value pairs data. You can use this
 object or you can use the method 'toString' to retrieve the original FIX
 message.
 
-*Note:* Alternatively, you can use xref:bindy-dataformat.adoc[camel bindy dataformat] to transform the FIX message into your own java POJO
+*Note:* Alternatively, you can use xref:dataformats:bindy-dataformat.adoc[camel bindy dataformat] to transform the FIX message into your own java POJO
 
 When a message must be send to QuickFix, then you must create a
 QuickFix.Message instance.
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc b/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc
index b3a6c5a..76501de 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/docs/salesforce-component.adoc
@@ -356,7 +356,7 @@ For instance, consider that you need to limit the API usage of Salesforce so tha
 other routes. The body of output message contains an instance of
 `org.apache.camel.component.salesforce.api.dto.Limits` object that can be used in conjunction with
 Content Based Router and Content Based Router and 
-xref:spel-language.adoc[Spring Expression Language (SpEL)] to choose when to perform queries.
+xref:languages:spel-language.adoc[Spring Expression Language (SpEL)] to choose when to perform queries.
 
 Notice how multiplying `1.0` with the integer value held in `body.dailyApiRequests.remaining` makes the expression
 evaluate as with floating point arithmetic, without it - it would end up making integral division which would result
diff --git a/components/camel-syslog/src/main/docs/syslog-dataformat.adoc b/components/camel-syslog/src/main/docs/syslog-dataformat.adoc
index 85e36dc7..4fe8500 100644
--- a/components/camel-syslog/src/main/docs/syslog-dataformat.adoc
+++ b/components/camel-syslog/src/main/docs/syslog-dataformat.adoc
@@ -13,10 +13,10 @@ This component supports the following:
 SyslogMessage model objects.
 * Type Converter from/to SyslogMessage and
 String
-* Integration with the xref:mina-component.adoc[camel-mina] component.
-* Integration with the xref:netty-component.adoc[camel-netty] component.
+* Integration with the xref:ROOT:mina-component.adoc[camel-mina] component.
+* Integration with the xref:ROOT:netty-component.adoc[camel-netty] component.
 * Encoder and decoder for
-the xref:netty-component.adoc[Netty Component] component.
+the xref:ROOT:netty-component.adoc[Netty Component] component.
 * Support for RFC5424 also.
 
 Maven users will need to add the following dependency to their `pom.xml`
@@ -39,7 +39,7 @@ as its underlying transport layer mechanism.
 The UDP port that has been assigned to syslog is 514.
 
 To expose a Syslog listener service we reuse the existing
-xref:mina-component.adoc[Mina Component] component or xref:netty-component.adoc[Netty Component]
+xref:ROOT:mina-component.adoc[Mina Component] component or xref:ROOT:netty-component.adoc[Netty Component]
 where we just use the `Rfc3164SyslogDataFormat` to marshal and unmarshal
 messages. Notice that from *Camel 2.14* onwards the syslog dataformat is
 renamed to `SyslogDataFormat`.
@@ -91,8 +91,8 @@ ND
 *Since Camel 2.14*
 
 To expose a Syslog listener service we reuse the
-existing xref:mina-component.adoc[Mina Component] component
-or xref:netty-component.adoc[Netty Component] where we just use
+existing xref:ROOT:mina-component.adoc[Mina Component] component
+or xref:ROOT:netty-component.adoc[Netty Component] where we just use
 the `SyslogDataFormat` to marshal and unmarshal messages
 
 === Exposing a Syslog listener
@@ -120,7 +120,7 @@ as an InputStream:
 </camelContext>
 ------------------------------------------------------------------------------------------
 
-The same route using xref:mina-component.adoc[Mina Component]
+The same route using xref:ROOT:mina-component.adoc[Mina Component]
 
 [source,xml]
 -------------------------------------------------------------------------
diff --git a/components/camel-xpath/src/main/docs/xpath-language.adoc b/components/camel-xpath/src/main/docs/xpath-language.adoc
index b462860..47e9221 100644
--- a/components/camel-xpath/src/main/docs/xpath-language.adoc
+++ b/components/camel-xpath/src/main/docs/xpath-language.adoc
@@ -159,7 +159,7 @@ exchange:
 |out:header |the header name |Object |Will return the *out* message header.
 
 |function:properties |key for property |String |To lookup a property using the
-xref:properties-component.adoc[Properties] component (property placeholders).
+xref:ROOT:properties-component.adoc[Properties] component (property placeholders).
 
 |function:simple |simple expression |Object |To evaluate a xref:simple-language.adoc[Simple] expression.
 |===
diff --git a/core/camel-base/src/main/docs/properties-component.adoc b/core/camel-base/src/main/docs/modules/ROOT/pages/properties-component.adoc
similarity index 98%
rename from core/camel-base/src/main/docs/properties-component.adoc
rename to core/camel-base/src/main/docs/modules/ROOT/pages/properties-component.adoc
index c015c58..e6ffda5 100644
--- a/core/camel-base/src/main/docs/properties-component.adoc
+++ b/core/camel-base/src/main/docs/modules/ROOT/pages/properties-component.adoc
@@ -281,9 +281,9 @@ ProducerTemplate for example:
 template.sendBody("{{cool.start}}", "Hello World");
 ----
 
-== Example with xref:simple-language.adoc[Simple] language
+== Example with xref:languages:simple-language.adoc[Simple] language
 
-The xref:simple-language.adoc[Simple] language now also support using property
+The xref:languages:simple-language.adoc[Simple] language now also support using property
 placeholders, for example in the route below:
 
 [source,java]
@@ -540,7 +540,7 @@ placeholder notation with `{{` and `}}`.
 == Clashing Spring property placeholders with Camels Simple language
 
 Take notice when using Spring bridging placeholder then the spring `${ }`
-syntax clashes with the xref:simple-language.adoc[Simple] in Camel, and therefore
+syntax clashes with the xref:languages:simple-language.adoc[Simple] in Camel, and therefore
 take care. For example:
 
 [source,xml]
@@ -551,7 +551,7 @@ take care. For example:
 ----
 
 clashes with Spring property placeholders, and you should use `$simple{ }`
-to indicate using the xref:simple-language.adoc[Simple] language in Camel.
+to indicate using the xref:languages:simple-language.adoc[Simple] language in Camel.
 
 [source,xml]
 ----
diff --git a/core/camel-base/src/main/docs/modules/languages/pages/simple-language.adoc b/core/camel-base/src/main/docs/modules/languages/pages/simple-language.adoc
index 30af71f..635aa59 100644
--- a/core/camel-base/src/main/docs/modules/languages/pages/simple-language.adoc
+++ b/core/camel-base/src/main/docs/modules/languages/pages/simple-language.adoc
@@ -17,7 +17,7 @@ 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:ROOT:mvel-component.adoc[MVEL]
 * xref:ognl-language.adoc[OGNL]
 
 The simple language uses `${body`} placeholders for complex expressions
@@ -174,9 +174,9 @@ Command accepts offsets such as: *now-24h* or *in.header.xxx+1h* or even *now+1h
 
 |date-with-timezone:_command:timezone:pattern_ |String |Date formatting using `java.text.SimpleDataFormat` timezones and patterns.
 
-|bean:_bean expression_ |Object |Invoking a bean expression using the xref:bean-component.adoc[Bean] language.
+|bean:_bean expression_ |Object |Invoking a bean expression using the xref:ROOT: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:ROOT:bean-component.adoc[Bean]
 component.
 
 |`properties:key:default` |String |Lookup a property with the given key. If the key does
@@ -741,7 +741,7 @@ from("direct:order")
 ----
 
 We can use the `?method=methodname` option that we are familiar with the
-xref:bean-component.adoc[Bean] component itself:
+xref:ROOT:bean-component.adoc[Bean] component itself:
 
 [source,java]
 ----
diff --git a/docs/components/modules/ROOT/nav.adoc b/docs/components/modules/ROOT/nav.adoc
index 5047a53..752edba 100644
--- a/docs/components/modules/ROOT/nav.adoc
+++ b/docs/components/modules/ROOT/nav.adoc
@@ -250,7 +250,6 @@
 ** xref:pgevent-component.adoc[PostgresSQL Event Component]
 ** xref:pg-replication-slot-component.adoc[PostgresSQL Replication Slot Component]
 ** xref:lpr-component.adoc[Printer Component]
-** xref:properties-component.adoc[Properties Component]
 ** xref:pubnub-component.adoc[PubNub Component]
 ** xref:pulsar-component.adoc[Pulsar Component]
 ** xref:quartz-component.adoc[Quartz Component]
diff --git a/docs/components/modules/ROOT/pages/controlbus-component.adoc b/docs/components/modules/ROOT/pages/controlbus-component.adoc
index be51ecd..2fe0021 100644
--- a/docs/components/modules/ROOT/pages/controlbus-component.adoc
+++ b/docs/components/modules/ROOT/pages/controlbus-component.adoc
@@ -192,7 +192,7 @@ String xml = template.requestBody("controlbus:route?action=stats", null, String.
 
 == Using Simple language
 
-You can use the xref:simple-language.adoc[Simple] language with the control bus,
+You can use the xref:languages:simple-language.adoc[Simple] language with the control bus,
 for example to stop a specific route, you can send a message to the
 `"controlbus:language:simple"` endpoint containing the following
 message:
@@ -212,8 +212,8 @@ String status = template.requestBody("controlbus:language:simple", "${camelConte
 
 It's easier to use the `route` command to control lifecycle of
 routes. The `language` command allows you to execute a language script
-that has stronger powers such as xref:groovy-language.adoc[Groovy] or to some
-extend the xref:simple-language.adoc[Simple] language.
+that has stronger powers such as xref:languages:groovy-language.adoc[Groovy] or to some
+extend the xref:languages:simple-language.adoc[Simple] language.
 
 For example to shutdown Camel itself you can do:
 
@@ -226,4 +226,4 @@ We use `async=true` to stop Camel asynchronously as otherwise we
 would be trying to stop Camel while it was in-flight processing the
 message we sent to the control bus component.
 
-TIP: You can also use other languages such as xref:groovy-language.adoc[Groovy], etc.
+TIP: You can also use other languages such as xref:languages:groovy-language.adoc[Groovy], etc.
diff --git a/docs/components/modules/ROOT/pages/dataformat-component.adoc b/docs/components/modules/ROOT/pages/dataformat-component.adoc
index 605e5ec..d2ddb86 100644
--- a/docs/components/modules/ROOT/pages/dataformat-component.adoc
+++ b/docs/components/modules/ROOT/pages/dataformat-component.adoc
@@ -107,7 +107,7 @@ The component supports 4 options, which are listed below.
 
 == Samples
 
-For example to use the xref:jaxb-dataformat.adoc[JAXB] xref:latest@manual::data-format.adoc[Data
+For example to use the xref:dataformats:jaxb-dataformat.adoc[JAXB] xref:latest@manual::data-format.adoc[Data
 Format] we can do as follows:
 
 [source,java]
diff --git a/docs/components/modules/ROOT/pages/elsql-component.adoc b/docs/components/modules/ROOT/pages/elsql-component.adoc
index cf3116e..5e93981 100644
--- a/docs/components/modules/ROOT/pages/elsql-component.adoc
+++ b/docs/components/modules/ROOT/pages/elsql-component.adoc
@@ -45,7 +45,7 @@ The parameters to the SQL queries are named parameters in the elsql
 mapping files, and maps to corresponding keys from the Camel message, in
 the given precedence:
 
-1. from message body if xref:simple-language.adoc[Simple]
+1. from message body if xref:languages:simple-language.adoc[Simple]
 expression.
 
 2. from message body if its a `java.util.Map`
diff --git a/docs/components/modules/ROOT/pages/file-component.adoc b/docs/components/modules/ROOT/pages/file-component.adoc
index b886a8c..4dc0988 100644
--- a/docs/components/modules/ROOT/pages/file-component.adoc
+++ b/docs/components/modules/ROOT/pages/file-component.adoc
@@ -263,7 +263,7 @@ bean completes, and thus the route is completed, the file consumer will
 perform the move operation and move the file to the `.done` sub-folder.
 
 The *move* and the *preMove* options are considered as a directory name
-(though if you use an expression such as xref:file-language.adoc[File Language], or xref:simple-language.adoc[Simple] then the result of the expression
+(though if you use an expression such as xref:languages:file-language.adoc[File Language], or xref:languages:simple-language.adoc[Simple] then the result of the expression
 evaluation is the file name to be used - eg if you set
 
 [source]
@@ -271,7 +271,7 @@ evaluation is the file name to be used - eg if you set
 move=../backup/copy-of-${file:name}
 ----
 
-then that's using the xref:file-language.adoc[File Language] which we
+then that's using the xref:languages:file-language.adoc[File Language] which we
 use return the file name to be used), which can be either relative or
 absolute. If relative, the directory is created as a sub-folder from
 within the folder where the file was consumed.
@@ -309,10 +309,10 @@ processed and after it's processed, it's moved to the `.done` folder.
 
 The *move* and *preMove* options
 are Expression-based, so we have the full power of
-the xref:file-language.adoc[File Language] to do advanced configuration
+the xref:languages:file-language.adoc[File Language] to do advanced configuration
 of the directory and name pattern. +
  Camel will, in fact, internally convert the directory name you enter
-into a xref:file-language.adoc[File Language] expression. So when we
+into a xref:languages:file-language.adoc[File Language] expression. So when we
 enter `move=.done` Camel will convert this into:
 `\${file:parent}/.done/${file:onlyname}`. This is only done if
 Camel detects that you have not provided a $\{ } in the option value
@@ -335,7 +335,7 @@ choice. For example to move the files in an error folder with a
 timestamp you can use
 `moveFailed=/error/${``file:name.noext``}-${date:now:yyyyMMddHHmmssSSS}.${``file:ext`}.
 
-See more examples at xref:file-language.adoc[File Language]
+See more examples at xref:languages:file-language.adoc[File Language]
 
 == Message Headers
 
@@ -349,7 +349,7 @@ The following headers are supported by this component:
 
 |`CamelFileName` |Specifies the name of the file to write (relative to the endpoint
 directory). This name can be a `String`; a `String` with a
-xref:file-language.adoc[File Language] or xref:simple-language.adoc[Simple]
+xref:languages:file-language.adoc[File Language] or xref:languages:simple-language.adoc[Simple]
 expression; or an Expression object. If it's
 `null` then Camel will auto-generate a filename based on the message
 unique ID.
@@ -556,8 +556,8 @@ from("direct:report").to("file:target/reports/?fileName=report.txt");
 == Filename Expression
 
 Filename can be set either using the *expression* option or as a
-string-based xref:file-language.adoc[File Language] expression in the
-`CamelFileName` header. See the xref:file-language.adoc[File Language]
+string-based xref:languages:file-language.adoc[File Language] expression in the
+`CamelFileName` header. See the xref:languages:file-language.adoc[File Language]
 for syntax and samples.
 
 [[File2-Consumingfilesfromfolderswhereothersdropfilesdirectly]]
@@ -840,7 +840,7 @@ today's date as a sub-folder name:
 from("file://inbox?move=backup/${date:now:yyyyMMdd}/${file:name}").to("...");
 ----
 
-See xref:file-language.adoc[File Language] for more samples.
+See xref:languages:file-language.adoc[File Language] for more samples.
 
 == Avoiding reading the same file more than once (idempotent consumer)
 
@@ -1037,7 +1037,7 @@ Registry for a bean with the ID, `mySorter`.
 === Sorting using sortBy
 
 Camel supports pluggable sorting strategies. This strategy it to use the
-xref:file-language.adoc[File Language] to configure the sorting. The
+xref:languages:file-language.adoc[File Language] to configure the sorting. The
 `sortBy` option is configured as follows:
 
 [source]
@@ -1061,7 +1061,7 @@ This will sort by file name, you can reverse the order by prefixing
 sortBy=reverse:file:name
 ----
 
-As we have the full power of xref:file-language.adoc[File Language] we
+As we have the full power of xref:languages:file-language.adoc[File Language] we
 can use some of the other parameters, so if we want to sort by file size
 we do:
 
@@ -1105,7 +1105,7 @@ sortBy=file:modified;file:name
 Now there is an issue here, can you spot it? Well the modified timestamp
 of the file is too fine as it will be in milliseconds, but what if we
 want to sort by date only and then subgroup by name? +
- Well as we have the true power of xref:file-language.adoc[File Language] we can use its date command that supports patterns. So this
+ Well as we have the true power of xref:languages:file-language.adoc[File Language] we can use its date command that supports patterns. So this
 can be solved as:
 
 [source]
diff --git a/docs/components/modules/ROOT/pages/jetty-component.adoc b/docs/components/modules/ROOT/pages/jetty-component.adoc
index 984e1f5..f324426 100644
--- a/docs/components/modules/ROOT/pages/jetty-component.adoc
+++ b/docs/components/modules/ROOT/pages/jetty-component.adoc
@@ -286,7 +286,7 @@ Jetty component will copy the HTTP request parameter, `one` to the
 exchange's `in.header`. We can then use the `simple` language to route
 exchanges that contain this header to a specific endpoint and all others
 to another. If we used a language more powerful than
-xref:simple-language.adoc[Simple] (such as xref:ognl-language.adoc[OGNL])
+xref:languages:simple-language.adoc[Simple] (such as xref:languages:ognl-language.adoc[OGNL])
 we could also test for the parameter value and do routing based on the
 header value as well.
 
diff --git a/docs/components/modules/ROOT/pages/language-component.adoc b/docs/components/modules/ROOT/pages/language-component.adoc
index 56e2efe..f4b6d20 100644
--- a/docs/components/modules/ROOT/pages/language-component.adoc
+++ b/docs/components/modules/ROOT/pages/language-component.adoc
@@ -20,7 +20,7 @@ script is dynamic defined as well.
 This component is provided out of the box in `camel-core` and hence no
 additional JARs is needed. You only have to include additional Camel
 components if the language of choice mandates it, such as using
-xref:groovy-language.adoc[Groovy] or xref:groovy-language.adoc[JavaScript] languages.
+xref:languages:groovy-language.adoc[Groovy] or xref:languages:groovy-language.adoc[JavaScript] languages.
 
 == URI format
 
@@ -139,17 +139,17 @@ script configured on the endpoint.
 
 == Examples
 
-For example you can use the xref:simple-language.adoc[Simple] language to
+For example you can use the xref:languages:simple-language.adoc[Simple] language to
 Message Translator a message:
 
 In case you want to convert the message body type you can do this as
 well:
 
-You can also use the xref:groovy-language.adoc[Groovy] language, such as this
+You can also use the xref:languages:groovy-language.adoc[Groovy] language, such as this
 example where the input message will by multiplied with 2:
 
 You can also provide the script as a header as shown below. Here we use
-xref:xpath-language.adoc[XPath] language to extract the text from the `<foo>`
+xref:languages:xpath-language.adoc[XPath] language to extract the text from the `<foo>`
 tag.
 
 [source,java]
diff --git a/docs/components/modules/ROOT/pages/mina-component.adoc b/docs/components/modules/ROOT/pages/mina-component.adoc
index 9318800..5efb490 100644
--- a/docs/components/modules/ROOT/pages/mina-component.adoc
+++ b/docs/components/modules/ROOT/pages/mina-component.adoc
@@ -216,7 +216,7 @@ See the Mina how to write your own codec. To use your custom codec with
 `camel-mina`, you should register your codec in the
 Registry; for example, by creating a bean in the
 Spring XML file. Then use the `codec` option to specify the bean ID of
-your codec. See xref:hl7-dataformat.adoc[HL7] that has a custom codec.
+your codec. See xref:dataformats:hl7-dataformat.adoc[HL7] that has a custom codec.
 
 === Sample with sync=false
 
diff --git a/docs/components/modules/ROOT/pages/mock-component.adoc b/docs/components/modules/ROOT/pages/mock-component.adoc
index 787dae6..b1cb358 100644
--- a/docs/components/modules/ROOT/pages/mock-component.adoc
+++ b/docs/components/modules/ROOT/pages/mock-component.adoc
@@ -33,7 +33,7 @@ Expression to create an order testing function,
 * Messages arrive match some kind of Predicate such
 as that specific headers have certain values, or that parts of the
 messages match some predicate, such as by evaluating an
-xref:xpath-language.adoc[XPath] or xref:xpath-language.adoc[XQuery]
+xref:languages:xpath-language.adoc[XPath] or xref:languages:xpath-language.adoc[XQuery]
 Expression.
 
 [NOTE]
diff --git a/docs/components/modules/ROOT/pages/properties-component.adoc b/docs/components/modules/ROOT/pages/properties-component.adoc
deleted file mode 100644
index b7152b2..0000000
--- a/docs/components/modules/ROOT/pages/properties-component.adoc
+++ /dev/null
@@ -1,833 +0,0 @@
-[[properties-component]]
-= Properties Component
-:page-source: core/camel-base/src/main/docs/properties-component.adoc
-
-*Since Camel 2.3*
-
-The properties component is used for property placeholders in your Camel application, such as endpoint URIs.
-It is *not* a regular Camel component with producer and consumer for routing messages. However for historical
-reasons it was named `PropertiesComponent` and this name is commonly known and therfore we keep using it.
-
-== Spring Boot Auto-Configuration
-
-The component supports 10 options, which are listed below.
-
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *camel.component.properties.auto-discover-properties-sources* | Whether to automatically discovery instances of PropertiesSource from registry and service factory. | true | Boolean
-| *camel.component.properties.default-fallback-enabled* | If false, the component does not attempt to find a default for the key by looking after the colon separator. | true | Boolean
-| *camel.component.properties.encoding* | Encoding to use when loading properties file from the file system or classpath. If no encoding has been set, then the properties files is loaded using ISO-8859-1 encoding (latin-1) as documented by java.util.Properties#load(java.io.InputStream) |  | String
-| *camel.component.properties.environment-variable-mode* | Sets the OS environment variables mode (0 = never, 1 = fallback, 2 = override). The default mode (override) is to use OS environment variables if present, and override any existing properties. OS environment variable mode is checked before JVM system property mode | 2 | Integer
-| *camel.component.properties.ignore-missing-location* | Whether to silently ignore if a location cannot be located, such as a properties file not found. | false | Boolean
-| *camel.component.properties.initial-properties* | Sets initial properties which will be used before any locations are resolved. The option is a java.util.Properties type. |  | String
-| *camel.component.properties.location* | A list of locations to load properties. You can use comma to separate multiple locations. This option will override any default locations and only use the locations from this option. |  | String
-| *camel.component.properties.override-properties* | Sets a special list of override properties that take precedence and will use first, if a property exist. The option is a java.util.Properties type. |  | String
-| *camel.component.properties.properties-parser* | To use a custom PropertiesParser. The option is a org.apache.camel.component.properties.PropertiesParser type. |  | String
-| *camel.component.properties.system-properties-mode* | Sets the JVM system property mode (0 = never, 1 = fallback, 2 = override). The default mode (override) is to use system properties if present, and override any existing properties. OS environment variable mode is checked before JVM system property mode | 2 | Integer
-|===
-
-[TIP]
-**Resolving property from Java code** +
-You can use the method `resolvePropertyPlaceholders` on the
-`CamelContext` to resolve a property from any Java code.
-
-== Using PropertyPlaceholder
-
-Camel now provides a new `PropertiesComponent` in *camel-core* which
-allows you to use property placeholders when defining Camel
-Endpoint URIs.
-
-This works much like you would do if using Spring's
-`<property-placeholder>` tag. However Spring have a limitation which
-prevents 3rd party frameworks to leverage Spring property placeholders
-to the fullest. See more at
-xref:latest@manual::faq/how-do-i-use-spring-property-placeholder-with-camel-xml.adoc[How do
-I use Spring Property Placeholder with Camel XML].
-
-[TIP]
-**Bridging Spring and Camel property placeholders** +
-You can bridge the Spring property placeholder
-with Camel, see further below for more details.
-
-The property placeholder is generally in use when doing:
-
-* lookup or creating endpoints
-* lookup of beans in the Registry
-* additional supported in Spring XML (see below in examples)
-* using Blueprint PropertyPlaceholder with Camel
-xref:properties-component.adoc[Properties] component
-* using `@PropertyInject` to inject a property in a POJO
-* Using default value if a property does not exists
-* Include out of the box functions, to lookup property
-values from OS environment variables, JVM system properties, or the
-service idiom.
-* Using custom functions, which can be plugged into the
-property component.
-
-== Syntax
-
-The syntax to use Camel's property placeholder is to use `{\{key\}}` for
-example `{{file.uri}}` where `file.uri` is the property key.
-
-You can use property placeholders in parts of the endpoint URI's which
-for example you can use placeholders for parameters in the URIs.
-
-You can specify a default value to use if
-a property with the key does not exists, eg `file.url:/some/path` where
-the default value is the text after the colon (eg /some/path).
-
-NOTE: Do not use colon in the property key. The colon is used as a separator
-token when you are providing a default value.
-
-== Defining location
-
-The properties component need to know a location(s) where to resolve the
-properties. You can define 1 to many locations. If you define the
-location in a single String property you can separate multiple locations
-with comma such as:
-
-[source,java]
-----
-pc.setLocation("com/mycompany/myprop.properties,com/mycompany/other.properties");
-----
-
-You can set which location can be discarded if missing by by setting the ``optional`` attribute, which is false by default, i.e:
-
-[source,java]
-----
-pc.setLocations(
-    "com/mycompany/override.properties;optional=true"
-    "com/mycompany/defaults.properties");
-----
-
-== Using system and environment variables in locations
-
-The location now supports using placeholders for JVM system properties
-and OS environments variables.
-
-For example:
-
-[source]
-----
-location=file:${karaf.home}/etc/foo.properties
-----
-
-In the location above we defined a location using the file scheme using
-the JVM system property with key `karaf.home`.
-
-To use an OS environment variable instead you would have to prefix with
-env:
-
-[source]
-----
-location=file:${env:APP_HOME}/etc/foo.properties
-----
-
-Where `APP_HOME` is an OS environment.
-
-NOTE: Some OS'es (such as Linux) do not support dashes in environment variable names,
-so here we are using `APP_HOME`. But if you specify `APP-HOME` then Camel 3 will automatic lookup
-the value as `APP_HOME` (with underscore) as fallback.
-
-You can have multiple placeholders in the same location, such as:
-
-[source]
-----
-location=file:${env:APP_HOME}/etc/${prop.name}.properties
-----
-
-== Configuring in Java DSL
-
-You have to create and register the `PropertiesComponent` under the name
-`properties` such as:
-
-[source,java]
-----
-PropertiesComponent pc = camelContext.getPropertiesComponent();
-pc.setLocation("classpath:com/mycompany/myprop.properties");
-----
-
-== Configuring in Spring XML
-
-Spring XML offers two variations to configure. You can define a spring
-bean as a `PropertiesComponent` which resembles the way done in Java
-DSL. Or you can use the `<propertyPlaceholder>` tag.
-
-[source,xml]
-----
-<bean id="properties" class="org.apache.camel.component.properties.PropertiesComponent">
-    <property name="location" value="classpath:com/mycompany/myprop.properties"/>
-</bean>
-----
-
-Using the `<propertyPlaceholder>` tag makes the configuration a bit more
-fresh such as:
-
-[source,xml]
-----
-<camelContext ...>
-   <propertyPlaceholder id="properties" location="com/mycompany/myprop.properties"/>
-</camelContext>
-----
-
-Setting the properties location through the location tag works just fine but sometime you have a number of resources to take into account and starting from *Camel 2.19.0* you can set the properties location with a dedicated propertiesLocation:
-
-[source,xml]
-----
-<camelContext ...>
-  <propertyPlaceholder id="myPropertyPlaceholder">
-    <propertiesLocation
-      resolver = "classpath"
-      path     = "com/my/company/something/my-properties-1.properties"
-      optional = "false"/>
-    <propertiesLocation
-      resolver = "classpath"
-      path     = "com/my/company/something/my-properties-2.properties"
-      optional = "false"/>
-    <propertiesLocation
-      resolver = "file"
-      path     = "${karaf.home}/etc/my-override.properties"
-      optional = "true"/>
-   </propertyPlaceholder>
-</camelContext>
-----
-
-[TIP]
-**Specifying the cache option inside XML** +
-Camel supports specifying a value for the cache option both
-inside the Spring as well as the Blueprint XML.
-
-== Using a Properties from the Registry
-
-For example in OSGi you may want to expose a service which returns the
-properties as a `java.util.Properties` object.
-
-Then you could setup the xref:properties-component.adoc[Properties] component as
-follows:
-
-[source,xml]
-----
- <propertyPlaceholder id="properties" location="ref:myProperties"/>
-----
-
-Where `myProperties` is the id to use for lookup in the OSGi registry.
-Notice we use the `ref:` prefix to tell Camel that it should lookup the
-properties for the Registry.
-
-== Examples using properties component
-
-When using property placeholders in the endpoint URIs you can either use
-the `properties:` component or define the placeholders directly in the
-URI. We will show example of both cases, starting with the former.
-
-[source,java]
-----
-// properties
-cool.end=mock:result
-
-// route
-from("direct:start").to("{{cool.end}}");
-----
-
-You can also use placeholders as a part of the endpoint uri:
-
-[source,java]
-----
-// properties
-cool.foo=result
-
-// route
-from("direct:start").to("mock:{{cool.foo}}");
-----
-
-In the example above the to endpoint will be resolved to `mock:result`.
-
-You can also have properties with refer to each other such as:
-
-[source,java]
-----
-// properties
-cool.foo=result
-cool.concat=mock:{{cool.foo}}
-
-// route
-from("direct:start").to("mock:{{cool.concat}}");
-----
-
-Notice how `cool.concat` refer to another property.
-
-And you can use placeholders several times:
-
-[source,java]
-----
-// properties
-cool.start=direct:start
-cool.showid=true
-cool.result=result
-
-// route
-from("{{cool.start}}")
-    .to("log:{{cool.start}}?showBodyType=false&showExchangeId={{cool.showid}}")
-    .to("mock:{{cool.result}}");
-----
-
-You can also your property placeholders when using
-ProducerTemplate for example:
-
-[source,java]
-----
-template.sendBody("{{cool.start}}", "Hello World");
-----
-
-== Example with xref:simple-language.adoc[Simple] language
-
-The xref:simple-language.adoc[Simple] language now also support using property
-placeholders, for example in the route below:
-
-[source,java]
-----
-// properties
-cheese.quote=Camel rocks
-
-// route
-from("direct:start")
-    .transform().simple("Hi ${body} do you think ${properties:cheese.quote}?");
-----
-
-== Additional property placeholder supported in Spring XML
-
-The property placeholders is also supported in many of the Camel Spring
-XML tags such as
-`<package>, <packageScan>, <contextScan>, <jmxAgent>, <endpoint>, <routeBuilder>, <proxy>`
-and the others.
-
-The example below has property placeholder in the `<jmxAgent>` tag:
-
-You can also define property placeholders in the various attributes on
-the `<camelContext>` tag such as `trace` as shown here:
-
-== Using JVM system properties or Environment variables as override or fallback values
-
-The properties components supports using JVM system properties and also OS environment variables
-as values which can either be used as override or fallback values.
-
-The default mode is that both of them are in override mode, and they are check in the following order:
-
-1. OS environment variable (override mode)
-2. JVM system property  (override mode)
-3. Property files and other locations
-4. OS environment variable (fallback mode)
-5. JVM system property  (fallback mode)
-
-The check stops at first found property value for the key.
-
-You can control these modes using the `systemPropertiesMode` and `environmentVariableMode`
-options on the properties component.
-
-== Using property placeholders for any kind of attribute in the XML DSL
-
-In the example below we use the `prop` prefix for the namespace
-camel.apache.org/schema/placeholder by which we can use the
-`prop` prefix in the attributes in the XML DSLs. Notice how we use that
-in the Multicast to indicate that the option
-`stopOnException` should be the value of the placeholder with the key
-"stop".
-
-In our properties file we have the value defined as
-
-[source]
-----
-stop=true
-----
-
-== Using Blueprint property placeholder with Camel routes
-
-Camel supports Blueprint
-which also offers a property placeholder service. Camel supports
-convention over configuration, so all you have to do is to define the
-OSGi Blueprint property placeholder in the XML file as shown below:
-
-[source,xml]
-----
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
-           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-           xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
-           xsi:schemaLocation="
-           http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
-
-    <!-- OSGI blueprint property placeholder -->
-    <cm:property-placeholder id="myblueprint.placeholder" persistent-id="camel.blueprint">
-        <!-- list some properties as needed -->
-        <cm:default-properties>
-            <cm:property name="result" value="mock:result"/>
-        </cm:default-properties>
-    </cm:property-placeholder>
-
-    <camelContext xmlns="http://camel.apache.org/schema/blueprint">
-        <!-- in the route we can use {{ }} placeholders which will lookup in blueprint
-             as Camel will auto detect the OSGi blueprint property placeholder and use it -->
-        <route>
-            <from uri="direct:start"/>
-            <to uri="mock:foo"/>
-            <to uri="{{result}}"/>
-        </route>
-    </camelContext>
-</blueprint>
-----
-
-=== Using OSGi blueprint property placeholders in Camel routes
-
-By default Camel detects and uses OSGi blueprint property placeholder
-service. You can disable this by setting the attribute
-`useBlueprintPropertyResolver` to false on the `<camelContext>`
-definition.
-
-=== About placeholder syntax
-
-Notice how we can use the Camel syntax for placeholders `{{` and `}}` in the
-Camel route, which will lookup the value from OSGi blueprint.
-
-The blueprint syntax for placeholders is `${ }`. So outside the
-`<camelContext>` you must use the `${ }` syntax. Where as inside
-`<camelContext>` you must use `{{` and `}}` syntax.
-
-OSGi blueprint allows you to configure the syntax, so you can actually
-align those if you want.
-
-You can also explicit refer to a specific OSGi blueprint property
-placeholder by its id. For that you need to use the Camel's
-`<propertyPlaceholder>` as shown in the example below:
-
-[source,xml]
-----
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
-           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-           xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
-           xsi:schemaLocation="
-           http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
-
-    <!-- OSGI blueprint property placeholder -->
-    <cm:property-placeholder id="myblueprint.placeholder" persistent-id="camel.blueprint">
-        <!-- list some properties as needed -->
-        <cm:default-properties>
-            <cm:property name="prefix.result" value="mock:result"/>
-        </cm:default-properties>
-    </cm:property-placeholder>
-
-    <camelContext xmlns="http://camel.apache.org/schema/blueprint">
-        <!-- using Camel properties component and refer to the blueprint property placeholder by its id -->
-        <propertyPlaceholder id="properties" location="blueprint:myblueprint.placeholder"/>
-
-        <!-- in the route we can use {{ }} placeholders which will lookup in blueprint -->
-        <route>
-            <from uri="direct:start"/>
-            <to uri="mock:foo"/>
-            <to uri="{{prefix.result}}"/>
-        </route>
-    </camelContext>
-</blueprint>
-----
-
-
-== Explicit referring to a OSGi blueprint placeholder in Camel
-
-Notice how we use the `blueprint` scheme to refer to the OSGi blueprint
-placeholder by its id. This allows you to mix and match, for example you
-can also have additional schemes in the location. For example to load a
-file from the classpath you can do:
-
-[source]
-----
-location="blueprint:myblueprint.placeholder,classpath:myproperties.properties"
-----
-
-Each location is separated by comma.
-
-== Overriding Blueprint property placeholders outside CamelContext
-
-When using Blueprint property placeholder in the Blueprint XML file, you
-can declare the properties directly in the XML file as shown below:
-
-Notice that we have a `<bean>` which refers to one of the properties. And
-in the Camel route we refer to the other using the `{{` and `}}` notation.
-
-Now if you want to override these Blueprint properties from an unit
-test, you can do this as shown below:
-
-To do this we override and implement the
-`useOverridePropertiesWithConfigAdmin` method. We can then put the
-properties we want to override on the given props parameter. And the
-return value *must* be the `persistence-id` of the
-`<cm:property-placeholder>` tag, which you define in the blueprint XML
-file.
-
-== Using .cfg or .properties file for Blueprint property placeholders
-
-When using Blueprint property placeholder in the Blueprint XML file, you
-can declare the properties in a `.properties` or `.cfg` file. If you use
-Apache ServieMix / Karaf then this container has a convention that it
-loads the properties from a file in the etc directory with the naming
-`etc/pid.cfg`, where `pid` is the `persistence-id`.
-
-For example in the blueprint XML file we have the
-`persistence-id="stuff"`, which mean it will load the configuration file
-as `etc/stuff.cfg`.
-
-Now if you want to unit test this blueprint XML file, then you can
-override the `loadConfigAdminConfigurationFile` and tell Camel which
-file to load as shown below:
-
-Notice that this method requires to return a `String[]` with 2 values. The
-1st value is the path for the configuration file to load.
-The 2nd value is the `persistence-id` of the `<cm:property-placeholder>`
-tag.
-
-The `stuff.cfg` file is just a plain properties file with the property
-placeholders such as:
-
-[source]
-----
-== this is a comment
-greeting=Bye
-----
-
-== Using .cfg file and overriding properties for Blueprint property placeholders
-
-You can do both as well. Here is a complete example. First we have the
-Blueprint XML file:
-
-And in the unit test class we do as follows:
-
-And the `etc/stuff.cfg` configuration file contains
-
-[source]
-----
-greeting=Bye
-echo=Yay
-destination=mock:result
-----
-
-== Bridging Spring and Camel property placeholders
-
-The Spring Framework does not allow 3rd party frameworks such as Apache
-Camel to seamless hook into the Spring property placeholder mechanism.
-However you can easily bridge Spring and Camel by declaring a Spring
-bean with the type
-`org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer`, which
-is a Spring
-`org.springframework.beans.factory.config.PropertyPlaceholderConfigurer`
-type.
-
-To bridge Spring and Camel you must define a single bean as shown below:
-
-*Bridging Spring and Camel property placeholders*
-
-You *must not* use the spring <context:property-placeholder> namespace
-at the same time; this is not possible.
-
-After declaring this bean, you can define property placeholders using
-both the Spring style, and the Camel style within the <camelContext> tag
-as shown below:
-
-*Using bridge property placeholders*
-
-Notice how the hello bean is using pure Spring property placeholders
-using the `${ }` notation. And in the Camel routes we use the Camel
-placeholder notation with `{{` and `}}`.
-
-== Clashing Spring property placeholders with Camels Simple language
-
-Take notice when using Spring bridging placeholder then the spring `${ }`
-syntax clashes with the xref:simple-language.adoc[Simple] in Camel, and therefore
-take care. For example:
-
-[source,xml]
-----
-<setHeader name="Exchange.FILE_NAME">
-  <simple>{{file.rootdir}}/${in.header.CamelFileName}</simple>
-</setHeader>
-----
-
-clashes with Spring property placeholders, and you should use `$simple{ }`
-to indicate using the xref:simple-language.adoc[Simple] language in Camel.
-
-[source,xml]
-----
-<setHeader name="Exchange.FILE_NAME">
-  <simple>{{file.rootdir}}/$simple{in.header.CamelFileName}</simple>
-</setHeader>
-----
-
-An alternative is to configure the `PropertyPlaceholderConfigurer` with
-`ignoreUnresolvablePlaceholders` option to `true`.
-
-== Overriding properties from Camel test kit
-
-When Testing with Camel and using the
-xref:properties-component.adoc[Properties] component, you may want to be able to
-provide the properties to be used from directly within the unit test
-source code. +
-Camel test kits, eg `CamelTestSupport` class offers the following methods
-
-* `useOverridePropertiesWithPropertiesComponent`
-* `ignoreMissingLocationWithPropertiesComponent`
-
-So for example in your unit test classes, you can override the
-`useOverridePropertiesWithPropertiesComponent` method and return a
-`java.util.Properties` that contains the properties which should be
-preferred to be used.
-
-=== Providing properties from within unit test source
-
-This can be done from any of the Camel Test kits, such as camel-test,
-camel-test-spring, and camel-test-blueprint.
-
-The `ignoreMissingLocationWithPropertiesComponent` can be used to
-instruct Camel to ignore any locations which was not discoverable, for
-example if you run the unit test, in an environment that does not have
-access to the location of the properties.
-
-== Using @PropertyInject
-
-Camel allows to inject property placeholders in POJOs using the
-`@PropertyInject` annotation which can be set on fields and setter
-methods.
-
-For example you can use that with `RouteBuilder` classes, such as shown
-below:
-
-[source,java]
-----
-public class MyRouteBuilder extends RouteBuilder {
-
-    @PropertyInject("hello")
-    private String greeting;
-
-    @Override
-    public void configure() throws Exception {
-        from("direct:start")
-            .transform().constant(greeting)
-            .to("{{result}}");
-    }
-
-}
-----
-
-Notice we have annotated the greeting field with `@PropertyInject` and
-define it to use the key `"hello"`. Camel will then lookup the property
-with this key and inject its value, converted to a String type.
-
-You can also use multiple placeholders and text in the key, for example
-we can do:
-
-[source,java]
-----
-@PropertyInject("Hello {{name}} how are you?")
-private String greeting;
-----
-
-This will lookup the placeholder with they key `"name"`.
-
-You can also add a default value if the key does not exists, such as:
-
-[source,java]
-----
-@PropertyInject(value = "myTimeout", defaultValue = "5000")
-private int timeout;
-----
-
-== Using out of the box functions
-
-The xref:properties-component.adoc[Properties] component includes the following
-functions out of the box
-
-* `env` - A function to lookup the property from OS environment variables
-* `sys` - A function to lookup the property from Java JVM system
-properties
-* `service` - A function to lookup the property from OS environment
-variables using the service naming idiom
-* `service.name` - A function to lookup the
-property from OS environment variables using the service naming idiom
-returning the hostname part only
-* `service.port` - A function to lookup the
-property from OS environment variables using the service naming idiom
-returning the port part only
-
-As you can see these functions is intended to make it easy to lookup
-values from the environment. As they are provided out of the box, they
-can easily be used as shown below:
-
-[source,xml]
-----
-  <camelContext xmlns="http://camel.apache.org/schema/blueprint">
-
-    <route>
-      <from uri="direct:start"/>
-      <to uri="{`{env:SOMENAME}`}"/>
-      <to uri="{`{sys:MyJvmPropertyName}`}"/>
-    </route>
-  </camelContext>
-----
-
-You can use default values as well, so if the property does not exists,
-you can define a default value as shown below, where the default value
-is a `log:foo` and `log:bar` value.
-
-[source,xml]
-----
-  <camelContext xmlns="http://camel.apache.org/schema/blueprint">
-
-    <route>
-      <from uri="direct:start"/>
-      <to uri="{`{env:SOMENAME:log:foo}`}"/>
-      <to uri="{`{sys:MyJvmPropertyName:log:bar}`}"/>
-    </route>
-  </camelContext>
-----
-
- 
-
-The service function is for looking up a service which is defined using
-OS environment variables using the service naming idiom, to refer to a
-service location using `hostname : port`
-
-* __NAME__**_SERVICE_HOST**
-* __NAME__**_SERVICE_PORT**
-
-in other words the service uses `_SERVICE_HOST` and `_SERVICE_PORT` as
-prefix. So if the service is named FOO, then the OS environment
-variables should be set as
-
-[source]
-----
-export $FOO_SERVICE_HOST=myserver
-export $FOO_SERVICE_PORT=8888
-----
-
-For example if the FOO service a remote HTTP service, then we can refer
-to the service in the Camel endpoint uri, and use
-the HTTP component to make the HTTP call:
-
-[source,xml]
-----
-<camelContext xmlns="http://camel.apache.org/schema/blueprint">
-  <route>
-    <from uri="direct:start"/>
-    <to uri="http://{`{service:FOO}`}/myapp"/>
-  </route>
-</camelContext>
-----
-
-And we can use default values if the service has not been defined, for
-example to call a service on localhost, maybe for unit testing etc
-
-[source,xml]
-----
-<camelContext xmlns="http://camel.apache.org/schema/blueprint">
-  <route>
-    <from uri="direct:start"/>
-    <to uri="http://{`{service:FOO:localhost:8080}`}/myapp"/>
-  </route>
-</camelContext>
-----
-
-== Using custom functions (advanced)
-
-The xref:properties-component.adoc[Properties] component allow to plugin 3rd party
-functions which can be used during parsing of the property placeholders.
-These functions are then able to do custom logic to resolve the
-placeholders, such as looking up in databases, do custom computations,
-or whatnot. The name of the function becomes the prefix used in the
-placeholder. This is best illustrated in the example code below
-
-[source,xml]
-----
-<bean id="beerFunction" class="MyBeerFunction"/>
-
-<camelContext xmlns="http://camel.apache.org/schema/blueprint">
-  <propertyPlaceholder id="properties">
-    <propertiesFunction ref="beerFunction"/>
-  </propertyPlaceholder>
-
-  <route>
-    <from uri="direct:start"/>
-    <to uri="{`{beer:FOO}`}"/>
-    <to uri="{`{beer:BAR}`}"/>
-  </route>
-</camelContext>
-----
-
-NOTE: The location attribute (on propertyPlaceholder tag) is not mandatory
-
-Here we have a Camel XML route where we have defined the
-`<propertyPlaceholder>` to use a custom function, which we refer to be the
-bean id - eg the `beerFunction`. As the beer function uses `"beer"` as its
-name, then the placeholder syntax can trigger the beer function by
-starting with `beer:value`.
-
-The implementation of the function is only two methods as shown below:
-
-[source,java]
-----
-public static final class MyBeerFunction implements PropertiesFunction {
-
-    @Override
-    public String getName() {
-        return "beer";
-    }
-
-    @Override
-    public String apply(String remainder) {
-        return "mock:" + remainder.toLowerCase();
-    }
-}
-----
-
-The function must implement
-the `org.apache.camel.component.properties.PropertiesFunction`
-interface. The method `getName` is  the name of the function, eg beer.
-And the `apply` method is where we implement the custom logic to do. As
-the sample code is from an unit test, it just returns a value to refer
-to a mock endpoint.
-
-To register a custom function from Java code is as shown below:
-
-[source,java]
-----
-PropertiesComponent pc = (org.apache.camel.componennt.properties.PropertiesComponent) context.getPropertiesComponent();
-pc.addFunction(new MyBeerFunction());
-----
- 
-
-== Using 3rd-party properties sources
-
-The properties component allows to plugin 3rd party sources to load and lookup properties via the `PropertySource`
-API from camel-api. For example the `camel-microprofile-config` component is implemented using this.
-The 3rd-party `PropertySource` can automatic be discoverd from classpath when Camel is starting up.
-This is done by include the file `META-INF/services/org/apache/camel/property-source-factory` file
-which refers to the fully qualified class name of the `PropertySource` implementation.
-See the `camel-microprofile-config` for an example.
-
-You can also register 3rd-part property sources via Java API
-
-[source,java]
-----
-PropertiesComponent pc = ...
-pc.addPropertySource(myPropertySource);
-----
-
-=== LoadablePropertySource
-
-A `PropertySource` can define that it supports loading all its properties from the source at once,
-for example from file system. This allows Camel properties component to load these properties at once
-during startup.
-
-=== PropertySource
-
-The regular `PropertySource` will lookup the property on-demand, for example to lookup
-values from a backend source such as a database or HashiCorp Vault etc.
-
-
diff --git a/docs/components/modules/ROOT/pages/quickfix-component.adoc b/docs/components/modules/ROOT/pages/quickfix-component.adoc
index f132b80..47edf50 100644
--- a/docs/components/modules/ROOT/pages/quickfix-component.adoc
+++ b/docs/components/modules/ROOT/pages/quickfix-component.adoc
@@ -590,7 +590,7 @@ initially as a collection of key value pairs data. You can use this
 object or you can use the method 'toString' to retrieve the original FIX
 message.
 
-*Note:* Alternatively, you can use xref:bindy-dataformat.adoc[camel bindy dataformat] to transform the FIX message into your own java POJO
+*Note:* Alternatively, you can use xref:dataformats:bindy-dataformat.adoc[camel bindy dataformat] to transform the FIX message into your own java POJO
 
 When a message must be send to QuickFix, then you must create a
 QuickFix.Message instance.
diff --git a/docs/components/modules/ROOT/pages/salesforce-component.adoc b/docs/components/modules/ROOT/pages/salesforce-component.adoc
index 4424db5..e33e9b3 100644
--- a/docs/components/modules/ROOT/pages/salesforce-component.adoc
+++ b/docs/components/modules/ROOT/pages/salesforce-component.adoc
@@ -357,7 +357,7 @@ For instance, consider that you need to limit the API usage of Salesforce so tha
 other routes. The body of output message contains an instance of
 `org.apache.camel.component.salesforce.api.dto.Limits` object that can be used in conjunction with
 Content Based Router and Content Based Router and 
-xref:spel-language.adoc[Spring Expression Language (SpEL)] to choose when to perform queries.
+xref:languages:spel-language.adoc[Spring Expression Language (SpEL)] to choose when to perform queries.
 
 Notice how multiplying `1.0` with the integer value held in `body.dailyApiRequests.remaining` makes the expression
 evaluate as with floating point arithmetic, without it - it would end up making integral division which would result
diff --git a/docs/components/modules/dataformats/pages/crypto-dataformat.adoc b/docs/components/modules/dataformats/pages/crypto-dataformat.adoc
index cafb2fa..a87ffa6 100644
--- a/docs/components/modules/dataformats/pages/crypto-dataformat.adoc
+++ b/docs/components/modules/dataformats/pages/crypto-dataformat.adoc
@@ -324,7 +324,7 @@ or with spring.
 
 == Dependencies
 
-To use the xref:crypto-component.adoc[Crypto] dataformat in your camel routes you
+To use the xref:ROOT:crypto-component.adoc[Crypto] dataformat in your camel routes you
 need to add the following dependency to your pom.
 
 [source,xml]
diff --git a/docs/components/modules/dataformats/pages/flatpack-dataformat.adoc b/docs/components/modules/dataformats/pages/flatpack-dataformat.adoc
index 8942902..2c628e2 100644
--- a/docs/components/modules/dataformats/pages/flatpack-dataformat.adoc
+++ b/docs/components/modules/dataformats/pages/flatpack-dataformat.adoc
@@ -4,7 +4,7 @@
 
 *Since Camel 2.1*
 
-The xref:flatpack-component.adoc[Flatpack] component ships with the Flatpack data
+The xref:ROOT:flatpack-component.adoc[Flatpack] component ships with the Flatpack data
 format that can be used to format between fixed width or delimited text
 messages to a `List` of rows as `Map`.
 
diff --git a/docs/components/modules/dataformats/pages/hl7-dataformat.adoc b/docs/components/modules/dataformats/pages/hl7-dataformat.adoc
index 66d0632..30749ca 100644
--- a/docs/components/modules/dataformats/pages/hl7-dataformat.adoc
+++ b/docs/components/modules/dataformats/pages/hl7-dataformat.adoc
@@ -10,12 +10,12 @@ v2 messages] using the http://hl7api.sourceforge.net[HAPI library].
 
 This component supports the following:
 
-* HL7 MLLP codec for xref:mina-component.adoc[Mina]
-* HL7 MLLP codec for xref:netty-component.adoc[Netty]
+* HL7 MLLP codec for xref:ROOT:mina-component.adoc[Mina]
+* HL7 MLLP codec for xref:ROOT:netty-component.adoc[Netty]
 * Type Converter from/to HAPI and String
 * HL7 DataFormat using the HAPI library
 * Even more ease-of-use as it's integrated well with the
-xref:mina-component.adoc[camel-mina] component.
+xref:ROOT:mina-component.adoc[camel-mina] component.
 
 Maven users will need to add the following dependency to their `pom.xml`
 for this component:
@@ -36,8 +36,8 @@ HL7 is often used with the HL7 MLLP protocol, which is a text based TCP
 socket based protocol. This component ships with a Mina and Netty Codec
 that conforms to the MLLP protocol so you can easily expose an HL7
 listener accepting HL7 requests over the TCP transport layer. To expose
-a HL7 listener service, the xref:mina-component.adoc[camel-mina] or
-xref:netty-component.adoc[camel-netty] component is used with the
+a HL7 listener service, the xref:ROOT:mina-component.adoc[camel-mina] or
+xref:ROOT:netty-component.adoc[camel-netty] component is used with the
 `HL7MLLPCodec` (mina) or `HL7MLLPNettyDecoder/HL7MLLPNettyEncoder`
 (Netty).
 
diff --git a/docs/components/modules/dataformats/pages/syslog-dataformat.adoc b/docs/components/modules/dataformats/pages/syslog-dataformat.adoc
index 73ec141..06ea69c 100644
--- a/docs/components/modules/dataformats/pages/syslog-dataformat.adoc
+++ b/docs/components/modules/dataformats/pages/syslog-dataformat.adoc
@@ -14,10 +14,10 @@ This component supports the following:
 SyslogMessage model objects.
 * Type Converter from/to SyslogMessage and
 String
-* Integration with the xref:mina-component.adoc[camel-mina] component.
-* Integration with the xref:netty-component.adoc[camel-netty] component.
+* Integration with the xref:ROOT:mina-component.adoc[camel-mina] component.
+* Integration with the xref:ROOT:netty-component.adoc[camel-netty] component.
 * Encoder and decoder for
-the xref:netty-component.adoc[Netty Component] component.
+the xref:ROOT:netty-component.adoc[Netty Component] component.
 * Support for RFC5424 also.
 
 Maven users will need to add the following dependency to their `pom.xml`
@@ -40,7 +40,7 @@ as its underlying transport layer mechanism.
 The UDP port that has been assigned to syslog is 514.
 
 To expose a Syslog listener service we reuse the existing
-xref:mina-component.adoc[Mina Component] component or xref:netty-component.adoc[Netty Component]
+xref:ROOT:mina-component.adoc[Mina Component] component or xref:ROOT:netty-component.adoc[Netty Component]
 where we just use the `Rfc3164SyslogDataFormat` to marshal and unmarshal
 messages. Notice that from *Camel 2.14* onwards the syslog dataformat is
 renamed to `SyslogDataFormat`.
@@ -92,8 +92,8 @@ ND
 *Since Camel 2.14*
 
 To expose a Syslog listener service we reuse the
-existing xref:mina-component.adoc[Mina Component] component
-or xref:netty-component.adoc[Netty Component] where we just use
+existing xref:ROOT:mina-component.adoc[Mina Component] component
+or xref:ROOT:netty-component.adoc[Netty Component] where we just use
 the `SyslogDataFormat` to marshal and unmarshal messages
 
 === Exposing a Syslog listener
@@ -121,7 +121,7 @@ as an InputStream:
 </camelContext>
 ------------------------------------------------------------------------------------------
 
-The same route using xref:mina-component.adoc[Mina Component]
+The same route using xref:ROOT:mina-component.adoc[Mina Component]
 
 [source,xml]
 -------------------------------------------------------------------------
diff --git a/docs/components/modules/languages/pages/bean-language.adoc b/docs/components/modules/languages/pages/bean-language.adoc
index bfb6d55..0f948c8 100644
--- a/docs/components/modules/languages/pages/bean-language.adoc
+++ b/docs/components/modules/languages/pages/bean-language.adoc
@@ -149,7 +149,7 @@ The xref:bean-language.adoc[Bean Language] also supports invoking beans
 that isn't registered in the xref:latest@manual::registry.adoc[Registry]. This is
 usable for quickly to invoke a bean from Java DSL where you don't need
 to register the bean in the xref:latest@manual::registry.adoc[Registry] such as the
-xref:spring.adoc[Spring] *`ApplicationContext`*. Camel can instantiate
+xref:latest@manual::spring.adoc[Spring] *`ApplicationContext`*. Camel can instantiate
 the bean and invoke the method if given a class or invoke an already
 existing instance.
 
diff --git a/docs/components/modules/languages/pages/groovy-language.adoc b/docs/components/modules/languages/pages/groovy-language.adoc
index e2488e9..6cdca00 100644
--- a/docs/components/modules/languages/pages/groovy-language.adoc
+++ b/docs/components/modules/languages/pages/groovy-language.adoc
@@ -135,7 +135,7 @@ following attributes all set at `ENGINE_SCOPE`:
 IN message instead.
 
 |properties |`org.apache.camel.builder.script.PropertiesFunction` |Function with a `resolve` method to make it easier to use
-Camels xref:properties-component.adoc[Properties] component from scripts. See
+Camels xref:ROOT:properties-component.adoc[Properties] component from scripts. See
 further below for example.
 |=======================================================================
 
@@ -154,7 +154,7 @@ header on the Camel message with the key `CamelScriptArguments`. +
 
 *Since Camel 2.9*
 
-If you need to use the xref:properties-component.adoc[Properties] component from a
+If you need to use the xref:ROOT: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
diff --git a/docs/components/modules/languages/pages/xpath-language.adoc b/docs/components/modules/languages/pages/xpath-language.adoc
index 58407f7..a8a5582 100644
--- a/docs/components/modules/languages/pages/xpath-language.adoc
+++ b/docs/components/modules/languages/pages/xpath-language.adoc
@@ -160,7 +160,7 @@ exchange:
 |out:header |the header name |Object |Will return the *out* message header.
 
 |function:properties |key for property |String |To lookup a property using the
-xref:properties-component.adoc[Properties] component (property placeholders).
+xref:ROOT:properties-component.adoc[Properties] component (property placeholders).
 
 |function:simple |simple expression |Object |To evaluate a xref:simple-language.adoc[Simple] expression.
 |===