confluentinc / common

Common utilities library containing metrics, config and utils
Apache License 2.0
1 stars 241 forks source link

CCMSG-2462: netty-bom version should be picked up from `netty.version` property #604

Closed vbalani002 closed 2 months ago

vbalani002 commented 2 months ago

Problem

Downstream projects, like newwave, designate netty-all:${netty.version} as a dependency. However, the dependencies sourced from netty-all share versions defined by netty-bom in the common pom.

Example:

In newwave repo:
> mvn dependency:tree
...
+- io.netty:netty-all:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-buffer:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-codec:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-codec-dns:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-codec-haproxy:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-codec-http:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-codec-http2:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-codec-memcache:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-codec-mqtt:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-codec-redis:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-codec-smtp:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-codec-socks:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-codec-stomp:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-codec-xml:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-common:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-handler:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-transport-native-unix-common:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-handler-proxy:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-handler-ssl-ocsp:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-resolver:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-resolver-dns:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-transport:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-transport-rxtx:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-transport-sctp:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-transport-udt:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-transport-classes-epoll:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-transport-classes-kqueue:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-resolver-dns-classes-macos:jar:4.1.100.Final:compile
[INFO] |  +- io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.1.100.Final:runtime
[INFO] |  +- io.netty:netty-transport-native-epoll:jar:linux-aarch_64:4.1.100.Final:runtime
[INFO] |  +- io.netty:netty-transport-native-epoll:jar:linux-riscv64:4.1.108.Final:runtime
[INFO] |  +- io.netty:netty-transport-native-kqueue:jar:osx-x86_64:4.1.100.Final:runtime
[INFO] |  +- io.netty:netty-transport-native-kqueue:jar:osx-aarch_64:4.1.100.Final:runtime
[INFO] |  +- io.netty:netty-resolver-dns-native-macos:jar:osx-x86_64:4.1.100.Final:runtime
[INFO] |  \- io.netty:netty-resolver-dns-native-macos:jar:osx-aarch_64:4.1.100.Final:runtime
...

Solution

Enforce the version of netty-bom to be equal to the value defined in netty.version property

Testing

Verification done on local machine:

In confluentinc/common
> mvn clean install

In confluentinc/newwave, 
> mvn dependency:tree
+- io.netty:netty-all:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-buffer:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-codec:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-codec-dns:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-codec-haproxy:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-codec-http:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-codec-http2:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-codec-memcache:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-codec-mqtt:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-codec-redis:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-codec-smtp:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-codec-socks:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-codec-stomp:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-codec-xml:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-common:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-handler:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-transport-native-unix-common:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-handler-proxy:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-handler-ssl-ocsp:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-resolver:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-resolver-dns:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-transport:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-transport-rxtx:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-transport-sctp:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-transport-udt:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-transport-classes-epoll:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-transport-classes-kqueue:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-resolver-dns-classes-macos:jar:4.1.108.Final:compile
[INFO] |  +- io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.1.108.Final:runtime
[INFO] |  +- io.netty:netty-transport-native-epoll:jar:linux-aarch_64:4.1.108.Final:runtime
[INFO] |  +- io.netty:netty-transport-native-epoll:jar:linux-riscv64:4.1.108.Final:runtime
[INFO] |  +- io.netty:netty-transport-native-kqueue:jar:osx-x86_64:4.1.108.Final:runtime
[INFO] |  +- io.netty:netty-transport-native-kqueue:jar:osx-aarch_64:4.1.108.Final:runtime
[INFO] |  +- io.netty:netty-resolver-dns-native-macos:jar:osx-x86_64:4.1.108.Final:runtime
[INFO] |  \- io.netty:netty-resolver-dns-native-macos:jar:osx-aarch_64:4.1.108.Final:runtime
cla-assistant[bot] commented 2 months ago

CLA assistant check
All committers have signed the CLA.

cla-assistant[bot] commented 2 months ago

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

janjwerner-confluent commented 2 months ago

Change looks good to me, however it should be against 6.2.x not 6.0.x