You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2022/03/06 08:24:59 UTC

[camel-spring-boot] branch main updated: CAMEL-17738: camel-spring-boot - Cannot load resources from nested jar inside spring boot fat jar. Thanks to Brad Harvey for reporting and the suggested fix.

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 9f9ef38  CAMEL-17738: camel-spring-boot - Cannot load resources from nested jar inside spring boot fat jar. Thanks to Brad Harvey for reporting and the suggested fix.
9f9ef38 is described below

commit 9f9ef38a69fdf96947ecdfadb4fa7f42a6de8835
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sun Mar 6 09:22:39 2022 +0100

    CAMEL-17738: camel-spring-boot - Cannot load resources from nested jar inside spring boot fat jar. Thanks to Brad Harvey for reporting and the suggested fix.
---
 .../boot/FatJarPackageScanResourceResolver.java       | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

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 760a1a0..249d294 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
@@ -45,8 +45,6 @@ public class FatJarPackageScanResourceResolver extends DefaultPackageScanResourc
 
     protected List<String> doLoadImplementationsInJar(String packageName, InputStream stream, String urlPath,
                                                       boolean inspectNestedJars, boolean closeStream) {
-
-
         List<String> entries = new ArrayList<>();
 
         JarInputStream jarStream = null;
@@ -55,21 +53,18 @@ public class FatJarPackageScanResourceResolver extends DefaultPackageScanResourc
 
             JarEntry entry;
             while ((entry = jarStream.getNextJarEntry()) != null) {
-                String name = entry.getName();
-
-                name = name.trim();
-                if (!entry.isDirectory() && !name.endsWith(".class")) {
+                String name = entry.getName().trim();
+                if (inspectNestedJars && !entry.isDirectory() && isSpringBootNestedJar(name)) {
+                    String nestedUrl = urlPath + "!/" + name;
+                    log.trace("Inspecting nested jar: {}", nestedUrl);
+                    List<String> nestedEntries = doLoadImplementationsInJar(packageName, jarStream, nestedUrl, false, false);
+                    entries.addAll(nestedEntries);
+                } else if (!entry.isDirectory() && !name.endsWith(".class")) {
                     name = cleanupSpringBootClassName(name);
                     // name is FQN so it must start with package name
                     if (name.startsWith(packageName)) {
                         entries.add(name);
                     }
-                } else if (inspectNestedJars && !entry.isDirectory() && isSpringBootNestedJar(name)) {
-                    String nestedUrl = urlPath + "!/" + name;
-                    log.trace("Inspecting nested jar: {}", nestedUrl);
-
-                    List<String> nestedEntries = doLoadImplementationsInJar(packageName, jarStream, nestedUrl, false, false);
-                    entries.addAll(nestedEntries);
                 }
             }
         } catch (IOException ioe) {