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

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


The following commit(s) were added to refs/heads/camel-4.18.x by this push:
     new 0da0d53278cf CAMEL-23547: camel-core - Properties component should 
eager start custom functions resolver. Same for jbang that has a custom 
resolver. (#23303)
0da0d53278cf is described below

commit 0da0d53278cfb7cd18084bc8dfc738d9d26324e9
Author: Claus Ibsen <[email protected]>
AuthorDate: Mon May 18 18:51:03 2026 +0200

    CAMEL-23547: camel-core - Properties component should eager start custom 
functions resolver. Same for jbang that has a custom resolver. (#23303)
---
 .../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);

Reply via email to