Jarjar shouldn't mangle classes when no meaningful transformation applied #52
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.
In case big module and all it dependent jars are going through jarjar shading, there will probably be dependent jars which are not actually modified by shading.
However because they go through jarjar, it unpacks, revisits, and repacks the class back resulting a technically different class from before shading (even class size can be different from original). This upsets classpath checkers (i.e. checking that runtime classpath has at most 1 unique class version).
I propose to add a change so that jarjar can detect whether the meaningful transformation to class file has happened and if not, the class is unmodified.
This pull request introduces following new concepts:
The existing classes change as follows:
Added coverage for the proposed new functionality in UnmodifiedTest.
Closes: #47