You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2021/03/02 08:18:23 UTC

[camel] branch master updated (2f26ab3 -> dd655f3)

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

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


    from 2f26ab3  CAMEL-16171 - Add uri-endpoint-override options to all AWS2 components - AWS2-Lambda component
     new fe83fcd  CAMEL-16275: move RouteBuilderLoader implementations to dedicated artefact
     new dd655f3  CAMEL-16275: move RouteBuilderLoader implementations to dedicated artefact (fix findings)

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 bom/camel-bom/pom.xml                              |  15 +++
 .../services/org/apache/camel/routes-loader/java   |   2 -
 .../services/org/apache/camel/routes-loader/xml    |   2 -
 .../camel-yaml-dsl => camel-java-joor-dsl}/pom.xml | 117 ++++++--------------
 .../services/org/apache/camel/routes-loader/java   |   2 +
 .../src/main/docs/java-joor-dsl.adoc               |  15 +++
 .../dsl/java/joor/JavaRoutesBuilderLoader.java     |  18 +--
 .../camel/dsl/java/joor/JavaMainRestsTest.java     |  20 ++--
 .../camel/dsl/java/joor/JavaMainTemplateTest.java  |  16 +--
 .../apache/camel/dsl/java/joor/JavaMainTest.java   |  45 +++-----
 .../dsl/java/joor/JavaRoutesBuilderLoaderTest.java |  36 +++---
 .../java/joor/support/MockRestConsumerFactory.java |  40 +++----
 .../apache/camel/dsl/java/joor/support/MyUser.java |  27 +++--
 .../src/test/resources/log4j2-test.properties      |  31 ++++++
 .../org/apache/camel/main/java/MyRoutesDummy.java  |   6 +-
 .../org/apache/camel/main/java/MyRoutesScan.java   |   6 +-
 .../apache/camel/main/java/MyRoutesWithRest.java   |   9 +-
 .../camel/main/java/MyRoutesWithTemplate.java      |  10 +-
 .../src/test/resources/routes/MyRoutes.java        |   0
 .../test/resources/routes/MyRoutesWithBeans.java   |   0
 .../test/resources/routes/MyRoutesWithModel.java   |   2 +-
 .../resources/routes/MyRoutesWithNestedClass.java  |   0
 .../resources/routes/MyRoutesWithNestedTypes.java  |   0
 .../test/resources/routes/MyRoutesWithPackage.java |   0
 .../routes/MyRoutesWithPackageAndComment.java      |   0
 .../routes/MyRoutesWithPackageAndLineComment.java  |   0
 .../routes/MyRoutesWithRestConfiguration.java      |   0
 .../camel-yaml-dsl => camel-xml-io-dsl}/pom.xml    | 122 ++++++---------------
 .../services/org/apache/camel/routes-loader/xml    |   2 +-
 .../src/main/docs/java-xml-io-dsl.adoc             |  11 ++
 .../camel/dsl/xml/io}/XmlRoutesBuilderLoader.java  |   3 +-
 .../apache/camel/dsl/xml/io/XmlMainRestsTest.java  |   6 +-
 .../camel/dsl/xml/io/XmlMainTemplateTest.java      |   6 +-
 .../org/apache/camel/dsl/xml/io/XmlMainTest.java   |   6 +-
 .../dsl/xml/io}/XmlRoutesBuilderLoaderTest.java    |   2 +-
 .../xml/io/support/MockRestConsumerFactory.java    |  40 +++----
 .../src/test/resources/log4j2-test.properties      |  31 ++++++
 .../org/apache/camel/main/xml/camel-dummy.xml      |   2 +-
 .../org/apache/camel/main/xml/camel-rests.xml      |   0
 .../org/apache/camel/main/xml/camel-scan.xml       |   2 +-
 .../org/apache/camel/main/xml/camel-template.xml   |  10 +-
 .../camel-yaml-dsl => camel-xml-jaxb-dsl}/pom.xml  | 120 ++++++--------------
 .../services/org/apache/camel/routes-loader/xml    |   2 +
 .../src/main/docs/java-xml-jaxb-dsl.adoc           |  11 ++
 .../dsl}/xml/jaxb/JaxbXmlRoutesBuilderLoader.java  |   2 +-
 .../camel/dsl/xml/jaxb/JaxbXmlMainRestsTest.java   |   6 +-
 .../dsl/xml/jaxb/JaxbXmlMainTemplateTest.java      |   6 +-
 .../apache/camel/dsl/xml/jaxb/JaxbXmlMainTest.java |   6 +-
 .../xml/jaxb/JaxbXmlRoutesBuilderLoaderTest.java   |  28 +++--
 .../xml/jaxb/support/MockRestConsumerFactory.java  |  40 +++----
 .../src/test/resources/log4j2-test.properties      |  31 ++++++
 .../org/apache/camel/main/xml/camel-dummy.xml      |   0
 .../org/apache/camel/main/xml/camel-rests.xml      |   0
 .../org/apache/camel/main/xml/camel-scan.xml       |   0
 .../org/apache/camel/main/xml/camel-template.xml   |  10 +-
 .../services/org/apache/camel/other.properties     |   7 --
 dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml          |   5 +
 .../services/org/apache/camel/other.properties     |   7 --
 .../src/generated/resources/yaml-dsl.json          |  14 ---
 .../camel-yaml-dsl/src/main/docs/yaml-dsl.adoc     |   4 +-
 .../camel/dsl/yaml/YamlRoutesBuilderLoader.java    |  23 +++-
 .../org/apache/camel/dsl/yaml/MainTest.groovy      |  39 +++++++
 .../src/test/resources/routes/routes.yaml          |  20 ++++
 dsl/pom.xml                                        |   3 +
 parent/pom.xml                                     |  39 +++++--
 65 files changed, 589 insertions(+), 496 deletions(-)
 delete mode 100644 components/camel-joor/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/java
 delete mode 100644 core/camel-xml-jaxb/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml
 copy dsl/{camel-yaml-dsl/camel-yaml-dsl => camel-java-joor-dsl}/pom.xml (56%)
 create mode 100644 dsl/camel-java-joor-dsl/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/java
 create mode 100644 dsl/camel-java-joor-dsl/src/main/docs/java-joor-dsl.adoc
 rename components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorRoutesBuilderLoader.java => dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoader.java (85%)
 copy core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlRestsTest.java => dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaMainRestsTest.java (83%)
 copy core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTemplateTest.java => dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaMainTemplateTest.java (83%)
 copy core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTest.java => dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaMainTest.java (67%)
 rename components/camel-joor/src/test/java/org/apache/camel/language/joor/JoorRoutesBuilderLoaderTest.java => dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoaderTest.java (75%)
 copy components/camel-joor/src/test/resources/routes/MyRoutesWithNestedClass.java => dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/support/MockRestConsumerFactory.java (55%)
 copy components/camel-joor/src/test/resources/routes/MyRoutesWithNestedTypes.java => dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/support/MyUser.java (69%)
 create mode 100644 dsl/camel-java-joor-dsl/src/test/resources/log4j2-test.properties
 copy components/camel-joor/src/test/resources/routes/MyRoutes.java => dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesDummy.java (89%)
 copy components/camel-joor/src/test/resources/routes/MyRoutes.java => dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesScan.java (89%)
 copy components/camel-joor/src/test/resources/routes/MyRoutes.java => dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesWithRest.java (83%)
 copy components/camel-joor/src/test/resources/routes/MyRoutes.java => dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesWithTemplate.java (77%)
 rename {components/camel-joor => dsl/camel-java-joor-dsl}/src/test/resources/routes/MyRoutes.java (100%)
 rename {components/camel-joor => dsl/camel-java-joor-dsl}/src/test/resources/routes/MyRoutesWithBeans.java (100%)
 rename {components/camel-joor => dsl/camel-java-joor-dsl}/src/test/resources/routes/MyRoutesWithModel.java (93%)
 copy {components/camel-joor => dsl/camel-java-joor-dsl}/src/test/resources/routes/MyRoutesWithNestedClass.java (100%)
 rename {components/camel-joor => dsl/camel-java-joor-dsl}/src/test/resources/routes/MyRoutesWithNestedTypes.java (100%)
 rename {components/camel-joor => dsl/camel-java-joor-dsl}/src/test/resources/routes/MyRoutesWithPackage.java (100%)
 rename {components/camel-joor => dsl/camel-java-joor-dsl}/src/test/resources/routes/MyRoutesWithPackageAndComment.java (100%)
 rename {components/camel-joor => dsl/camel-java-joor-dsl}/src/test/resources/routes/MyRoutesWithPackageAndLineComment.java (100%)
 rename {components/camel-joor => dsl/camel-java-joor-dsl}/src/test/resources/routes/MyRoutesWithRestConfiguration.java (100%)
 copy dsl/{camel-yaml-dsl/camel-yaml-dsl => camel-xml-io-dsl}/pom.xml (56%)
 rename {core/camel-xml-io => dsl/camel-xml-io-dsl}/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml (50%)
 create mode 100644 dsl/camel-xml-io-dsl/src/main/docs/java-xml-io-dsl.adoc
 rename {core/camel-xml-io/src/main/java/org/apache/camel/xml/in => dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io}/XmlRoutesBuilderLoader.java (97%)
 copy core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlRestsTest.java => dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlMainRestsTest.java (96%)
 copy core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTemplateTest.java => dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlMainTemplateTest.java (95%)
 copy core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTest.java => dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlMainTest.java (97%)
 copy {core/camel-xml-io/src/test/java/org/apache/camel/xml/in => dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io}/XmlRoutesBuilderLoaderTest.java (99%)
 copy components/camel-joor/src/test/resources/routes/MyRoutesWithNestedClass.java => dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/support/MockRestConsumerFactory.java (55%)
 create mode 100644 dsl/camel-xml-io-dsl/src/test/resources/log4j2-test.properties
 copy {core/camel-main => dsl/camel-xml-io-dsl}/src/test/resources/org/apache/camel/main/xml/camel-dummy.xml (93%)
 copy {core/camel-main => dsl/camel-xml-io-dsl}/src/test/resources/org/apache/camel/main/xml/camel-rests.xml (100%)
 copy {core/camel-main => dsl/camel-xml-io-dsl}/src/test/resources/org/apache/camel/main/xml/camel-scan.xml (93%)
 copy {core/camel-main => dsl/camel-xml-io-dsl}/src/test/resources/org/apache/camel/main/xml/camel-template.xml (80%)
 copy dsl/{camel-yaml-dsl/camel-yaml-dsl => camel-xml-jaxb-dsl}/pom.xml (55%)
 create mode 100644 dsl/camel-xml-jaxb-dsl/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml
 create mode 100644 dsl/camel-xml-jaxb-dsl/src/main/docs/java-xml-jaxb-dsl.adoc
 rename {core/camel-xml-jaxb/src/main/java/org/apache/camel => dsl/camel-xml-jaxb-dsl/src/main/java/org/apache/camel/dsl}/xml/jaxb/JaxbXmlRoutesBuilderLoader.java (99%)
 rename core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlRestsTest.java => dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlMainRestsTest.java (96%)
 rename core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTemplateTest.java => dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlMainTemplateTest.java (95%)
 rename core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTest.java => dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlMainTest.java (97%)
 rename core/camel-xml-io/src/test/java/org/apache/camel/xml/in/XmlRoutesBuilderLoaderTest.java => dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlRoutesBuilderLoaderTest.java (79%)
 rename components/camel-joor/src/test/resources/routes/MyRoutesWithNestedClass.java => dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/support/MockRestConsumerFactory.java (55%)
 create mode 100644 dsl/camel-xml-jaxb-dsl/src/test/resources/log4j2-test.properties
 rename {core/camel-main => dsl/camel-xml-jaxb-dsl}/src/test/resources/org/apache/camel/main/xml/camel-dummy.xml (100%)
 rename {core/camel-main => dsl/camel-xml-jaxb-dsl}/src/test/resources/org/apache/camel/main/xml/camel-rests.xml (100%)
 rename {core/camel-main => dsl/camel-xml-jaxb-dsl}/src/test/resources/org/apache/camel/main/xml/camel-scan.xml (100%)
 rename {core/camel-main => dsl/camel-xml-jaxb-dsl}/src/test/resources/org/apache/camel/main/xml/camel-template.xml (80%)
 delete mode 100644 dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/generated/resources/META-INF/services/org/apache/camel/other.properties
 delete mode 100644 dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties
 delete mode 100644 dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/yaml-dsl.json
 create mode 100644 dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/MainTest.groovy
 create mode 100644 dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/resources/routes/routes.yaml


