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

commit 7379a54bae979e6a7cabf6f5850a89dc1727ac55
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Fri May 17 16:42:21 2024 +0200

    Make camel-java-dsl more flexible for parent classloader that other 
runtimes like SB/Quarkus may need to provide in a custom way.
---
 .../org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoader.java  | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git 
a/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoader.java
 
b/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoader.java
index 1021b543861..317693f93bd 100644
--- 
a/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoader.java
+++ 
b/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoader.java
@@ -195,7 +195,7 @@ public class JavaRoutesBuilderLoader extends 
ExtendedRouteBuilderLoaderSupport {
         }
 
         // include classloader from Camel, so we can load any already compiled 
and loaded classes
-        ClassLoader parent = 
MethodHandles.lookup().lookupClass().getClassLoader();
+        ClassLoader parent = resolveParentClassLoader();
         if (parent instanceof URLClassLoader ucl) {
             ClassLoader cl = new CamelJoorClassLoader(ucl, getCamelContext());
             unit.withClassLoader(cl);
@@ -221,6 +221,13 @@ public class JavaRoutesBuilderLoader extends 
ExtendedRouteBuilderLoaderSupport {
         return result;
     }
 
+    /**
+     * Resolves the parent {@link ClassLoader} to use for compilation.
+     */
+    protected ClassLoader resolveParentClassLoader() {
+        return MethodHandles.lookup().lookupClass().getClassLoader();
+    }
+
     @Override
     protected void doShutdown() throws Exception {
         compiled.clear();

Reply via email to