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

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

commit 2bd927afdbe766aef2bc6be0b2179ada3aff040b
Author: Otavio Rodolfo Piske <angusyo...@gmail.com>
AuthorDate: Sat Apr 1 15:24:16 2023 +0200

    CAMEL-15105: make the RoutesLoader a plugin of the context
---
 .../java/org/apache/camel/ExtendedCamelContext.java   | 10 ----------
 .../camel/impl/engine/AbstractCamelContext.java       |  9 +--------
 .../impl/engine/DefaultCamelContextExtension.java     | 19 -------------------
 .../camel/impl/ExtendedCamelContextConfigurer.java    |  6 ------
 .../impl/lw/LightweightCamelContextExtension.java     | 10 ----------
 .../java/org/apache/camel/main/BaseMainSupport.java   |  3 ++-
 .../org/apache/camel/main/DefaultRoutesCollector.java |  4 +---
 .../java/org/apache/camel/main/RoutesConfigurer.java  |  2 +-
 .../java/org/apache/camel/support/PluginHelper.java   | 16 ++++++++++++++++
 .../org/apache/camel/support/RouteTemplateHelper.java |  4 ++--
 .../camel/support/RouteWatcherReloadStrategy.java     |  2 +-
 .../dsl/groovy/GroovyRouteBuilderLoaderTest.groovy    |  3 ++-
 .../dsl/java/joor/JavaRoutesBuilderLoaderTest.java    |  9 +++++----
 .../dsl/js/JavaScriptRoutesBuilderLoaderTest.java     | 15 ++++++++-------
 .../org/apache/camel/dsl/jsh/JshSourceLoaderTest.java |  3 ++-
 .../main/java/org/apache/camel/main/KameletMain.java  |  3 ++-
 .../camel/dsl/kotlin/KotlinRoutesBuilderLoaderTest.kt | 19 ++++++++++---------
 .../org/apache/camel/dsl/xml/io/XmlLoadRestTest.java  |  3 ++-
 .../java/org/apache/camel/dsl/xml/io/XmlLoadTest.java |  5 +++--
 .../dsl/xml/jaxb/definition/LoadRestFromXmlTest.java  |  3 ++-
 .../dsl/xml/jaxb/definition/LoadRouteFromXmlTest.java |  3 ++-
 .../definition/LoadRouteFromXmlWithInterceptTest.java |  3 ++-
 .../definition/LoadRouteFromXmlWithNamespaceTest.java |  3 ++-
 .../LoadRouteFromXmlWithOnExceptionTest.java          |  3 ++-
 .../definition/LoadRouteFromXmlWithPolicyTest.java    |  3 ++-
 .../jaxb/definition/RouteTemplateLoadFromXmlTest.java |  5 +++--
 .../xml/jaxb/spring/CamelLoadRoutesFromXMLTest.java   |  5 +++--
 .../camel/dsl/xml/jaxb/JaxbXmlLoadRestTest.java       |  3 ++-
 .../apache/camel/dsl/xml/jaxb/JaxbXmlLoadTest.java    |  3 ++-
 .../camel/dsl/yaml/YamlRoutesBuilderLoader.java       |  4 ++--
 .../groovy/org/apache/camel/dsl/yaml/DelayTest.groovy |  3 ++-
 .../apache/camel/dsl/yaml/DynamicRouterTest.groovy    |  3 ++-
 .../apache/camel/dsl/yaml/EmptyRouteFileTest.groovy   |  3 ++-
 .../org/apache/camel/dsl/yaml/EnrichTest.groovy       |  3 ++-
 .../org/apache/camel/dsl/yaml/FilterTest.groovy       |  5 ++---
 .../apache/camel/dsl/yaml/JSonPathSuppressTest.groovy |  3 ++-
 .../groovy/org/apache/camel/dsl/yaml/LoopTest.groovy  |  5 ++---
 .../org/apache/camel/dsl/yaml/MarshalTest.groovy      |  3 ++-
 .../org/apache/camel/dsl/yaml/PollEnrichTest.groovy   |  3 ++-
 .../apache/camel/dsl/yaml/RecipientListTest.groovy    |  3 ++-
 .../org/apache/camel/dsl/yaml/RemoveHeaderTest.groovy |  3 ++-
 .../apache/camel/dsl/yaml/RemovePropertyTest.groovy   |  3 ++-
 .../org/apache/camel/dsl/yaml/ResequenceTest.groovy   |  3 ++-
 .../apache/camel/dsl/yaml/RouteTemplateTest.groovy    |  3 ++-
 .../org/apache/camel/dsl/yaml/RoutingSlipTest.groovy  |  3 ++-
 .../groovy/org/apache/camel/dsl/yaml/SagaTest.groovy  |  5 ++---
 .../org/apache/camel/dsl/yaml/ScriptTest.groovy       |  3 ++-
 .../org/apache/camel/dsl/yaml/SetBodyTest.groovy      |  3 ++-
 .../org/apache/camel/dsl/yaml/SetHeaderTest.groovy    |  4 ++--
 .../org/apache/camel/dsl/yaml/SetPropertyTest.groovy  |  3 ++-
 .../org/apache/camel/dsl/yaml/ThrottleTest.groovy     |  3 ++-
 .../org/apache/camel/dsl/yaml/ToDynamicTest.groovy    |  5 +++--
 .../groovy/org/apache/camel/dsl/yaml/ToTest.groovy    |  3 ++-
 .../org/apache/camel/dsl/yaml/UnmarshalTest.groovy    |  5 +++--
 .../org/apache/camel/dsl/yaml/ValidateTest.groovy     |  3 ++-
 .../camel/dsl/yaml/support/YamlTestSupport.groovy     |  9 +++++----
 56 files changed, 139 insertions(+), 139 deletions(-)

