Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
3.4.5
-
None
Description
gremlin-shaded.jar contains a couple of service descriptors inherited from Jackson:
META-INF/services/com.fasterxml.jackson.core.JsonFactory META-INF/services/com.fasterxml.jackson.core.ObjectCodec
They still reference unshaded classes, for example in the first one:
com.fasterxml.jackson.core.JsonFactory
This creates a problem if the JAR is used as an automatic module in a JPMS application. The module system tries to convert the files into provides directives in the dynamically generated module descriptor, but it checks for the existence of the types in the process:
Error occurred during initialization of boot layer java.lang.module.FindException: Unable to derive module descriptor for /path/to/gremlin-shaded-3.4.5.jar Caused by: java.lang.module.InvalidModuleDescriptorException: Provider class com.fasterxml.jackson.core.JsonFactory not in module
I didn't find a way to work around this error without modifying the JAR.
I think the best approach would be to filter out those files during the shading process. They were wrong anyway, so it's unlikely that anyone will miss them.
Attachments
Issue Links
- links to