Make DefaultClassPathResourceLoader
handle URLs with format jar:file:/{JAR_PATH}!/{PREFIX}!/{RESOURCE}
gracefully
#10092
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Context:
Some class loaders, such as Spring Boot's
LaunchedURLClassLoader
which is used by Grails, resolve resources located inside a JAR file asjar:file:/{JAR_PATH}!/{PREFIX}!/{RESOURCE}
.For example:
application.yml
jar:file:/path/to/the/jar/file.war!/WEB-INF/classes!/application.yml
When Micronaut's resource loader tries to get
application.yml
as a stream from the file system, it fails with:This PR makes sure these URLs hare handled gracefully if the resource is not found at the default location (ie. it will retrieve
WEB-INF/classes/application.yml
instead ofapplication.yml
).Related issues: