You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2025/07/21 09:40:39 UTC

(camel) branch main updated: camel-groovy: Set application context ClassLoader as GroovyScriptClassLoader parent if present

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

jamesnetherton 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 4dc7f8929d7 camel-groovy: Set application context ClassLoader as GroovyScriptClassLoader parent if present
4dc7f8929d7 is described below

commit 4dc7f8929d75d0ecd7c49519b99bebf79e15baf2
Author: James Netherton <ja...@gmail.com>
AuthorDate: Mon Jul 21 10:13:00 2025 +0100

    camel-groovy: Set application context ClassLoader as GroovyScriptClassLoader parent if present
---
 .../apache/camel/language/groovy/DefaultGroovyScriptCompiler.java  | 7 ++++++-
 .../org/apache/camel/language/groovy/GroovyScriptClassLoader.java  | 4 ++++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/components/camel-groovy/src/main/java/org/apache/camel/language/groovy/DefaultGroovyScriptCompiler.java b/components/camel-groovy/src/main/java/org/apache/camel/language/groovy/DefaultGroovyScriptCompiler.java
index 15a6059aab3..9ce556ef9a5 100644
--- a/components/camel-groovy/src/main/java/org/apache/camel/language/groovy/DefaultGroovyScriptCompiler.java
+++ b/components/camel-groovy/src/main/java/org/apache/camel/language/groovy/DefaultGroovyScriptCompiler.java
@@ -159,7 +159,12 @@ public class DefaultGroovyScriptCompiler extends ServiceSupport
             // use existing class loader if available
             classLoader = (GroovyScriptClassLoader) context.getClassResolver().getClassLoader("GroovyScriptClassLoader");
             if (classLoader == null) {
-                classLoader = new GroovyScriptClassLoader();
+                ClassLoader applicationContextClassLoader = context.getApplicationContextClassLoader();
+                if (applicationContextClassLoader != null) {
+                    classLoader = new GroovyScriptClassLoader(applicationContextClassLoader);
+                } else {
+                    classLoader = new GroovyScriptClassLoader();
+                }
                 context.getClassResolver().addClassLoader(classLoader);
                 // make classloader available for groovy language
                 context.getCamelContextExtension().addContextPlugin(GroovyScriptClassLoader.class, classLoader);
diff --git a/components/camel-groovy/src/main/java/org/apache/camel/language/groovy/GroovyScriptClassLoader.java b/components/camel-groovy/src/main/java/org/apache/camel/language/groovy/GroovyScriptClassLoader.java
index 638b17cb416..caecdcd78e8 100644
--- a/components/camel-groovy/src/main/java/org/apache/camel/language/groovy/GroovyScriptClassLoader.java
+++ b/components/camel-groovy/src/main/java/org/apache/camel/language/groovy/GroovyScriptClassLoader.java
@@ -33,6 +33,10 @@ public class GroovyScriptClassLoader extends ClassLoader implements Closeable {
         super(GroovyScriptClassLoader.class.getClassLoader());
     }
 
+    public GroovyScriptClassLoader(ClassLoader parent) {
+        super(parent);
+    }
+
     @Override
     public String getName() {
         return "GroovyScriptClassLoader";