Peter Laird created TINKERPOP-3067:
--------------------------------------
Summary: gremlin-shaded incomplete shading due to Jackson
multi-release classes
Key: TINKERPOP-3067
URL: https://issues.apache.org/jira/browse/TINKERPOP-3067
Project: TinkerPop
Issue Type: Bug
Components: build-release
Affects Versions: 3.7.1
Environment: JVM
Reporter: Peter Laird
gremlin-shaded is using the Maven shade plugin to package the release jar.
Unfortunately, it isn't configured to handle the Jackson multi-release classes,
so the shading is incomplete. You can see that by inspecting the contents of
the jar (focusing on just {{{}FastIntegerMath below){}}}:
{{% jar -tvf gremlin-shaded-3.7.1.jar}}
{{...}}
{{org/apache/tinkerpop/shaded/jackson/core/io/doubleparser/FastIntegerMath.class}}
{{META-INF/versions/11/com/fasterxml/jackson/core/io/doubleparser/FastIntegerMath.class}}
{{META-INF/versions/17/com/fasterxml/jackson/core/io/doubleparser/FastIntegerMath.class}}
{{META-INF/versions/19/com/fasterxml/jackson/core/io/doubleparser/FastIntegerMath.class}}
{{...}}
Notice how the shading is only applied to the default version of the class. The
multi-release classes are not being shaded. This, in our case, is causing
classpath conflicts with our chosen Jackson version.
The shading config is here:
[https://github.com/apache/tinkerpop/blob/master/gremlin-shaded/pom.xml#L60]
According to stackoverflow, the shading plugin has a multi-release option:
https://stackoverflow.com/questions/53049346/is-log4j2-compatible-with-java-11/54713830#54713830
--
This message was sent by Atlassian Jira
(v8.20.10#820010)