diff --git 
a/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java 
b/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java
index 09e8847d3e8..e8346448418 100644
--- a/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java
+++ b/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java
@@ -445,16 +445,6 @@ public interface ExtendedCamelContext {
      */
     void setEventNotificationApplicable(boolean eventNotificationApplicable);
 
-    /**
-     * Gets the {@link RoutesLoader} to be used.
-     */
-    RoutesLoader getRoutesLoader();
-
-    /**
-     * Sets a custom {@link RoutesLoader} to be used.
-     */
-    void setRoutesLoader(RoutesLoader routesLoader);
-
     /**
      * Gets the {@link ResourceLoader} to be used.
      */
diff --git 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
index 596891705f0..a177273fd49 100644
--- 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
+++ 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
@@ -380,6 +380,7 @@ public abstract class AbstractCamelContext extends 
BaseService
         
camelContextExtension.lazyAddContextPlugin(InternalProcessorFactory.class, 
this::createInternalProcessorFactory);
         
camelContextExtension.lazyAddContextPlugin(InterceptEndpointFactory.class, 
this::createInterceptEndpointFactory);
         camelContextExtension.lazyAddContextPlugin(RouteFactory.class, 
this::createRouteFactory);
+        camelContextExtension.lazyAddContextPlugin(RoutesLoader.class, 
this::createRoutesLoader);
 
         if (build) {
             try {
@@ -4190,14 +4191,6 @@ public abstract class AbstractCamelContext extends 
BaseService
         camelContextExtension.setReactiveExecutor(reactiveExecutor);
     }
 
-    public RoutesLoader getRoutesLoader() {
-        return camelContextExtension.getRoutesLoader();
-    }
-
-    public void setRoutesLoader(RoutesLoader routesLoader) {
-        camelContextExtension.setRoutesLoader(routesLoader);
-    }
-
     public ResourceLoader getResourceLoader() {
         return camelContextExtension.getResourceLoader();
     }
diff --git 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java
 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java
index 3f5f1a668b6..b981927d3cb 100644
--- 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java
+++ 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultCamelContextExtension.java
@@ -68,9 +68,7 @@ import org.apache.camel.spi.Registry;
 import org.apache.camel.spi.ResourceLoader;
 import org.apache.camel.spi.RestBindingJaxbDataFormatFactory;
 import org.apache.camel.spi.RouteController;
-import org.apache.camel.spi.RouteFactory;
 import org.apache.camel.spi.RouteStartupOrder;
-import org.apache.camel.spi.RoutesLoader;
 import org.apache.camel.spi.StartupStepRecorder;
 import org.apache.camel.spi.UnitOfWorkFactory;
 import org.apache.camel.support.EndpointHelper;
@@ -474,23 +472,6 @@ class DefaultCamelContextExtension implements 
ExtendedCamelContext {
         camelContext.headersMapFactory = 
camelContext.getInternalServiceManager().addService(headersMapFactory);
     }
 
-    @Override
-    public RoutesLoader getRoutesLoader() {
-        if (camelContext.routesLoader == null) {
-            synchronized (camelContext.lock) {
-                if (camelContext.routesLoader == null) {
-                    setRoutesLoader(camelContext.createRoutesLoader());
-                }
-            }
-        }
-        return camelContext.routesLoader;
-    }
-
-    @Override
-    public void setRoutesLoader(RoutesLoader routesLoader) {
-        camelContext.routesLoader = 
camelContext.getInternalServiceManager().addService(routesLoader);
-    }
-
     @Override
     public ResourceLoader getResourceLoader() {
         if (camelContext.resourceLoader == null) {
diff --git 
a/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java
 
b/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java
index 78611fd886c..77230c6cdf2 100644
--- 
a/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java
+++ 
b/core/camel-core-engine/src/generated/java/org/apache/camel/impl/ExtendedCamelContextConfigurer.java
@@ -61,8 +61,6 @@ public class ExtendedCamelContextConfigurer extends 
org.apache.camel.support.com
         case "ResourceLoader": target.setResourceLoader(property(camelContext, 
org.apache.camel.spi.ResourceLoader.class, value)); return true;
         case "restbindingjaxbdataformatfactory":
         case "RestBindingJaxbDataFormatFactory": 
target.setRestBindingJaxbDataFormatFactory(property(camelContext, 
org.apache.camel.spi.RestBindingJaxbDataFormatFactory.class, value)); return 
true;
-        case "routesloader":
-        case "RoutesLoader": target.setRoutesLoader(property(camelContext, 
org.apache.camel.spi.RoutesLoader.class, value)); return true;
         case "runtimecamelcatalog":
         case "RuntimeCamelCatalog": 
target.setRuntimeCamelCatalog(property(camelContext, 
org.apache.camel.catalog.RuntimeCamelCatalog.class, value)); return true;
         case "startupsteprecorder":
@@ -116,8 +114,6 @@ public class ExtendedCamelContextConfigurer extends 
org.apache.camel.support.com
         case "ResourceLoader": return 
org.apache.camel.spi.ResourceLoader.class;
         case "restbindingjaxbdataformatfactory":
         case "RestBindingJaxbDataFormatFactory": return 
org.apache.camel.spi.RestBindingJaxbDataFormatFactory.class;
-        case "routesloader":
-        case "RoutesLoader": return org.apache.camel.spi.RoutesLoader.class;
         case "runtimecamelcatalog":
         case "RuntimeCamelCatalog": return 
org.apache.camel.catalog.RuntimeCamelCatalog.class;
         case "startupsteprecorder":
@@ -172,8 +168,6 @@ public class ExtendedCamelContextConfigurer extends 
org.apache.camel.support.com
         case "ResourceLoader": return target.getResourceLoader();
         case "restbindingjaxbdataformatfactory":
         case "RestBindingJaxbDataFormatFactory": return 
target.getRestBindingJaxbDataFormatFactory();
-        case "routesloader":
-        case "RoutesLoader": return target.getRoutesLoader();
         case "runtimecamelcatalog":
         case "RuntimeCamelCatalog": return target.getRuntimeCamelCatalog();
         case "startupsteprecorder":
diff --git 
a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java
 
b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java
index 56b5abd8051..82469a20b83 100644
--- 
a/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java
+++ 
b/core/camel-core-engine/src/main/java/org/apache/camel/impl/lw/LightweightCamelContextExtension.java
@@ -441,16 +441,6 @@ class LightweightCamelContextExtension implements 
ExtendedCamelContext {
         throw new UnsupportedOperationException();
     }
 
-    @Override
-    public void setRoutesLoader(RoutesLoader routesLoader) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public RoutesLoader getRoutesLoader() {
-        throw new UnsupportedOperationException();
-    }
-
     @Override
     public ResourceLoader getResourceLoader() {
         throw new UnsupportedOperationException();
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java 
b/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java
index 800799dcc75..edabad2bcc9 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java
@@ -59,6 +59,7 @@ import org.apache.camel.spi.PackageScanClassResolver;
 import org.apache.camel.spi.PeriodTaskScheduler;
 import org.apache.camel.spi.PropertiesComponent;
 import org.apache.camel.spi.RouteTemplateParameterSource;
+import org.apache.camel.spi.RoutesLoader;
 import org.apache.camel.spi.StartupStepRecorder;
 import org.apache.camel.support.CamelContextHelper;
 import org.apache.camel.support.DefaultContextReloadStrategy;
@@ -598,7 +599,7 @@ public abstract class BaseMainSupport extends BaseService {
 
     protected void configureRoutesLoader(CamelContext camelContext) {
         // use main based routes loader
-        camelContext.getCamelContextExtension().setRoutesLoader(new 
DefaultRoutesLoader());
+        
camelContext.getCamelContextExtension().addContextPlugin(RoutesLoader.class, 
new DefaultRoutesLoader());
     }
 
     protected void modelineRoutes(CamelContext camelContext) throws Exception {
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/DefaultRoutesCollector.java
 
b/core/camel-main/src/main/java/org/apache/camel/main/DefaultRoutesCollector.java
index a7e2d6df380..ece6c593f07 100644
--- 
a/core/camel-main/src/main/java/org/apache/camel/main/DefaultRoutesCollector.java
+++ 
b/core/camel-main/src/main/java/org/apache/camel/main/DefaultRoutesCollector.java
@@ -22,7 +22,6 @@ import java.util.Collection;
 import java.util.List;
 
 import org.apache.camel.CamelContext;
-import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.RoutesBuilder;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.builder.LambdaRouteBuilder;
@@ -139,14 +138,13 @@ public class DefaultRoutesCollector implements 
RoutesCollector {
             String excludePattern,
             String includePattern) {
 
-        final ExtendedCamelContext ecc = 
camelContext.getCamelContextExtension();
         final List<RoutesBuilder> answer = new ArrayList<>();
         final String[] includes = includePattern != null ? 
includePattern.split(",") : null;
 
         StopWatch watch = new StopWatch();
         Collection<Resource> accepted = 
findRouteResourcesFromDirectory(camelContext, excludePattern, includePattern);
         try {
-            Collection<RoutesBuilder> builders = 
ecc.getRoutesLoader().findRoutesBuilders(accepted);
+            Collection<RoutesBuilder> builders = 
PluginHelper.getRoutesLoader(camelContext).findRoutesBuilders(accepted);
             if (!builders.isEmpty()) {
                 log.debug("Found {} route builder from locations: {}", 
builders.size(), includes);
                 answer.addAll(builders);
diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/RoutesConfigurer.java 
b/core/camel-main/src/main/java/org/apache/camel/main/RoutesConfigurer.java
index 450b1f1c747..1e27090b563 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/RoutesConfigurer.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/RoutesConfigurer.java
@@ -270,7 +270,7 @@ public class RoutesConfigurer {
         // the resource may also have additional configurations which we need 
to detect via pre-parsing
         for (Resource resource : resources) {
             LOG.debug("Pre-parsing: {}", resource);
-            RoutesLoader loader = 
camelContext.getCamelContextExtension().getRoutesLoader();
+            RoutesLoader loader = PluginHelper.getRoutesLoader(camelContext);
             loader.preParseRoute(resource);
         }
 
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java 
b/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java
index 5a81a2e93ff..deebc08f9d1 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/PluginHelper.java
@@ -41,6 +41,7 @@ import org.apache.camel.spi.PeriodTaskResolver;
 import org.apache.camel.spi.PeriodTaskScheduler;
 import org.apache.camel.spi.ProcessorFactory;
 import org.apache.camel.spi.RouteFactory;
+import org.apache.camel.spi.RoutesLoader;
 import org.apache.camel.spi.UriFactoryResolver;
 
 public final class PluginHelper {
@@ -421,4 +422,19 @@ public final class PluginHelper {
     public static RouteFactory getRouteFactory(ExtendedCamelContext 
extendedCamelContext) {
         return extendedCamelContext.getContextPlugin(RouteFactory.class);
     }
+
+    /**
+     * Gets the {@link RoutesLoader} to be used.
+     */
+    public static RoutesLoader getRoutesLoader(CamelContext camelContext) {
+        return getRoutesLoader(camelContext.getCamelContextExtension());
+    }
+
+
+    /**
+     * Gets the {@link RoutesLoader} to be used.
+     */
+    public static RoutesLoader getRoutesLoader(ExtendedCamelContext 
extendedCamelContext) {
+        return extendedCamelContext.getContextPlugin(RoutesLoader.class);
+    }
 }
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/RouteTemplateHelper.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/RouteTemplateHelper.java
index ca0a604d9a9..8980de0cb5e 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/RouteTemplateHelper.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/RouteTemplateHelper.java
@@ -86,7 +86,7 @@ public final class RouteTemplateHelper {
                              + ". This exception is ignored",
                             e);
                 }
-                ecc.getRoutesLoader().loadRoutes(res);
+                PluginHelper.getRoutesLoader(camelContext).loadRoutes(res);
                 found = true;
                 break;
             }
@@ -103,7 +103,7 @@ public final class RouteTemplateHelper {
                 path += "/";
             }
             String target = path + templateId + ".kamelet.yaml";
-            ecc.getRoutesLoader().loadRoutes(
+            PluginHelper.getRoutesLoader(camelContext).loadRoutes(
                     ecc.getResourceLoader().resolveResource(target));
         }
     }
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/RouteWatcherReloadStrategy.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/RouteWatcherReloadStrategy.java
index a9746bd4e1e..c4b78fa1290 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/RouteWatcherReloadStrategy.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/RouteWatcherReloadStrategy.java
@@ -247,7 +247,7 @@ public class RouteWatcherReloadStrategy extends 
FileWatcherResourceReloadStrateg
 
             // reload those other routes that was stopped and removed as we 
want to keep running those
             Set<String> ids
-                    = 
getCamelContext().getCamelContextExtension().getRoutesLoader().updateRoutes(sources);
+                    = 
PluginHelper.getRoutesLoader(getCamelContext()).updateRoutes(sources);
 
             // update okay, so clear as we do not need to remember those 
anymore
             previousSources.clear();
diff --git 
a/dsl/camel-groovy-dsl/camel-groovy-dsl-test/src/test/groovy/org/apache/camel/dsl/groovy/GroovyRouteBuilderLoaderTest.groovy
 
b/dsl/camel-groovy-dsl/camel-groovy-dsl-test/src/test/groovy/org/apache/camel/dsl/groovy/GroovyRouteBuilderLoaderTest.groovy
index c9df20175d3..30bd4a63d03 100644
--- 
a/dsl/camel-groovy-dsl/camel-groovy-dsl-test/src/test/groovy/org/apache/camel/dsl/groovy/GroovyRouteBuilderLoaderTest.groovy
+++ 
b/dsl/camel-groovy-dsl/camel-groovy-dsl-test/src/test/groovy/org/apache/camel/dsl/groovy/GroovyRouteBuilderLoaderTest.groovy
@@ -33,6 +33,7 @@ import org.apache.camel.processor.FatalFallbackErrorHandler
 import org.apache.camel.processor.SendProcessor
 import org.apache.camel.spi.HeaderFilterStrategy
 import org.apache.camel.support.DefaultHeaderFilterStrategy
+import org.apache.camel.support.PluginHelper
 import spock.lang.AutoCleanup
 import spock.lang.Specification
 
@@ -42,7 +43,7 @@ class GroovyRouteBuilderLoaderTest extends Specification {
 
     def loadRoute(String location) {
         def route = context.getResourceLoader().resolveResource(location)
-        context.getRoutesLoader().loadRoutes(route)
+        PluginHelper.getRoutesLoader(context).loadRoutes(route)
     }
 
     def "load routes"() {
diff --git 
a/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoaderTest.java
 
b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoaderTest.java
index c7c87dd3751..0301a4bcb2d 100644
--- 
a/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoaderTest.java
+++ 
b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoaderTest.java
@@ -26,6 +26,7 @@ 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.apache.camel.support.PluginHelper;
 import org.assertj.core.api.Assertions;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
@@ -45,7 +46,7 @@ public class JavaRoutesBuilderLoaderTest {
     void testLoadRoutes(String location) throws Exception {
         try (DefaultCamelContext context = new DefaultCamelContext()) {
             Resource resource = 
context.getResourceLoader().resolveResource(location);
-            Collection<RoutesBuilder> builders = 
context.getRoutesLoader().findRoutesBuilders(resource);
+            Collection<RoutesBuilder> builders = 
PluginHelper.getRoutesLoader(context).findRoutesBuilders(resource);
 
             assertThat(builders).hasSize(1);
 
@@ -69,7 +70,7 @@ public class JavaRoutesBuilderLoaderTest {
 
         try (DefaultCamelContext context = new DefaultCamelContext()) {
             Resource resource = 
context.getResourceLoader().resolveResource(location);
-            Collection<RoutesBuilder> builders = 
context.getRoutesLoader().findRoutesBuilders(resource);
+            Collection<RoutesBuilder> builders = 
PluginHelper.getRoutesLoader(context).findRoutesBuilders(resource);
 
             assertThat(builders).hasSize(1);
 
@@ -95,7 +96,7 @@ public class JavaRoutesBuilderLoaderTest {
 
         try (DefaultCamelContext context = new DefaultCamelContext()) {
             Resource resource = 
context.getResourceLoader().resolveResource(location);
-            Collection<RoutesBuilder> builders = 
context.getRoutesLoader().findRoutesBuilders(resource);
+            Collection<RoutesBuilder> builders = 
PluginHelper.getRoutesLoader(context).findRoutesBuilders(resource);
 
             assertThat(builders).hasSize(1);
 
@@ -114,7 +115,7 @@ public class JavaRoutesBuilderLoaderTest {
 
         try (DefaultCamelContext context = new DefaultCamelContext()) {
             Resource resource = 
context.getResourceLoader().resolveResource(location);
-            Collection<RoutesBuilder> builders = 
context.getRoutesLoader().findRoutesBuilders(resource);
+            Collection<RoutesBuilder> builders = 
PluginHelper.getRoutesLoader(context).findRoutesBuilders(resource);
 
             assertThat(builders).hasSize(1);
 
diff --git 
a/dsl/camel-js-dsl/src/test/java/org/apache/camel/dsl/js/JavaScriptRoutesBuilderLoaderTest.java
 
b/dsl/camel-js-dsl/src/test/java/org/apache/camel/dsl/js/JavaScriptRoutesBuilderLoaderTest.java
index 8e81496c0b7..399247fa711 100644
--- 
a/dsl/camel-js-dsl/src/test/java/org/apache/camel/dsl/js/JavaScriptRoutesBuilderLoaderTest.java
+++ 
b/dsl/camel-js-dsl/src/test/java/org/apache/camel/dsl/js/JavaScriptRoutesBuilderLoaderTest.java
@@ -22,6 +22,7 @@ import org.apache.camel.model.FromDefinition;
 import org.apache.camel.model.ToDefinition;
 import org.apache.camel.model.TransformDefinition;
 import org.apache.camel.spi.Resource;
+import org.apache.camel.support.PluginHelper;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.ValueSource;
@@ -37,7 +38,7 @@ public class JavaScriptRoutesBuilderLoaderTest {
     void routesCanBeLoaded(String location) throws Exception {
         try (DefaultCamelContext context = new DefaultCamelContext()) {
             Resource resource = 
context.getResourceLoader().resolveResource(location);
-            context.getRoutesLoader().loadRoutes(resource);
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource);
 
             assertThat(context.getRouteDefinitions())
                     .hasSize(1)
@@ -54,7 +55,7 @@ public class JavaScriptRoutesBuilderLoaderTest {
         try (DefaultCamelContext context = new DefaultCamelContext()) {
             Resource resource = context.getResourceLoader()
                     
.resolveResource("/routes/routes-with-component-configuration.js");
-            context.getRoutesLoader().loadRoutes(resource);
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource);
 
             assertThat(context.getComponent("seda", 
SedaComponent.class)).satisfies(c -> {
                 assertThat(c.getQueueSize()).isEqualTo(1234);
@@ -67,7 +68,7 @@ public class JavaScriptRoutesBuilderLoaderTest {
         try (DefaultCamelContext context = new DefaultCamelContext()) {
             Resource resource = context.getResourceLoader()
                     
.resolveResource("/routes/routes-with-context-configuration.js");
-            context.getRoutesLoader().loadRoutes(resource);
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource);
 
             assertThat(context.isTypeConverterStatisticsEnabled()).isTrue();
         }
@@ -77,7 +78,7 @@ public class JavaScriptRoutesBuilderLoaderTest {
     void processorsCanBeCreated() throws Exception {
         try (DefaultCamelContext context = new DefaultCamelContext()) {
             Resource resource = 
context.getResourceLoader().resolveResource("/routes/routes-with-processors.js");
-            context.getRoutesLoader().loadRoutes(resource);
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource);
 
             context.start();
 
@@ -95,7 +96,7 @@ public class JavaScriptRoutesBuilderLoaderTest {
         try (DefaultCamelContext context = new DefaultCamelContext()) {
             Resource resource = context.getResourceLoader()
                     
.resolveResource("/routes/routes-with-rest-configuration.js");
-            context.getRoutesLoader().loadRoutes(resource);
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource);
 
             assertThat(context.getRestConfiguration()).satisfies(c -> {
                 assertThat(c.getComponent()).isEqualTo("undertow");
@@ -108,7 +109,7 @@ public class JavaScriptRoutesBuilderLoaderTest {
     void restDslCanBeDefined() throws Exception {
         try (DefaultCamelContext context = new DefaultCamelContext()) {
             Resource resource = 
context.getResourceLoader().resolveResource("/routes/routes-with-rest-dsl.js");
-            context.getRoutesLoader().loadRoutes(resource);
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource);
 
             assertThat(context.getRestDefinitions()).hasSize(1);
             assertThat(context.getRouteDefinitions()).hasSize(2);
@@ -130,7 +131,7 @@ public class JavaScriptRoutesBuilderLoaderTest {
     void modulesCanBeImported() throws Exception {
         try (DefaultCamelContext context = new DefaultCamelContext()) {
             Resource resource = 
context.getResourceLoader().resolveResource("/routes/routes-with-modules.js");
-            context.getRoutesLoader().loadRoutes(resource);
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource);
 
             assertThat(context.getRouteDefinitions()).hasSize(1);
         }
diff --git 
a/dsl/camel-jsh-dsl/src/test/java/org/apache/camel/dsl/jsh/JshSourceLoaderTest.java
 
b/dsl/camel-jsh-dsl/src/test/java/org/apache/camel/dsl/jsh/JshSourceLoaderTest.java
index e4a8f8dccb0..cedbfd06ae3 100644
--- 
a/dsl/camel-jsh-dsl/src/test/java/org/apache/camel/dsl/jsh/JshSourceLoaderTest.java
+++ 
b/dsl/camel-jsh-dsl/src/test/java/org/apache/camel/dsl/jsh/JshSourceLoaderTest.java
@@ -24,6 +24,7 @@ import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.ToDefinition;
 import org.apache.camel.spi.Resource;
+import org.apache.camel.support.PluginHelper;
 import org.assertj.core.api.Assertions;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.ValueSource;
@@ -39,7 +40,7 @@ public class JshSourceLoaderTest {
     void testLoadRoutes(String location) throws Exception {
         try (DefaultCamelContext context = new DefaultCamelContext()) {
             Resource resource = 
context.getResourceLoader().resolveResource(location);
-            Collection<RoutesBuilder> builders = 
context.getRoutesLoader().findRoutesBuilders(resource);
+            Collection<RoutesBuilder> builders = 
PluginHelper.getRoutesLoader(context).findRoutesBuilders(resource);
 
             assertThat(builders).hasSize(1);
 
diff --git 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
index 539ba544010..5637a18894a 100644
--- 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
+++ 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java
@@ -60,6 +60,7 @@ import org.apache.camel.spi.ComponentResolver;
 import org.apache.camel.spi.DataFormatResolver;
 import org.apache.camel.spi.LanguageResolver;
 import org.apache.camel.spi.Registry;
+import org.apache.camel.spi.RoutesLoader;
 import org.apache.camel.spi.UriFactoryResolver;
 import org.apache.camel.startup.jfr.FlightRecorderStartupStepRecorder;
 import org.apache.camel.support.PluginHelper;
@@ -529,7 +530,7 @@ public class KameletMain extends MainCommandLineSupport {
         if (download) {
             // use resolvers that can auto downloaded
             camelContext.getCamelContextExtension()
-                    .setRoutesLoader(new 
DependencyDownloaderRoutesLoader(camelContext));
+                    .addContextPlugin(RoutesLoader.class, new 
DependencyDownloaderRoutesLoader(camelContext));
         } else {
             super.configureRoutesLoader(camelContext);
         }
diff --git 
a/dsl/camel-kotlin-dsl/src/test/kotlin/org/apache/camel/dsl/kotlin/KotlinRoutesBuilderLoaderTest.kt
 
b/dsl/camel-kotlin-dsl/src/test/kotlin/org/apache/camel/dsl/kotlin/KotlinRoutesBuilderLoaderTest.kt
index 569e53cf13a..908f87439b0 100644
--- 
a/dsl/camel-kotlin-dsl/src/test/kotlin/org/apache/camel/dsl/kotlin/KotlinRoutesBuilderLoaderTest.kt
+++ 
b/dsl/camel-kotlin-dsl/src/test/kotlin/org/apache/camel/dsl/kotlin/KotlinRoutesBuilderLoaderTest.kt
@@ -31,6 +31,7 @@ import org.apache.camel.model.rest.GetDefinition
 import org.apache.camel.model.rest.PostDefinition
 import org.apache.camel.processor.FatalFallbackErrorHandler
 import org.apache.camel.support.DefaultHeaderFilterStrategy
+import org.apache.camel.support.PluginHelper
 import org.assertj.core.api.Assertions.assertThat
 import org.assertj.core.api.Assertions.assertThatExceptionOfType
 import org.junit.jupiter.api.Test
@@ -42,7 +43,7 @@ class KotlinRoutesBuilderLoaderTest {
         val ctx = DefaultCamelContext()
         val res = ctx.resourceLoader.resolveResource("/routes/routes.kts")
 
-        ctx.routesLoader.loadRoutes(res)
+        PluginHelper.getRoutesLoader(ctx).loadRoutes(res)
 
         val routes = ctx.routeDefinitions
 
@@ -57,7 +58,7 @@ class KotlinRoutesBuilderLoaderTest {
         val ctx = DefaultCamelContext()
         val res = 
ctx.resourceLoader.resolveResource("/routes/routes-with-endpoint-dsl.kts")
 
-        ctx.routesLoader.loadRoutes(res)
+        PluginHelper.getRoutesLoader(ctx).loadRoutes(res)
 
         val routes = ctx.routeDefinitions
 
@@ -74,7 +75,7 @@ class KotlinRoutesBuilderLoaderTest {
         val ctx = DefaultCamelContext()
         val res = 
ctx.resourceLoader.resolveResource("/routes/routes-with-rest.kts")
 
-        ctx.routesLoader.loadRoutes(res)
+        PluginHelper.getRoutesLoader(ctx).loadRoutes(res)
 
         assertThat(ctx.restConfiguration.host).isEqualTo("my-host")
         assertThat(ctx.restConfiguration.port).isEqualTo(9192)
@@ -108,7 +109,7 @@ class KotlinRoutesBuilderLoaderTest {
         val ctx = DefaultCamelContext()
         val res = 
ctx.resourceLoader.resolveResource("/routes/routes-with-beans.kts")
 
-        ctx.routesLoader.loadRoutes(res)
+        PluginHelper.getRoutesLoader(ctx).loadRoutes(res)
 
         assertThat(ctx.registry.findByType(MyBean::class.java)).hasSize(1)
         
assertThat(ctx.registry.lookupByName("myBean")).isInstanceOf(MyBean::class.java)
@@ -123,7 +124,7 @@ class KotlinRoutesBuilderLoaderTest {
         val ctx = DefaultCamelContext()
         val res = 
ctx.resourceLoader.resolveResource("/routes/routes-with-components-configuration.kts")
 
-        ctx.routesLoader.loadRoutes(res)
+        PluginHelper.getRoutesLoader(ctx).loadRoutes(res)
 
         val seda = ctx.getComponent("seda", SedaComponent::class.java)
         val mySeda = ctx.getComponent("mySeda", SedaComponent::class.java)
@@ -143,7 +144,7 @@ class KotlinRoutesBuilderLoaderTest {
                     val ctx = DefaultCamelContext()
                     val res = 
ctx.resourceLoader.resolveResource("/routes/routes-with-components-configuration-error.kts")
 
-                    ctx.routesLoader.loadRoutes(res)
+                    PluginHelper.getRoutesLoader(ctx).loadRoutes(res)
                 }
                 .withCauseInstanceOf(IllegalArgumentException::class.java)
                 .withMessageContaining("Type mismatch, expected: class 
org.apache.camel.component.log.LogComponent, got: class 
org.apache.camel.component.seda.SedaComponent");
@@ -154,7 +155,7 @@ class KotlinRoutesBuilderLoaderTest {
         val ctx = DefaultCamelContext()
         val res = 
ctx.resourceLoader.resolveResource("/routes/routes-with-languages-configuration.kts")
 
-        ctx.routesLoader.loadRoutes(res)
+        PluginHelper.getRoutesLoader(ctx).loadRoutes(res)
 
         val bean = ctx.resolveLanguage("bean") as BeanLanguage
         assertThat(bean.beanType).isEqualTo(String::class.java)
@@ -170,7 +171,7 @@ class KotlinRoutesBuilderLoaderTest {
         val ctx = DefaultCamelContext()
         val res = 
ctx.resourceLoader.resolveResource("/routes/routes-with-dataformats-configuration.kts")
 
-        ctx.routesLoader.loadRoutes(res)
+        PluginHelper.getRoutesLoader(ctx).loadRoutes(res)
 
         val jackson = ctx.resolveDataFormat("jackson") as JacksonDataFormat
         assertThat(jackson.unmarshalType).isEqualTo(Map::class.java)
@@ -186,7 +187,7 @@ class KotlinRoutesBuilderLoaderTest {
         val ctx = DefaultCamelContext()
         val res = 
ctx.resourceLoader.resolveResource("/routes/routes-with-error-handler.kts")
 
-        ctx.routesLoader.loadRoutes(res)
+        PluginHelper.getRoutesLoader(ctx).loadRoutes(res)
         ctx.start()
 
         try {
diff --git 
a/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlLoadRestTest.java
 
b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlLoadRestTest.java
index 4457c1cf0ed..6824fe5e213 100644
--- 
a/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlLoadRestTest.java
+++ 
b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlLoadRestTest.java
@@ -22,6 +22,7 @@ import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.component.rest.DummyRestConsumerFactory;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.spi.Resource;
+import org.apache.camel.support.PluginHelper;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -61,7 +62,7 @@ public class XmlLoadRestTest {
             Resource resource = ecc.getResourceLoader().resolveResource(
                     "/org/apache/camel/dsl/xml/io/barRest.xml");
 
-            context.getRoutesLoader().loadRoutes(resource);
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource);
 
             assertEquals(2, context.getRoutes().size());
 
diff --git 
a/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlLoadTest.java
 
b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlLoadTest.java
index a708028b803..7018100a19d 100644
--- 
a/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlLoadTest.java
+++ 
b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlLoadTest.java
@@ -21,6 +21,7 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.spi.Resource;
+import org.apache.camel.support.PluginHelper;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -56,7 +57,7 @@ public class XmlLoadTest {
             Resource resource = ecc.getResourceLoader().resolveResource(
                     "/org/apache/camel/dsl/xml/io/barRoute.xml");
 
-            ecc.getRoutesLoader().loadRoutes(resource);
+            PluginHelper.getRoutesLoader(ecc).loadRoutes(resource);
 
             // END SNIPPET: e1
             assertNotNull(context.getRoute("bar"), "Loaded bar route should be 
there");
@@ -80,7 +81,7 @@ public class XmlLoadTest {
             Resource resource = ecc.getResourceLoader().resolveResource(
                     "/org/apache/camel/dsl/xml/io/bar2.xml");
 
-            ecc.getRoutesLoader().loadRoutes(resource);
+            PluginHelper.getRoutesLoader(ecc).loadRoutes(resource);
 
             assertNotNull(context.getRoute("bar2"), "Loaded bar2 route should 
be there");
             assertEquals(1, context.getRoutes().size());
diff --git 
a/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/LoadRestFromXmlTest.java
 
b/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/LoadRestFromXmlTest.java
index e1aa52bebbb..200bac8b3d0 100644
--- 
a/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/LoadRestFromXmlTest.java
+++ 
b/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/LoadRestFromXmlTest.java
@@ -24,6 +24,7 @@ import 
org.apache.camel.component.rest.DummyRestConsumerFactory;
 import org.apache.camel.component.rest.DummyRestProcessorFactory;
 import org.apache.camel.spi.Registry;
 import org.apache.camel.spi.Resource;
+import org.apache.camel.support.PluginHelper;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -54,7 +55,7 @@ public class LoadRestFromXmlTest extends ContextTestSupport {
         // load rest from XML and add them to the existing camel context
         ExtendedCamelContext ecc = context.getCamelContextExtension();
         Resource resource = 
ecc.getResourceLoader().resolveResource("org/apache/camel/dsl/xml/jaxb/definition/barRest.xml");
-        ecc.getRoutesLoader().loadRoutes(resource);
+        PluginHelper.getRoutesLoader(ecc).loadRoutes(resource);
 
         assertNotNull(context.getRoute("route1"), "Loaded rest route should be 
there");
         assertEquals(3, context.getRoutes().size());
diff --git 
a/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/LoadRouteFromXmlTest.java
 
b/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/LoadRouteFromXmlTest.java
index 3bd30d91807..0c319ee574d 100644
--- 
a/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/LoadRouteFromXmlTest.java
+++ 
b/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/LoadRouteFromXmlTest.java
@@ -21,6 +21,7 @@ import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.spi.Resource;
+import org.apache.camel.support.PluginHelper;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -43,7 +44,7 @@ public class LoadRouteFromXmlTest extends ContextTestSupport {
         // load route from XML and add them to the existing camel context
         ExtendedCamelContext ecc = context.getCamelContextExtension();
         Resource resource = 
ecc.getResourceLoader().resolveResource("org/apache/camel/dsl/xml/jaxb/definition/barRoute.xml");
-        ecc.getRoutesLoader().loadRoutes(resource);
+        PluginHelper.getRoutesLoader(ecc).loadRoutes(resource);
         // END SNIPPET: e1
 
         assertNotNull(context.getRoute("bar"), "Loaded bar route should be 
there");
diff --git 
a/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/LoadRouteFromXmlWithInterceptTest.java
 
b/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/LoadRouteFromXmlWithInterceptTest.java
index 6e41210611c..879fdfc4e62 100644
--- 
a/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/LoadRouteFromXmlWithInterceptTest.java
+++ 
b/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/LoadRouteFromXmlWithInterceptTest.java
@@ -19,6 +19,7 @@ package org.apache.camel.dsl.xml.jaxb.definition;
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.spi.Resource;
+import org.apache.camel.support.PluginHelper;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -36,7 +37,7 @@ public class LoadRouteFromXmlWithInterceptTest extends 
ContextTestSupport {
         ExtendedCamelContext ecc = context.getCamelContextExtension();
         Resource resource
                 = 
ecc.getResourceLoader().resolveResource("org/apache/camel/dsl/xml/jaxb/definition/barInterceptorRoute.xml");
-        ecc.getRoutesLoader().loadRoutes(resource);
+        PluginHelper.getRoutesLoader(ecc).loadRoutes(resource);
         context.start();
 
         assertNotNull(context.getRoute("bar"), "Loaded bar route should be 
there");
diff --git 
a/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/LoadRouteFromXmlWithNamespaceTest.java
 
b/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/LoadRouteFromXmlWithNamespaceTest.java
index 0b4cf56daad..9dbcb6699ea 100644
--- 
a/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/LoadRouteFromXmlWithNamespaceTest.java
+++ 
b/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/LoadRouteFromXmlWithNamespaceTest.java
@@ -21,6 +21,7 @@ import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.Route;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.spi.Resource;
+import org.apache.camel.support.PluginHelper;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -32,7 +33,7 @@ public class LoadRouteFromXmlWithNamespaceTest extends 
ContextTestSupport {
         ExtendedCamelContext ecc = context.getCamelContextExtension();
         Resource resource
                 = 
ecc.getResourceLoader().resolveResource("org/apache/camel/dsl/xml/jaxb/definition/routeWithNamespace.xml");
-        ecc.getRoutesLoader().loadRoutes(resource);
+        PluginHelper.getRoutesLoader(ecc).loadRoutes(resource);
         context.start();
 
         Route routeWithNamespace = context.getRoute("routeWithNamespace");
diff --git 
a/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/LoadRouteFromXmlWithOnExceptionTest.java
 
b/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/LoadRouteFromXmlWithOnExceptionTest.java
index 98e24b040c8..59401869c3f 100644
--- 
a/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/LoadRouteFromXmlWithOnExceptionTest.java
+++ 
b/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/LoadRouteFromXmlWithOnExceptionTest.java
@@ -22,6 +22,7 @@ import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.Processor;
 import org.apache.camel.spi.Registry;
 import org.apache.camel.spi.Resource;
+import org.apache.camel.support.PluginHelper;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -46,7 +47,7 @@ public class LoadRouteFromXmlWithOnExceptionTest extends 
ContextTestSupport {
         ExtendedCamelContext ecc = context.getCamelContextExtension();
         Resource resource
                 = 
ecc.getResourceLoader().resolveResource("org/apache/camel/dsl/xml/jaxb/definition/barOnExceptionRoute.xml");
-        ecc.getRoutesLoader().loadRoutes(resource);
+        PluginHelper.getRoutesLoader(ecc).loadRoutes(resource);
         context.start();
 
         assertNotNull(context.getRoute("bar"), "Loaded bar route should be 
there");
diff --git 
a/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/LoadRouteFromXmlWithPolicyTest.java
 
b/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/LoadRouteFromXmlWithPolicyTest.java
index ebe6265e6ea..2ed5bf74430 100644
--- 
a/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/LoadRouteFromXmlWithPolicyTest.java
+++ 
b/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/LoadRouteFromXmlWithPolicyTest.java
@@ -25,6 +25,7 @@ import org.apache.camel.Route;
 import org.apache.camel.spi.Policy;
 import org.apache.camel.spi.Registry;
 import org.apache.camel.spi.Resource;
+import org.apache.camel.support.PluginHelper;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -49,7 +50,7 @@ public class LoadRouteFromXmlWithPolicyTest extends 
ContextTestSupport {
         ExtendedCamelContext ecc = context.getCamelContextExtension();
         Resource resource
                 = 
ecc.getResourceLoader().resolveResource("org/apache/camel/dsl/xml/jaxb/definition/barPolicyRoute.xml");
-        ecc.getRoutesLoader().loadRoutes(resource);
+        PluginHelper.getRoutesLoader(ecc).loadRoutes(resource);
         context.start();
 
         assertNotNull(context.getRoute("foo"), "Loaded foo route should be 
there");
diff --git 
a/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/RouteTemplateLoadFromXmlTest.java
 
b/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/RouteTemplateLoadFromXmlTest.java
index eff31fab95f..5dba13daa37 100644
--- 
a/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/RouteTemplateLoadFromXmlTest.java
+++ 
b/dsl/camel-xml-jaxb-dsl-test/definition/src/test/java/org/apache/camel/dsl/xml/jaxb/definition/RouteTemplateLoadFromXmlTest.java
@@ -23,6 +23,7 @@ import org.apache.camel.ContextTestSupport;
 import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.model.RouteTemplateDefinition;
 import org.apache.camel.spi.Resource;
+import org.apache.camel.support.PluginHelper;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.*;
@@ -35,7 +36,7 @@ public class RouteTemplateLoadFromXmlTest extends 
ContextTestSupport {
 
         ExtendedCamelContext ecc = context.getCamelContextExtension();
         Resource resource = 
ecc.getResourceLoader().resolveResource("org/apache/camel/dsl/xml/jaxb/definition/barTemplate.xml");
-        ecc.getRoutesLoader().loadRoutes(resource);
+        PluginHelper.getRoutesLoader(ecc).loadRoutes(resource);
 
         assertEquals(1, context.getRouteTemplateDefinitions().size());
 
@@ -50,7 +51,7 @@ public class RouteTemplateLoadFromXmlTest extends 
ContextTestSupport {
 
         ExtendedCamelContext ecc = context.getCamelContextExtension();
         Resource resource = 
ecc.getResourceLoader().resolveResource("org/apache/camel/dsl/xml/jaxb/definition/barTemplate.xml");
-        ecc.getRoutesLoader().loadRoutes(resource);
+        PluginHelper.getRoutesLoader(ecc).loadRoutes(resource);
 
         assertEquals(1, context.getRouteTemplateDefinitions().size());
 
diff --git 
a/dsl/camel-xml-jaxb-dsl-test/spring/src/test/java/org/apache/camel/dsl/xml/jaxb/spring/CamelLoadRoutesFromXMLTest.java
 
b/dsl/camel-xml-jaxb-dsl-test/spring/src/test/java/org/apache/camel/dsl/xml/jaxb/spring/CamelLoadRoutesFromXMLTest.java
index fc77f027510..d2a23bcbe35 100644
--- 
a/dsl/camel-xml-jaxb-dsl-test/spring/src/test/java/org/apache/camel/dsl/xml/jaxb/spring/CamelLoadRoutesFromXMLTest.java
+++ 
b/dsl/camel-xml-jaxb-dsl-test/spring/src/test/java/org/apache/camel/dsl/xml/jaxb/spring/CamelLoadRoutesFromXMLTest.java
@@ -21,6 +21,7 @@ import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.spi.Resource;
 import org.apache.camel.spring.SpringCamelContext;
+import org.apache.camel.support.PluginHelper;
 import org.junit.jupiter.api.Test;
 import org.springframework.context.support.AbstractXmlApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
@@ -41,7 +42,7 @@ public class CamelLoadRoutesFromXMLTest extends 
ContextTestSupport {
 
         // load routes from xml file
         Resource resource = 
camel.getResourceLoader().resolveResource("org/apache/camel/spring/myRoutes.xml");
-        camel.getRoutesLoader().loadRoutes(resource);
+        PluginHelper.getRoutesLoader(camel).loadRoutes(resource);
 
         assertEquals(2, camel.getRoutes().size());
 
@@ -77,7 +78,7 @@ public class CamelLoadRoutesFromXMLTest extends 
ContextTestSupport {
 
         // load updated xml
         resource = 
camel.getResourceLoader().resolveResource("org/apache/camel/spring/myUpdatedRoutes.xml");
-        camel.getRoutesLoader().loadRoutes(resource);
+        PluginHelper.getRoutesLoader(camel).loadRoutes(resource);
 
         assertEquals(2, camel.getRoutes().size());
 
diff --git 
a/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlLoadRestTest.java
 
b/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlLoadRestTest.java
index 4ca54ed0fd7..0d7c664c00b 100644
--- 
a/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlLoadRestTest.java
+++ 
b/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlLoadRestTest.java
@@ -22,6 +22,7 @@ import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.component.rest.DummyRestConsumerFactory;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.spi.Resource;
+import org.apache.camel.support.PluginHelper;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -61,7 +62,7 @@ public class JaxbXmlLoadRestTest {
             Resource resource = ecc.getResourceLoader().resolveResource(
                     "/org/apache/camel/dsl/xml/jaxb/barRest.xml");
 
-            context.getRoutesLoader().loadRoutes(resource);
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource);
 
             assertEquals(2, context.getRoutes().size());
 
diff --git 
a/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlLoadTest.java
 
b/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlLoadTest.java
index 57459cb7c78..03439a9ecf7 100644
--- 
a/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlLoadTest.java
+++ 
b/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlLoadTest.java
@@ -21,6 +21,7 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.spi.Resource;
+import org.apache.camel.support.PluginHelper;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -56,7 +57,7 @@ public class JaxbXmlLoadTest {
             Resource resource = ecc.getResourceLoader().resolveResource(
                     "/org/apache/camel/dsl/xml/jaxb/barRoute.xml");
 
-            ecc.getRoutesLoader().loadRoutes(resource);
+            PluginHelper.getRoutesLoader(ecc).loadRoutes(resource);
 
             // END SNIPPET: e1
             assertNotNull(context.getRoute("bar"), "Loaded bar route should be 
there");
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 fd2184fcb40..b68ee838f85 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
@@ -63,6 +63,7 @@ import org.apache.camel.spi.DependencyStrategy;
 import org.apache.camel.spi.Resource;
 import org.apache.camel.spi.annotations.RoutesLoader;
 import org.apache.camel.support.ObjectHelper;
+import org.apache.camel.support.PluginHelper;
 import org.apache.camel.support.PropertyBindingSupport;
 import org.apache.camel.util.FileUtil;
 import org.apache.camel.util.URISupport;
@@ -507,8 +508,7 @@ public class YamlRoutesBuilderLoader extends 
YamlRoutesBuilderLoaderSupport {
                     @Override
                     public void configure(CamelContext camelContext) {
                         try {
-                            camelContext.getCamelContextExtension()
-                                    .getRoutesLoader().loadRoutes(res);
+                            
PluginHelper.getRoutesLoader(camelContext).loadRoutes(res);
                         } catch (Exception e) {
                             throw new RuntimeCamelException(
                                     "Error loading sources from resource: " + 
res + " due to " + e.getMessage(), e);
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/DelayTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/DelayTest.groovy
index d8d26dd455c..1af1f091943 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/DelayTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/DelayTest.groovy
@@ -20,12 +20,13 @@ import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.model.DelayDefinition
 import org.apache.camel.model.language.ExpressionDefinition
 import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
 
 class DelayTest extends YamlTestSupport {
 
     def "delay definition (#resource.location)"(Resource resource) {
         when:
-            context.routesLoader.loadRoutes(resource)
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource)
         then:
             with(context.routeDefinitions[0].outputs[0], DelayDefinition) {
                 asyncDelayed == 'true'
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/DynamicRouterTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/DynamicRouterTest.groovy
index d6c0670982f..41f50fd4221 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/DynamicRouterTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/DynamicRouterTest.groovy
@@ -20,12 +20,13 @@ import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.model.DynamicRouterDefinition
 import org.apache.camel.model.language.ExpressionDefinition
 import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
 
 class DynamicRouterTest extends YamlTestSupport {
 
     def "dynamic-router definition (#resource.location)"(Resource resource) {
         when:
-            context.routesLoader.loadRoutes(resource)
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource)
         then:
             with(context.routeDefinitions[0].outputs[0], 
DynamicRouterDefinition) {
                 with(expression, ExpressionDefinition) {
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/EmptyRouteFileTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/EmptyRouteFileTest.groovy
index a8cf0a686d1..e46378f8157 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/EmptyRouteFileTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/EmptyRouteFileTest.groovy
@@ -19,6 +19,7 @@ package org.apache.camel.dsl.yaml
 import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.spi.Resource
 import org.apache.camel.spi.RoutesLoader
+import org.apache.camel.support.PluginHelper
 import org.apache.camel.support.ResourceHelper
 import org.junit.jupiter.api.Assertions
 
@@ -26,7 +27,7 @@ class EmptyRouteFileTest extends YamlTestSupport {
 
     def "empty file"() {
         when:
-            RoutesLoader loader = context.getRoutesLoader()
+            RoutesLoader loader = 
PluginHelper.getRoutesLoader(context).getRoutesLoader()
             Resource res = ResourceHelper.fromString("dummy.yaml", "");
         then:
             try {
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/EnrichTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/EnrichTest.groovy
index 14dd91ff4f1..55fdc0ae4a3 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/EnrichTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/EnrichTest.groovy
@@ -20,12 +20,13 @@ import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.model.EnrichDefinition
 import org.apache.camel.model.language.ExpressionDefinition
 import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
 
 class EnrichTest extends YamlTestSupport {
 
     def "enrich definition (#resource.location)"(Resource resource) {
         when:
-            context.routesLoader.loadRoutes(resource)
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource)
         then:
             with(context.routeDefinitions[0].outputs[0], EnrichDefinition) {
                 with(expression, ExpressionDefinition) {
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/FilterTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/FilterTest.groovy
index 3f6608f1926..4f51eca3ea0 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/FilterTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/FilterTest.groovy
@@ -16,20 +16,19 @@
  */
 package org.apache.camel.dsl.yaml
 
-import org.apache.camel.FailedToCreateRouteException
 import org.apache.camel.component.mock.MockEndpoint
-import org.apache.camel.dsl.yaml.common.YamlDeserializationMode
 import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.model.FilterDefinition
 import org.apache.camel.model.ToDefinition
 import org.apache.camel.model.language.ExpressionDefinition
 import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
 
 class FilterTest extends YamlTestSupport {
 
     def "filter definition (#resource.location)"(Resource resource) {
         when:
-            context.routesLoader.loadRoutes(resource)
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource)
         then:
             with(context.routeDefinitions[0].outputs[0], FilterDefinition) {
                 with(expression, ExpressionDefinition) {
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/JSonPathSuppressTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/JSonPathSuppressTest.groovy
index fbf944318bd..9db967b372a 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/JSonPathSuppressTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/JSonPathSuppressTest.groovy
@@ -22,12 +22,13 @@ import org.apache.camel.model.ChoiceDefinition
 import org.apache.camel.model.ToDefinition
 import org.apache.camel.model.WhenDefinition
 import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
 
 class JSonPathSuppressTest extends YamlTestSupport {
 
     def "jsonpath-suppress definition (#resource.location)"(Resource resource) 
{
         when:
-            context.routesLoader.loadRoutes(resource)
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource)
         then:
         with(context.routeDefinitions[0].outputs[0], ChoiceDefinition) {
             with(whenClauses[0], WhenDefinition) {
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/LoopTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/LoopTest.groovy
index f93dfdfaf54..1369857dc23 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/LoopTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/LoopTest.groovy
@@ -16,19 +16,18 @@
  */
 package org.apache.camel.dsl.yaml
 
-import org.apache.camel.FailedToCreateRouteException
 import org.apache.camel.component.mock.MockEndpoint
-import org.apache.camel.dsl.yaml.common.YamlDeserializationMode
 import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.model.LoopDefinition
 import org.apache.camel.model.language.ExpressionDefinition
 import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
 
 class LoopTest extends YamlTestSupport {
 
     def "loop definition (#resource.location)"(Resource resource) {
         when:
-            context.routesLoader.loadRoutes(resource)
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource)
         then:
             with(context.routeDefinitions[0].outputs[0], LoopDefinition) {
                 with(expression, ExpressionDefinition) {
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/MarshalTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/MarshalTest.groovy
index 9b36764c8a7..17c242bbb9a 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/MarshalTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/MarshalTest.groovy
@@ -19,12 +19,13 @@ package org.apache.camel.dsl.yaml
 import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.model.MarshalDefinition
 import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
 
 class MarshalTest extends YamlTestSupport {
 
     def "marshal definition (#resource.location, #expected)"(Resource 
resource, String expected) {
         when:
-            context.routesLoader.loadRoutes(resource)
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource)
         then:
             with(context.routeDefinitions[0].outputs[0], MarshalDefinition) {
                 with(dataFormatType) {
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/PollEnrichTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/PollEnrichTest.groovy
index fc01709d0fd..38ef36f70bc 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/PollEnrichTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/PollEnrichTest.groovy
@@ -20,12 +20,13 @@ import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.model.PollEnrichDefinition
 import org.apache.camel.model.language.ExpressionDefinition
 import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
 
 class PollEnrichTest extends YamlTestSupport {
 
     def "poll-enrich definition (#resource.location)"(Resource resource) {
         when:
-            context.routesLoader.loadRoutes(resource)
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource)
         then:
             with(context.routeDefinitions[0].outputs[0], PollEnrichDefinition) 
{
                 aggregationStrategy == 'myStrategy'
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RecipientListTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RecipientListTest.groovy
index 7cf0bd58991..52aeabc943d 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RecipientListTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RecipientListTest.groovy
@@ -20,12 +20,13 @@ import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.model.RecipientListDefinition
 import org.apache.camel.model.language.ExpressionDefinition
 import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
 
 class RecipientListTest extends YamlTestSupport {
 
     def "recipient-list definition (#resource.location)"(Resource resource) {
         when:
-            context.routesLoader.loadRoutes(resource)
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource)
         then:
             with(context.routeDefinitions[0].outputs[0], 
RecipientListDefinition) {
                 stopOnException == 'true'
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RemoveHeaderTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RemoveHeaderTest.groovy
index 3dc076514a1..20f04f60b9c 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RemoveHeaderTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RemoveHeaderTest.groovy
@@ -20,12 +20,13 @@ import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.model.RemoveHeaderDefinition
 import org.apache.camel.model.RemoveHeadersDefinition
 import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
 
 class RemoveHeaderTest extends YamlTestSupport {
 
     def "remove-header definition (#resource.location)"(Resource resource) {
         when:
-            context.routesLoader.loadRoutes(resource)
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource)
         then:
             with(context.routeDefinitions[0].outputs[0], 
RemoveHeaderDefinition) {
                 name == 'test'
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RemovePropertyTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RemovePropertyTest.groovy
index 6f4b2db0c36..4e22a3a7529 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RemovePropertyTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RemovePropertyTest.groovy
@@ -20,12 +20,13 @@ import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.model.RemovePropertiesDefinition
 import org.apache.camel.model.RemovePropertyDefinition
 import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
 
 class RemovePropertyTest extends YamlTestSupport {
 
     def "remove-property definition (#resource.location)"(Resource resource) {
         when:
-            context.routesLoader.loadRoutes(resource)
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource)
         then:
             with(context.routeDefinitions[0].outputs[0], 
RemovePropertyDefinition) {
                 name == 'test'
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ResequenceTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ResequenceTest.groovy
index b8b5bbb2e0e..71840ae41dc 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ResequenceTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ResequenceTest.groovy
@@ -21,12 +21,13 @@ import org.apache.camel.model.ResequenceDefinition
 import org.apache.camel.model.config.StreamResequencerConfig
 import org.apache.camel.model.language.SimpleExpression
 import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
 
 class ResequenceTest extends YamlTestSupport {
 
     def "resequence definition (#resource.location)"(Resource resource) {
         when:
-            context.routesLoader.loadRoutes(resource)
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource)
         then:
             with(context.routeDefinitions[0].outputs[0], ResequenceDefinition) 
{
                 with (expression, SimpleExpression) {
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RouteTemplateTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RouteTemplateTest.groovy
index 057c51499b4..b7feeb2de76 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RouteTemplateTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RouteTemplateTest.groovy
@@ -25,6 +25,7 @@ import org.apache.camel.model.LogDefinition
 import org.apache.camel.model.RouteTemplateDefinition
 import org.apache.camel.model.ToDefinition
 import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
 import org.junit.jupiter.api.Assertions
 
 class RouteTemplateTest extends YamlTestSupport {
@@ -53,7 +54,7 @@ class RouteTemplateTest extends YamlTestSupport {
 
     def "create template with beans (#resource.location)"(Resource resource) {
         setup:
-        context.routesLoader.loadRoutes(resource)
+        PluginHelper.getRoutesLoader(context).loadRoutes(resource)
 
         withMock('mock:result') {
             expectedMessageCount 1
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RoutingSlipTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RoutingSlipTest.groovy
index 29807432c1c..15ea4950bdc 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RoutingSlipTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/RoutingSlipTest.groovy
@@ -20,12 +20,13 @@ import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.model.RoutingSlipDefinition
 import org.apache.camel.model.language.ExpressionDefinition
 import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
 
 class RoutingSlipTest extends YamlTestSupport {
 
     def "routing-slip definition (#resource.location)"(Resource resource) {
         when:
-            context.routesLoader.loadRoutes(resource)
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource)
         then:
             with(context.routeDefinitions[0].outputs[0], 
RoutingSlipDefinition) {
                 uriDelimiter == '|'
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/SagaTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/SagaTest.groovy
index 731fc0bf0a9..04564d43fa3 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/SagaTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/SagaTest.groovy
@@ -17,18 +17,17 @@
 package org.apache.camel.dsl.yaml
 
 import org.apache.camel.dsl.yaml.support.YamlTestSupport
-import org.apache.camel.model.PropertyExpressionDefinition
 import org.apache.camel.model.SagaActionUriDefinition
 import org.apache.camel.model.SagaDefinition
 import org.apache.camel.model.ToDefinition
-import org.apache.camel.model.language.ExpressionDefinition
 import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
 
 class SagaTest extends YamlTestSupport {
 
     def "saga (#resource.location)"(Resource resource) {
         when:
-            context.routesLoader.loadRoutes(resource)
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource)
         then:
             with(context.routeDefinitions[0].outputs[0], SagaDefinition) {
                 propagation == "MANDATORY"
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ScriptTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ScriptTest.groovy
index b749c58fd02..6dff353c2ce 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ScriptTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ScriptTest.groovy
@@ -20,12 +20,13 @@ import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.model.ScriptDefinition
 import org.apache.camel.model.language.ExpressionDefinition
 import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
 
 class ScriptTest extends YamlTestSupport {
 
     def "script definition (#resource.location)"(Resource resource) {
         when:
-            context.routesLoader.loadRoutes(resource)
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource)
         then:
             with(context.routeDefinitions[0].outputs[0], ScriptDefinition) {
                 with (expression, ExpressionDefinition) {
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/SetBodyTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/SetBodyTest.groovy
index 8bce803504b..dfc48442b0d 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/SetBodyTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/SetBodyTest.groovy
@@ -20,12 +20,13 @@ import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.model.SetBodyDefinition
 import org.apache.camel.model.language.ExpressionDefinition
 import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
 
 class SetBodyTest extends YamlTestSupport {
 
     def "set-body definition (#resource.location)"(Resource resource) {
         when:
-            context.routesLoader.loadRoutes(resource)
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource)
         then:
             with(context.routeDefinitions[0].outputs[0], SetBodyDefinition) {
                 with (expression, ExpressionDefinition) {
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/SetHeaderTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/SetHeaderTest.groovy
index cbd38fd56e0..e9fc59f7a68 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/SetHeaderTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/SetHeaderTest.groovy
@@ -18,16 +18,16 @@ package org.apache.camel.dsl.yaml
 
 import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.model.SetHeaderDefinition
-import org.apache.camel.model.SortDefinition
 import org.apache.camel.model.language.ExpressionDefinition
 import org.apache.camel.model.language.SimpleExpression
 import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
 
 class SetHeaderTest extends YamlTestSupport {
 
     def "set-header definition (#resource.location)"(Resource resource) {
         when:
-        context.routesLoader.loadRoutes(resource)
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource)
         then:
         with(context.routeDefinitions[0].outputs[0], SetHeaderDefinition) {
             name == 'test'
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/SetPropertyTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/SetPropertyTest.groovy
index 8335a5ddc26..2827dd37a17 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/SetPropertyTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/SetPropertyTest.groovy
@@ -20,12 +20,13 @@ import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.model.SetPropertyDefinition
 import org.apache.camel.model.language.ExpressionDefinition
 import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
 
 class SetPropertyTest extends YamlTestSupport {
 
     def "set-property definition (#resource.location)"(Resource resource) {
         when:
-            context.routesLoader.loadRoutes(resource)
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource)
         then:
             with(context.routeDefinitions[0].outputs[0], 
SetPropertyDefinition) {
                 name == 'test'
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ThrottleTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ThrottleTest.groovy
index 42c784fbbf8..2b3ebddcc92 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ThrottleTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ThrottleTest.groovy
@@ -20,12 +20,13 @@ import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.model.ThrottleDefinition
 import org.apache.camel.model.language.ConstantExpression
 import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
 
 class ThrottleTest extends YamlTestSupport {
 
     def "throttle definition (#resource.location)"(Resource resource) {
         when:
-            context.routesLoader.loadRoutes(resource)
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource)
         then:
             with(context.routeDefinitions[0].outputs[0], ThrottleDefinition) {
                 with (expression, ConstantExpression) {
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ToDynamicTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ToDynamicTest.groovy
index a87d0047135..b669021880c 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ToDynamicTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ToDynamicTest.groovy
@@ -19,12 +19,13 @@ package org.apache.camel.dsl.yaml
 import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.model.ToDynamicDefinition
 import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
 
 class ToDynamicTest extends YamlTestSupport {
 
     def "to-d definition (#resource.location)"(Resource resource) {
         when:
-            context.routesLoader.loadRoutes(resource)
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource)
         then:
             with(context.routeDefinitions[0].outputs[0], ToDynamicDefinition) {
                 uri == 'direct:start'
@@ -67,7 +68,7 @@ class ToDynamicTest extends YamlTestSupport {
 
     def "to definition (#resource.location)"(Resource resource) {
         when:
-            context.routesLoader.loadRoutes(resource)
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource)
         then:
             with(context.routeDefinitions[0].outputs[0], ToDynamicDefinition) {
                 uri == 'direct:start'
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ToTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ToTest.groovy
index 1f0082ce9e1..1dd2c72856a 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ToTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ToTest.groovy
@@ -19,12 +19,13 @@ package org.apache.camel.dsl.yaml
 import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.model.ToDefinition
 import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
 
 class ToTest extends YamlTestSupport {
 
     def "to definition (#resource.location)"(Resource resource) {
         when:
-            context.routesLoader.loadRoutes(resource)
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource)
         then:
             with(context.routeDefinitions[0].outputs[0], ToDefinition) {
                 endpointUri == 'direct:start'
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/UnmarshalTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/UnmarshalTest.groovy
index 7bc0380ff3d..a8e38465eeb 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/UnmarshalTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/UnmarshalTest.groovy
@@ -19,12 +19,13 @@ package org.apache.camel.dsl.yaml
 import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.model.UnmarshalDefinition
 import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
 
 class UnmarshalTest extends YamlTestSupport {
 
     def "unmarshal definition (#resource.location, #expected)"(Resource 
resource, String expected) {
         when:
-            context.routesLoader.loadRoutes(resource)
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource)
         then:
             with(context.routeDefinitions[0].outputs[0], UnmarshalDefinition) {
                 with(dataFormatType) {
@@ -78,7 +79,7 @@ class UnmarshalTest extends YamlTestSupport {
 
     def "unmarshal definition with allow null body (#resource.location, 
#expected)"(Resource resource, String expected) {
         when:
-            context.routesLoader.loadRoutes(resource)
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource)
         then:
             with(context.routeDefinitions[0].outputs[0], UnmarshalDefinition) {
                 allowNullBody == expected
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ValidateTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ValidateTest.groovy
index 96c2ec43aad..cbe35c8e916 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ValidateTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ValidateTest.groovy
@@ -20,12 +20,13 @@ import org.apache.camel.dsl.yaml.support.YamlTestSupport
 import org.apache.camel.model.ValidateDefinition
 import org.apache.camel.model.language.ExpressionDefinition
 import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
 
 class ValidateTest extends YamlTestSupport {
 
     def "validate definition (#resource.location)"(Resource resource) {
         when:
-            context.routesLoader.loadRoutes(resource)
+            PluginHelper.getRoutesLoader(context).loadRoutes(resource)
         then:
             with(context.routeDefinitions[0].outputs[0], ValidateDefinition) {
                 with(expression, ExpressionDefinition) {
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/support/YamlTestSupport.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/support/YamlTestSupport.groovy
index 6e2aed45c3a..42a7a9c2d1d 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/support/YamlTestSupport.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/support/YamlTestSupport.groovy
@@ -30,6 +30,7 @@ import org.apache.camel.impl.DefaultCamelContext
 import org.apache.camel.model.RouteTemplateDefinition
 import org.apache.camel.spi.HasCamelContext
 import org.apache.camel.spi.Resource
+import org.apache.camel.support.PluginHelper
 import org.apache.camel.support.ResourceHelper
 import spock.lang.AutoCleanup
 import spock.lang.Specification
@@ -57,7 +58,7 @@ class YamlTestSupport extends Specification implements 
HasCamelContext {
             }
         }
 
-        context.routesLoader.loadRoutes(resources)
+        PluginHelper.getRoutesLoader(context).loadRoutes(resources)
     }
 
     def addTemplate(String name, @DelegatesTo(RouteTemplateDefinition) 
Closure<?> closure) {
@@ -113,7 +114,7 @@ class YamlTestSupport extends Specification implements 
HasCamelContext {
     def loadKamelets(String... resources) {
         int index = 0
 
-        context.routesLoader.loadRoutes(
+        PluginHelper.getRoutesLoader(context).loadRoutes(
             resources.collect {
                 it -> 
ResourceHelper.fromString("route-${index++}.kamelet.yaml", it.stripIndent())
             }
@@ -123,7 +124,7 @@ class YamlTestSupport extends Specification implements 
HasCamelContext {
     def loadIntegrations(String... resources) {
         int index = 0
 
-        context.routesLoader.loadRoutes(
+        PluginHelper.getRoutesLoader(context).loadRoutes(
             resources.collect {
                 it -> ResourceHelper.fromString("integration-${index++}.yaml", 
it.stripIndent())
             }
@@ -133,7 +134,7 @@ class YamlTestSupport extends Specification implements 
HasCamelContext {
     def loadBindings(String... resources) {
         int index = 0
 
-        context.routesLoader.loadRoutes(
+        PluginHelper.getRoutesLoader(context).loadRoutes(
             resources.collect {
                 it -> ResourceHelper.fromString("binding-${index++}.yaml", 
it.stripIndent())
             }

Reply via email to