You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "Peter Laird (Jira)" <ji...@apache.org> on 2024/04/03 00:42:00 UTC
[jira] [Created] (TINKERPOP-3067) gremlin-shaded incomplete shading due to Jackson multi-release classes
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)