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();