[camel] 02/02: CAMEL-16275: move RouteBuilderLoader implementations to dedicated artefact (fix findings)

Posted by lb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit dd655f3d4320b3878938a318f93f4f6e4a0dfaf5
Author: Luca Burgazzoli <lb...@gmail.com>
AuthorDate: Tue Mar 2 06:25:13 2021 +0100

    CAMEL-16275: move RouteBuilderLoader implementations to dedicated artefact (fix findings)
---
 bom/camel-bom/pom.xml          | 2 +-
 dsl/camel-xml-jaxb-dsl/pom.xml | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/bom/camel-bom/pom.xml b/bom/camel-bom/pom.xml
index a3f524a..36f285d 100644
--- a/bom/camel-bom/pom.xml
+++ b/bom/camel-bom/pom.xml
@@ -947,7 +947,7 @@
         <artifactId>camel-jasypt</artifactId>
         <version>${project.version}</version>
       </dependency>
-			<dependency>
+      <dependency>
 				<groupId>org.apache.camel</groupId>
 				<artifactId>camel-java-joor-dsl</artifactId>
 				<version>${project.version}</version>
diff --git a/dsl/camel-xml-jaxb-dsl/pom.xml b/dsl/camel-xml-jaxb-dsl/pom.xml
index 78a0e03..71a40ec 100644
--- a/dsl/camel-xml-jaxb-dsl/pom.xml
+++ b/dsl/camel-xml-jaxb-dsl/pom.xml
@@ -31,7 +31,7 @@
     <artifactId>camel-xml-jaxb-dsl</artifactId>
     <packaging>jar</packaging>
     <name>Camel :: XML DSL with camel-xml-jaxb</name>
-    <description>Camel XML DSL with acmel-xml-jaxb</description>
+    <description>Camel XML DSL with camel-xml-jaxb</description>
 
     <properties>
         <firstVersion>3.9.0</firstVersion>


[camel] 01/02: CAMEL-16275: move RouteBuilderLoader implementations to dedicated artefact

Posted by lb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit fe83fcd926a329af4b5d05bf07929c76843a1ea1
Author: Luca Burgazzoli <lb...@gmail.com>
AuthorDate: Mon Mar 1 14:05:00 2021 +0100

    CAMEL-16275: move RouteBuilderLoader implementations to dedicated artefact
---
 bom/camel-bom/pom.xml                              |  15 +++
 .../services/org/apache/camel/routes-loader/java   |   2 -
 .../services/org/apache/camel/routes-loader/xml    |   2 -
 .../camel-yaml-dsl => camel-java-joor-dsl}/pom.xml | 117 ++++++--------------
 .../services/org/apache/camel/routes-loader/java   |   2 +
 .../src/main/docs/java-joor-dsl.adoc               |  15 +++
 .../dsl/java/joor/JavaRoutesBuilderLoader.java     |  18 +--
 .../camel/dsl/java/joor/JavaMainRestsTest.java     |  20 ++--
 .../camel/dsl/java/joor/JavaMainTemplateTest.java  |  16 +--
 .../apache/camel/dsl/java/joor/JavaMainTest.java   |  45 +++-----
 .../dsl/java/joor/JavaRoutesBuilderLoaderTest.java |  36 +++---
 .../java/joor/support/MockRestConsumerFactory.java |  40 +++----
 .../apache/camel/dsl/java/joor/support/MyUser.java |  27 +++--
 .../src/test/resources/log4j2-test.properties      |  31 ++++++
 .../org/apache/camel/main/java/MyRoutesDummy.java  |   6 +-
 .../org/apache/camel/main/java/MyRoutesScan.java   |   6 +-
 .../apache/camel/main/java/MyRoutesWithRest.java   |   9 +-
 .../camel/main/java/MyRoutesWithTemplate.java      |  10 +-
 .../src/test/resources/routes/MyRoutes.java        |   0
 .../test/resources/routes/MyRoutesWithBeans.java   |   0
 .../test/resources/routes/MyRoutesWithModel.java   |   2 +-
 .../resources/routes/MyRoutesWithNestedClass.java  |   0
 .../resources/routes/MyRoutesWithNestedTypes.java  |   0
 .../test/resources/routes/MyRoutesWithPackage.java |   0
 .../routes/MyRoutesWithPackageAndComment.java      |   0
 .../routes/MyRoutesWithPackageAndLineComment.java  |   0
 .../routes/MyRoutesWithRestConfiguration.java      |   0
 .../camel-yaml-dsl => camel-xml-io-dsl}/pom.xml    | 122 ++++++---------------
 .../services/org/apache/camel/routes-loader/xml    |   2 +-
 .../src/main/docs/java-xml-io-dsl.adoc             |  11 ++
 .../camel/dsl/xml/io}/XmlRoutesBuilderLoader.java  |   3 +-
 .../apache/camel/dsl/xml/io/XmlMainRestsTest.java  |   6 +-
 .../camel/dsl/xml/io/XmlMainTemplateTest.java      |   6 +-
 .../org/apache/camel/dsl/xml/io/XmlMainTest.java   |   6 +-
 .../dsl/xml/io}/XmlRoutesBuilderLoaderTest.java    |   2 +-
 .../xml/io/support/MockRestConsumerFactory.java    |  40 +++----
 .../src/test/resources/log4j2-test.properties      |  31 ++++++
 .../org/apache/camel/main/xml/camel-dummy.xml      |   2 +-
 .../org/apache/camel/main/xml/camel-rests.xml      |   0
 .../org/apache/camel/main/xml/camel-scan.xml       |   2 +-
 .../org/apache/camel/main/xml/camel-template.xml   |  10 +-
 .../camel-yaml-dsl => camel-xml-jaxb-dsl}/pom.xml  | 120 ++++++--------------
 .../services/org/apache/camel/routes-loader/xml    |   2 +
 .../src/main/docs/java-xml-jaxb-dsl.adoc           |  11 ++
 .../dsl}/xml/jaxb/JaxbXmlRoutesBuilderLoader.java  |   2 +-
 .../camel/dsl/xml/jaxb/JaxbXmlMainRestsTest.java   |   6 +-
 .../dsl/xml/jaxb/JaxbXmlMainTemplateTest.java      |   6 +-
 .../apache/camel/dsl/xml/jaxb/JaxbXmlMainTest.java |   6 +-
 .../xml/jaxb/JaxbXmlRoutesBuilderLoaderTest.java   |  28 +++--
 .../xml/jaxb/support/MockRestConsumerFactory.java  |  40 +++----
 .../src/test/resources/log4j2-test.properties      |  31 ++++++
 .../org/apache/camel/main/xml/camel-dummy.xml      |   0
 .../org/apache/camel/main/xml/camel-rests.xml      |   0
 .../org/apache/camel/main/xml/camel-scan.xml       |   0
 .../org/apache/camel/main/xml/camel-template.xml   |  10 +-
 .../services/org/apache/camel/other.properties     |   7 --
 dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml          |   5 +
 .../services/org/apache/camel/other.properties     |   7 --
 .../src/generated/resources/yaml-dsl.json          |  14 ---
 .../camel-yaml-dsl/src/main/docs/yaml-dsl.adoc     |   4 +-
 .../camel/dsl/yaml/YamlRoutesBuilderLoader.java    |  23 +++-
 .../org/apache/camel/dsl/yaml/MainTest.groovy      |  39 +++++++
 .../src/test/resources/routes/routes.yaml          |  20 ++++
 dsl/pom.xml                                        |   3 +
 parent/pom.xml                                     |  39 +++++--
 65 files changed, 589 insertions(+), 496 deletions(-)

diff --git a/bom/camel-bom/pom.xml b/bom/camel-bom/pom.xml
index bcbe59c..a3f524a 100644
--- a/bom/camel-bom/pom.xml
+++ b/bom/camel-bom/pom.xml
@@ -947,6 +947,11 @@
         <artifactId>camel-jasypt</artifactId>
         <version>${project.version}</version>
       </dependency>
+			<dependency>
+				<groupId>org.apache.camel</groupId>
+				<artifactId>camel-java-joor-dsl</artifactId>
+				<version>${project.version}</version>
+			</dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
         <artifactId>camel-jaxb</artifactId>
@@ -2000,11 +2005,21 @@
       </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
+        <artifactId>camel-xml-io-dsl</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
         <artifactId>camel-xml-jaxb</artifactId>
         <version>${project.version}</version>
       </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
+        <artifactId>camel-xml-jaxb-dsl</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
         <artifactId>camel-xml-jaxp</artifactId>
         <version>${project.version}</version>
       </dependency>
diff --git a/components/camel-joor/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/java b/components/camel-joor/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/java
deleted file mode 100644
index d1968d0..0000000
--- a/components/camel-joor/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/java
+++ /dev/null
@@ -1,2 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.language.joor.JoorRoutesBuilderLoader
diff --git a/core/camel-xml-jaxb/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml b/core/camel-xml-jaxb/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml
deleted file mode 100644
index daa444e..0000000
--- a/core/camel-xml-jaxb/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml
+++ /dev/null
@@ -1,2 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.xml.jaxb.JaxbXmlRoutesBuilderLoader
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml b/dsl/camel-java-joor-dsl/pom.xml
similarity index 56%
copy from dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml
copy to dsl/camel-java-joor-dsl/pom.xml
index 298b94c..15fde31 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml
+++ b/dsl/camel-java-joor-dsl/pom.xml
@@ -24,19 +24,19 @@
 
     <parent>
         <groupId>org.apache.camel</groupId>
-        <artifactId>camel-yaml-dsl-parent</artifactId>
+        <artifactId>dsl</artifactId>
         <version>3.9.0-SNAPSHOT</version>
     </parent>
 
-    <artifactId>camel-yaml-dsl</artifactId>
+    <artifactId>camel-java-joor-dsl</artifactId>
     <packaging>jar</packaging>
-    <name>Camel :: YAML DSL</name>
-    <description>Camel DSL with YAML</description>
+    <name>Camel :: Java DSL with jOOR</name>
+    <description>Camel Java DSL with jOOR</description>
 
     <properties>
         <firstVersion>3.9.0</firstVersion>
         <sourcecheckExcludes>
-            **/*.groovy
+            **/resources/**/My*.java
         </sourcecheckExcludes>
         <sourcecheckExcludesComma>
             ${sourcecheckExcludes},
@@ -46,42 +46,25 @@
     <dependencies>
         <dependency>
             <groupId>org.apache.camel</groupId>
-            <artifactId>camel-yaml-dsl-common</artifactId>
-            <version>${project.version}</version>
+            <artifactId>camel-support</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.camel</groupId>
-            <artifactId>camel-yaml-dsl-deserializers</artifactId>
-            <version>${project.version}</version>
+            <artifactId>camel-core-model</artifactId>
         </dependency>
 
+        <!-- requires Java 11 or 14 -->
         <dependency>
-            <groupId>org.junit.jupiter</groupId>
-            <artifactId>junit-jupiter</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.assertj</groupId>
-            <artifactId>assertj-core</artifactId>
-            <scope>test</scope>
+            <groupId>org.jooq</groupId>
+            <artifactId>joor</artifactId>
+            <version>${joor-version}</version>
         </dependency>
+
         <dependency>
-            <groupId>org.spockframework</groupId>
-            <artifactId>spock-core</artifactId>
-            <version>${spock-version}</version>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-main</artifactId>
             <scope>test</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.codehaus.groovy</groupId>
-                    <artifactId>*</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>junit</groupId>
-                    <artifactId>*</artifactId>
-                </exclusion>
-            </exclusions>
         </dependency>
-
         <dependency>
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-direct</artifactId>
@@ -124,34 +107,17 @@
         </dependency>
 
         <dependency>
-            <groupId>org.codehaus.groovy</groupId>
-            <artifactId>groovy</artifactId>
-            <version>${groovy-version}</version>
+            <groupId>org.assertj</groupId>
+            <artifactId>assertj-core</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.codehaus.groovy</groupId>
-            <artifactId>groovy-test</artifactId>
-            <version>${groovy-version}</version>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-test-junit5</artifactId>
             <scope>test</scope>
         </dependency>
 
         <dependency>
