This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch backport/CAMEL-23547-to-camel-4.18.x in repository https://gitbox.apache.org/repos/asf/camel.git
commit b82597f83e3808656c0f3b56e434673a8a349605 Author: Claus Ibsen <[email protected]> AuthorDate: Mon May 18 17:17:07 2026 +0200 CAMEL-23547: camel-core - Properties component should eager start custom functions resolver. Same for jbang that has a custom resolver. --- .../properties/DefaultPropertiesFunctionResolver.java | 6 ++++++ .../src/main/java/org/apache/camel/main/KameletMain.java | 11 ++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/core/camel-base/src/main/java/org/apache/camel/component/properties/DefaultPropertiesFunctionResolver.java b/core/camel-base/src/main/java/org/apache/camel/component/properties/DefaultPropertiesFunctionResolver.java index a88f42816b02..77bc55be887b 100644 --- a/core/camel-base/src/main/java/org/apache/camel/component/properties/DefaultPropertiesFunctionResolver.java +++ b/core/camel-base/src/main/java/org/apache/camel/component/properties/DefaultPropertiesFunctionResolver.java @@ -122,6 +122,12 @@ public class DefaultPropertiesFunctionResolver extends ServiceSupport return factoryFinder.findClass(name).orElse(null); } + @Override + protected void doBuild() throws Exception { + super.doBuild(); + ServiceHelper.buildService(functions.values()); + } + @Override protected void doInit() throws Exception { functions.values().forEach(f -> CamelContextAware.trySetCamelContext(f, camelContext)); 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 4aa9561ff965..20ac4c79f1fa 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 @@ -450,7 +450,10 @@ public class KameletMain extends MainCommandLineSupport { setupExport(answer, export); } else { PropertiesComponent pc = (PropertiesComponent) answer.getPropertiesComponent(); - pc.setPropertiesFunctionResolver(new DependencyDownloaderPropertiesFunctionResolver(answer, false)); + // create resolver that can download dependencies for known functions + var resolver = new DependencyDownloaderPropertiesFunctionResolver(answer, false); + resolver.start(); + pc.setPropertiesFunctionResolver(resolver); } // groovy scripts @@ -788,8 +791,10 @@ public class KameletMain extends MainCommandLineSupport { addInitialProperty("camel.component.properties.ignore-missing-location", "true"); PropertiesComponent pc = (PropertiesComponent) answer.getPropertiesComponent(); pc.setPropertiesParser(new ExportPropertiesParser(answer)); - pc.setPropertiesFunctionResolver(new DependencyDownloaderPropertiesFunctionResolver(answer, export)); - + // create resolver that can download dependencies for known functions + var resolver = new DependencyDownloaderPropertiesFunctionResolver(answer, export); + resolver.start(); + pc.setPropertiesFunctionResolver(resolver); // override default type converters with our export converter that is more flexible during exporting ExportTypeConverter ec = new ExportTypeConverter(); answer.getTypeConverterRegistry().setTypeConverterExists(TypeConverterExists.Override);
