From 176aeaa7cfd4c3deed97a20a860b5854ea2f27e7 Mon Sep 17 00:00:00 2001 From: Alan Hazelton Date: Mon, 18 Mar 2024 11:45:49 -0400 Subject: [PATCH] Fix for #18 nested jar syntax support --- src/main/java/com/goterl/resourceloader/ResourceLoader.java | 4 ++++ .../java/com/goterl/resourceloader/ResourceLoaderTest.java | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/main/java/com/goterl/resourceloader/ResourceLoader.java b/src/main/java/com/goterl/resourceloader/ResourceLoader.java index bcf6ff3..345051b 100644 --- a/src/main/java/com/goterl/resourceloader/ResourceLoader.java +++ b/src/main/java/com/goterl/resourceloader/ResourceLoader.java @@ -616,6 +616,10 @@ private static URL getPathToTheNestedJar(String url) { if (url.endsWith("/")) { url = url.replaceAll("\\/*$", ""); } + if (url.startsWith("nested:")) { + // The nested syntax looks something like "nested:/app/appName.jar/!BOOT-INF/lib/lazysodium-java-5.1.4.jar" + url = url.replace("nested:", "file:").replace("/!", "/"); + } try { // This should result in something like // file:/C:/app.jar/lazysodium.jar diff --git a/src/test/java/com/goterl/resourceloader/ResourceLoaderTest.java b/src/test/java/com/goterl/resourceloader/ResourceLoaderTest.java index 988ce3c..1aea82a 100644 --- a/src/test/java/com/goterl/resourceloader/ResourceLoaderTest.java +++ b/src/test/java/com/goterl/resourceloader/ResourceLoaderTest.java @@ -46,6 +46,10 @@ public static Object[][] jarUrls() { { "jar:file:/app/target/app-0.0.1-SNAPSHOT.jar!/BOOT-INF/lib/lazysodium-java-5.0.1.jar!/", "file:/app/target/app-0.0.1-SNAPSHOT.jar/BOOT-INF/lib/lazysodium-java-5.0.1.jar" + }, + { + "nested:/app/target/app-0.0.1-SNAPSHOT.jar!/BOOT-INF/lib/lazysodium-java-5.0.1.jar", + "file:/app/target/app-0.0.1-SNAPSHOT.jar/BOOT-INF/lib/lazysodium-java-5.0.1.jar" } }; }