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

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


The following commit(s) were added to refs/heads/main by this push:
     new 7c8eaa861273 CAMEL-23102: camel-jbang - Automatic keep up to date list 
of Camel FactoryFinder as known dependencies
7c8eaa861273 is described below

commit 7c8eaa861273a1f02bf2bf126f696b1e6188ede7
Author: Claus Ibsen <[email protected]>
AuthorDate: Sat Feb 28 11:20:31 2026 +0100

    CAMEL-23102: camel-jbang - Automatic keep up to date list of Camel 
FactoryFinder as known dependencies
---
 .../camel/impl/engine/AbstractCamelContext.java    |  7 ++-
 .../impl/engine/DefaultTransformerResolver.java    |  7 +--
 .../impl/engine/DefaultUriFactoryResolver.java     |  1 +
 .../engine/DefaultVariableRepositoryFactory.java   |  4 +-
 .../camel/impl/engine/SimpleCamelContext.java      | 60 ++++++----------------
 .../simple/ast/SimpleFunctionExpression.java       | 12 ++---
 .../camel/builder/AdviceWithRouteBuilder.java      | 11 ++--
 .../cloud/ServiceCallDefinitionConstants.java      |  1 +
 .../org/apache/camel/reifier/ResumableReifier.java | 24 ++-------
 .../camel/reifier/tokenizer/TokenizerReifier.java  | 18 ++-----
 .../org/apache/camel/main/BaseMainSupport.java     | 60 +++++++++-------------
 .../camel/support/HeaderSelectorProducer.java      | 32 ++++++------
 .../java/org/apache/camel/support/OAuthHelper.java |  2 +-
 .../org/apache/camel/support/ResolverHelper.java   | 31 +++++++++++
 .../apache/camel/support/resume/AdapterHelper.java | 18 ++-----
 .../DependencyDownloadFactoryFinderResolver.java   |  3 +-
 16 files changed, 118 insertions(+), 173 deletions(-)

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 e0c5a77a35c9..ae841d7c872e 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
@@ -2343,8 +2343,8 @@ public abstract class AbstractCamelContext extends 
BaseService
         StartupStepRecorder startupStepRecorder = 
