CAMEL-14064: Add missing language docs from camel-base to tooling
diff --git a/docs/components/modules/ROOT/pages/xtokenize-language.adoc b/docs/components/modules/ROOT/pages/xtokenize-language.adoc
new file mode 100644
index 0000000..933fb8f
--- /dev/null
+++ b/docs/components/modules/ROOT/pages/xtokenize-language.adoc
@@ -0,0 +1,32 @@
+[[xtokenize-language]]
+= XML Tokenize Language
+:page-source: core/camel-jaxp/src/main/docs/xtokenize-language.adoc
+
+*Available as of Camel version 2.14*
+
+The xml tokenizer language is a built-in language in camel-core, which
+is a truly XML-aware tokenizer that can be used with the Splitter as the
+conventional Tokenizer to efficiently and
+effectively tokenize XML documents. XMLTokenizer is capable of not only
+recognizing XML namespaces and hierarchical structures of the document
+but also more efficiently tokenizing XML documents than the conventional
+Tokenizer. 
+
+For more details see Splitter.
+
+== XML Tokenizer Options
+
+// language options: START
+The XML Tokenize language supports 4 options, which are listed below.
+
+
+
+[width="100%",cols="2,1m,1m,6",options="header"]
+|===
+| Name | Default | Java Type | Description
+| headerName |  | String | Name of header to tokenize instead of using the message body.
+| mode |  | String | The extraction mode. The available extraction modes are: i - injecting the contextual namespace bindings into the extracted token (default) w - wrapping the extracted token in its ancestor context u - unwrapping the extracted token to its child content t - extracting the text content of the specified element
+| group |  | Integer | To group N parts together
+| trim | true | Boolean | Whether to trim the value to remove leading and trailing whitespaces and line breaks
+|===
+// language options: END
\ No newline at end of file
diff --git a/docs/gulpfile.js b/docs/gulpfile.js
index 4622918..c986e3d 100644
--- a/docs/gulpfile.js
+++ b/docs/gulpfile.js
@@ -35,7 +35,7 @@
 }
 
 function createComponentSymlinks() {
-    return src(['../core/camel-base/src/main/docs/*.adoc', '../components/{*,*/*}/src/main/docs/*.adoc'])
+    return src(['../core/camel-base/src/main/docs/*.adoc', '../core/camel-jaxp/src/main/docs/*.adoc', '../components/{*,*/*}/src/main/docs/*.adoc'])
         .pipe(map((file, done) => {
             // this flattens the output to just .../pages/....adoc
             // instead of .../pages/camel-.../src/main/docs/....adoc
@@ -80,7 +80,7 @@
 }
 
 function createUserManualSymlinks() {
-    return src(['../core/camel-base/src/main/docs/*.adoc', '../core/camel-core-engine/src/main/docs/eips/*.adoc'])
+    return src(['../core/camel-base/src/main/docs/*.adoc', '../core/camel-jaxp/src/main/docs/*.adoc', '../core/camel-core-engine/src/main/docs/eips/*.adoc'])
         // Antora disabled symlinks, there is an issue open
         // https://gitlab.com/antora/antora/issues/188
         // to reinstate symlink support, until that's resolved
diff --git a/docs/user-manual/modules/ROOT/pages/xtokenize-language.adoc b/docs/user-manual/modules/ROOT/pages/xtokenize-language.adoc
new file mode 100644
index 0000000..933fb8f
--- /dev/null
+++ b/docs/user-manual/modules/ROOT/pages/xtokenize-language.adoc
@@ -0,0 +1,32 @@
+[[xtokenize-language]]
+= XML Tokenize Language
+:page-source: core/camel-jaxp/src/main/docs/xtokenize-language.adoc
+
+*Available as of Camel version 2.14*
+
+The xml tokenizer language is a built-in language in camel-core, which
+is a truly XML-aware tokenizer that can be used with the Splitter as the
+conventional Tokenizer to efficiently and
+effectively tokenize XML documents. XMLTokenizer is capable of not only
+recognizing XML namespaces and hierarchical structures of the document
+but also more efficiently tokenizing XML documents than the conventional
+Tokenizer. 
+
+For more details see Splitter.
+
+== XML Tokenizer Options
+
+// language options: START
+The XML Tokenize language supports 4 options, which are listed below.
+
+
+
+[width="100%",cols="2,1m,1m,6",options="header"]
+|===
+| Name | Default | Java Type | Description
+| headerName |  | String | Name of header to tokenize instead of using the message body.
+| mode |  | String | The extraction mode. The available extraction modes are: i - injecting the contextual namespace bindings into the extracted token (default) w - wrapping the extracted token in its ancestor context u - unwrapping the extracted token to its child content t - extracting the text content of the specified element
+| group |  | Integer | To group N parts together
+| trim | true | Boolean | Whether to trim the value to remove leading and trailing whitespaces and line breaks
+|===
+// language options: END
\ No newline at end of file
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
index 2f66026..815b53b 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogMojo.java
@@ -1075,6 +1075,9 @@
         if (baseDir != null && baseDir.isDirectory()) {
             File target = new File(baseDir, "src/main/docs");
             findAsciiDocFilesRecursive(target, adocFiles, new CamelAsciiDocFileFilter());
+            // also look in camel-jaxp
+            target = new File(baseDir, "../camel-jaxp/src/main/docs");
+            findAsciiDocFilesRecursive(target, adocFiles, new CamelAsciiDocFileFilter());
         }
 
         getLog().info("Found " + adocFiles.size() + " ascii document files");