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;
}