camelContextExtension.getStartupStepRecorder();
         // NOTE: only check the specific class, not any subclass
         if (startupStepRecorder.getClass() == 
DefaultStartupStepRecorder.class) { // NOSONAR
-            StartupStepRecorder fr = 
camelContextExtension.getBootstrapFactoryFinder()
-                    .newInstance(StartupStepRecorder.FACTORY, 
StartupStepRecorder.class).orElse(null);
+            StartupStepRecorder fr
+                    = ResolverHelper.resolveService(this, 
StartupStepRecorder.FACTORY, StartupStepRecorder.class).orElse(null);
             if (fr != null) {
                 LOG.debug("Discovered startup recorder: {} from classpath", 
fr);
                 camelContextExtension.setStartupStepRecorder(fr);
@@ -2528,8 +2528,7 @@ public abstract class AbstractCamelContext extends 
BaseService
         boolean debuggerDetected = false;
         if (getDebugger() == null && hasService(BacklogDebugger.class) == 
null) {
             // detect if camel-debug is on classpath that enables debugging
-            DebuggerFactory df = 
getCamelContextExtension().getBootstrapFactoryFinder()
-                    .newInstance(Debugger.FACTORY, 
DebuggerFactory.class).orElse(null);
+            DebuggerFactory df = ResolverHelper.resolveService(this, 
Debugger.FACTORY, DebuggerFactory.class).orElse(null);
             if (df != null) {
                 debuggerDetected = true;
                 LOG.info("Detected: {} JAR (Enabling Camel Debugging)", df);
diff --git 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultTransformerResolver.java
 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultTransformerResolver.java
index 4d55b6a635bd..a458b5c8d7b7 100644
--- 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultTransformerResolver.java
+++ 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultTransformerResolver.java
@@ -21,9 +21,11 @@ import java.util.Optional;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
+import org.apache.camel.spi.FactoryFinder;
 import org.apache.camel.spi.Transformer;
 import org.apache.camel.spi.TransformerKey;
 import org.apache.camel.spi.TransformerResolver;
+import org.apache.camel.support.ResolverHelper;
 import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -59,8 +61,7 @@ public class DefaultTransformerResolver implements 
TransformerResolver<Transform
     }
 
     private Optional<Transformer> findTransformer(String key, CamelContext 
context) {
-        return context.getCamelContextExtension()
-                .getBootstrapFactoryFinder(DATA_TYPE_TRANSFORMER_RESOURCE_PATH)
-                .newInstance(key, Transformer.class);
+        FactoryFinder ff = 
context.getCamelContextExtension().getBootstrapFactoryFinder(DATA_TYPE_TRANSFORMER_RESOURCE_PATH);
+        return ResolverHelper.resolveService(context, ff, key, 
Transformer.class);
     }
 }
diff --git 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultUriFactoryResolver.java
 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultUriFactoryResolver.java
index 404a38088107..77d01b282cae 100644
--- 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultUriFactoryResolver.java
+++ 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultUriFactoryResolver.java
@@ -32,6 +32,7 @@ import org.slf4j.LoggerFactory;
  * <b>META-INF/services/org/apache/camel/urifactory/</b>.
  */
 public class DefaultUriFactoryResolver implements CamelContextAware, 
UriFactoryResolver {
+
     public static final String RESOURCE_PATH = 
"META-INF/services/org/apache/camel/urifactory/";
 
     private static final Logger LOG = 
LoggerFactory.getLogger(DefaultUriFactoryResolver.class);
diff --git 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultVariableRepositoryFactory.java
 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultVariableRepositoryFactory.java
index c0b373a67aa7..8d834c145edb 100644
--- 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultVariableRepositoryFactory.java
+++ 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultVariableRepositoryFactory.java
@@ -38,10 +38,10 @@ import org.slf4j.LoggerFactory;
  */
 public class DefaultVariableRepositoryFactory extends ServiceSupport 
implements VariableRepositoryFactory, StaticService {
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(DefaultVariableRepositoryFactory.class);
-
     public static final String RESOURCE_PATH = 
"META-INF/services/org/apache/camel/variable-repository/";
 
+    private static final Logger LOG = 
LoggerFactory.getLogger(DefaultVariableRepositoryFactory.class);
+
     private final CamelContext camelContext;
     private VariableRepository global;
     private VariableRepository route;
diff --git 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java
 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java
index 74f27ad17234..03af8dd61b8d 100644
--- 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java
+++ 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java
@@ -247,9 +247,7 @@ public class SimpleCamelContext extends 
AbstractCamelContext {
 
     @Override
     protected ModelJAXBContextFactory createModelJAXBContextFactory() {
-        return ResolverHelper.resolveMandatoryService(
-                getCamelContextReference(),
-                getCamelContextExtension().getBootstrapFactoryFinder(),
+        return 
ResolverHelper.resolveMandatoryBootstrapService(getCamelContextReference(),
                 ModelJAXBContextFactory.FACTORY,
                 ModelJAXBContextFactory.class,
                 "camel-xml-jaxb");
@@ -297,18 +295,14 @@ public class SimpleCamelContext extends 
AbstractCamelContext {
 
     @Override
     protected ProcessorFactory createProcessorFactory() {
-        return ResolverHelper.resolveMandatoryService(
-                getCamelContextReference(),
-                getCamelContextExtension().getBootstrapFactoryFinder(),
+        return 
ResolverHelper.resolveMandatoryBootstrapService(getCamelContextReference(),
                 ProcessorFactory.FACTORY,
                 ProcessorFactory.class, "camel-core-processor");
     }
 
     @Override
     protected InternalProcessorFactory createInternalProcessorFactory() {
-        return ResolverHelper.resolveMandatoryService(
-                getCamelContextReference(),
-                getCamelContextExtension().getBootstrapFactoryFinder(),
+        return 
ResolverHelper.resolveMandatoryBootstrapService(getCamelContextReference(),
                 InternalProcessorFactory.FACTORY,
                 InternalProcessorFactory.class,
                 "camel-core-processor");
@@ -390,9 +384,7 @@ public class SimpleCamelContext extends 
AbstractCamelContext {
 
     @Override
     protected RuntimeCamelCatalog createRuntimeCamelCatalog() {
-        return ResolverHelper.resolveMandatoryService(
-                getCamelContextReference(),
-                getCamelContextExtension().getBootstrapFactoryFinder(),
+        return 
ResolverHelper.resolveMandatoryBootstrapService(getCamelContextReference(),
                 RuntimeCamelCatalog.FACTORY,
                 RuntimeCamelCatalog.class,
                 "camel-core-catalog");
@@ -417,9 +409,7 @@ public class SimpleCamelContext extends 
AbstractCamelContext {
         }
 
         // lookup default factory
-        return ResolverHelper.resolveMandatoryService(
-                getCamelContextReference(),
-                getCamelContextExtension().getBootstrapFactoryFinder(),
+        return 
ResolverHelper.resolveMandatoryBootstrapService(getCamelContextReference(),
                 "default-" + DumpRoutesStrategy.FACTORY,
                 DumpRoutesStrategy.class,
                 "camel-core-engine");
@@ -480,9 +470,7 @@ public class SimpleCamelContext extends 
AbstractCamelContext {
 
     @Override
     protected BeanProxyFactory createBeanProxyFactory() {
-        return ResolverHelper.resolveMandatoryService(
-                getCamelContextReference(),
-                getCamelContextExtension().getBootstrapFactoryFinder(),
+        return 
ResolverHelper.resolveMandatoryBootstrapService(getCamelContextReference(),
                 BeanProxyFactory.FACTORY,
                 BeanProxyFactory.class,
                 "camel-bean");
@@ -490,9 +478,7 @@ public class SimpleCamelContext extends 
AbstractCamelContext {
 
     @Override
     protected AnnotationBasedProcessorFactory 
createAnnotationBasedProcessorFactory() {
-        return ResolverHelper.resolveMandatoryService(
-                getCamelContextReference(),
-                getCamelContextExtension().getBootstrapFactoryFinder(),
+        return 
ResolverHelper.resolveMandatoryBootstrapService(getCamelContextReference(),
                 AnnotationBasedProcessorFactory.FACTORY,
                 AnnotationBasedProcessorFactory.class,
                 "camel-core-processor");
@@ -500,9 +486,7 @@ public class SimpleCamelContext extends 
AbstractCamelContext {
 
     @Override
     protected DeferServiceFactory createDeferServiceFactory() {
-        return ResolverHelper.resolveMandatoryService(
-                getCamelContextReference(),
-                getCamelContextExtension().getBootstrapFactoryFinder(),
+        return 
ResolverHelper.resolveMandatoryBootstrapService(getCamelContextReference(),
                 DeferServiceFactory.FACTORY,
                 DeferServiceFactory.class,
                 "camel-core-processor");
@@ -510,9 +494,7 @@ public class SimpleCamelContext extends 
AbstractCamelContext {
 
     @Override
     protected BeanProcessorFactory createBeanProcessorFactory() {
-        return ResolverHelper.resolveMandatoryService(
-                getCamelContextReference(),
-                getCamelContextExtension().getBootstrapFactoryFinder(),
+        return 
ResolverHelper.resolveMandatoryBootstrapService(getCamelContextReference(),
                 BeanProcessorFactory.FACTORY,
                 BeanProcessorFactory.class,
                 "camel-bean");
@@ -547,9 +529,7 @@ public class SimpleCamelContext extends 
AbstractCamelContext {
 
     @Override
     protected ModelToXMLDumper createModelToXMLDumper() {
-        return ResolverHelper.resolveMandatoryService(
-                getCamelContextReference(),
-                getCamelContextExtension().getBootstrapFactoryFinder(),
+        return 
ResolverHelper.resolveMandatoryBootstrapService(getCamelContextReference(),
                 ModelToXMLDumper.FACTORY,
                 ModelToXMLDumper.class,
                 "camel-xml-io");
@@ -557,9 +537,7 @@ public class SimpleCamelContext extends 
AbstractCamelContext {
 
     @Override
     protected ModelToYAMLDumper createModelToYAMLDumper() {
-        return ResolverHelper.resolveMandatoryService(
-                getCamelContextReference(),
-                getCamelContextExtension().getBootstrapFactoryFinder(),
+        return 
ResolverHelper.resolveMandatoryBootstrapService(getCamelContextReference(),
                 ModelToYAMLDumper.FACTORY,
                 ModelToYAMLDumper.class,
                 "camel-yaml-io");
@@ -567,9 +545,7 @@ public class SimpleCamelContext extends 
AbstractCamelContext {
 
     @Override
     protected ModelToStructureDumper createModelToStructureDumper() {
-        return ResolverHelper.resolveMandatoryService(
-                getCamelContextReference(),
-                getCamelContextExtension().getBootstrapFactoryFinder(),
+        return 
ResolverHelper.resolveMandatoryBootstrapService(getCamelContextReference(),
                 ModelToStructureDumper.FACTORY,
                 ModelToStructureDumper.class,
                 "camel-core-engine");
@@ -577,9 +553,7 @@ public class SimpleCamelContext extends 
AbstractCamelContext {
 
     @Override
     protected RestBindingJaxbDataFormatFactory 
createRestBindingJaxbDataFormatFactory() {
-        return ResolverHelper.resolveMandatoryService(
-                getCamelContextReference(),
-                getCamelContextExtension().getBootstrapFactoryFinder(),
+        return 
ResolverHelper.resolveMandatoryBootstrapService(getCamelContextReference(),
                 RestBindingJaxbDataFormatFactory.FACTORY,
                 RestBindingJaxbDataFormatFactory.class,
                 "camel-jaxb");
@@ -587,9 +561,7 @@ public class SimpleCamelContext extends 
AbstractCamelContext {
 
     @Override
     protected RestBindingJacksonXmlDataFormatFactory 
createRestBindingJacksonXmlDataFormatFactory() {
-        return ResolverHelper.resolveMandatoryService(
-                getCamelContextReference(),
-                getCamelContextExtension().getBootstrapFactoryFinder(),
+        return 
ResolverHelper.resolveMandatoryBootstrapService(getCamelContextReference(),
                 RestBindingJacksonXmlDataFormatFactory.FACTORY,
                 RestBindingJacksonXmlDataFormatFactory.class,
                 "camel-jacksonxml");
@@ -633,9 +605,7 @@ public class SimpleCamelContext extends 
AbstractCamelContext {
 
     @Override
     protected RestRegistryFactory createRestRegistryFactory() {
-        return ResolverHelper.resolveMandatoryService(
-                getCamelContextReference(),
-                getCamelContextExtension().getBootstrapFactoryFinder(),
+        return 
ResolverHelper.resolveMandatoryBootstrapService(getCamelContextReference(),
                 RestRegistryFactory.FACTORY,
                 RestRegistryFactory.class,
                 "camel-rest");
diff --git 
a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
 
b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
index 6731f16e5b79..b906b2fe758f 100644
--- 
a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
+++ 
b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
@@ -393,9 +393,8 @@ public class SimpleFunctionExpression extends 
LiteralExpression {
     }
 
     private Expression createSimpleAttachments(CamelContext camelContext, 
String function) {
-        SimpleLanguageFunctionFactory factory = 
ResolverHelper.resolveMandatoryService(
+        SimpleLanguageFunctionFactory factory = 
ResolverHelper.resolveMandatoryBootstrapService(
                 camelContext,
-                
camelContext.getCamelContextExtension().getBootstrapFactoryFinder(),
                 SimpleLanguageFunctionFactory.FACTORY + "/camel-attachments",
                 SimpleLanguageFunctionFactory.class,
                 "camel-attachments");
@@ -403,9 +402,8 @@ public class SimpleFunctionExpression extends 
LiteralExpression {
     }
 
     private Expression createSimpleBase64(CamelContext camelContext, String 
function) {
-        SimpleLanguageFunctionFactory factory = 
ResolverHelper.resolveMandatoryService(
+        SimpleLanguageFunctionFactory factory = 
ResolverHelper.resolveMandatoryBootstrapService(
                 camelContext,
-                
camelContext.getCamelContextExtension().getBootstrapFactoryFinder(),
                 SimpleLanguageFunctionFactory.FACTORY + "/camel-base64",
                 SimpleLanguageFunctionFactory.class,
                 "camel-base64");
@@ -2585,9 +2583,8 @@ public class SimpleFunctionExpression extends 
LiteralExpression {
     }
 
     private String createCodeAttachments(CamelContext camelContext, String 
function) {
-        SimpleLanguageFunctionFactory factory = 
ResolverHelper.resolveMandatoryService(
+        SimpleLanguageFunctionFactory factory = 
ResolverHelper.resolveMandatoryBootstrapService(
                 camelContext,
-                
camelContext.getCamelContextExtension().getBootstrapFactoryFinder(),
                 SimpleLanguageFunctionFactory.FACTORY + "/camel-attachments",
                 SimpleLanguageFunctionFactory.class,
                 "camel-attachments");
@@ -2595,9 +2592,8 @@ public class SimpleFunctionExpression extends 
LiteralExpression {
     }
 
     private String createCodeBase64(CamelContext camelContext, String 
function) {
-        SimpleLanguageFunctionFactory factory = 
ResolverHelper.resolveMandatoryService(
+        SimpleLanguageFunctionFactory factory = 
ResolverHelper.resolveMandatoryBootstrapService(
                 camelContext,
-                
camelContext.getCamelContextExtension().getBootstrapFactoryFinder(),
                 SimpleLanguageFunctionFactory.FACTORY + "/camel-base64",
                 SimpleLanguageFunctionFactory.class,
                 "camel-base64");
diff --git 
a/core/camel-core-model/src/main/java/org/apache/camel/builder/AdviceWithRouteBuilder.java
 
b/core/camel-core-model/src/main/java/org/apache/camel/builder/AdviceWithRouteBuilder.java
index 5da29274d166..62c3f405c716 100644
--- 
a/core/camel-core-model/src/main/java/org/apache/camel/builder/AdviceWithRouteBuilder.java
+++ 
b/core/camel-core-model/src/main/java/org/apache/camel/builder/AdviceWithRouteBuilder.java
@@ -27,10 +27,9 @@ import org.apache.camel.spi.EndpointStrategy;
 import org.apache.camel.spi.MockSendToEndpointStrategyFactory;
 import org.apache.camel.support.EndpointHelper;
 import org.apache.camel.support.PatternHelper;
+import org.apache.camel.support.ResolverHelper;
 import org.apache.camel.util.ObjectHelper;
 
-import static org.apache.camel.spi.FactoryFinder.DEFAULT_PATH;
-
 /**
  * A {@link RouteBuilder} which has extended capabilities when using the
  * <a href="http://camel.apache.org/advicewith.html";>advice with</a> feature.
@@ -249,12 +248,8 @@ public abstract class AdviceWithRouteBuilder extends 
RouteBuilder {
             CamelContext camelContext, String pattern, boolean skip) {
         // the text based input may be property placeholders
         pattern = camelContext.resolvePropertyPlaceholders(pattern);
-        MockSendToEndpointStrategyFactory factory = 
camelContext.getCamelContextExtension()
-                .getFactoryFinder(DEFAULT_PATH)
-                .newInstance(MockSendToEndpointStrategyFactory.FACTORY, 
MockSendToEndpointStrategyFactory.class)
-                .orElseThrow(() -> new IllegalArgumentException(
-                        "Cannot find MockSendToEndpointStrategyFactory on 
classpath. "
-                                                                + "Add 
camel-mock to classpath."));
+        MockSendToEndpointStrategyFactory factory = 
ResolverHelper.resolveMandatoryBootstrapService(camelContext,
+                MockSendToEndpointStrategyFactory.FACTORY, 
MockSendToEndpointStrategyFactory.class, "camel-mock");
         return factory.mock(pattern, skip);
     }
 
diff --git 
a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallDefinitionConstants.java
 
b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallDefinitionConstants.java
index 6d78364e311c..5dc4e5bd91eb 100644
--- 
a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallDefinitionConstants.java
+++ 
b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallDefinitionConstants.java
@@ -18,6 +18,7 @@ package org.apache.camel.model.cloud;
 
 @Deprecated(since = "3.19.0")
 public final class ServiceCallDefinitionConstants {
+
     public static final String RESOURCE_PATH = 
"META-INF/services/org/apache/camel/cloud/";
     public static final String DEFAULT_COMPONENT = "http";
     public static final String DEFAULT_SERVICE_CALL_CONFIG_ID = 
"service-call-configuration";
diff --git 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ResumableReifier.java
 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ResumableReifier.java
index 84917c236654..59329b160b37 100644
--- 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ResumableReifier.java
+++ 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/ResumableReifier.java
@@ -16,19 +16,16 @@
  */
 package org.apache.camel.reifier;
 
-import java.util.Optional;
-
 import org.apache.camel.CamelContextAware;
 import org.apache.camel.LoggingLevel;
 import org.apache.camel.Processor;
 import org.apache.camel.Route;
-import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.ResumableDefinition;
 import org.apache.camel.processor.resume.ResumableProcessor;
 import org.apache.camel.resume.ResumeStrategy;
 import org.apache.camel.resume.ResumeStrategyConfiguration;
-import org.apache.camel.spi.FactoryFinder;
+import org.apache.camel.support.ResolverHelper;
 import org.apache.camel.util.ObjectHelper;
 
 public class ResumableReifier extends ProcessorReifier<ResumableDefinition> {
@@ -64,21 +61,10 @@ public class ResumableReifier extends 
ProcessorReifier<ResumableDefinition> {
             if (ref != null) {
                 strategy = mandatoryLookup(ref, ResumeStrategy.class);
             } else {
-                final FactoryFinder factoryFinder
-                        = 
camelContext.getCamelContextExtension().getFactoryFinder(FactoryFinder.DEFAULT_PATH);
-
-                final ResumeStrategyConfiguration resumeStrategyConfiguration 
= definition.getResumeStrategyConfiguration();
-                Optional<ResumeStrategy> resumeStrategyOptional = 
factoryFinder.newInstance(
-                        resumeStrategyConfiguration.resumeStrategyService(), 
ResumeStrategy.class);
-
-                if (resumeStrategyOptional.isEmpty()) {
-                    throw new RuntimeCamelException("Cannot find a resume 
strategy class in the classpath or the registry");
-                }
-
-                final ResumeStrategy resumeStrategy = 
resumeStrategyOptional.get();
-
-                
resumeStrategy.setResumeStrategyConfiguration(resumeStrategyConfiguration);
-
+                ResumeStrategyConfiguration config = 
definition.getResumeStrategyConfiguration();
+                ResumeStrategy resumeStrategy = 
ResolverHelper.resolveMandatoryBootstrapService(camelContext,
+                        config.resumeStrategyService(), ResumeStrategy.class, 
null);
+                resumeStrategy.setResumeStrategyConfiguration(config);
                 return resumeStrategy;
             }
         }
diff --git 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/tokenizer/TokenizerReifier.java
 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/tokenizer/TokenizerReifier.java
index 43173dbbb504..099f63d36bf5 100644
--- 
a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/tokenizer/TokenizerReifier.java
+++ 
b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/tokenizer/TokenizerReifier.java
@@ -17,11 +17,8 @@
 
 package org.apache.camel.reifier.tokenizer;
 
-import java.util.Optional;
-
 import org.apache.camel.Processor;
 import org.apache.camel.Route;
-import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.model.TokenizerDefinition;
 import org.apache.camel.model.TokenizerImplementationDefinition;
 import org.apache.camel.model.tokenizer.LangChain4jTokenizerDefinition;
@@ -29,6 +26,7 @@ import org.apache.camel.processor.TokenizerProcessor;
 import org.apache.camel.reifier.ProcessorReifier;
 import org.apache.camel.spi.FactoryFinder;
 import org.apache.camel.spi.Tokenizer;
+import org.apache.camel.support.ResolverHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -44,18 +42,8 @@ public class TokenizerReifier<T extends TokenizerDefinition> 
extends ProcessorRe
     public Processor createProcessor() throws Exception {
         Processor childProcessor = createChildProcessor(false);
 
-        final FactoryFinder factoryFinder
-                = 
camelContext.getCamelContextExtension().getFactoryFinder(TOKENIZER_PATH);
-
-        final Optional<Tokenizer> tokenize = factoryFinder.newInstance(
-                definition.tokenizerName(), Tokenizer.class);
-
-        if (tokenize.isEmpty()) {
-            throw new RuntimeCamelException(
-                    "Cannot find a tokenizer named: " + 
definition.tokenizerName() + " in the classpath");
-        }
-
-        final Tokenizer tokenizer = tokenize.get();
+        Tokenizer tokenizer = 
ResolverHelper.resolveMandatoryBootstrapService(camelContext,
+                TOKENIZER_PATH + definition.tokenizerName(), Tokenizer.class, 
definition.tokenizerName());
         LOG.info("Creating a tokenizer of type {}", 
tokenizer.getClass().getName());
         configure(tokenizer);
 
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 c862d13cbd1f..9224f4c2cd40 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
@@ -90,6 +90,7 @@ import org.apache.camel.support.CamelContextHelper;
 import org.apache.camel.support.LifecycleStrategySupport;
 import org.apache.camel.support.PluginHelper;
 import org.apache.camel.support.PropertyBindingSupport;
+import org.apache.camel.support.ResolverHelper;
 import org.apache.camel.support.ResourceHelper;
 import org.apache.camel.support.SimpleEventNotifierSupport;
 import org.apache.camel.support.jsse.CipherSuitesParameters;
@@ -717,8 +718,8 @@ public abstract class BaseMainSupport extends BaseService {
                 || mainConfigurationProperties.getStartupRecorder() == null) {
             // try to auto discover camel-jfr to use
             try {
-                StartupStepRecorder fr = ecc.getBootstrapFactoryFinder()
-                        .newInstance(StartupStepRecorder.FACTORY, 
StartupStepRecorder.class).orElse(null);
+                StartupStepRecorder fr = 
ResolverHelper.resolveService(camelContext, ecc.getBootstrapFactoryFinder(),
+                        StartupStepRecorder.FACTORY, 
StartupStepRecorder.class).orElse(null);
                 if (fr != null) {
                     LOG.debug("Discovered startup recorder: {} from 
classpath", fr);
                     
fr.setRecording(mainConfigurationProperties.isStartupRecorderRecording());
@@ -996,8 +997,8 @@ public abstract class BaseMainSupport extends BaseService {
     }
 
     protected void detectCamelDebugJar(CamelContext camelContext) {
-        DebuggerFactory df = 
camelContext.getCamelContextExtension().getBootstrapFactoryFinder()
-                .newInstance(Debugger.FACTORY, 
DebuggerFactory.class).orElse(null);
+        DebuggerFactory df
+                = ResolverHelper.resolveBootstrapService(camelContext, 
Debugger.FACTORY, DebuggerFactory.class).orElse(null);
         if (df != null) {
             // if camel-debug is on classpath then we need to eager to turn on 
source location which is needed for Java DSL
             camelContext.setSourceLocationEnabled(true);
@@ -1006,8 +1007,8 @@ public abstract class BaseMainSupport extends BaseService 
{
 
     protected void detectResilience4jMicrometer(CamelContext camelContext) 
throws Exception {
         // optional discover camel-resilience4j-micrometer
-        Resilience4jMicrometerFactory mf = 
camelContext.getCamelContextExtension().getBootstrapFactoryFinder()
-                .newInstance(Resilience4jMicrometerFactory.FACTORY, 
Resilience4jMicrometerFactory.class).orElse(null);
+        Resilience4jMicrometerFactory mf = 
ResolverHelper.resolveBootstrapService(camelContext,
+                Resilience4jMicrometerFactory.FACTORY, 
Resilience4jMicrometerFactory.class).orElse(null);
         if (mf == null) {
             ModelCamelContext model = (ModelCamelContext) camelContext;
             Resilience4jConfigurationDefinition config = 
model.getResilience4jConfiguration(null);
@@ -1016,8 +1017,9 @@ public abstract class BaseMainSupport extends BaseService 
{
             boolean micrometer = config != null && 
config.getMicrometerEnabled() != null
                     && CamelContextHelper.parseBoolean(camelContext, 
config.getMicrometerEnabled());
             if (micrometer) {
-                throw new IllegalArgumentException(
-                        "Cannot find Resilience4jMicrometerFactory on 
classpath. Add camel-resilience4j-micrometer to classpath.");
+                // okay micrometer is explicit enabled then resolve mandatory
+                mf = 
ResolverHelper.resolveMandatoryBootstrapService(camelContext, 
Resilience4jMicrometerFactory.FACTORY,
+                        Resilience4jMicrometerFactory.class, 
"camel-resilience4j-micrometer");
             }
         }
         if (mf != null) {
@@ -2757,10 +2759,8 @@ public abstract class BaseMainSupport extends 
BaseService {
             answer = 
camelContext.getRegistry().findSingleByType(CamelSagaService.class);
         }
         if (answer == null) {
-            answer = 
camelContext.getCamelContextExtension().getBootstrapFactoryFinder()
-                    .newInstance("lra-saga-service", CamelSagaService.class)
-                    .orElseThrow(() -> new IllegalArgumentException(
-                            "Cannot find LRASagaService on classpath. Add 
camel-lra to classpath."));
+            answer = 
ResolverHelper.resolveMandatoryBootstrapService(camelContext, 
"lra-saga-service", CamelSagaService.class,
+                    "camel-lra");
         }
         return answer;
     }
@@ -2771,10 +2771,8 @@ public abstract class BaseMainSupport extends 
BaseService {
             answer = 
camelContext.getRegistry().findSingleByType(CamelTracingService.class);
         }
         if (answer == null) {
-            answer = 
camelContext.getCamelContextExtension().getBootstrapFactoryFinder()
-                    .newInstance("opentelemetry-tracer", 
CamelTracingService.class)
-                    .orElseThrow(() -> new IllegalArgumentException(
-                            "Cannot find OpenTelemetryTracer on classpath. Add 
camel-opentelemetry to classpath."));
+            answer = 
ResolverHelper.resolveMandatoryBootstrapService(camelContext, 
"opentelemetry-tracer",
+                    CamelTracingService.class, "camel-opentelemetry");
         }
         return answer;
     }
@@ -2785,10 +2783,8 @@ public abstract class BaseMainSupport extends 
BaseService {
             answer = 
camelContext.getRegistry().findSingleByType(CamelTracingService.class);
         }
         if (answer == null) {
-            answer = 
camelContext.getCamelContextExtension().getBootstrapFactoryFinder()
-                    .newInstance("opentelemetry-tracer-2", 
CamelTracingService.class)
-                    .orElseThrow(() -> new IllegalArgumentException(
-                            "Cannot find OpenTelemetryTracer2 on classpath. 
Add camel-opentelemetry2 to classpath."));
+            answer = 
ResolverHelper.resolveMandatoryBootstrapService(camelContext, 
"opentelemetry-tracer-2",
+                    CamelTracingService.class, "camel-opentelemetry2");
         }
         return answer;
     }
@@ -2799,10 +2795,8 @@ public abstract class BaseMainSupport extends 
BaseService {
             answer = 
camelContext.getRegistry().findSingleByType(CamelTracingService.class);
         }
         if (answer == null) {
-            answer = 
camelContext.getCamelContextExtension().getBootstrapFactoryFinder()
-                    .newInstance("telemetry-dev-tracer", 
CamelTracingService.class)
-                    .orElseThrow(() -> new IllegalArgumentException(
-                            "Cannot find TelemetryDevTracer on classpath. Add 
camel-telemetry-dev to classpath."));
+            answer = 
ResolverHelper.resolveMandatoryBootstrapService(camelContext, 
"telemetry-dev-tracer",
+                    CamelTracingService.class, "camel-telemetry-dev");
         }
         return answer;
     }
@@ -2813,10 +2807,8 @@ public abstract class BaseMainSupport extends 
BaseService {
             answer = 
camelContext.getRegistry().findSingleByType(CamelMetricsService.class);
         }
         if (answer == null) {
-            answer = 
camelContext.getCamelContextExtension().getBootstrapFactoryFinder()
-                    .newInstance("micrometer-prometheus", 
CamelMetricsService.class)
-                    .orElseThrow(() -> new IllegalArgumentException(
-                            "Cannot find CamelMetricsService on classpath. Add 
camel-micrometer-prometheus to classpath."));
+            answer = 
ResolverHelper.resolveMandatoryBootstrapService(camelContext, 
"micrometer-prometheus",
+                    CamelMetricsService.class, "camel-micrometer-prometheus");
         }
         return answer;
     }
@@ -2827,10 +2819,8 @@ public abstract class BaseMainSupport extends 
BaseService {
             answer = 
camelContext.getRegistry().findSingleByType(CamelMDCService.class);
         }
         if (answer == null) {
-            answer = 
camelContext.getCamelContextExtension().getBootstrapFactoryFinder()
-                    .newInstance("mdc-service", CamelMDCService.class)
-                    .orElseThrow(() -> new IllegalArgumentException(
-                            "Cannot find CamelMDCService on classpath. Add 
camel-mdc to classpath."));
+            answer = 
ResolverHelper.resolveMandatoryBootstrapService(camelContext, "mdc-service", 
CamelMDCService.class,
+                    "camel-mdc");
         }
         return answer;
     }
@@ -2839,10 +2829,8 @@ public abstract class BaseMainSupport extends 
BaseService {
         // lookup in service registry first
         MainHttpServerFactory answer = 
camelContext.getRegistry().findSingleByType(MainHttpServerFactory.class);
         if (answer == null) {
-            answer = 
camelContext.getCamelContextExtension().getBootstrapFactoryFinder()
-                    .newInstance(MainConstants.PLATFORM_HTTP_SERVER, 
MainHttpServerFactory.class)
-                    .orElseThrow(() -> new IllegalArgumentException(
-                            "Cannot find MainHttpServerFactory on classpath. 
Add camel-platform-http-main to classpath."));
+            answer = 
ResolverHelper.resolveMandatoryBootstrapService(camelContext, 
MainConstants.PLATFORM_HTTP_SERVER,
+                    MainHttpServerFactory.class, "camel-platform-http-main");
         }
         return CamelContextAware.trySetCamelContext(answer, camelContext);
     }
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/HeaderSelectorProducer.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/HeaderSelectorProducer.java
index 4c108f3e66ff..6ac0edcd79d2 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/HeaderSelectorProducer.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/HeaderSelectorProducer.java
@@ -24,6 +24,8 @@ import org.apache.camel.CamelContextAware;
 import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
 import org.apache.camel.NoSuchHeaderException;
+import org.apache.camel.NoSuchServiceException;
+import org.apache.camel.spi.FactoryFinder;
 import org.apache.camel.spi.InvokeOnHeaderStrategy;
 import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
@@ -39,8 +41,9 @@ public abstract class HeaderSelectorProducer extends 
DefaultAsyncProducer implem
 
     public static final String RESOURCE_PATH = 
"META-INF/services/org/apache/camel/invoke-on-header/";
 
-    private static final Logger LOGGER = 
LoggerFactory.getLogger(HeaderSelectorProducer.class);
+    private static final Logger LOG = 
LoggerFactory.getLogger(HeaderSelectorProducer.class);
 
+    private FactoryFinder factoryFinder;
     private final Supplier<String> headerSupplier;
     private final Supplier<String> defaultHeaderValueSupplier;
     private final Object target;
@@ -104,11 +107,13 @@ public abstract class HeaderSelectorProducer extends 
DefaultAsyncProducer implem
     protected void doBuild() throws Exception {
         super.doBuild();
 
+        if (factoryFinder == null) {
+            factoryFinder = 
camelContext.getCamelContextExtension().getFactoryFinder(RESOURCE_PATH);
+        }
+
         String key = this.getClass().getName();
-        String fqn = RESOURCE_PATH + key;
-        strategy = 
camelContext.getCamelContextExtension().getBootstrapFactoryFinder(RESOURCE_PATH)
-                .newInstance(key, InvokeOnHeaderStrategy.class)
-                .orElseThrow(() -> new IllegalArgumentException("Cannot find " 
+ fqn + " in classpath."));
+        strategy = factoryFinder.newInstance(key, InvokeOnHeaderStrategy.class)
+                .orElseThrow(() -> new NoSuchServiceException(key, null));
 
         Class<?> sclazz = this.getClass().getSuperclass();
         // NOTE: check specific classes only, not possible subclasses
@@ -117,10 +122,7 @@ public abstract class HeaderSelectorProducer extends 
DefaultAsyncProducer implem
                 && sclazz != HeaderSelectorProducer.class) {
             // some components may have a common base class they extend from 
(such as camel-infinispan)
             // so try to discover that (optional so return null if not present)
-            String key2 = this.getClass().getSuperclass().getName();
-            parentStrategy = 
camelContext.getCamelContextExtension().getBootstrapFactoryFinder(RESOURCE_PATH)
-                    .newInstance(key2, InvokeOnHeaderStrategy.class)
-                    .orElse(null);
+            parentStrategy = factoryFinder.newInstance(sclazz.getName(), 
InvokeOnHeaderStrategy.class).orElse(null);
         }
     }
 
@@ -138,28 +140,28 @@ public abstract class HeaderSelectorProducer extends 
DefaultAsyncProducer implem
                 throw new NoSuchHeaderException(exchange, header, 
String.class);
             }
 
-            LOGGER.debug("Invoking @InvokeOnHeader method: {}", action);
+            LOG.debug("Invoking @InvokeOnHeader method: {}", action);
             Object answer = strategy.invoke(target, action, exchange, 
callback);
             if (answer == null && parentStrategy != null) {
                 answer = parentStrategy.invoke(target, action, exchange, 
callback);
             }
             if (answer == callback) {
-                // okay it was an async invoked so we should return false
+                // okay it was an async-invoked so we should return false
                 sync = false;
                 answer = null;
             }
             if (sync) {
-                LOGGER.trace("Invoked @InvokeOnHeader method: {} -> {}", 
action, answer);
+                LOG.trace("Invoked @InvokeOnHeader method: {} -> {}", action, 
answer);
                 processResult(exchange, answer);
             } else {
-                LOGGER.trace("Invoked @InvokeOnHeader method: {} is continuing 
asynchronously", action);
+                LOG.trace("Invoked @InvokeOnHeader method: {} is continuing 
asynchronously", action);
             }
         } catch (Exception e) {
             exchange.setException(e);
         }
 
         if (sync) {
-            // callback was not in use, so we must done it here
+            // callback was not in use, so we must call done here
             callback.done(true);
         }
         return sync;
@@ -169,7 +171,7 @@ public abstract class HeaderSelectorProducer extends 
DefaultAsyncProducer implem
      * Process the result. Will by default set the result as the message body.
      *
      * @param exchange the exchange
-     * @param result   the result (may be null)
+     * @param result   the result (can be null)
      */
     protected void processResult(Exchange exchange, Object result) {
         if (result != null) {
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/OAuthHelper.java 
b/core/camel-support/src/main/java/org/apache/camel/support/OAuthHelper.java
index 912c868d91d3..784c271130ed 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/OAuthHelper.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/OAuthHelper.java
@@ -40,7 +40,7 @@ public final class OAuthHelper {
      * @throws Exception   if the factory is not found or token acquisition 
fails
      */
     public static String resolveOAuthToken(CamelContext context, String 
profileName) throws Exception {
-        OAuthClientAuthenticationFactory factory = 
ResolverHelper.resolveMandatoryService(
+        OAuthClientAuthenticationFactory factory = 
ResolverHelper.resolveMandatoryBootstrapService(
                 context,
                 OAuthClientAuthenticationFactory.FACTORY,
                 OAuthClientAuthenticationFactory.class,
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/ResolverHelper.java 
b/core/camel-support/src/main/java/org/apache/camel/support/ResolverHelper.java
index f39fa11880c2..1695cd6dc7cf 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/ResolverHelper.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/ResolverHelper.java
@@ -166,6 +166,23 @@ public final class ResolverHelper {
                 factoryKey, factoryClass, jarName);
     }
 
+    /**
+     * Create an instance of the given factory using the bootstrap factory 
finder
+     *
+     * @param  camelContext           the {@link CamelContext}
+     * @param  factoryKey             the key used top lookup the factory class
+     * @param  factoryClass           the type of the class
+     * @param  jarName                the JAR to add to the classpath if 
service is missing
+     * @return                        an instance of the given factory
+     * @throws NoSuchServiceException is thrown if service is not found
+     */
+    public static <T> T resolveMandatoryBootstrapService(
+            CamelContext camelContext, String factoryKey, Class<T> 
factoryClass, String jarName)
+            throws NoSuchServiceException {
+        return resolveMandatoryService(camelContext, 
camelContext.getCamelContextExtension().getBootstrapFactoryFinder(),
+                factoryKey, factoryClass, jarName);
+    }
+
     /**
      * Create an instance of the given factory using the default factory finder
      *
@@ -186,6 +203,20 @@ public final class ResolverHelper {
                 factoryKey, factoryClass, false).orElseThrow(() -> new 
NoSuchServiceException(factoryKey, jarName));
     }
 
+    /**
+     * Create an instance of the given factory using the bootstrap factory 
finder.
+     *
+     * @param  camelContext the {@link CamelContext}
+     * @param  factoryKey   the key used top lookup the factory class
+     * @param  factoryClass the type of the class
+     * @return              an instance fo the given factory
+     */
+    public static <T> Optional<T> resolveBootstrapService(
+            CamelContext camelContext, String factoryKey, Class<T> 
factoryClass) {
+        FactoryFinder ff = 
camelContext.getCamelContextExtension().getBootstrapFactoryFinder();
+        return doResolveService(camelContext, ff, factoryKey, factoryClass, 
true);
+    }
+
     /**
      * Create an instance of the given factory using the default factory finder
      *
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/resume/AdapterHelper.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/resume/AdapterHelper.java
index 3f9acbb160d5..9943c16e7667 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/resume/AdapterHelper.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/resume/AdapterHelper.java
@@ -17,8 +17,6 @@
 
 package org.apache.camel.support.resume;
 
-import java.util.Optional;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.resume.Cacheable;
@@ -27,7 +25,7 @@ import org.apache.camel.resume.ResumeAware;
 import org.apache.camel.resume.ResumeStrategy;
 import org.apache.camel.resume.ResumeStrategyConfiguration;
 import org.apache.camel.resume.cache.ResumeCache;
-import org.apache.camel.spi.FactoryFinder;
+import org.apache.camel.support.ResolverHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -45,18 +43,8 @@ public final class AdapterHelper {
         assert resumeStrategy != null;
 
         LOG.debug("Using the factory finder to search for the resume adapter");
-        final FactoryFinder factoryFinder
-                = 
context.getCamelContextExtension().getFactoryFinder(FactoryFinder.DEFAULT_PATH);
-
-        LOG.debug("Creating a new resume adapter");
-        Optional<ResumeAdapter> adapterOptional
-                = 
factoryFinder.newInstance(resumeAware.adapterFactoryService(), 
ResumeAdapter.class);
-
-        if (adapterOptional.isEmpty()) {
-            throw new RuntimeCamelException("Cannot find a resume adapter 
class in the consumer classpath or in the registry");
-        }
-
-        final ResumeAdapter resumeAdapter = adapterOptional.get();
+        ResumeAdapter resumeAdapter = 
ResolverHelper.resolveMandatoryBootstrapService(context,
+                resumeAware.adapterFactoryService(), ResumeAdapter.class, 
null);
         LOG.debug("Using the acquired resume adapter: {}", 
resumeAdapter.getClass().getName());
 
         if (resumeAdapter instanceof Cacheable cacheableAdapter) {
diff --git 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloadFactoryFinderResolver.java
 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloadFactoryFinderResolver.java
index 0502df7225d3..1381d497d600 100644
--- 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloadFactoryFinderResolver.java
+++ 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloadFactoryFinderResolver.java
@@ -17,7 +17,6 @@
 package org.apache.camel.main.download;
 
 import org.apache.camel.CamelContext;
-import org.apache.camel.impl.engine.BootstrapFactoryFinder;
 import org.apache.camel.spi.ClassResolver;
 import org.apache.camel.spi.FactoryFinder;
 import org.apache.camel.spi.FactoryFinderResolver;
@@ -34,7 +33,7 @@ public class DependencyDownloadFactoryFinderResolver 
implements FactoryFinderRes
 
     @Override
     public FactoryFinder resolveBootstrapFactoryFinder(ClassResolver 
classResolver, String resourcePath) {
-        return new BootstrapFactoryFinder(classResolver, resourcePath);
+        return new DependencyDownloadFactoryFinder(camelContext, 
classResolver, resourcePath, knownDeps);
     }
 
     @Override


Reply via email to