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


The following commit(s) were added to refs/heads/main by this push:
     new 93de78edbc0e CAMEL-22908: camel-jbang - Add extra files to classpath 
should allow to use relative paths
93de78edbc0e is described below

commit 93de78edbc0e71f266fe9b400924a5bd99403384
Author: Claus Ibsen <[email protected]>
AuthorDate: Mon Jan 26 17:32:09 2026 +0100

    CAMEL-22908: camel-jbang - Add extra files to classpath should allow to use 
relative paths
---
 .../camel/main/util/ExtraFilesClassLoader.java       | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/util/ExtraFilesClassLoader.java
 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/util/ExtraFilesClassLoader.java
index 7e60e8245dff..4f4946d177bb 100644
--- 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/util/ExtraFilesClassLoader.java
+++ 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/util/ExtraFilesClassLoader.java
@@ -21,6 +21,8 @@ import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.List;
 
+import org.apache.camel.util.FileUtil;
+
 /**
  * Classloader used to load the extra files that were present in the CLI 
arguments
  */
@@ -40,10 +42,15 @@ public final class ExtraFilesClassLoader extends 
ClassLoader {
 
     @Override
     public URL getResource(String name) {
-        // clip leading slash
+        // clip leading dot/slash
+        if (name.startsWith("./")) {
+            name = name.substring(2);
+        }
         if (name.startsWith("/")) {
             name = name.substring(1);
         }
+        // compact path in case its relative
+        name = FileUtil.compactPath(name);
         for (String f : files) {
             String source = f;
             // deal with adding files to classpath that are in 
src/main/resources
@@ -60,6 +67,17 @@ public final class ExtraFilesClassLoader extends ClassLoader 
{
                 }
             }
         }
+        // fallback to match by name only
+        for (String f : files) {
+            String source = FileUtil.stripPath(f);
+            if (name.equals(source)) {
+                try {
+                    return new File(f).toURI().toURL();
+                } catch (MalformedURLException e) {
+                    // ignore
+                }
+            }
+        }
         return null;
     }
 

Reply via email to