fix: replacing the system classloader prevents instrumentation #320
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.
mockito-inline relies on instrumentation to mock static methods, this does not seem to be possible when the classloader is overridden because it does not implement the required methods
Pull request #260 was introduced to solve the problem when the classpath is too big to fit in the shell environment.
Since Java 9 it is possible to use argument file expanded by the java process, use this native feature instead of a custom classloader
https://docs.oracle.com/en/java/javase/15/docs/specs/man/java.html#java-command-line-argument-files
Introduced ClasspathArgumentBuilder to the pre Java 9 case (use standard arguments) and post Java 9 (use an argument file)
Fixes #319