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)

Reply via email to