fix: Add Automatic-Module-Name to MANIFEST.MF for JDK9+ module compatibility #953
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.
Change Description
This change allows applications that use Java 9+ modules to depend on the socketFactory without having to move to a newer Java version for compilation. See this article for more info on how this works.
Including a jar in the module path where
Automatic-Module-Name
isn't in the manifest will lead to the module name being derived from the jar file name which, for some of our packages, is an illegal module name because it has a number in it. Renaming the jar file will get it to work, but a better fix is updating theAutomatic-Module-Name
in the manifest.For the module name, Let's go with
com.google.cloud.sql
since that's the prefix for all of our groupIDs, and nobody else at Google uses it. There was a discussion in the Guava PR about how Google packages should handle automatic module names which discusses best practices: google/guava#2846Relevant issues: