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-spring-boot.git
The following commit(s) were added to refs/heads/main by this push:
new cf3ec26827d CAMEL-20148: Discover resources on classpath (#1028)
cf3ec26827d is described below
commit cf3ec26827d3d805a48fd69a97f24868deb5e0bb
Author: Federico Mariani <[email protected]>
AuthorDate: Thu Nov 30 17:34:36 2023 +0100
CAMEL-20148: Discover resources on classpath (#1028)
---
.../boot/FatJarPackageScanResourceResolver.java | 33 ++++++++++++++++++++++
.../src/test/resources/BOOT-MANIFEST.MF | 2 +-
2 files changed, 34 insertions(+), 1 deletion(-)
diff --git
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/FatJarPackageScanResourceResolver.java
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/FatJarPackageScanResourceResolver.java
index 3d68a356a42..e0675813306 100644
---
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/FatJarPackageScanResourceResolver.java
+++
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/FatJarPackageScanResourceResolver.java
@@ -18,11 +18,17 @@ package org.apache.camel.spring.boot;
import org.apache.camel.impl.engine.DefaultPackageScanResourceResolver;
import org.apache.camel.util.IOHelper;
+import org.apache.camel.util.StringHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.io.InputStream;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.net.URLDecoder;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.jar.JarEntry;
@@ -82,6 +88,33 @@ public class FatJarPackageScanResourceResolver extends
DefaultPackageScanResourc
return entries;
}
+ protected String parseUrlPath(URL url) {
+ String urlPath = url.getFile();
+ urlPath = URLDecoder.decode(urlPath, StandardCharsets.UTF_8);
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Decoded urlPath: {} with protocol: {}", urlPath,
url.getProtocol());
+ }
+
+ String nested = "nested:";
+
+ if (urlPath.startsWith(nested)) {
+ try {
+ urlPath = (new URI(url.getFile())).getPath();
+
+ return StringHelper.before(urlPath, "!", urlPath);
+ } catch (URISyntaxException var4) {
+ }
+
+ if (urlPath.startsWith(nested)) {
+ urlPath = urlPath.substring(nested.length());
+
+ return StringHelper.before(urlPath, "!", urlPath);
+ }
+ }
+
+ return super.parseUrlPath(url);
+ }
+
private boolean isSpringBootNestedJar(String name) {
// Supporting both versions of the packaging model
return name.endsWith(".jar") &&
(name.startsWith(SPRING_BOOT_CLASSIC_LIB_ROOT) ||
name.startsWith(SPRING_BOOT_BOOT_INF_LIB_ROOT) ||
name.startsWith(SPRING_BOOT_WEB_INF_LIB_ROOT));
diff --git a/tests/camel-itest-spring-boot/src/test/resources/BOOT-MANIFEST.MF
b/tests/camel-itest-spring-boot/src/test/resources/BOOT-MANIFEST.MF
index b8f139f8b7a..5efe7e8ecf3 100644
--- a/tests/camel-itest-spring-boot/src/test/resources/BOOT-MANIFEST.MF
+++ b/tests/camel-itest-spring-boot/src/test/resources/BOOT-MANIFEST.MF
@@ -1,3 +1,3 @@
Manifest-Version: 1.0
-Main-Class: org.springframework.boot.loader.JarLauncher
+Main-Class: org.springframework.boot.loader.launch.JarLauncher
Start-Class: org.apache.camel.itest.springboot.ITestApplication