mockserver icon indicating copy to clipboard operation
mockserver copied to clipboard

netty-tcnative included in shaded jar causes problem with mixed netty versions

Open flozano opened this issue 2 years ago • 0 comments

Describe the issue The issue is that netty-tcnative can not be effectively shaded, but it's being included in the shaded jar.

./META-INF/native/libnetty_tcnative_linux_x86_64.so
./META-INF/native/libnetty_tcnative_osx_aarch_64.jnilib
./META-INF/native/netty_tcnative_windows_x86_64.dll
./META-INF/native/libnetty_tcnative_linux_aarch_64.so
./META-INF/native/libnetty_tcnative_osx_x86_64.jnilib

those native/* libs are causing trouble when mixing netty versions.

What you are trying to do I'm trying to move from using the mockserver-netty dependency to the mockserver-netty-no-dependencies artifact, so that I can upgrade libraries (eg: json-unit to 3.0.0) without causing trouble to mockserver itself.

MockServer version 5.15.0

To Reproduce use a newer netty-tcnative version together with mockserver-netty-no-dependencies.

  1. Running as JUnit with manual instantiation

Expected behaviour I would expect netty-tcnative not to be included in the shaded jar, nor any other native lib, as those cannot be shaded properly the same as other JARs (not sure if there are different techniques to relocate such resources...).

netty is a very common dependency, and it will be a common case unfortunately.

flozano avatar Jul 21 '23 10:07 flozano