-            <groupId>com.github.java-json-tools</groupId>
-            <artifactId>json-schema-validator</artifactId>
-            <version>${json-schema-validator-version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-databind</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.dataformat</groupId>
-            <artifactId>jackson-dataformat-yaml</artifactId>
-        </dependency>
-
-        <dependency>
             <groupId>org.apache.logging.log4j</groupId>
             <artifactId>log4j-core</artifactId>
             <scope>test</scope>
@@ -173,40 +139,6 @@
         <plugins>
             <plugin>
                 <groupId>org.apache.camel</groupId>
-                <artifactId>camel-yaml-dsl-maven-plugin</artifactId>
-                <version>${project.version}</version>
-                <executions>
-                    <execution>
-                        <phase>generate-sources</phase>
-                        <goals>
-                            <goal>generate-yaml-schema</goal>
-                        </goals>
-                        <configuration>
-                            <bannedDefinitions>
-                                <bannedDefinition>org.apache.camel.model.FromDefinition</bannedDefinition>
-                            </bannedDefinitions>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.codehaus.gmavenplus</groupId>
-                <artifactId>gmavenplus-plugin</artifactId>
-                <version>${gmavenplus-plugin-version}</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>addTestSources</goal>
-                            <goal>compileTests</goal>
-                        </goals>
-                    </execution>
-                </executions>
-                <configuration>
-                    <invokeDynamic>true</invokeDynamic>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-package-maven-plugin</artifactId>
                 <executions>
                     <execution>
@@ -220,4 +152,17 @@
         </plugins>
     </build>
 
+    <!-- skip testing on java 8 -->
+    <profiles>
+        <profile>
+            <id>jdk8</id>
+            <activation>
+                <jdk>[,8)</jdk>
+            </activation>
+            <properties>
+                <maven.test.skip.exec>true</maven.test.skip.exec>
+            </properties>
+        </profile>
+    </profiles>
+
 </project>
\ No newline at end of file
diff --git a/dsl/camel-java-joor-dsl/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/java b/dsl/camel-java-joor-dsl/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/java
new file mode 100644
index 0000000..a1c82c7
--- /dev/null
+++ b/dsl/camel-java-joor-dsl/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/java
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.dsl.java.joor.JavaRoutesBuilderLoader
diff --git a/dsl/camel-java-joor-dsl/src/main/docs/java-joor-dsl.adoc b/dsl/camel-java-joor-dsl/src/main/docs/java-joor-dsl.adoc
new file mode 100644
index 0000000..179cd72
--- /dev/null
+++ b/dsl/camel-java-joor-dsl/src/main/docs/java-joor-dsl.adoc
@@ -0,0 +1,15 @@
+[[java-joor-dsl-other]]
+= Java DSL based on joor
+:docTitle: XML Dsl
+:artifactId: camel-java-joor-dsl
+:description: Camel DSL with YAML
+:supportLevel: Stable
+:since: 3.
+:supportLevel: Preview
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/others/java-joor-dsl.adoc[opts=optional]
+//Manually maintained attributes
+:group: DSL
+
+xml-io-
+
+See https://camel.apache.org/manual/latest/dsl.html
\ No newline at end of file
diff --git a/components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorRoutesBuilderLoader.java b/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoader.java
similarity index 85%
rename from components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorRoutesBuilderLoader.java
rename to dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoader.java
index 0ebf95f..949618b 100644
--- a/components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorRoutesBuilderLoader.java
+++ b/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoader.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.language.joor;
+package org.apache.camel.dsl.java.joor;
 
 import java.io.InputStream;
 import java.util.regex.Matcher;
@@ -35,8 +35,8 @@ import org.apache.camel.util.IOHelper;
 import org.joor.Reflect;
 
 @ManagedResource(description = "Managed JavaRoutesBuilderLoader")
-@RoutesLoader(JoorRoutesBuilderLoader.EXTENSION)
-public class JoorRoutesBuilderLoader extends RoutesBuilderLoaderSupport {
+@RoutesLoader(JavaRoutesBuilderLoader.EXTENSION)
+public class JavaRoutesBuilderLoader extends RoutesBuilderLoaderSupport {
     public static final String EXTENSION = "java";
     public static final Pattern PACKAGE_PATTERN = Pattern.compile(
             "^\\s*package\\s+([a-zA-Z][\\.\\w]*)\\s*;.*$", Pattern.MULTILINE);
@@ -61,12 +61,16 @@ public class JoorRoutesBuilderLoader extends RoutesBuilderLoaderSupport {
             final String content = IOHelper.loadText(is);
             final String name = determineName(resource, content);
 
-            StartupStep step = recorder.beginStep(JoorRoutesBuilderLoader.class, name, "Compiling RouteBuilder");
+            StartupStep step = recorder != null
+                    ? recorder.beginStep(JavaRoutesBuilderLoader.class, name, "Compiling RouteBuilder")
+                    : null;
+
             try {
-                final Reflect compiled = Reflect.compile(name, content);
-                return compiled.create().get();
+                return Reflect.compile(name, content).create().get();
             } finally {
-                recorder.endStep(step);
+                if (recorder != null) {
+                    recorder.endStep(step);
+                }
             }
         }
     }
diff --git a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlRestsTest.java b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaMainRestsTest.java
similarity index 83%
copy from core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlRestsTest.java
copy to dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaMainRestsTest.java
index 77c27b8..d91acce 100644
--- a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlRestsTest.java
+++ b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaMainRestsTest.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main.xml;
+package org.apache.camel.dsl.java.joor;
 
 import java.util.List;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.dsl.java.joor.support.MockRestConsumerFactory;
 import org.apache.camel.main.Main;
-import org.apache.camel.main.support.MockRestConsumerFactory;
 import org.apache.camel.model.ModelCamelContext;
 import org.apache.camel.model.rest.GetVerbDefinition;
 import org.apache.camel.model.rest.RestDefinition;
@@ -31,13 +31,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-public class MainXmlRestsTest {
+public class JavaMainRestsTest {
 
     @Test
     public void testMainRestsCollector() {
         // will load XML from target/classes when testing
         doTestMain(
-                "org/apache/camel/main/xml/camel-rests.xml",
+                "org/apache/camel/main/java/MyRoutesWithRest.java",
                 null);
     }
 
@@ -45,7 +45,7 @@ public class MainXmlRestsTest {
     public void testMainRestsCollectorScan() {
         // will load XML from target/classes when testing
         doTestMain(
-                "org/apache/camel/main/xml/camel-res*.xml",
+                "org/apache/camel/main/java/MyRoutesWithRes*.java",
                 null);
     }
 
@@ -53,7 +53,7 @@ public class MainXmlRestsTest {
     public void testMainRestsCollectorScanWildcardDirClasspathPath() {
         // will load XML from target/classes when testing
         doTestMain(
-                "org/apache/camel/main/**/camel-res*.xml",
+                "org/apache/camel/main/**/MyRoutesWithRes*.java",
                 null);
     }
 
@@ -61,28 +61,28 @@ public class MainXmlRestsTest {
     public void testMainRestsCollectorScanClasspathPrefix() {
         // will load XML from target/classes when testing
         doTestMain(
-                "classpath:org/apache/camel/main/xml/camel-res*.xml",
+                "classpath:org/apache/camel/main/java/MyRoutesWithRes*.java",
                 null);
     }
 
     @Test
     public void testMainRestsCollectorScanInDir() {
         doTestMain(
-                "file:src/test/resources/org/apache/camel/main/xml/camel-res*.xml",
+                "file:src/test/resources/org/apache/camel/main/java/MyRoutesWithRes*.java",
                 null);
     }
 
     @Test
     public void testMainRestsCollectorScanWildcardDirFilePath() {
         doTestMain(
-                "file:src/test/resources/**/camel-res*.xml",
+                "file:src/test/resources/org/**/MyRoutesWithRes*.java",
                 null);
     }
 
     @Test
     public void testMainRestsCollectorFile() {
         doTestMain(
-                "file:src/test/resources/org/apache/camel/main/xml/camel-rests.xml,",
+                "file:src/test/resources/org/apache/camel/main/java/MyRoutesWithRest.java,",
                 null);
     }
 
diff --git a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTemplateTest.java b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaMainTemplateTest.java
similarity index 83%
copy from core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTemplateTest.java
copy to dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaMainTemplateTest.java
index 847b862..fd755fa 100644
--- a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTemplateTest.java
+++ b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaMainTemplateTest.java
@@ -14,24 +14,24 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main.xml;
+package org.apache.camel.dsl.java.joor;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.dsl.java.joor.support.MockRestConsumerFactory;
 import org.apache.camel.main.Main;
-import org.apache.camel.main.support.MockRestConsumerFactory;
 import org.apache.camel.model.ModelCamelContext;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-public class MainXmlTemplateTest {
+public class JavaMainTemplateTest {
 
     @Test
     public void testMainRoutesCollector() {
         // will load XML from target/classes when testing
         doTestMain(
-                "org/apache/camel/main/xml/camel-template.xml",
+                "org/apache/camel/main/java/MyRoutesWithTemplate.java",
                 null);
     }
 
@@ -39,7 +39,7 @@ public class MainXmlTemplateTest {
     public void testMainRoutesCollectorScan() {
         // will load XML from target/classes when testing
         doTestMain(
-                "org/apache/camel/main/xml/camel-template*.xml",
+                "org/apache/camel/main/java/MyRoutesWithTempl*.java",
                 null);
     }
 
@@ -47,7 +47,7 @@ public class MainXmlTemplateTest {
     public void testMainRoutesCollectorScanTwo() {
         // will load XML from target/classes when testing
         doTestMain(
-                "org/apache/camel/main/xml/camel-t*.xml",
+                "org/apache/camel/main/java/MyRoutesWithTempl*.java",
                 null);
     }
 
@@ -55,7 +55,7 @@ public class MainXmlTemplateTest {
     public void testMainRoutesCollectorScanWildcardDirClasspathPath() {
         // will load XML from target/classes when testing
         doTestMain(
-                "org/apache/camel/main/**/camel-t*.xml",
+                "org/apache/camel/main/**/MyRoutesWithTempl*.java",
                 null);
     }
 
@@ -63,7 +63,7 @@ public class MainXmlTemplateTest {
     public void testMainRoutesCollectorScanClasspathPrefix() {
         // will load XML from target/classes when testing
         doTestMain(
-                "classpath:org/apache/camel/main/xml/camel-t*.xml",
+                "classpath:org/apache/camel/main/java/MyRoutesWithTempl*.java",
                 null);
     }
 
diff --git a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTest.java b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaMainTest.java
similarity index 67%
copy from core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTest.java
copy to dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaMainTest.java
index 44ac8f3..b18a2ea 100644
--- a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTest.java
+++ b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaMainTest.java
@@ -14,24 +14,24 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main.xml;
+package org.apache.camel.dsl.java.joor;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.dsl.java.joor.support.MockRestConsumerFactory;
 import org.apache.camel.main.Main;
-import org.apache.camel.main.support.MockRestConsumerFactory;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-public class MainXmlTest {
+public class JavaMainTest {
 
     @Test
     public void testMainRoutesCollector() throws Exception {
         // will load XML from target/classes when testing
         doTestMain(
-                "org/apache/camel/main/xml/camel-dummy.xml,org/apache/camel/main/xml/camel-scan.xml",
+                "org/apache/camel/main/java/MyRoutesDummy.java,org/apache/camel/main/java/MyRoutesScan.java",
                 null);
     }
 
@@ -39,59 +39,44 @@ public class MainXmlTest {
     public void testMainRoutesCollectorScan() throws Exception {
         // will load XML from target/classes when testing
         doTestMain(
-                "org/apache/camel/main/xml/camel-*.xml",
-                "**/camel-rests.xml,**/camel-template.xml");
+                "org/apache/camel/main/java/MyRoutes*.java",
+                "**/*Rest*.java,**/*Template*.java");
     }
 
     @Test
     public void testMainRoutesCollectorScanWildcardDirClasspathPath() throws Exception {
         // will load XML from target/classes when testing
         doTestMain(
-                "org/apache/camel/main/**/*.xml",
-                "**/camel-rests.xml,**/camel-template.xml");
+                "org/apache/camel/main/**/*.java",
+                "**/*Rest*.java,**/*Template*.java");
     }
 
     @Test
     public void testMainRoutesCollectorScanClasspathPrefix() throws Exception {
         // will load XML from target/classes when testing
         doTestMain(
-                "classpath:org/apache/camel/main/xml/camel-*.xml",
-                "**/camel-rests.xml,**/camel-template.xml");
-    }
-
-    @Test
-    public void testMainRoutesCollectorScanInJar() throws Exception {
-        // will load XML from camel-core test JAR when testing
-        doTestMain(
-                "org/apache/camel/model/scan-*.xml",
-                null);
+                "classpath:org/apache/camel/main/java/MyRoutes*.java",
+                "**/*Rest*.java,**/*Template*.java");
     }
 
     @Test
     public void testMainRoutesCollectorScanInDir() throws Exception {
         doTestMain(
-                "file:src/test/resources/org/apache/camel/main/xml/camel-*.xml",
-                "**/camel-rests.xml,**/camel-template.xml");
+                "file:src/test/resources/org/apache/camel/main/java/MyRoutes*.java",
+                "**/*Rest*.java,**/*Template*.java");
     }
 
     @Test
     public void testMainRoutesCollectorScanWildcardDirFilePath() throws Exception {
         doTestMain(
-                "file:src/test/resources/**/*.xml",
-                "**/camel-rests.xml,**/camel-template.xml");
+                "file:src/test/resources/org/**/*.java",
+                "**/*Rest*.java,**/*Template*.java");
     }
 
     @Test
     public void testMainRoutesCollectorFile() throws Exception {
         doTestMain(
-                "file:src/test/resources/org/apache/camel/main/xml/camel-dummy.xml,file:src/test/resources/org/apache/camel/main/xml/camel-scan.xml,",
-                null);
-    }
-
-    @Test
-    public void testMainRoutesCollectorScanInJarAndDir() throws Exception {
-        doTestMain(
-                "classpath:org/apache/camel/main/xml/*dummy.xml,file:src/test/resources/org/apache/camel/main/xml/*scan.xml",
+                "file:src/test/resources/org/apache/camel/main/java/MyRoutesDummy.java,file:src/test/resources/org/apache/camel/main/java/MyRoutesScan.java",
                 null);
     }
 
diff --git a/components/camel-joor/src/test/java/org/apache/camel/language/joor/JoorRoutesBuilderLoaderTest.java b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoaderTest.java
similarity index 75%
rename from components/camel-joor/src/test/java/org/apache/camel/language/joor/JoorRoutesBuilderLoaderTest.java
rename to dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoaderTest.java
index a19181b..f14d635 100644
--- a/components/camel-joor/src/test/java/org/apache/camel/language/joor/JoorRoutesBuilderLoaderTest.java
+++ b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoaderTest.java
@@ -14,24 +14,26 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.language.joor;
+package org.apache.camel.dsl.java.joor;
 
 import java.util.Collection;
 
 import org.apache.camel.RoutesBuilder;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.dsl.java.joor.support.MyUser;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.model.ProcessDefinition;
 import org.apache.camel.model.SetBodyDefinition;
 import org.apache.camel.model.ToDefinition;
 import org.apache.camel.spi.Resource;
+import org.assertj.core.api.Assertions;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.ValueSource;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-public class JoorRoutesBuilderLoaderTest {
+public class JavaRoutesBuilderLoaderTest {
 
     @ParameterizedTest
     @ValueSource(strings = {
@@ -42,7 +44,7 @@ public class JoorRoutesBuilderLoaderTest {
     })
     void testLoadRoutes(String location) throws Exception {
         try (DefaultCamelContext context = new DefaultCamelContext()) {
-            Resource resource = Resource.fromClasspath(JoorRoutesBuilderLoaderTest.class, location);
+            Resource resource = Resource.fromClasspath(JavaRoutesBuilderLoaderTest.class, location);
             Collection<RoutesBuilder> builders = context.getRoutesLoader().findRoutesBuilders(resource);
 
             assertThat(builders).hasSize(1);
@@ -51,12 +53,12 @@ public class JoorRoutesBuilderLoaderTest {
             builder.setContext(context);
             builder.configure();
 
-            assertThat(builder.getRouteCollection().getRoutes())
+            Assertions.assertThat(builder.getRouteCollection().getRoutes())
                     .hasSize(1)
                     .first()
                     .satisfies(rd -> {
-                        assertThat(rd.getInput().getEndpointUri()).matches("timer:.*tick");
-                        assertThat(rd.getOutputs().get(0)).isInstanceOf(ToDefinition.class);
+                        Assertions.assertThat(rd.getInput().getEndpointUri()).matches("timer:.*tick");
+                        Assertions.assertThat(rd.getOutputs().get(0)).isInstanceOf(ToDefinition.class);
                     });
         }
     }
@@ -66,7 +68,7 @@ public class JoorRoutesBuilderLoaderTest {
         final String location = "/routes/MyRoutesWithNestedClass.java";
 
         try (DefaultCamelContext context = new DefaultCamelContext()) {
-            Resource resource = Resource.fromClasspath(JoorRoutesBuilderLoaderTest.class, location);
+            Resource resource = Resource.fromClasspath(JavaRoutesBuilderLoaderTest.class, location);
             Collection<RoutesBuilder> builders = context.getRoutesLoader().findRoutesBuilders(resource);
 
             assertThat(builders).hasSize(1);
@@ -75,14 +77,14 @@ public class JoorRoutesBuilderLoaderTest {
             builder.setContext(context);
             builder.configure();
 
-            assertThat(builder.getRouteCollection().getRoutes())
+            Assertions.assertThat(builder.getRouteCollection().getRoutes())
                     .hasSize(1)
                     .first()
                     .satisfies(rd -> {
-                        assertThat(rd.getInput().getEndpointUri()).matches("timer:.*tick");
-                        assertThat(rd.getOutputs().get(0)).isInstanceOf(SetBodyDefinition.class);
-                        assertThat(rd.getOutputs().get(1)).isInstanceOf(ProcessDefinition.class);
-                        assertThat(rd.getOutputs().get(2)).isInstanceOf(ToDefinition.class);
+                        Assertions.assertThat(rd.getInput().getEndpointUri()).matches("timer:.*tick");
+                        Assertions.assertThat(rd.getOutputs().get(0)).isInstanceOf(SetBodyDefinition.class);
+                        Assertions.assertThat(rd.getOutputs().get(1)).isInstanceOf(ProcessDefinition.class);
+                        Assertions.assertThat(rd.getOutputs().get(2)).isInstanceOf(ToDefinition.class);
                     });
         }
     }
@@ -92,7 +94,7 @@ public class JoorRoutesBuilderLoaderTest {
         final String location = "/routes/MyRoutesWithRestConfiguration.java";
 
         try (DefaultCamelContext context = new DefaultCamelContext()) {
-            Resource resource = Resource.fromClasspath(JoorRoutesBuilderLoaderTest.class, location);
+            Resource resource = Resource.fromClasspath(JavaRoutesBuilderLoaderTest.class, location);
             Collection<RoutesBuilder> builders = context.getRoutesLoader().findRoutesBuilders(resource);
 
             assertThat(builders).hasSize(1);
@@ -101,7 +103,7 @@ public class JoorRoutesBuilderLoaderTest {
             builder.setContext(context);
             builder.configure();
 
-            assertThat(builder.getRestConfiguration())
+            Assertions.assertThat(builder.getRestConfiguration())
                     .hasFieldOrPropertyWithValue("component", "restlet");
         }
     }
@@ -111,7 +113,7 @@ public class JoorRoutesBuilderLoaderTest {
         final String location = "/routes/MyRoutesWithModel.java";
 
         try (DefaultCamelContext context = new DefaultCamelContext()) {
-            Resource resource = Resource.fromClasspath(JoorRoutesBuilderLoaderTest.class, location);
+            Resource resource = Resource.fromClasspath(JavaRoutesBuilderLoaderTest.class, location);
             Collection<RoutesBuilder> builders = context.getRoutesLoader().findRoutesBuilders(resource);
 
             assertThat(builders).hasSize(1);
@@ -120,8 +122,8 @@ public class JoorRoutesBuilderLoaderTest {
             builder.setContext(context);
             builder.configure();
 
-            assertThat(builder.getRestCollection().getRests()).anySatisfy(rd -> {
-                assertThat(rd.getVerbs())
+            Assertions.assertThat(builder.getRestCollection().getRests()).anySatisfy(rd -> {
+                Assertions.assertThat(rd.getVerbs())
                         .first()
                         .hasFieldOrPropertyWithValue("outType", MyUser.class.getName());
             });
diff --git a/components/camel-joor/src/test/resources/routes/MyRoutesWithNestedClass.java b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/support/MockRestConsumerFactory.java
similarity index 55%
copy from components/camel-joor/src/test/resources/routes/MyRoutesWithNestedClass.java
copy to dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/support/MockRestConsumerFactory.java
index e4c2944..e38832f 100644
--- a/components/camel-joor/src/test/resources/routes/MyRoutesWithNestedClass.java
+++ b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/support/MockRestConsumerFactory.java
@@ -14,26 +14,28 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
+package org.apache.camel.dsl.java.joor.support;
 
-public class MyRoutesWithNestedClass extends RouteBuilder {
-    @Override
-    public void configure() throws Exception {
-        Processor toUpper = new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                String body = exchange.getIn().getBody(String.class);
-                body = body.toUpperCase();
+import java.util.Map;
 
-                exchange.getOut().setBody(body);
-            }
-        };
+import org.apache.camel.CamelContext;
+import org.apache.camel.Consumer;
+import org.apache.camel.Processor;
+import org.apache.camel.spi.RestConfiguration;
+import org.apache.camel.spi.RestConsumerFactory;
 
-        from("timer:tick")
-            .setBody().constant("test")
-            .process(toUpper)
-            .to("log:info");
+public final class MockRestConsumerFactory implements RestConsumerFactory {
+    @Override
+    public Consumer createConsumer(
+            CamelContext camelContext,
+            Processor processor,
+            String verb,
+            String basePath,
+            String uriTemplate,
+            String consumes,
+            String produces,
+            RestConfiguration configuration,
+            Map<String, Object> parameters) {
+        return null;
     }
-}
\ No newline at end of file
+}
diff --git a/components/camel-joor/src/test/resources/routes/MyRoutesWithNestedTypes.java b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/support/MyUser.java
similarity index 69%
copy from components/camel-joor/src/test/resources/routes/MyRoutesWithNestedTypes.java
copy to dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/support/MyUser.java
index 1e0d168..93d6c0f 100644
--- a/components/camel-joor/src/test/resources/routes/MyRoutesWithNestedTypes.java
+++ b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/support/MyUser.java
@@ -14,15 +14,26 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
+package org.apache.camel.dsl.java.joor.support;
 
-public class MyRoutesWithNestedTypes extends RouteBuilder {
-    @Override
-    public void configure() throws Exception {
+public class MyUser {
+
+    private String name;
+    private int age;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int getAge() {
+        return age;
     }
 
-    public static class MyModel {
+    public void setAge(int age) {
+        this.age = age;
     }
-}
\ No newline at end of file
+}
diff --git a/dsl/camel-java-joor-dsl/src/test/resources/log4j2-test.properties b/dsl/camel-java-joor-dsl/src/test/resources/log4j2-test.properties
new file mode 100644
index 0000000..fe99721
--- /dev/null
+++ b/dsl/camel-java-joor-dsl/src/test/resources/log4j2-test.properties
@@ -0,0 +1,31 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+appender.file.type = File
+appender.file.name = file
+appender.file.fileName = target/camel-java-joor-dsl-test.log
+appender.file.layout.type = PatternLayout
+appender.file.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
+
+appender.out.type = Console
+appender.out.name = out
+appender.out.layout.type = PatternLayout
+appender.out.layout.pattern = [%30.30t] %-30.30c{1} %-5p %m%n
+
+rootLogger.level = INFO
+rootLogger.appenderRef.file.ref = file
+#rootLogger.appenderRef.out.ref = out
diff --git a/components/camel-joor/src/test/resources/routes/MyRoutes.java b/dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesDummy.java
similarity index 89%
copy from components/camel-joor/src/test/resources/routes/MyRoutes.java
copy to dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesDummy.java
index 0d0b57c..785aa39 100644
--- a/components/camel-joor/src/test/resources/routes/MyRoutes.java
+++ b/dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesDummy.java
@@ -16,10 +16,10 @@
  */
 import org.apache.camel.builder.RouteBuilder;
 
-public class MyRoutes extends RouteBuilder {
+public class MyRoutesDummy extends RouteBuilder {
     @Override
     public void configure() throws Exception {
-        from("timer:tick")
-                .to("log:info");
+       from("direct:dummy")
+            .to("mock:dummy");
     }
 }
\ No newline at end of file
diff --git a/components/camel-joor/src/test/resources/routes/MyRoutes.java b/dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesScan.java
similarity index 89%
copy from components/camel-joor/src/test/resources/routes/MyRoutes.java
copy to dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesScan.java
index 0d0b57c..9780c4c 100644
--- a/components/camel-joor/src/test/resources/routes/MyRoutes.java
+++ b/dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesScan.java
@@ -16,10 +16,10 @@
  */
 import org.apache.camel.builder.RouteBuilder;
 
-public class MyRoutes extends RouteBuilder {
+public class MyRoutesScan extends RouteBuilder {
     @Override
     public void configure() throws Exception {
-        from("timer:tick")
-                .to("log:info");
+       from("direct:scan")
+            .to("mock:scan");
     }
 }
\ No newline at end of file
diff --git a/components/camel-joor/src/test/resources/routes/MyRoutes.java b/dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesWithRest.java
similarity index 83%
copy from components/camel-joor/src/test/resources/routes/MyRoutes.java
copy to dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesWithRest.java
index 0d0b57c..0c50514 100644
--- a/components/camel-joor/src/test/resources/routes/MyRoutes.java
+++ b/dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesWithRest.java
@@ -16,10 +16,13 @@
  */
 import org.apache.camel.builder.RouteBuilder;
 
-public class MyRoutes extends RouteBuilder {
+public class MyRoutesWithRest extends RouteBuilder {
     @Override
     public void configure() throws Exception {
-        from("timer:tick")
-                .to("log:info");
+        rest()
+            .id("bar")
+            .path("/say/hello")
+            .get("/bar")
+                .to("mock:bar");
     }
 }
\ No newline at end of file
diff --git a/components/camel-joor/src/test/resources/routes/MyRoutes.java b/dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesWithTemplate.java
similarity index 77%
copy from components/camel-joor/src/test/resources/routes/MyRoutes.java
copy to dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesWithTemplate.java
index 0d0b57c..86df5ae 100644
--- a/components/camel-joor/src/test/resources/routes/MyRoutes.java
+++ b/dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesWithTemplate.java
@@ -16,10 +16,14 @@
  */
 import org.apache.camel.builder.RouteBuilder;
 
-public class MyRoutes extends RouteBuilder {
+public class MyRoutesWithTemplate extends RouteBuilder {
     @Override
     public void configure() throws Exception {
-        from("timer:tick")
-                .to("log:info");
+        routeTemplate("myTemplate")
+            .templateParameter("foo")
+            .templateParameter("bar")
+            .route()
+                .from("direct:{{foo}}")
+                .to("mock:{{bat}}");
     }
 }
\ No newline at end of file
diff --git a/components/camel-joor/src/test/resources/routes/MyRoutes.java b/dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutes.java
similarity index 100%
rename from components/camel-joor/src/test/resources/routes/MyRoutes.java
rename to dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutes.java
diff --git a/components/camel-joor/src/test/resources/routes/MyRoutesWithBeans.java b/dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithBeans.java
similarity index 100%
rename from components/camel-joor/src/test/resources/routes/MyRoutesWithBeans.java
rename to dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithBeans.java
diff --git a/components/camel-joor/src/test/resources/routes/MyRoutesWithModel.java b/dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithModel.java
similarity index 93%
rename from components/camel-joor/src/test/resources/routes/MyRoutesWithModel.java
rename to dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithModel.java
index e434b2d..61ab328 100644
--- a/components/camel-joor/src/test/resources/routes/MyRoutesWithModel.java
+++ b/dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithModel.java
@@ -21,7 +21,7 @@ public class MyRoutesWithModel extends RouteBuilder {
     public void configure() throws Exception {
         rest("/say")
             .get("/emp/{id}")
-                .outType(org.apache.camel.language.joor.MyUser.class)
+                .outType(org.apache.camel.dsl.java.joor.support.MyUser.class)
                 .to("direct:getEmployee");
 
         from("direct:getEmployee")
diff --git a/components/camel-joor/src/test/resources/routes/MyRoutesWithNestedClass.java b/dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithNestedClass.java
similarity index 100%
copy from components/camel-joor/src/test/resources/routes/MyRoutesWithNestedClass.java
copy to dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithNestedClass.java
diff --git a/components/camel-joor/src/test/resources/routes/MyRoutesWithNestedTypes.java b/dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithNestedTypes.java
similarity index 100%
rename from components/camel-joor/src/test/resources/routes/MyRoutesWithNestedTypes.java
rename to dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithNestedTypes.java
diff --git a/components/camel-joor/src/test/resources/routes/MyRoutesWithPackage.java b/dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithPackage.java
similarity index 100%
rename from components/camel-joor/src/test/resources/routes/MyRoutesWithPackage.java
rename to dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithPackage.java
diff --git a/components/camel-joor/src/test/resources/routes/MyRoutesWithPackageAndComment.java b/dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithPackageAndComment.java
similarity index 100%
rename from components/camel-joor/src/test/resources/routes/MyRoutesWithPackageAndComment.java
rename to dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithPackageAndComment.java
diff --git a/components/camel-joor/src/test/resources/routes/MyRoutesWithPackageAndLineComment.java b/dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithPackageAndLineComment.java
similarity index 100%
rename from components/camel-joor/src/test/resources/routes/MyRoutesWithPackageAndLineComment.java
rename to dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithPackageAndLineComment.java
diff --git a/components/camel-joor/src/test/resources/routes/MyRoutesWithRestConfiguration.java b/dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithRestConfiguration.java
similarity index 100%
rename from components/camel-joor/src/test/resources/routes/MyRoutesWithRestConfiguration.java
rename to dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithRestConfiguration.java
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml b/dsl/camel-xml-io-dsl/pom.xml
similarity index 56%
copy from dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml
copy to dsl/camel-xml-io-dsl/pom.xml
index 298b94c..fea3406 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml
+++ b/dsl/camel-xml-io-dsl/pom.xml
@@ -24,64 +24,50 @@
 
     <parent>
         <groupId>org.apache.camel</groupId>
-        <artifactId>camel-yaml-dsl-parent</artifactId>
+        <artifactId>dsl</artifactId>
         <version>3.9.0-SNAPSHOT</version>
     </parent>
 
-    <artifactId>camel-yaml-dsl</artifactId>
+    <artifactId>camel-xml-io-dsl</artifactId>
     <packaging>jar</packaging>
-    <name>Camel :: YAML DSL</name>
-    <description>Camel DSL with YAML</description>
+    <name>Camel :: XML DSL with camel-xml-io</name>
+    <description>Camel XML DSL with camel-xml-io</description>
 
     <properties>
         <firstVersion>3.9.0</firstVersion>
-        <sourcecheckExcludes>
-            **/*.groovy
-        </sourcecheckExcludes>
-        <sourcecheckExcludesComma>
-            ${sourcecheckExcludes},
-        </sourcecheckExcludesComma>
     </properties>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.camel</groupId>
-            <artifactId>camel-yaml-dsl-common</artifactId>
-            <version>${project.version}</version>
+            <artifactId>camel-support</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.camel</groupId>
-            <artifactId>camel-yaml-dsl-deserializers</artifactId>
-            <version>${project.version}</version>
+            <artifactId>camel-core-model</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-xml-io</artifactId>
         </dependency>
 
         <dependency>
-            <groupId>org.junit.jupiter</groupId>
-            <artifactId>junit-jupiter</artifactId>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-core</artifactId>
+            <type>test-jar</type>
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.assertj</groupId>
-            <artifactId>assertj-core</artifactId>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-main</artifactId>
             <scope>test</scope>
         </dependency>
+
         <dependency>
-            <groupId>org.spockframework</groupId>
-            <artifactId>spock-core</artifactId>
-            <version>${spock-version}</version>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-core-engine</artifactId>
             <scope>test</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.codehaus.groovy</groupId>
-                    <artifactId>*</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>junit</groupId>
-                    <artifactId>*</artifactId>
-                </exclusion>
-            </exclusions>
         </dependency>
-
         <dependency>
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-direct</artifactId>
@@ -124,34 +110,17 @@
         </dependency>
 
         <dependency>
-            <groupId>org.codehaus.groovy</groupId>
-            <artifactId>groovy</artifactId>
-            <version>${groovy-version}</version>
+            <groupId>org.assertj</groupId>
+            <artifactId>assertj-core</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.codehaus.groovy</groupId>
-            <artifactId>groovy-test</artifactId>
-            <version>${groovy-version}</version>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-test-junit5</artifactId>
             <scope>test</scope>
         </dependency>
 
         <dependency>
-            <groupId>com.github.java-json-tools</groupId>
-            <artifactId>json-schema-validator</artifactId>
-            <version>${json-schema-validator-version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-databind</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.dataformat</groupId>
-            <artifactId>jackson-dataformat-yaml</artifactId>
-        </dependency>
-
-        <dependency>
             <groupId>org.apache.logging.log4j</groupId>
             <artifactId>log4j-core</artifactId>
             <scope>test</scope>
@@ -173,40 +142,6 @@
         <plugins>
             <plugin>
                 <groupId>org.apache.camel</groupId>
-                <artifactId>camel-yaml-dsl-maven-plugin</artifactId>
-                <version>${project.version}</version>
-                <executions>
-                    <execution>
-                        <phase>generate-sources</phase>
-                        <goals>
-                            <goal>generate-yaml-schema</goal>
-                        </goals>
-                        <configuration>
-                            <bannedDefinitions>
-                                <bannedDefinition>org.apache.camel.model.FromDefinition</bannedDefinition>
-                            </bannedDefinitions>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.codehaus.gmavenplus</groupId>
-                <artifactId>gmavenplus-plugin</artifactId>
-                <version>${gmavenplus-plugin-version}</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>addTestSources</goal>
-                            <goal>compileTests</goal>
-                        </goals>
-                    </execution>
-                </executions>
-                <configuration>
-                    <invokeDynamic>true</invokeDynamic>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-package-maven-plugin</artifactId>
                 <executions>
                     <execution>
@@ -220,4 +155,17 @@
         </plugins>
     </build>
 
+    <!-- skip testing on java 8 -->
+    <profiles>
+        <profile>
+            <id>jdk8</id>
+            <activation>
+                <jdk>[,8)</jdk>
+            </activation>
+            <properties>
+                <maven.test.skip.exec>true</maven.test.skip.exec>
+            </properties>
+        </profile>
+    </profiles>
+
 </project>
\ No newline at end of file
diff --git a/core/camel-xml-io/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml b/dsl/camel-xml-io-dsl/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml
similarity index 50%
rename from core/camel-xml-io/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml
rename to dsl/camel-xml-io-dsl/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml
index 78de6b4..4497cb0 100644
--- a/core/camel-xml-io/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml
+++ b/dsl/camel-xml-io-dsl/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml
@@ -1,2 +1,2 @@
 # Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.xml.in.XmlRoutesBuilderLoader
+class=org.apache.camel.dsl.xml.io.XmlRoutesBuilderLoader
diff --git a/dsl/camel-xml-io-dsl/src/main/docs/java-xml-io-dsl.adoc b/dsl/camel-xml-io-dsl/src/main/docs/java-xml-io-dsl.adoc
new file mode 100644
index 0000000..6a7bbc9
--- /dev/null
+++ b/dsl/camel-xml-io-dsl/src/main/docs/java-xml-io-dsl.adoc
@@ -0,0 +1,11 @@
+[[xml-io-dsl-other]]
+= Xml Io Dsl Component
+:docTitle: XML Dsl
+:artifactId: camel-xml-io-dsl
+:description: Camel DSL with YAML
+:supportLevel: Stable
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/others/xml-io-dsl.adoc[opts=optional]
+//Manually maintained attributes
+:group: DSL
+
+See https://camel.apache.org/manual/latest/dsl.html
\ No newline at end of file
diff --git a/core/camel-xml-io/src/main/java/org/apache/camel/xml/in/XmlRoutesBuilderLoader.java b/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java
similarity index 97%
rename from core/camel-xml-io/src/main/java/org/apache/camel/xml/in/XmlRoutesBuilderLoader.java
rename to dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java
index 5c50e1b..e8f2b4b 100644
--- a/core/camel-xml-io/src/main/java/org/apache/camel/xml/in/XmlRoutesBuilderLoader.java
+++ b/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.xml.in;
+package org.apache.camel.dsl.xml.io;
 
 import java.io.InputStream;
 
@@ -28,6 +28,7 @@ import org.apache.camel.spi.Resource;
 import org.apache.camel.spi.StartupStepRecorder;
 import org.apache.camel.spi.annotations.RoutesLoader;
 import org.apache.camel.support.RoutesBuilderLoaderSupport;
+import org.apache.camel.xml.in.ModelParser;
 
 @ManagedResource(description = "Managed XML RoutesBuilderLoader")
 @RoutesLoader(XmlRoutesBuilderLoader.EXTENSION)
diff --git a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlRestsTest.java b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlMainRestsTest.java
similarity index 96%
copy from core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlRestsTest.java
copy to dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlMainRestsTest.java
index 77c27b8..948d9c9 100644
--- a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlRestsTest.java
+++ b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlMainRestsTest.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main.xml;
+package org.apache.camel.dsl.xml.io;
 
 import java.util.List;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.dsl.xml.io.support.MockRestConsumerFactory;
 import org.apache.camel.main.Main;
-import org.apache.camel.main.support.MockRestConsumerFactory;
 import org.apache.camel.model.ModelCamelContext;
 import org.apache.camel.model.rest.GetVerbDefinition;
 import org.apache.camel.model.rest.RestDefinition;
@@ -31,7 +31,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-public class MainXmlRestsTest {
+public class XmlMainRestsTest {
 
     @Test
     public void testMainRestsCollector() {
diff --git a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTemplateTest.java b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlMainTemplateTest.java
similarity index 95%
copy from core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTemplateTest.java
copy to dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlMainTemplateTest.java
index 847b862..50577d0 100644
--- a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTemplateTest.java
+++ b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlMainTemplateTest.java
@@ -14,18 +14,18 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main.xml;
+package org.apache.camel.dsl.xml.io;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.dsl.xml.io.support.MockRestConsumerFactory;
 import org.apache.camel.main.Main;
-import org.apache.camel.main.support.MockRestConsumerFactory;
 import org.apache.camel.model.ModelCamelContext;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-public class MainXmlTemplateTest {
+public class XmlMainTemplateTest {
 
     @Test
     public void testMainRoutesCollector() {
diff --git a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTest.java b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlMainTest.java
similarity index 97%
copy from core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTest.java
copy to dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlMainTest.java
index 44ac8f3..d689c61 100644
--- a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTest.java
+++ b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlMainTest.java
@@ -14,18 +14,18 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main.xml;
+package org.apache.camel.dsl.xml.io;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.dsl.xml.io.support.MockRestConsumerFactory;
 import org.apache.camel.main.Main;
-import org.apache.camel.main.support.MockRestConsumerFactory;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-public class MainXmlTest {
+public class XmlMainTest {
 
     @Test
     public void testMainRoutesCollector() throws Exception {
diff --git a/core/camel-xml-io/src/test/java/org/apache/camel/xml/in/XmlRoutesBuilderLoaderTest.java b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoaderTest.java
similarity index 99%
copy from core/camel-xml-io/src/test/java/org/apache/camel/xml/in/XmlRoutesBuilderLoaderTest.java
copy to dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoaderTest.java
index 2b916e6..c1fe3e7 100644
--- a/core/camel-xml-io/src/test/java/org/apache/camel/xml/in/XmlRoutesBuilderLoaderTest.java
+++ b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoaderTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.xml.in;
+package org.apache.camel.dsl.xml.io;
 
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.impl.DefaultCamelContext;
diff --git a/components/camel-joor/src/test/resources/routes/MyRoutesWithNestedClass.java b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/support/MockRestConsumerFactory.java
similarity index 55%
copy from components/camel-joor/src/test/resources/routes/MyRoutesWithNestedClass.java
copy to dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/support/MockRestConsumerFactory.java
index e4c2944..80bc75c 100644
--- a/components/camel-joor/src/test/resources/routes/MyRoutesWithNestedClass.java
+++ b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/support/MockRestConsumerFactory.java
@@ -14,26 +14,28 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
+package org.apache.camel.dsl.xml.io.support;
 
-public class MyRoutesWithNestedClass extends RouteBuilder {
-    @Override
-    public void configure() throws Exception {
-        Processor toUpper = new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                String body = exchange.getIn().getBody(String.class);
-                body = body.toUpperCase();
+import java.util.Map;
 
-                exchange.getOut().setBody(body);
-            }
-        };
+import org.apache.camel.CamelContext;
+import org.apache.camel.Consumer;
+import org.apache.camel.Processor;
+import org.apache.camel.spi.RestConfiguration;
+import org.apache.camel.spi.RestConsumerFactory;
 
-        from("timer:tick")
-            .setBody().constant("test")
-            .process(toUpper)
-            .to("log:info");
+public final class MockRestConsumerFactory implements RestConsumerFactory {
+    @Override
+    public Consumer createConsumer(
+            CamelContext camelContext,
+            Processor processor,
+            String verb,
+            String basePath,
+            String uriTemplate,
+            String consumes,
+            String produces,
+            RestConfiguration configuration,
+            Map<String, Object> parameters) {
+        return null;
     }
-}
\ No newline at end of file
+}
diff --git a/dsl/camel-xml-io-dsl/src/test/resources/log4j2-test.properties b/dsl/camel-xml-io-dsl/src/test/resources/log4j2-test.properties
new file mode 100644
index 0000000..b8d8a73
--- /dev/null
+++ b/dsl/camel-xml-io-dsl/src/test/resources/log4j2-test.properties
@@ -0,0 +1,31 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+appender.file.type = File
+appender.file.name = file
+appender.file.fileName = target/camel-xml-io-dsl-test.log
+appender.file.layout.type = PatternLayout
+appender.file.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
+
+appender.out.type = Console
+appender.out.name = out
+appender.out.layout.type = PatternLayout
+appender.out.layout.pattern = [%30.30t] %-30.30c{1} %-5p %m%n
+
+rootLogger.level = INFO
+rootLogger.appenderRef.file.ref = file
+#rootLogger.appenderRef.out.ref = out
diff --git a/core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-dummy.xml b/dsl/camel-xml-io-dsl/src/test/resources/org/apache/camel/main/xml/camel-dummy.xml
similarity index 93%
copy from core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-dummy.xml
copy to dsl/camel-xml-io-dsl/src/test/resources/org/apache/camel/main/xml/camel-dummy.xml
index 901aa8d..ba9df1e 100644
--- a/core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-dummy.xml
+++ b/dsl/camel-xml-io-dsl/src/test/resources/org/apache/camel/main/xml/camel-dummy.xml
@@ -17,7 +17,7 @@
     limitations under the License.
 
 -->
-<routes id="camel" xmlns="http://camel.apache.org/schema/spring">
+<routes xmlns="http://camel.apache.org/schema/spring">
     <route>
         <from uri="direct:dummy"/>
         <to uri="mock:dummy"/>
diff --git a/core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-rests.xml b/dsl/camel-xml-io-dsl/src/test/resources/org/apache/camel/main/xml/camel-rests.xml
similarity index 100%
copy from core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-rests.xml
copy to dsl/camel-xml-io-dsl/src/test/resources/org/apache/camel/main/xml/camel-rests.xml
diff --git a/core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-scan.xml b/dsl/camel-xml-io-dsl/src/test/resources/org/apache/camel/main/xml/camel-scan.xml
similarity index 93%
copy from core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-scan.xml
copy to dsl/camel-xml-io-dsl/src/test/resources/org/apache/camel/main/xml/camel-scan.xml
index 2e61ef3..aa6ce8e 100644
--- a/core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-scan.xml
+++ b/dsl/camel-xml-io-dsl/src/test/resources/org/apache/camel/main/xml/camel-scan.xml
@@ -17,7 +17,7 @@
     limitations under the License.
 
 -->
-<routes id="camel" xmlns="http://camel.apache.org/schema/spring">
+<routes xmlns="http://camel.apache.org/schema/spring">
     <route>
         <from uri="direct:scan"/>
         <to uri="mock:scan"/>
diff --git a/core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-template.xml b/dsl/camel-xml-io-dsl/src/test/resources/org/apache/camel/main/xml/camel-template.xml
similarity index 80%
copy from core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-template.xml
copy to dsl/camel-xml-io-dsl/src/test/resources/org/apache/camel/main/xml/camel-template.xml
index f626de0..0f30dc8 100644
--- a/core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-template.xml
+++ b/dsl/camel-xml-io-dsl/src/test/resources/org/apache/camel/main/xml/camel-template.xml
@@ -18,8 +18,12 @@
 
 -->
 <routeTemplates xmlns="http://camel.apache.org/schema/spring">
-    <routeTemplate id="myTemplate" parameters="foo,bar">
-        <from uri="direct:{{foo}}"/>
-        <to uri="mock:{{bar}}"/>
+    <routeTemplate id="myTemplate">
+        <templateParameter name="foo"/>
+        <templateParameter name="bar"/>
+        <route>
+            <from uri="direct:{{foo}}"/>
+            <to uri="mock:{{bar}}"/>
+        </route>
     </routeTemplate>
 </routeTemplates>
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml b/dsl/camel-xml-jaxb-dsl/pom.xml
similarity index 55%
copy from dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml
copy to dsl/camel-xml-jaxb-dsl/pom.xml
index 298b94c..78a0e03 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml
+++ b/dsl/camel-xml-jaxb-dsl/pom.xml
@@ -24,64 +24,44 @@
 
     <parent>
         <groupId>org.apache.camel</groupId>
-        <artifactId>camel-yaml-dsl-parent</artifactId>
+        <artifactId>dsl</artifactId>
         <version>3.9.0-SNAPSHOT</version>
     </parent>
 
-    <artifactId>camel-yaml-dsl</artifactId>
+    <artifactId>camel-xml-jaxb-dsl</artifactId>
     <packaging>jar</packaging>
-    <name>Camel :: YAML DSL</name>
-    <description>Camel DSL with YAML</description>
+    <name>Camel :: XML DSL with camel-xml-jaxb</name>
+    <description>Camel XML DSL with acmel-xml-jaxb</description>
 
     <properties>
         <firstVersion>3.9.0</firstVersion>
-        <sourcecheckExcludes>
-            **/*.groovy
-        </sourcecheckExcludes>
-        <sourcecheckExcludesComma>
-            ${sourcecheckExcludes},
-        </sourcecheckExcludesComma>
     </properties>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.camel</groupId>
-            <artifactId>camel-yaml-dsl-common</artifactId>
-            <version>${project.version}</version>
+            <artifactId>camel-support</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.camel</groupId>
-            <artifactId>camel-yaml-dsl-deserializers</artifactId>
-            <version>${project.version}</version>
+            <artifactId>camel-core-model</artifactId>
         </dependency>
-
         <dependency>
-            <groupId>org.junit.jupiter</groupId>
-            <artifactId>junit-jupiter</artifactId>
-            <scope>test</scope>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-xml-jaxb</artifactId>
         </dependency>
+
         <dependency>
-            <groupId>org.assertj</groupId>
-            <artifactId>assertj-core</artifactId>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-core</artifactId>
+            <type>test-jar</type>
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.spockframework</groupId>
-            <artifactId>spock-core</artifactId>
-            <version>${spock-version}</version>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-main</artifactId>
             <scope>test</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.codehaus.groovy</groupId>
-                    <artifactId>*</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>junit</groupId>
-                    <artifactId>*</artifactId>
-                </exclusion>
-            </exclusions>
         </dependency>
-
         <dependency>
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-direct</artifactId>
@@ -124,34 +104,17 @@
         </dependency>
 
         <dependency>
-            <groupId>org.codehaus.groovy</groupId>
-            <artifactId>groovy</artifactId>
-            <version>${groovy-version}</version>
+            <groupId>org.assertj</groupId>
+            <artifactId>assertj-core</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.codehaus.groovy</groupId>
-            <artifactId>groovy-test</artifactId>
-            <version>${groovy-version}</version>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-test-junit5</artifactId>
             <scope>test</scope>
         </dependency>
 
         <dependency>
-            <groupId>com.github.java-json-tools</groupId>
-            <artifactId>json-schema-validator</artifactId>
-            <version>${json-schema-validator-version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-databind</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.dataformat</groupId>
-            <artifactId>jackson-dataformat-yaml</artifactId>
-        </dependency>
-
-        <dependency>
             <groupId>org.apache.logging.log4j</groupId>
             <artifactId>log4j-core</artifactId>
             <scope>test</scope>
@@ -173,40 +136,6 @@
         <plugins>
             <plugin>
                 <groupId>org.apache.camel</groupId>
-                <artifactId>camel-yaml-dsl-maven-plugin</artifactId>
-                <version>${project.version}</version>
-                <executions>
-                    <execution>
-                        <phase>generate-sources</phase>
-                        <goals>
-                            <goal>generate-yaml-schema</goal>
-                        </goals>
-                        <configuration>
-                            <bannedDefinitions>
-                                <bannedDefinition>org.apache.camel.model.FromDefinition</bannedDefinition>
-                            </bannedDefinitions>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.codehaus.gmavenplus</groupId>
-                <artifactId>gmavenplus-plugin</artifactId>
-                <version>${gmavenplus-plugin-version}</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>addTestSources</goal>
-                            <goal>compileTests</goal>
-                        </goals>
-                    </execution>
-                </executions>
-                <configuration>
-                    <invokeDynamic>true</invokeDynamic>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-package-maven-plugin</artifactId>
                 <executions>
                     <execution>
@@ -220,4 +149,17 @@
         </plugins>
     </build>
 
+    <!-- skip testing on java 8 -->
+    <profiles>
+        <profile>
+            <id>jdk8</id>
+            <activation>
+                <jdk>[,8)</jdk>
+            </activation>
+            <properties>
+                <maven.test.skip.exec>true</maven.test.skip.exec>
+            </properties>
+        </profile>
+    </profiles>
+
 </project>
\ No newline at end of file
diff --git a/dsl/camel-xml-jaxb-dsl/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml b/dsl/camel-xml-jaxb-dsl/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml
new file mode 100644
index 0000000..a0547c8
--- /dev/null
+++ b/dsl/camel-xml-jaxb-dsl/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.dsl.xml.jaxb.JaxbXmlRoutesBuilderLoader
diff --git a/dsl/camel-xml-jaxb-dsl/src/main/docs/java-xml-jaxb-dsl.adoc b/dsl/camel-xml-jaxb-dsl/src/main/docs/java-xml-jaxb-dsl.adoc
new file mode 100644
index 0000000..62c32db
--- /dev/null
+++ b/dsl/camel-xml-jaxb-dsl/src/main/docs/java-xml-jaxb-dsl.adoc
@@ -0,0 +1,11 @@
+[[xml-jaxb-dsl-other]]
+= Jaxb Xml Dsl Component
+:docTitle: Jaxb XML Dsl
+:artifactId: camel-xml-jaxb-dsl
+:description: Camel DSL with YAML
+:supportLevel: Stable
+include::{cq-version}@camel-quarkus:ROOT:partial$reference/others/xml-jaxb-dsl.adoc[opts=optional]
+//Manually maintained attributes
+:group: DSL
+
+See https://camel.apache.org/manual/latest/dsl.html
\ No newline at end of file
diff --git a/core/camel-xml-jaxb/src/main/java/org/apache/camel/xml/jaxb/JaxbXmlRoutesBuilderLoader.java b/dsl/camel-xml-jaxb-dsl/src/main/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlRoutesBuilderLoader.java
similarity index 99%
rename from core/camel-xml-jaxb/src/main/java/org/apache/camel/xml/jaxb/JaxbXmlRoutesBuilderLoader.java
rename to dsl/camel-xml-jaxb-dsl/src/main/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlRoutesBuilderLoader.java
index 69f62c1..6413a23 100644
--- a/core/camel-xml-jaxb/src/main/java/org/apache/camel/xml/jaxb/JaxbXmlRoutesBuilderLoader.java
+++ b/dsl/camel-xml-jaxb-dsl/src/main/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlRoutesBuilderLoader.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.xml.jaxb;
+package org.apache.camel.dsl.xml.jaxb;
 
 import java.io.InputStream;
 
diff --git a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlRestsTest.java b/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlMainRestsTest.java
similarity index 96%
rename from core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlRestsTest.java
rename to dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlMainRestsTest.java
index 77c27b8..7710282 100644
--- a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlRestsTest.java
+++ b/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlMainRestsTest.java
@@ -14,13 +14,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main.xml;
+package org.apache.camel.dsl.xml.jaxb;
 
 import java.util.List;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.dsl.xml.jaxb.support.MockRestConsumerFactory;
 import org.apache.camel.main.Main;
-import org.apache.camel.main.support.MockRestConsumerFactory;
 import org.apache.camel.model.ModelCamelContext;
 import org.apache.camel.model.rest.GetVerbDefinition;
 import org.apache.camel.model.rest.RestDefinition;
@@ -31,7 +31,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-public class MainXmlRestsTest {
+public class JaxbXmlMainRestsTest {
 
     @Test
     public void testMainRestsCollector() {
diff --git a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTemplateTest.java b/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlMainTemplateTest.java
similarity index 95%
rename from core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTemplateTest.java
rename to dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlMainTemplateTest.java
index 847b862..3057bae 100644
--- a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTemplateTest.java
+++ b/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlMainTemplateTest.java
@@ -14,18 +14,18 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main.xml;
+package org.apache.camel.dsl.xml.jaxb;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.dsl.xml.jaxb.support.MockRestConsumerFactory;
 import org.apache.camel.main.Main;
-import org.apache.camel.main.support.MockRestConsumerFactory;
 import org.apache.camel.model.ModelCamelContext;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-public class MainXmlTemplateTest {
+public class JaxbXmlMainTemplateTest {
 
     @Test
     public void testMainRoutesCollector() {
diff --git a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTest.java b/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlMainTest.java
similarity index 97%
rename from core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTest.java
rename to dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlMainTest.java
index 44ac8f3..5d885ca 100644
--- a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTest.java
+++ b/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlMainTest.java
@@ -14,18 +14,18 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.main.xml;
+package org.apache.camel.dsl.xml.jaxb;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.dsl.xml.jaxb.support.MockRestConsumerFactory;
 import org.apache.camel.main.Main;
-import org.apache.camel.main.support.MockRestConsumerFactory;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-public class MainXmlTest {
+public class JaxbXmlMainTest {
 
     @Test
     public void testMainRoutesCollector() throws Exception {
diff --git a/core/camel-xml-io/src/test/java/org/apache/camel/xml/in/XmlRoutesBuilderLoaderTest.java b/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlRoutesBuilderLoaderTest.java
similarity index 79%
rename from core/camel-xml-io/src/test/java/org/apache/camel/xml/in/XmlRoutesBuilderLoaderTest.java
rename to dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlRoutesBuilderLoaderTest.java
index 2b916e6..6804f53 100644
--- a/core/camel-xml-io/src/test/java/org/apache/camel/xml/in/XmlRoutesBuilderLoaderTest.java
+++ b/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlRoutesBuilderLoaderTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.xml.in;
+package org.apache.camel.dsl.xml.jaxb;
 
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.impl.DefaultCamelContext;
@@ -23,7 +23,7 @@ import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertFalse;
 
-public class XmlRoutesBuilderLoaderTest {
+public class JaxbXmlRoutesBuilderLoaderTest {
     @Test
     public void canLoadRoutes() throws Exception {
         String content = ""
@@ -39,8 +39,12 @@ public class XmlRoutesBuilderLoaderTest {
                          + "</routes>";
 
         Resource resource = Resource.fromString("in-memory.xml", content);
-        RouteBuilder builder = (RouteBuilder) new XmlRoutesBuilderLoader().loadRoutesBuilder(resource);
-        builder.setContext(new DefaultCamelContext());
+
+        JaxbXmlRoutesBuilderLoader loader = new JaxbXmlRoutesBuilderLoader();
+        loader.setCamelContext(new DefaultCamelContext());
+
+        RouteBuilder builder = (RouteBuilder) loader.loadRoutesBuilder(resource);
+        builder.setContext(loader.getCamelContext());
         builder.configure();
 
         assertFalse(builder.getRouteCollection().getRoutes().isEmpty());
@@ -58,8 +62,12 @@ public class XmlRoutesBuilderLoaderTest {
                          + "</rests>";
 
         Resource resource = Resource.fromString("in-memory.xml", content);
-        RouteBuilder builder = (RouteBuilder) new XmlRoutesBuilderLoader().loadRoutesBuilder(resource);
-        builder.setContext(new DefaultCamelContext());
+
+        JaxbXmlRoutesBuilderLoader loader = new JaxbXmlRoutesBuilderLoader();
+        loader.setCamelContext(new DefaultCamelContext());
+
+        RouteBuilder builder = (RouteBuilder) loader.loadRoutesBuilder(resource);
+        builder.setContext(loader.getCamelContext());
         builder.configure();
 
         assertFalse(builder.getRestCollection().getRests().isEmpty());
@@ -80,8 +88,12 @@ public class XmlRoutesBuilderLoaderTest {
                          + "</routeTemplates>";
 
         Resource resource = Resource.fromString("in-memory.xml", content);
-        RouteBuilder builder = (RouteBuilder) new XmlRoutesBuilderLoader().loadRoutesBuilder(resource);
-        builder.setContext(new DefaultCamelContext());
+
+        JaxbXmlRoutesBuilderLoader loader = new JaxbXmlRoutesBuilderLoader();
+        loader.setCamelContext(new DefaultCamelContext());
+
+        RouteBuilder builder = (RouteBuilder) loader.loadRoutesBuilder(resource);
+        builder.setContext(loader.getCamelContext());
         builder.configure();
 
         assertFalse(builder.getRouteTemplateCollection().getRouteTemplates().isEmpty());
diff --git a/components/camel-joor/src/test/resources/routes/MyRoutesWithNestedClass.java b/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/support/MockRestConsumerFactory.java
similarity index 55%
rename from components/camel-joor/src/test/resources/routes/MyRoutesWithNestedClass.java
rename to dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/support/MockRestConsumerFactory.java
index e4c2944..6420433 100644
--- a/components/camel-joor/src/test/resources/routes/MyRoutesWithNestedClass.java
+++ b/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/support/MockRestConsumerFactory.java
@@ -14,26 +14,28 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
+package org.apache.camel.dsl.xml.jaxb.support;
 
-public class MyRoutesWithNestedClass extends RouteBuilder {
-    @Override
-    public void configure() throws Exception {
-        Processor toUpper = new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                String body = exchange.getIn().getBody(String.class);
-                body = body.toUpperCase();
+import java.util.Map;
 
-                exchange.getOut().setBody(body);
-            }
-        };
+import org.apache.camel.CamelContext;
+import org.apache.camel.Consumer;
+import org.apache.camel.Processor;
+import org.apache.camel.spi.RestConfiguration;
+import org.apache.camel.spi.RestConsumerFactory;
 
-        from("timer:tick")
-            .setBody().constant("test")
-            .process(toUpper)
-            .to("log:info");
+public final class MockRestConsumerFactory implements RestConsumerFactory {
+    @Override
+    public Consumer createConsumer(
+            CamelContext camelContext,
+            Processor processor,
+            String verb,
+            String basePath,
+            String uriTemplate,
+            String consumes,
+            String produces,
+            RestConfiguration configuration,
+            Map<String, Object> parameters) {
+        return null;
     }
-}
\ No newline at end of file
+}
diff --git a/dsl/camel-xml-jaxb-dsl/src/test/resources/log4j2-test.properties b/dsl/camel-xml-jaxb-dsl/src/test/resources/log4j2-test.properties
new file mode 100644
index 0000000..5c45b64
--- /dev/null
+++ b/dsl/camel-xml-jaxb-dsl/src/test/resources/log4j2-test.properties
@@ -0,0 +1,31 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+appender.file.type = File
+appender.file.name = file
+appender.file.fileName = target/camel-xml-jaxb-dsl-test.log
+appender.file.layout.type = PatternLayout
+appender.file.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
+
+appender.out.type = Console
+appender.out.name = out
+appender.out.layout.type = PatternLayout
+appender.out.layout.pattern = [%30.30t] %-30.30c{1} %-5p %m%n
+
+rootLogger.level = INFO
+rootLogger.appenderRef.file.ref = file
+#rootLogger.appenderRef.out.ref = out
diff --git a/core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-dummy.xml b/dsl/camel-xml-jaxb-dsl/src/test/resources/org/apache/camel/main/xml/camel-dummy.xml
similarity index 100%
rename from core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-dummy.xml
rename to dsl/camel-xml-jaxb-dsl/src/test/resources/org/apache/camel/main/xml/camel-dummy.xml
diff --git a/core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-rests.xml b/dsl/camel-xml-jaxb-dsl/src/test/resources/org/apache/camel/main/xml/camel-rests.xml
similarity index 100%
rename from core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-rests.xml
rename to dsl/camel-xml-jaxb-dsl/src/test/resources/org/apache/camel/main/xml/camel-rests.xml
diff --git a/core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-scan.xml b/dsl/camel-xml-jaxb-dsl/src/test/resources/org/apache/camel/main/xml/camel-scan.xml
similarity index 100%
rename from core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-scan.xml
rename to dsl/camel-xml-jaxb-dsl/src/test/resources/org/apache/camel/main/xml/camel-scan.xml
diff --git a/core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-template.xml b/dsl/camel-xml-jaxb-dsl/src/test/resources/org/apache/camel/main/xml/camel-template.xml
similarity index 80%
rename from core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-template.xml
rename to dsl/camel-xml-jaxb-dsl/src/test/resources/org/apache/camel/main/xml/camel-template.xml
index f626de0..0f30dc8 100644
--- a/core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-template.xml
+++ b/dsl/camel-xml-jaxb-dsl/src/test/resources/org/apache/camel/main/xml/camel-template.xml
@@ -18,8 +18,12 @@
 
 -->
 <routeTemplates xmlns="http://camel.apache.org/schema/spring">
-    <routeTemplate id="myTemplate" parameters="foo,bar">
-        <from uri="direct:{{foo}}"/>
-        <to uri="mock:{{bar}}"/>
+    <routeTemplate id="myTemplate">
+        <templateParameter name="foo"/>
+        <templateParameter name="bar"/>
+        <route>
+            <from uri="direct:{{foo}}"/>
+            <to uri="mock:{{bar}}"/>
+        </route>
     </routeTemplate>
 </routeTemplates>
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/generated/resources/META-INF/services/org/apache/camel/other.properties b/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/generated/resources/META-INF/services/org/apache/camel/other.properties
deleted file mode 100644
index 0fbee6d..0000000
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/generated/resources/META-INF/services/org/apache/camel/other.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-name=yaml-dsl-common
-groupId=org.apache.camel
-artifactId=camel-yaml-dsl-common
-version=3.9.0-SNAPSHOT
-projectName=Camel :: YAML DSL :: Common
-projectDescription=Camel DSL with YAML Common
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml b/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml
index 298b94c..6e17776 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml
@@ -84,6 +84,11 @@
 
         <dependency>
             <groupId>org.apache.camel</groupId>
+            <artifactId>camel-main</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
             <artifactId>camel-direct</artifactId>
             <scope>test</scope>
         </dependency>
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties
deleted file mode 100644
index b6c1a30..0000000
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-name=yaml-dsl
-groupId=org.apache.camel
-artifactId=camel-yaml-dsl
-version=3.9.0-SNAPSHOT
-projectName=Camel :: YAML DSL
-projectDescription=Camel DSL with YAML
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/yaml-dsl.json b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/yaml-dsl.json
deleted file mode 100644
index 2b9161a..0000000
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/yaml-dsl.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-  "other": {
-    "kind": "other",
-    "name": "yaml-dsl",
-    "title": "Yaml Dsl",
-    "description": "Camel DSL with YAML",
-    "deprecated": false,
-    "firstVersion": "3.9.0",
-    "supportLevel": "Preview",
-    "groupId": "org.apache.camel",
-    "artifactId": "camel-yaml-dsl",
-    "version": "3.9.0-SNAPSHOT"
-  }
-}
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/docs/yaml-dsl.adoc b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/docs/yaml-dsl.adoc
index 080603d..95be86e 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/docs/yaml-dsl.adoc
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/docs/yaml-dsl.adoc
@@ -1,5 +1,5 @@
-[[yaml-dsl-other]]
-= Yaml Dsl Component
+[[yaml-dsl]]
+= Yaml Dsl
 :docTitle: Yaml Dsl
 :artifactId: camel-yaml-dsl
 :description: Camel DSL with YAML
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java
index 1ea50f8..e313569 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java
@@ -19,7 +19,11 @@ package org.apache.camel.dsl.yaml;
 import java.io.InputStream;
 import java.util.List;
 
+import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.RoutesBuilder;
+import org.apache.camel.StartupStep;
+import org.apache.camel.api.management.ManagedAttribute;
+import org.apache.camel.api.management.ManagedResource;
 import org.apache.camel.builder.ErrorHandlerBuilder;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.dsl.yaml.common.YamlDeserializationContext;
@@ -33,6 +37,7 @@ import org.apache.camel.model.rest.RestDefinition;
 import org.apache.camel.model.rest.VerbDefinition;
 import org.apache.camel.spi.CamelContextCustomizer;
 import org.apache.camel.spi.Resource;
+import org.apache.camel.spi.StartupStepRecorder;
 import org.apache.camel.spi.annotations.RoutesLoader;
 import org.apache.camel.support.RoutesBuilderLoaderSupport;
 import org.apache.camel.support.service.ServiceHelper;
@@ -40,16 +45,19 @@ import org.apache.camel.util.ObjectHelper;
 import org.snakeyaml.engine.v2.api.Load;
 import org.snakeyaml.engine.v2.api.LoadSettings;
 
+@ManagedResource(description = "Managed YAML RoutesBuilderLoader")
 @RoutesLoader(YamlRoutesBuilderLoader.EXTENSION)
 public class YamlRoutesBuilderLoader extends RoutesBuilderLoaderSupport {
     public static final String EXTENSION = "yaml";
 
     private LoadSettings settings;
     private YamlDeserializationContext constructor;
+    private StartupStepRecorder recorder;
 
     public YamlRoutesBuilderLoader() {
     }
 
+    @ManagedAttribute(description = "Supported file extension")
     @Override
     public String getSupportedExtension() {
         return EXTENSION;
@@ -59,6 +67,8 @@ public class YamlRoutesBuilderLoader extends RoutesBuilderLoaderSupport {
     protected void doBuild() throws Exception {
         super.doBuild();
 
+        this.recorder = getCamelContext().adapt(ExtendedCamelContext.class).getStartupStepRecorder();
+
         this.settings = LoadSettings.builder().build();
         this.constructor = new YamlDeserializationContext(settings);
         this.constructor.setCamelContext(getCamelContext());
@@ -92,11 +102,22 @@ public class YamlRoutesBuilderLoader extends RoutesBuilderLoaderSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                Load load = new Load(settings, constructor);
+                final Load load = new Load(settings, constructor);
+
+                StartupStep step = recorder != null
+                        ? recorder.beginStep(YamlRoutesBuilderLoader.class, resource.getLocation(),
+                                "Loading and Parsing YAML routes")
+                        : null;
+
                 try (InputStream is = resource.getInputStream()) {
                     for (Object item : (List<?>) load.loadFromInputStream(is)) {
+
                         configure(item);
                     }
+                } finally {
+                    if (recorder != null) {
+                        recorder.endStep(step);
+                    }
                 }
             }
 
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/MainTest.groovy b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/MainTest.groovy
new file mode 100644
index 0000000..e7d9ede
--- /dev/null
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/MainTest.groovy
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License") you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.dsl.yaml
+
+
+import org.apache.camel.component.mock.MockEndpoint
+import org.apache.camel.dsl.yaml.support.MockRestConsumerFactory
+import org.apache.camel.main.Main
+import spock.lang.Specification
+
+class MainTest extends Specification {
+
+    def 'load routes with main'() {
+        given:
+            def main = new Main()
+            main.bind("restConsumerFactory", new MockRestConsumerFactory())
+            main.configure().withRoutesIncludePattern('routes/ro*.yaml')
+        when:
+            main.start()
+            main.camelContext.getEndpoint("mock:result", MockEndpoint.class).expectedBodiesReceived("Hello World")
+            main.camelTemplate.sendBody("direct:start", "Hello World")
+        then:
+            main.camelContext.getEndpoint("mock:result", MockEndpoint.class).assertIsSatisfied()
+    }
+}
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/resources/routes/routes.yaml b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/resources/routes/routes.yaml
new file mode 100644
index 0000000..6218fd3
--- /dev/null
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/resources/routes/routes.yaml
@@ -0,0 +1,20 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+- from:
+    uri: "direct:start"
+    steps:
+      - to: "mock:result"
\ No newline at end of file
diff --git a/dsl/pom.xml b/dsl/pom.xml
index fcc07e3..0d4b9ea 100644
--- a/dsl/pom.xml
+++ b/dsl/pom.xml
@@ -34,6 +34,9 @@
     <description>Camel DSLs Modules</description>
 
     <modules>
+        <module>camel-java-joor-dsl</module>
+        <module>camel-xml-io-dsl</module>
+        <module>camel-xml-jaxb-dsl</module>
         <module>camel-yaml-dsl</module>
     </modules>
 
diff --git a/parent/pom.xml b/parent/pom.xml
index 5476cb9..5462bf7 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -2595,55 +2595,72 @@
 			</dependency>
 			<dependency>
 				<groupId>org.apache.camel</groupId>
-				<artifactId>camel-yaml-dsl-common</artifactId>
+				<artifactId>camel-yammer</artifactId>
 				<version>${project.version}</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.camel</groupId>
-				<artifactId>camel-yaml-dsl-deserializers</artifactId>
+				<artifactId>camel-zendesk</artifactId>
 				<version>${project.version}</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.camel</groupId>
-				<artifactId>camel-yaml-dsl</artifactId>
+				<artifactId>camel-zip-deflater</artifactId>
 				<version>${project.version}</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.camel</groupId>
-				<artifactId>camel-yammer</artifactId>
+				<artifactId>camel-zipfile</artifactId>
 				<version>${project.version}</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.camel</groupId>
-				<artifactId>camel-zendesk</artifactId>
+				<artifactId>camel-zipkin</artifactId>
 				<version>${project.version}</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.camel</groupId>
-				<artifactId>camel-zip-deflater</artifactId>
+				<artifactId>camel-zookeeper-master</artifactId>
 				<version>${project.version}</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.camel</groupId>
-				<artifactId>camel-zipfile</artifactId>
+				<artifactId>camel-zookeeper</artifactId>
 				<version>${project.version}</version>
 			</dependency>
+			<!-- camel components: END -->
+
+			<!-- camel dsl -->
 			<dependency>
 				<groupId>org.apache.camel</groupId>
-				<artifactId>camel-zipkin</artifactId>
+				<artifactId>camel-java-joor-dsl</artifactId>
 				<version>${project.version}</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.camel</groupId>
-				<artifactId>camel-zookeeper-master</artifactId>
+				<artifactId>camel-yaml-dsl-common</artifactId>
 				<version>${project.version}</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.camel</groupId>
-				<artifactId>camel-zookeeper</artifactId>
+				<artifactId>camel-yaml-dsl-deserializers</artifactId>
+				<version>${project.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.camel</groupId>
+				<artifactId>camel-xml-io-dsl</artifactId>
+				<version>${project.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.camel</groupId>
+				<artifactId>camel-xml-jaxb-dsl</artifactId>
+				<version>${project.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.camel</groupId>
+				<artifactId>camel-yaml-dsl</artifactId>
 				<version>${project.version}</version>
 			</dependency>
-			<!-- camel components: END -->
 
             <!-- camel catalog -->
             <dependency>