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

Reply via email to