This is an automated email from the ASF dual-hosted git repository.

lhotari pushed a commit to branch branch-4.17
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git

commit f5dfd89fad360f8a7af86e831709367aaecf145d
Author: Lari Hotari <[email protected]>
AuthorDate: Thu Jun 13 10:23:50 2024 +0300

    Upgrade to Netty 4.1.111.Final and switch to use grpc-netty-shaded (#4426)
    
    [Netty 4.1.111.Final](https://netty.io/news/2024/06/11/4-1-111-Final.html) 
contains important fixes:
    - https://github.com/netty/netty/pull/14086
    - https://github.com/netty/netty/pull/14093
    
    On the Pulsar side these address Broker stability when TLS with Bookkeeper 
V2 protocol is used between Broker and Bookies. The Bookkeeper client didn't 
contain a workaround for the Netty SslHandler "feature" like Pulsar did. That's 
why Bookkeeper client was impacted. Netty 4.1.111.Final will address those 
stability issues with the Bookkeeper client when using V2 protocol over TLS.
    
    - Upgrade Netty to 4.1.111.Final
    - Switch to use grpc-netty-shaded instead of grpc-netty
      - grpc-java is not compatible with Netty 4.1.111.Final. [grpc-java 
supports only specific Netty 
versions](https://github.com/grpc/grpc-java/blob/master/SECURITY.md#netty). The 
solution is to use grpc-netty-shaded instead of grpc-netty dependency.
    - Add module to shade jetcd-core partially so that it can work with 
grpc-netty-shaded.
      - jetcd-core library and it's transient dependency vertx-grpc has a 
direct dependency on grpc-netty and it doesn't work with grpc-netty-shaded 
without this solution.
      - this solution avoids the need to shade grpc libraries completely which 
would cause a lot of duplication and increase build times.
    
    (cherry picked from commit a95f6982c25bf1114c1a2262067e45b45f6d7102)
---
 .../src/main/resources/LICENSE-all.bin.txt         |  92 +++++-----
 .../src/main/resources/LICENSE-bkctl.bin.txt       |  84 +++++----
 .../src/main/resources/LICENSE-server.bin.txt      |  92 +++++-----
 .../src/main/resources/NOTICE-all.bin.txt          |  34 ++--
 .../src/main/resources/NOTICE-bkctl.bin.txt        |  26 ++-
 .../src/main/resources/NOTICE-server.bin.txt       |  34 ++--
 metadata-drivers/etcd/pom.xml                      |  37 ++--
 metadata-drivers/jetcd-core-shaded/pom.xml         | 196 +++++++++++++++++++++
 metadata-drivers/pom.xml                           |   1 +
 pom.xml                                            |  56 +++++-
 .../bookkeeper/grpc/resolver/GrpcChannelsTest.java |   2 +-
 .../bookkeeper/clients/utils/GrpcChannelsTest.java |   2 +-
 stream/common/pom.xml                              |  27 +--
 stream/tests-common/pom.xml                        |  30 +---
 14 files changed, 456 insertions(+), 257 deletions(-)

diff --git a/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt 
b/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
index c5f8dd4b9f..815867bbcf 100644
--- a/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
+++ b/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
@@ -217,17 +217,17 @@ Apache Software License, Version 2.
 - lib/commons-io-commons-io-2.7.jar [8]
 - lib/commons-lang-commons-lang-2.6.jar [9]
 - lib/commons-logging-commons-logging-1.1.1.jar [10]
-- lib/io.netty-netty-buffer-4.1.108.Final.jar [11]
-- lib/io.netty-netty-codec-4.1.108.Final.jar [11]
-- lib/io.netty-netty-codec-dns-4.1.108.Final.jar [11]
-- lib/io.netty-netty-codec-http-4.1.108.Final.jar [11]
-- lib/io.netty-netty-codec-http2-4.1.108.Final.jar [11]
-- lib/io.netty-netty-codec-socks-4.1.108.Final.jar [11]
-- lib/io.netty-netty-common-4.1.108.Final.jar [11]
-- lib/io.netty-netty-handler-4.1.108.Final.jar [11]
-- lib/io.netty-netty-handler-proxy-4.1.108.Final.jar [11]
-- lib/io.netty-netty-resolver-4.1.108.Final.jar [11]
-- lib/io.netty-netty-resolver-dns-4.1.108.Final.jar [11]
+- lib/io.netty-netty-buffer-4.1.111.Final.jar [11]
+- lib/io.netty-netty-codec-4.1.111.Final.jar [11]
+- lib/io.netty-netty-codec-dns-4.1.111.Final.jar [11]
+- lib/io.netty-netty-codec-http-4.1.111.Final.jar [11]
+- lib/io.netty-netty-codec-http2-4.1.111.Final.jar [11]
+- lib/io.netty-netty-codec-socks-4.1.111.Final.jar [11]
+- lib/io.netty-netty-common-4.1.111.Final.jar [11]
+- lib/io.netty-netty-handler-4.1.111.Final.jar [11]
+- lib/io.netty-netty-handler-proxy-4.1.111.Final.jar [11]
+- lib/io.netty-netty-resolver-4.1.111.Final.jar [11]
+- lib/io.netty-netty-resolver-dns-4.1.111.Final.jar [11]
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final.jar [11]
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-linux-aarch_64.jar 
[11]
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-linux-x86_64.jar 
[11]
@@ -235,14 +235,14 @@ Apache Software License, Version 2.
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-osx-x86_64.jar [11]
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-windows-x86_64.jar 
[11]
 - lib/io.netty-netty-tcnative-classes-2.0.65.Final.jar [11]
-- lib/io.netty-netty-transport-4.1.108.Final.jar [11]
-- lib/io.netty-netty-transport-classes-epoll-4.1.108.Final.jar [11]
-- lib/io.netty-netty-transport-native-epoll-4.1.108.Final-linux-aarch_64.jar 
[11]
-- lib/io.netty-netty-transport-native-epoll-4.1.108.Final-linux-x86_64.jar [11]
+- lib/io.netty-netty-transport-4.1.111.Final.jar [11]
+- lib/io.netty-netty-transport-classes-epoll-4.1.111.Final.jar [11]
+- lib/io.netty-netty-transport-native-epoll-4.1.111.Final-linux-aarch_64.jar 
[11]
+- lib/io.netty-netty-transport-native-epoll-4.1.111.Final-linux-x86_64.jar [11]
 - 
lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.25.Final-linux-x86_64.jar
 [11]
 - 
lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.25.Final-linux-aarch_64.jar
 [11]
 - 
lib/io.netty.incubator-netty-incubator-transport-classes-io_uring-0.0.25.Final.jar
 [11]
-- lib/io.netty-netty-transport-native-unix-common-4.1.108.Final.jar [11]
+- lib/io.netty-netty-transport-native-unix-common-4.1.111.Final.jar [11]
 - lib/io.prometheus-simpleclient-0.15.0.jar [12]
 - lib/io.prometheus-simpleclient_common-0.15.0.jar [12]
 - lib/io.prometheus-simpleclient_hotspot-0.15.0.jar [12]
@@ -288,9 +288,9 @@ Apache Software License, Version 2.
 - lib/io.grpc-grpc-context-1.56.0.jar [33]
 - lib/io.grpc-grpc-core-1.56.0.jar [33]
 - lib/io.grpc-grpc-grpclb-1.56.0.jar [33]
-- lib/io.grpc-grpc-netty-1.56.0.jar [33]
 - lib/io.grpc-grpc-protobuf-1.56.0.jar [33]
 - lib/io.grpc-grpc-protobuf-lite-1.56.0.jar [33]
+- lib/io.grpc-grpc-netty-shaded-1.56.0.jar [33]
 - lib/io.grpc-grpc-services-1.56.0.jar [33]
 - lib/io.grpc-grpc-stub-1.56.0.jar [33]
 - lib/io.grpc-grpc-testing-1.56.0.jar [33]
@@ -360,7 +360,7 @@ Apache Software License, Version 2.
 [8] Source available at 
https://github.com/apache/commons-io/tree/rel/commons-io-2.7
 [9] Source available at https://github.com/apache/commons-lang/tree/LANG_2_6
 [10] Source available at 
https://github.com/apache/commons-logging/tree/commons-logging-1.1.1
-[11] Source available at 
https://github.com/netty/netty/tree/netty-4.1.108.Final
+[11] Source available at 
https://github.com/netty/netty/tree/netty-4.1.111.Final
 [12] Source available at 
https://github.com/prometheus/client_java/tree/parent-0.15.0
 [13] Source available at https://github.com/vert-x3/vertx-auth/tree/4.3.2
 [14] Source available at 
https://github.com/vert-x3/vertx-bridge-common/tree/4.3.2
@@ -403,9 +403,9 @@ Apache Software License, Version 2.
 [56] Source available at 
https://github.com/JetBrains/kotlin/releases/tag/v1.8.21
 
 
------------------------------------------------------------------------------------
-lib/io.netty-netty-codec-4.1.108.Final.jar bundles some 3rd party dependencies
+lib/io.netty-netty-codec-4.1.111.Final.jar bundles some 3rd party dependencies
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains the extensions to Java 
Collections Framework which has
+lib/io.netty-netty-codec-4.1.111.Final.jar contains the extensions to Java 
Collections Framework which has
 been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene:
 
   * LICENSE:
@@ -414,7 +414,7 @@ been derived from the works by JSR-166 EG, Doug Lea, and 
Jason T. Greene:
     * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
     * 
http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified version of 
Robert Harder's Public Domain
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified version of 
Robert Harder's Public Domain
 Base64 Encoder and Decoder, which can be obtained at:
 
   * LICENSE:
@@ -422,7 +422,7 @@ Base64 Encoder and Decoder, which can be obtained at:
   * HOMEPAGE:
     * http://iharder.sourceforge.net/current/java/base64/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 
'Webbit', an event based
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 
'Webbit', an event based
 WebSocket and HTTP server, which can be obtained at:
 
   * LICENSE:
@@ -430,7 +430,7 @@ WebSocket and HTTP server, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/joewalnes/webbit
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 
'SLF4J', a simple logging
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 
'SLF4J', a simple logging
 facade for Java, which can be obtained at:
 
   * LICENSE:
@@ -438,7 +438,7 @@ facade for Java, which can be obtained at:
   * HOMEPAGE:
     * http://www.slf4j.org/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 
'Apache Harmony', an open source
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 
'Apache Harmony', an open source
 Java SE, which can be obtained at:
 
   * NOTICE:
@@ -448,7 +448,7 @@ Java SE, which can be obtained at:
   * HOMEPAGE:
     * http://archive.apache.org/dist/harmony/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 
'jbzip2', a Java bzip2 compression
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 
'jbzip2', a Java bzip2 compression
 and decompression library written by Matthew J. Francis. It can be obtained at:
 
   * LICENSE:
@@ -456,7 +456,7 @@ and decompression library written by Matthew J. Francis. It 
can be obtained at:
   * HOMEPAGE:
     * https://code.google.com/p/jbzip2/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 
'libdivsufsort', a C API library to construct
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 
'libdivsufsort', a C API library to construct
 the suffix array and the Burrows-Wheeler transformed string for any input 
string of
 a constant-size alphabet written by Yuta Mori. It can be obtained at:
 
@@ -465,7 +465,7 @@ a constant-size alphabet written by Yuta Mori. It can be 
obtained at:
   * HOMEPAGE:
     * https://github.com/y-256/libdivsufsort
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 
Nitsan Wakart's 'JCTools',
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 
Nitsan Wakart's 'JCTools',
 Java Concurrency Tools for the JVM, which can be obtained at:
 
   * LICENSE:
@@ -473,7 +473,7 @@ Java Concurrency Tools for the JVM, which can be obtained 
at:
   * HOMEPAGE:
     * https://github.com/JCTools/JCTools
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'JZlib', a 
re-implementation of zlib in
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'JZlib', a 
re-implementation of zlib in
 pure Java, which can be obtained at:
 
   * LICENSE:
@@ -481,7 +481,7 @@ pure Java, which can be obtained at:
   * HOMEPAGE:
     * http://www.jcraft.com/jzlib/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 
'Compress-LZF', a Java library for encoding and
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 
'Compress-LZF', a Java library for encoding and
 decoding data in LZF format, written by Tatu Saloranta. It can be obtained at:
 
   * LICENSE:
@@ -489,7 +489,7 @@ decoding data in LZF format, written by Tatu Saloranta. It 
can be obtained at:
   * HOMEPAGE:
     * https://github.com/ning/compress
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'lz4', a LZ4 
Java compression
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'lz4', a LZ4 
Java compression
 and decompression library written by Adrien Grand. It can be obtained at:
 
   * LICENSE:
@@ -497,7 +497,7 @@ and decompression library written by Adrien Grand. It can 
be obtained at:
   * HOMEPAGE:
     * https://github.com/jpountz/lz4-java
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'lzma-java', 
a LZMA Java compression
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'lzma-java', 
a LZMA Java compression
 and decompression library, which can be obtained at:
 
   * LICENSE:
@@ -505,7 +505,7 @@ and decompression library, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/jponge/lzma-java
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 
'jfastlz', a Java port of FastLZ compression
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 
'jfastlz', a Java port of FastLZ compression
 and decompression library written by William Kinney. It can be obtained at:
 
   * LICENSE:
@@ -513,7 +513,7 @@ and decompression library written by William Kinney. It can 
be obtained at:
   * HOMEPAGE:
     * https://code.google.com/p/jfastlz/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of and 
optionally depends on 'Protocol Buffers',
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of and 
optionally depends on 'Protocol Buffers',
 Google's data interchange format, which can be obtained at:
 
   * LICENSE:
@@ -521,7 +521,7 @@ Google's data interchange format, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/google/protobuf
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'Bouncy 
Castle Crypto APIs' to generate
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'Bouncy 
Castle Crypto APIs' to generate
 a temporary self-signed X.509 certificate when the JVM does not provide the
 equivalent functionality.  It can be obtained at:
 
@@ -530,7 +530,7 @@ equivalent functionality.  It can be obtained at:
   * HOMEPAGE:
     * http://www.bouncycastle.org/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'Snappy', a 
compression library produced
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'Snappy', a 
compression library produced
 by Google Inc, which can be obtained at:
 
   * LICENSE:
@@ -538,7 +538,7 @@ by Google Inc, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/google/snappy
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'JBoss 
Marshalling', an alternative Java
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'JBoss 
Marshalling', an alternative Java
 serialization API, which can be obtained at:
 
   * LICENSE:
@@ -546,7 +546,7 @@ serialization API, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/jboss-remoting/jboss-marshalling
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'Caliper', 
Google's micro-
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'Caliper', 
Google's micro-
 benchmarking framework, which can be obtained at:
 
   * LICENSE:
@@ -554,7 +554,7 @@ benchmarking framework, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/google/caliper
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'Apache 
Commons Logging', a logging
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'Apache 
Commons Logging', a logging
 framework, which can be obtained at:
 
   * LICENSE:
@@ -562,7 +562,7 @@ framework, which can be obtained at:
   * HOMEPAGE:
     * http://commons.apache.org/logging/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'Apache 
Log4J', a logging framework, which
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'Apache 
Log4J', a logging framework, which
 can be obtained at:
 
   * LICENSE:
@@ -570,7 +570,7 @@ can be obtained at:
   * HOMEPAGE:
     * http://logging.apache.org/log4j/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'Aalto XML', 
an ultra-high performance
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'Aalto XML', 
an ultra-high performance
 non-blocking XML processor, which can be obtained at:
 
   * LICENSE:
@@ -578,7 +578,7 @@ non-blocking XML processor, which can be obtained at:
   * HOMEPAGE:
     * http://wiki.fasterxml.com/AaltoHome
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified version of 
'HPACK', a Java implementation of
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified version of 
'HPACK', a Java implementation of
 the HTTP/2 HPACK algorithm written by Twitter. It can be obtained at:
 
   * LICENSE:
@@ -586,7 +586,7 @@ the HTTP/2 HPACK algorithm written by Twitter. It can be 
obtained at:
   * HOMEPAGE:
     * https://github.com/twitter/hpack
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified version of 
'HPACK', a Java implementation of
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified version of 
'HPACK', a Java implementation of
 the HTTP/2 HPACK algorithm written by Cory Benfield. It can be obtained at:
 
   * LICENSE:
@@ -594,7 +594,7 @@ the HTTP/2 HPACK algorithm written by Cory Benfield. It can 
be obtained at:
   * HOMEPAGE:
     * https://github.com/python-hyper/hpack/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified version of 
'HPACK', a Java implementation of
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified version of 
'HPACK', a Java implementation of
 the HTTP/2 HPACK algorithm written by Tatsuhiro Tsujikawa. It can be obtained 
at:
 
   * LICENSE:
@@ -602,7 +602,7 @@ the HTTP/2 HPACK algorithm written by Tatsuhiro Tsujikawa. 
It can be obtained at
   * HOMEPAGE:
     * https://github.com/nghttp2/nghttp2/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 
'Apache Commons Lang', a Java library
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 
'Apache Commons Lang', a Java library
 provides utilities for the java.lang API, which can be obtained at:
 
   * LICENSE:
@@ -611,7 +611,7 @@ provides utilities for the java.lang API, which can be 
obtained at:
     * https://commons.apache.org/proper/commons-lang/
 
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains the Maven wrapper scripts 
from 'Maven Wrapper',
+lib/io.netty-netty-codec-4.1.111.Final.jar contains the Maven wrapper scripts 
from 'Maven Wrapper',
 that provides an easy way to ensure a user has everything necessary to run the 
Maven build.
 
   * LICENSE:
@@ -619,7 +619,7 @@ that provides an easy way to ensure a user has everything 
necessary to run the M
   * HOMEPAGE:
     * https://github.com/takari/maven-wrapper
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains the dnsinfo.h header file,
+lib/io.netty-netty-codec-4.1.111.Final.jar contains the dnsinfo.h header file,
 that provides a way to retrieve the system DNS configuration on MacOS.
 This private header is also used by Apple's open source
  mDNSResponder (https://opensource.apple.com/tarballs/mDNSResponder/).
diff --git a/bookkeeper-dist/src/main/resources/LICENSE-bkctl.bin.txt 
b/bookkeeper-dist/src/main/resources/LICENSE-bkctl.bin.txt
index 81634e7cc6..00fde71d3f 100644
--- a/bookkeeper-dist/src/main/resources/LICENSE-bkctl.bin.txt
+++ b/bookkeeper-dist/src/main/resources/LICENSE-bkctl.bin.txt
@@ -217,15 +217,11 @@ Apache Software License, Version 2.
 - lib/commons-io-commons-io-2.7.jar [8]
 - lib/commons-lang-commons-lang-2.6.jar [9]
 - lib/commons-logging-commons-logging-1.1.1.jar [10]
-- lib/io.netty-netty-buffer-4.1.108.Final.jar [11]
-- lib/io.netty-netty-codec-4.1.108.Final.jar [11]
-- lib/io.netty-netty-codec-http-4.1.108.Final.jar [11]
-- lib/io.netty-netty-codec-http2-4.1.108.Final.jar [11]
-- lib/io.netty-netty-codec-socks-4.1.108.Final.jar [11]
-- lib/io.netty-netty-common-4.1.108.Final.jar [11]
-- lib/io.netty-netty-handler-4.1.108.Final.jar [11]
-- lib/io.netty-netty-handler-proxy-4.1.108.Final.jar [11]
-- lib/io.netty-netty-resolver-4.1.108.Final.jar [11]
+- lib/io.netty-netty-buffer-4.1.111.Final.jar [11]
+- lib/io.netty-netty-codec-4.1.111.Final.jar [11]
+- lib/io.netty-netty-common-4.1.111.Final.jar [11]
+- lib/io.netty-netty-handler-4.1.111.Final.jar [11]
+- lib/io.netty-netty-resolver-4.1.111.Final.jar [11]
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final.jar [11]
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-linux-aarch_64.jar 
[11]
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-linux-x86_64.jar 
[11]
@@ -233,14 +229,14 @@ Apache Software License, Version 2.
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-osx-x86_64.jar [11]
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-windows-x86_64.jar 
[11]
 - lib/io.netty-netty-tcnative-classes-2.0.65.Final.jar [11]
-- lib/io.netty-netty-transport-4.1.108.Final.jar [11]
-- lib/io.netty-netty-transport-classes-epoll-4.1.108.Final.jar [11]
-- lib/io.netty-netty-transport-native-epoll-4.1.108.Final-linux-aarch_64.jar 
[11]
-- lib/io.netty-netty-transport-native-epoll-4.1.108.Final-linux-x86_64.jar [11]
+- lib/io.netty-netty-transport-4.1.111.Final.jar [11]
+- lib/io.netty-netty-transport-classes-epoll-4.1.111.Final.jar [11]
+- lib/io.netty-netty-transport-native-epoll-4.1.111.Final-linux-aarch_64.jar 
[11]
+- lib/io.netty-netty-transport-native-epoll-4.1.111.Final-linux-x86_64.jar [11]
 - 
lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.25.Final-linux-x86_64.jar
 [11]
 - 
lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.25.Final-linux-aarch_64.jar
 [11]
 - 
lib/io.netty.incubator-netty-incubator-transport-classes-io_uring-0.0.25.Final.jar
 [11]
-- lib/io.netty-netty-transport-native-unix-common-4.1.108.Final.jar [11]
+- lib/io.netty-netty-transport-native-unix-common-4.1.111.Final.jar [11]
 - lib/org.apache.logging.log4j-log4j-api-2.18.0.jar [16]
 - lib/org.apache.logging.log4j-log4j-core-2.18.0.jar [16]
 - lib/org.apache.logging.log4j-log4j-slf4j-impl-2.18.0.jar [16]
@@ -263,9 +259,9 @@ Apache Software License, Version 2.
 - lib/io.grpc-grpc-context-1.56.0.jar [32]
 - lib/io.grpc-grpc-core-1.56.0.jar [32]
 - lib/io.grpc-grpc-grpclb-1.56.0.jar [32]
-- lib/io.grpc-grpc-netty-1.56.0.jar [32]
 - lib/io.grpc-grpc-protobuf-1.56.0.jar [32]
 - lib/io.grpc-grpc-protobuf-lite-1.56.0.jar [32]
+- lib/io.grpc-grpc-netty-shaded-1.56.0.jar [32]
 - lib/io.grpc-grpc-services-1.56.0.jar [32]
 - lib/io.grpc-grpc-stub-1.56.0.jar [32]
 - lib/io.grpc-grpc-testing-1.56.0.jar [32]
@@ -303,7 +299,7 @@ Apache Software License, Version 2.
 [8] Source available at 
https://github.com/apache/commons-io/tree/rel/commons-io-2.7
 [9] Source available at https://github.com/apache/commons-lang/tree/LANG_2_6
 [10] Source available at 
https://github.com/apache/commons-logging/tree/commons-logging-1.1.1
-[11] Source available at 
https://github.com/netty/netty/tree/netty-4.1.108.Final
+[11] Source available at 
https://github.com/netty/netty/tree/netty-4.1.111.Final
 [16] Source available at 
https://github.com/apache/logging-log4j2/tree/rel/2.18.0
 [18] Source available at 
https://github.com/apache/commons-collections/tree/collections-4.1
 [19] Source available at https://github.com/apache/commons-lang/tree/LANG_3_6
@@ -334,9 +330,9 @@ Apache Software License, Version 2.
 [52] Source available at https://github.com/carrotsearch/hppc/tree/0.9.1
 
 
------------------------------------------------------------------------------------
-lib/io.netty-netty-codec-4.1.108.Final.jar bundles some 3rd party dependencies
+lib/io.netty-netty-codec-4.1.111.Final.jar bundles some 3rd party dependencies
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains the extensions to Java 
Collections Framework which has
+lib/io.netty-netty-codec-4.1.111.Final.jar contains the extensions to Java 
Collections Framework which has
 been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene:
 
   * LICENSE:
@@ -345,7 +341,7 @@ been derived from the works by JSR-166 EG, Doug Lea, and 
Jason T. Greene:
     * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
     * 
http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified version of 
Robert Harder's Public Domain
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified version of 
Robert Harder's Public Domain
 Base64 Encoder and Decoder, which can be obtained at:
 
   * LICENSE:
@@ -353,7 +349,7 @@ Base64 Encoder and Decoder, which can be obtained at:
   * HOMEPAGE:
     * http://iharder.sourceforge.net/current/java/base64/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 
'Webbit', an event based
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 
'Webbit', an event based
 WebSocket and HTTP server, which can be obtained at:
 
   * LICENSE:
@@ -361,7 +357,7 @@ WebSocket and HTTP server, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/joewalnes/webbit
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 
'SLF4J', a simple logging
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 
'SLF4J', a simple logging
 facade for Java, which can be obtained at:
 
   * LICENSE:
@@ -369,7 +365,7 @@ facade for Java, which can be obtained at:
   * HOMEPAGE:
     * http://www.slf4j.org/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 
'Apache Harmony', an open source
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 
'Apache Harmony', an open source
 Java SE, which can be obtained at:
 
   * NOTICE:
@@ -379,7 +375,7 @@ Java SE, which can be obtained at:
   * HOMEPAGE:
     * http://archive.apache.org/dist/harmony/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 
'jbzip2', a Java bzip2 compression
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 
'jbzip2', a Java bzip2 compression
 and decompression library written by Matthew J. Francis. It can be obtained at:
 
   * LICENSE:
@@ -387,7 +383,7 @@ and decompression library written by Matthew J. Francis. It 
can be obtained at:
   * HOMEPAGE:
     * https://code.google.com/p/jbzip2/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 
'libdivsufsort', a C API library to construct
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 
'libdivsufsort', a C API library to construct
 the suffix array and the Burrows-Wheeler transformed string for any input 
string of
 a constant-size alphabet written by Yuta Mori. It can be obtained at:
 
@@ -396,7 +392,7 @@ a constant-size alphabet written by Yuta Mori. It can be 
obtained at:
   * HOMEPAGE:
     * https://github.com/y-256/libdivsufsort
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 
Nitsan Wakart's 'JCTools',
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 
Nitsan Wakart's 'JCTools',
 Java Concurrency Tools for the JVM, which can be obtained at:
 
   * LICENSE:
@@ -404,7 +400,7 @@ Java Concurrency Tools for the JVM, which can be obtained 
at:
   * HOMEPAGE:
     * https://github.com/JCTools/JCTools
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'JZlib', a 
re-implementation of zlib in
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'JZlib', a 
re-implementation of zlib in
 pure Java, which can be obtained at:
 
   * LICENSE:
@@ -412,7 +408,7 @@ pure Java, which can be obtained at:
   * HOMEPAGE:
     * http://www.jcraft.com/jzlib/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 
'Compress-LZF', a Java library for encoding and
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 
'Compress-LZF', a Java library for encoding and
 decoding data in LZF format, written by Tatu Saloranta. It can be obtained at:
 
   * LICENSE:
@@ -420,7 +416,7 @@ decoding data in LZF format, written by Tatu Saloranta. It 
can be obtained at:
   * HOMEPAGE:
     * https://github.com/ning/compress
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'lz4', a LZ4 
Java compression
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'lz4', a LZ4 
Java compression
 and decompression library written by Adrien Grand. It can be obtained at:
 
   * LICENSE:
@@ -428,7 +424,7 @@ and decompression library written by Adrien Grand. It can 
be obtained at:
   * HOMEPAGE:
     * https://github.com/jpountz/lz4-java
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'lzma-java', 
a LZMA Java compression
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'lzma-java', 
a LZMA Java compression
 and decompression library, which can be obtained at:
 
   * LICENSE:
@@ -436,7 +432,7 @@ and decompression library, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/jponge/lzma-java
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 
'jfastlz', a Java port of FastLZ compression
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 
'jfastlz', a Java port of FastLZ compression
 and decompression library written by William Kinney. It can be obtained at:
 
   * LICENSE:
@@ -444,7 +440,7 @@ and decompression library written by William Kinney. It can 
be obtained at:
   * HOMEPAGE:
     * https://code.google.com/p/jfastlz/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of and 
optionally depends on 'Protocol Buffers',
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of and 
optionally depends on 'Protocol Buffers',
 Google's data interchange format, which can be obtained at:
 
   * LICENSE:
@@ -452,7 +448,7 @@ Google's data interchange format, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/google/protobuf
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'Bouncy 
Castle Crypto APIs' to generate
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'Bouncy 
Castle Crypto APIs' to generate
 a temporary self-signed X.509 certificate when the JVM does not provide the
 equivalent functionality.  It can be obtained at:
 
@@ -461,7 +457,7 @@ equivalent functionality.  It can be obtained at:
   * HOMEPAGE:
     * http://www.bouncycastle.org/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'Snappy', a 
compression library produced
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'Snappy', a 
compression library produced
 by Google Inc, which can be obtained at:
 
   * LICENSE:
@@ -469,7 +465,7 @@ by Google Inc, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/google/snappy
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'JBoss 
Marshalling', an alternative Java
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'JBoss 
Marshalling', an alternative Java
 serialization API, which can be obtained at:
 
   * LICENSE:
@@ -477,7 +473,7 @@ serialization API, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/jboss-remoting/jboss-marshalling
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'Caliper', 
Google's micro-
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'Caliper', 
Google's micro-
 benchmarking framework, which can be obtained at:
 
   * LICENSE:
@@ -485,7 +481,7 @@ benchmarking framework, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/google/caliper
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'Apache 
Commons Logging', a logging
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'Apache 
Commons Logging', a logging
 framework, which can be obtained at:
 
   * LICENSE:
@@ -493,7 +489,7 @@ framework, which can be obtained at:
   * HOMEPAGE:
     * http://commons.apache.org/logging/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'Apache 
Log4J', a logging framework, which
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'Apache 
Log4J', a logging framework, which
 can be obtained at:
 
   * LICENSE:
@@ -501,7 +497,7 @@ can be obtained at:
   * HOMEPAGE:
     * http://logging.apache.org/log4j/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'Aalto XML', 
an ultra-high performance
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'Aalto XML', 
an ultra-high performance
 non-blocking XML processor, which can be obtained at:
 
   * LICENSE:
@@ -509,7 +505,7 @@ non-blocking XML processor, which can be obtained at:
   * HOMEPAGE:
     * http://wiki.fasterxml.com/AaltoHome
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified version of 
'HPACK', a Java implementation of
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified version of 
'HPACK', a Java implementation of
 the HTTP/2 HPACK algorithm written by Twitter. It can be obtained at:
 
   * LICENSE:
@@ -517,7 +513,7 @@ the HTTP/2 HPACK algorithm written by Twitter. It can be 
obtained at:
   * HOMEPAGE:
     * https://github.com/twitter/hpack
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified version of 
'HPACK', a Java implementation of
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified version of 
'HPACK', a Java implementation of
 the HTTP/2 HPACK algorithm written by Cory Benfield. It can be obtained at:
 
   * LICENSE:
@@ -525,7 +521,7 @@ the HTTP/2 HPACK algorithm written by Cory Benfield. It can 
be obtained at:
   * HOMEPAGE:
     * https://github.com/python-hyper/hpack/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified version of 
'HPACK', a Java implementation of
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified version of 
'HPACK', a Java implementation of
 the HTTP/2 HPACK algorithm written by Tatsuhiro Tsujikawa. It can be obtained 
at:
 
   * LICENSE:
@@ -533,7 +529,7 @@ the HTTP/2 HPACK algorithm written by Tatsuhiro Tsujikawa. 
It can be obtained at
   * HOMEPAGE:
     * https://github.com/nghttp2/nghttp2/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 
'Apache Commons Lang', a Java library
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 
'Apache Commons Lang', a Java library
 provides utilities for the java.lang API, which can be obtained at:
 
   * LICENSE:
@@ -542,7 +538,7 @@ provides utilities for the java.lang API, which can be 
obtained at:
     * https://commons.apache.org/proper/commons-lang/
 
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains the Maven wrapper scripts 
from 'Maven Wrapper',
+lib/io.netty-netty-codec-4.1.111.Final.jar contains the Maven wrapper scripts 
from 'Maven Wrapper',
 that provides an easy way to ensure a user has everything necessary to run the 
Maven build.
 
   * LICENSE:
@@ -550,7 +546,7 @@ that provides an easy way to ensure a user has everything 
necessary to run the M
   * HOMEPAGE:
     * https://github.com/takari/maven-wrapper
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains the dnsinfo.h header file,
+lib/io.netty-netty-codec-4.1.111.Final.jar contains the dnsinfo.h header file,
 that provides a way to retrieve the system DNS configuration on MacOS.
 This private header is also used by Apple's open source
  mDNSResponder (https://opensource.apple.com/tarballs/mDNSResponder/).
diff --git a/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt 
b/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt
index 7e1dc9f021..e0074fa926 100644
--- a/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt
+++ b/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt
@@ -217,17 +217,17 @@ Apache Software License, Version 2.
 - lib/commons-io-commons-io-2.7.jar [8]
 - lib/commons-lang-commons-lang-2.6.jar [9]
 - lib/commons-logging-commons-logging-1.1.1.jar [10]
-- lib/io.netty-netty-buffer-4.1.108.Final.jar [11]
-- lib/io.netty-netty-codec-4.1.108.Final.jar [11]
-- lib/io.netty-netty-codec-dns-4.1.108.Final.jar [11]
-- lib/io.netty-netty-codec-http-4.1.108.Final.jar [11]
-- lib/io.netty-netty-codec-http2-4.1.108.Final.jar [11]
-- lib/io.netty-netty-codec-socks-4.1.108.Final.jar [11]
-- lib/io.netty-netty-common-4.1.108.Final.jar [11]
-- lib/io.netty-netty-handler-4.1.108.Final.jar [11]
-- lib/io.netty-netty-handler-proxy-4.1.108.Final.jar [11]
-- lib/io.netty-netty-resolver-4.1.108.Final.jar [11]
-- lib/io.netty-netty-resolver-dns-4.1.108.Final.jar [11]
+- lib/io.netty-netty-buffer-4.1.111.Final.jar [11]
+- lib/io.netty-netty-codec-4.1.111.Final.jar [11]
+- lib/io.netty-netty-codec-dns-4.1.111.Final.jar [11]
+- lib/io.netty-netty-codec-http-4.1.111.Final.jar [11]
+- lib/io.netty-netty-codec-http2-4.1.111.Final.jar [11]
+- lib/io.netty-netty-codec-socks-4.1.111.Final.jar [11]
+- lib/io.netty-netty-common-4.1.111.Final.jar [11]
+- lib/io.netty-netty-handler-4.1.111.Final.jar [11]
+- lib/io.netty-netty-handler-proxy-4.1.111.Final.jar [11]
+- lib/io.netty-netty-resolver-4.1.111.Final.jar [11]
+- lib/io.netty-netty-resolver-dns-4.1.111.Final.jar [11]
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final.jar [11]
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-linux-aarch_64.jar 
[11]
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-linux-x86_64.jar 
[11]
@@ -235,14 +235,14 @@ Apache Software License, Version 2.
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-osx-x86_64.jar [11]
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-windows-x86_64.jar 
[11]
 - lib/io.netty-netty-tcnative-classes-2.0.65.Final.jar [11]
-- lib/io.netty-netty-transport-4.1.108.Final.jar [11]
-- lib/io.netty-netty-transport-classes-epoll-4.1.108.Final.jar [11]
-- lib/io.netty-netty-transport-native-epoll-4.1.108.Final-linux-aarch_64.jar 
[11]
-- lib/io.netty-netty-transport-native-epoll-4.1.108.Final-linux-x86_64.jar [11]
+- lib/io.netty-netty-transport-4.1.111.Final.jar [11]
+- lib/io.netty-netty-transport-classes-epoll-4.1.111.Final.jar [11]
+- lib/io.netty-netty-transport-native-epoll-4.1.111.Final-linux-aarch_64.jar 
[11]
+- lib/io.netty-netty-transport-native-epoll-4.1.111.Final-linux-x86_64.jar [11]
 - 
lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.25.Final-linux-x86_64.jar
 [11]
 - 
lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.25.Final-linux-aarch_64.jar
 [11]
 - 
lib/io.netty.incubator-netty-incubator-transport-classes-io_uring-0.0.25.Final.jar
 [11]
-- lib/io.netty-netty-transport-native-unix-common-4.1.108.Final.jar [11]
+- lib/io.netty-netty-transport-native-unix-common-4.1.111.Final.jar [11]
 - lib/io.prometheus-simpleclient-0.15.0.jar [12]
 - lib/io.prometheus-simpleclient_common-0.15.0.jar [12]
 - lib/io.prometheus-simpleclient_hotspot-0.15.0.jar [12]
@@ -288,9 +288,9 @@ Apache Software License, Version 2.
 - lib/io.grpc-grpc-context-1.56.0.jar [33]
 - lib/io.grpc-grpc-core-1.56.0.jar [33]
 - lib/io.grpc-grpc-grpclb-1.56.0.jar [33]
-- lib/io.grpc-grpc-netty-1.56.0.jar [33]
 - lib/io.grpc-grpc-protobuf-1.56.0.jar [33]
 - lib/io.grpc-grpc-protobuf-lite-1.56.0.jar [33]
+- lib/io.grpc-grpc-netty-shaded-1.56.0.jar [33]
 - lib/io.grpc-grpc-services-1.56.0.jar [33]
 - lib/io.grpc-grpc-stub-1.56.0.jar [33]
 - lib/io.grpc-grpc-testing-1.56.0.jar [33]
@@ -356,7 +356,7 @@ Apache Software License, Version 2.
 [8] Source available at 
https://github.com/apache/commons-io/tree/rel/commons-io-2.7
 [9] Source available at https://github.com/apache/commons-lang/tree/LANG_2_6
 [10] Source available at 
https://github.com/apache/commons-logging/tree/commons-logging-1.1.1
-[11] Source available at 
https://github.com/netty/netty/tree/netty-4.1.108.Final
+[11] Source available at 
https://github.com/netty/netty/tree/netty-4.1.111.Final
 [12] Source available at 
https://github.com/prometheus/client_java/tree/parent-0.15.0
 [13] Source available at https://github.com/vert-x3/vertx-auth/tree/4.3.2
 [14] Source available at 
https://github.com/vert-x3/vertx-bridge-common/tree/4.3.2
@@ -398,9 +398,9 @@ Apache Software License, Version 2.
 [55] Source available at 
https://github.com/JetBrains/kotlin/releases/tag/v1.8.21
 
 
------------------------------------------------------------------------------------
-lib/io.netty-netty-codec-4.1.108.Final.jar bundles some 3rd party dependencies
+lib/io.netty-netty-codec-4.1.111.Final.jar bundles some 3rd party dependencies
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains the extensions to Java 
Collections Framework which has
+lib/io.netty-netty-codec-4.1.111.Final.jar contains the extensions to Java 
Collections Framework which has
 been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene:
 
   * LICENSE:
@@ -409,7 +409,7 @@ been derived from the works by JSR-166 EG, Doug Lea, and 
Jason T. Greene:
     * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
     * 
http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified version of 
Robert Harder's Public Domain
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified version of 
Robert Harder's Public Domain
 Base64 Encoder and Decoder, which can be obtained at:
 
   * LICENSE:
@@ -417,7 +417,7 @@ Base64 Encoder and Decoder, which can be obtained at:
   * HOMEPAGE:
     * http://iharder.sourceforge.net/current/java/base64/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 
'Webbit', an event based
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 
'Webbit', an event based
 WebSocket and HTTP server, which can be obtained at:
 
   * LICENSE:
@@ -425,7 +425,7 @@ WebSocket and HTTP server, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/joewalnes/webbit
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 
'SLF4J', a simple logging
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 
'SLF4J', a simple logging
 facade for Java, which can be obtained at:
 
   * LICENSE:
@@ -433,7 +433,7 @@ facade for Java, which can be obtained at:
   * HOMEPAGE:
     * http://www.slf4j.org/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 
'Apache Harmony', an open source
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 
'Apache Harmony', an open source
 Java SE, which can be obtained at:
 
   * NOTICE:
@@ -443,7 +443,7 @@ Java SE, which can be obtained at:
   * HOMEPAGE:
     * http://archive.apache.org/dist/harmony/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 
'jbzip2', a Java bzip2 compression
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 
'jbzip2', a Java bzip2 compression
 and decompression library written by Matthew J. Francis. It can be obtained at:
 
   * LICENSE:
@@ -451,7 +451,7 @@ and decompression library written by Matthew J. Francis. It 
can be obtained at:
   * HOMEPAGE:
     * https://code.google.com/p/jbzip2/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 
'libdivsufsort', a C API library to construct
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 
'libdivsufsort', a C API library to construct
 the suffix array and the Burrows-Wheeler transformed string for any input 
string of
 a constant-size alphabet written by Yuta Mori. It can be obtained at:
 
@@ -460,7 +460,7 @@ a constant-size alphabet written by Yuta Mori. It can be 
obtained at:
   * HOMEPAGE:
     * https://github.com/y-256/libdivsufsort
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 
Nitsan Wakart's 'JCTools',
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 
Nitsan Wakart's 'JCTools',
 Java Concurrency Tools for the JVM, which can be obtained at:
 
   * LICENSE:
@@ -468,7 +468,7 @@ Java Concurrency Tools for the JVM, which can be obtained 
at:
   * HOMEPAGE:
     * https://github.com/JCTools/JCTools
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'JZlib', a 
re-implementation of zlib in
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'JZlib', a 
re-implementation of zlib in
 pure Java, which can be obtained at:
 
   * LICENSE:
@@ -476,7 +476,7 @@ pure Java, which can be obtained at:
   * HOMEPAGE:
     * http://www.jcraft.com/jzlib/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 
'Compress-LZF', a Java library for encoding and
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 
'Compress-LZF', a Java library for encoding and
 decoding data in LZF format, written by Tatu Saloranta. It can be obtained at:
 
   * LICENSE:
@@ -484,7 +484,7 @@ decoding data in LZF format, written by Tatu Saloranta. It 
can be obtained at:
   * HOMEPAGE:
     * https://github.com/ning/compress
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'lz4', a LZ4 
Java compression
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'lz4', a LZ4 
Java compression
 and decompression library written by Adrien Grand. It can be obtained at:
 
   * LICENSE:
@@ -492,7 +492,7 @@ and decompression library written by Adrien Grand. It can 
be obtained at:
   * HOMEPAGE:
     * https://github.com/jpountz/lz4-java
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'lzma-java', 
a LZMA Java compression
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'lzma-java', 
a LZMA Java compression
 and decompression library, which can be obtained at:
 
   * LICENSE:
@@ -500,7 +500,7 @@ and decompression library, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/jponge/lzma-java
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 
'jfastlz', a Java port of FastLZ compression
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 
'jfastlz', a Java port of FastLZ compression
 and decompression library written by William Kinney. It can be obtained at:
 
   * LICENSE:
@@ -508,7 +508,7 @@ and decompression library written by William Kinney. It can 
be obtained at:
   * HOMEPAGE:
     * https://code.google.com/p/jfastlz/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of and 
optionally depends on 'Protocol Buffers',
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of and 
optionally depends on 'Protocol Buffers',
 Google's data interchange format, which can be obtained at:
 
   * LICENSE:
@@ -516,7 +516,7 @@ Google's data interchange format, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/google/protobuf
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'Bouncy 
Castle Crypto APIs' to generate
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'Bouncy 
Castle Crypto APIs' to generate
 a temporary self-signed X.509 certificate when the JVM does not provide the
 equivalent functionality.  It can be obtained at:
 
@@ -525,7 +525,7 @@ equivalent functionality.  It can be obtained at:
   * HOMEPAGE:
     * http://www.bouncycastle.org/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'Snappy', a 
compression library produced
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'Snappy', a 
compression library produced
 by Google Inc, which can be obtained at:
 
   * LICENSE:
@@ -533,7 +533,7 @@ by Google Inc, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/google/snappy
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'JBoss 
Marshalling', an alternative Java
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'JBoss 
Marshalling', an alternative Java
 serialization API, which can be obtained at:
 
   * LICENSE:
@@ -541,7 +541,7 @@ serialization API, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/jboss-remoting/jboss-marshalling
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'Caliper', 
Google's micro-
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'Caliper', 
Google's micro-
 benchmarking framework, which can be obtained at:
 
   * LICENSE:
@@ -549,7 +549,7 @@ benchmarking framework, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/google/caliper
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'Apache 
Commons Logging', a logging
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'Apache 
Commons Logging', a logging
 framework, which can be obtained at:
 
   * LICENSE:
@@ -557,7 +557,7 @@ framework, which can be obtained at:
   * HOMEPAGE:
     * http://commons.apache.org/logging/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'Apache 
Log4J', a logging framework, which
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'Apache 
Log4J', a logging framework, which
 can be obtained at:
 
   * LICENSE:
@@ -565,7 +565,7 @@ can be obtained at:
   * HOMEPAGE:
     * http://logging.apache.org/log4j/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'Aalto XML', 
an ultra-high performance
+lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'Aalto XML', 
an ultra-high performance
 non-blocking XML processor, which can be obtained at:
 
   * LICENSE:
@@ -573,7 +573,7 @@ non-blocking XML processor, which can be obtained at:
   * HOMEPAGE:
     * http://wiki.fasterxml.com/AaltoHome
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified version of 
'HPACK', a Java implementation of
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified version of 
'HPACK', a Java implementation of
 the HTTP/2 HPACK algorithm written by Twitter. It can be obtained at:
 
   * LICENSE:
@@ -581,7 +581,7 @@ the HTTP/2 HPACK algorithm written by Twitter. It can be 
obtained at:
   * HOMEPAGE:
     * https://github.com/twitter/hpack
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified version of 
'HPACK', a Java implementation of
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified version of 
'HPACK', a Java implementation of
 the HTTP/2 HPACK algorithm written by Cory Benfield. It can be obtained at:
 
   * LICENSE:
@@ -589,7 +589,7 @@ the HTTP/2 HPACK algorithm written by Cory Benfield. It can 
be obtained at:
   * HOMEPAGE:
     * https://github.com/python-hyper/hpack/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified version of 
'HPACK', a Java implementation of
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified version of 
'HPACK', a Java implementation of
 the HTTP/2 HPACK algorithm written by Tatsuhiro Tsujikawa. It can be obtained 
at:
 
   * LICENSE:
@@ -597,7 +597,7 @@ the HTTP/2 HPACK algorithm written by Tatsuhiro Tsujikawa. 
It can be obtained at
   * HOMEPAGE:
     * https://github.com/nghttp2/nghttp2/
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 
'Apache Commons Lang', a Java library
+lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 
'Apache Commons Lang', a Java library
 provides utilities for the java.lang API, which can be obtained at:
 
   * LICENSE:
@@ -606,7 +606,7 @@ provides utilities for the java.lang API, which can be 
obtained at:
     * https://commons.apache.org/proper/commons-lang/
 
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains the Maven wrapper scripts 
from 'Maven Wrapper',
+lib/io.netty-netty-codec-4.1.111.Final.jar contains the Maven wrapper scripts 
from 'Maven Wrapper',
 that provides an easy way to ensure a user has everything necessary to run the 
Maven build.
 
   * LICENSE:
@@ -614,7 +614,7 @@ that provides an easy way to ensure a user has everything 
necessary to run the M
   * HOMEPAGE:
     * https://github.com/takari/maven-wrapper
 
-lib/io.netty-netty-codec-4.1.108.Final.jar contains the dnsinfo.h header file,
+lib/io.netty-netty-codec-4.1.111.Final.jar contains the dnsinfo.h header file,
 that provides a way to retrieve the system DNS configuration on MacOS.
 This private header is also used by Apple's open source
  mDNSResponder (https://opensource.apple.com/tarballs/mDNSResponder/).
diff --git a/bookkeeper-dist/src/main/resources/NOTICE-all.bin.txt 
b/bookkeeper-dist/src/main/resources/NOTICE-all.bin.txt
index 3197ddcd1a..395ba89ee4 100644
--- a/bookkeeper-dist/src/main/resources/NOTICE-all.bin.txt
+++ b/bookkeeper-dist/src/main/resources/NOTICE-all.bin.txt
@@ -23,17 +23,17 @@ LongAdder), which was released with the following comments:
     http://creativecommons.org/publicdomain/zero/1.0/
 
 
------------------------------------------------------------------------------------
-- lib/io.netty-netty-buffer-4.1.108.Final.jar
-- lib/io.netty-netty-codec-4.1.108.Final.jar
-- lib/io.netty-netty-codec-dns-4.1.108.Final.jar
-- lib/io.netty-netty-codec-http-4.1.108.Final.jar
-- lib/io.netty-netty-codec-http2-4.1.108.Final.jar
-- lib/io.netty-netty-codec-socks-4.1.108.Final.jar
-- lib/io.netty-netty-common-4.1.108.Final.jar
-- lib/io.netty-netty-handler-4.1.108.Final.jar
-- lib/io.netty-netty-handler-proxy-4.1.108.Final.jar
-- lib/io.netty-netty-resolver-4.1.108.Final.jar
-- lib/io.netty-netty-resolver-dns-4.1.108.Final.jar
+- lib/io.netty-netty-buffer-4.1.111.Final.jar
+- lib/io.netty-netty-codec-4.1.111.Final.jar
+- lib/io.netty-netty-codec-dns-4.1.111.Final.jar
+- lib/io.netty-netty-codec-http-4.1.111.Final.jar
+- lib/io.netty-netty-codec-http2-4.1.111.Final.jar
+- lib/io.netty-netty-codec-socks-4.1.111.Final.jar
+- lib/io.netty-netty-common-4.1.111.Final.jar
+- lib/io.netty-netty-handler-4.1.111.Final.jar
+- lib/io.netty-netty-handler-proxy-4.1.111.Final.jar
+- lib/io.netty-netty-resolver-4.1.111.Final.jar
+- lib/io.netty-netty-resolver-dns-4.1.111.Final.jar
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final.jar
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-linux-aarch_64.jar 
[11]
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-linux-x86_64.jar 
[11]
@@ -41,13 +41,13 @@ LongAdder), which was released with the following comments:
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-osx-x86_64.jar [11]
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-windows-x86_64.jar 
[11]
 - lib/io.netty-netty-tcnative-classes-2.0.65.Final.jar
-- lib/io.netty-netty-transport-4.1.108.Final.jar
-- lib/io.netty-netty-transport-classes-epoll-4.1.108.Final.jar
-- lib/io.netty-netty-transport-native-epoll-4.1.108.Final-linux-aarch_64.jar
-- lib/io.netty-netty-transport-native-epoll-4.1.108.Final-linux-x86_64.jar
+- lib/io.netty-netty-transport-4.1.111.Final.jar
+- lib/io.netty-netty-transport-classes-epoll-4.1.111.Final.jar
+- lib/io.netty-netty-transport-native-epoll-4.1.111.Final-linux-aarch_64.jar
+- lib/io.netty-netty-transport-native-epoll-4.1.111.Final-linux-x86_64.jar
 - 
lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.25.Final-linux-x86_64.jar
 - 
lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.25.Final-linux-aarch_64.jar
-- lib/io.netty-netty-transport-native-unix-common-4.1.108.Final.jar
+- lib/io.netty-netty-transport-native-unix-common-4.1.111.Final.jar
 
 
                             The Netty Project
@@ -139,7 +139,7 @@ Copyright 2010 Cedric Beust [email protected]
 - lib/io.grpc-grpc-auth-1.56.0.jar
 - lib/io.grpc-grpc-context-1.56.0.jar
 - lib/io.grpc-grpc-core-1.56.0.jar
-- lib/io.grpc-grpc-netty-1.56.0.jar
+- lib/io.grpc-grpc-netty-shaded-1.56.0.jar
 - lib/io.grpc-grpc-protobuf-1.56.0.jar
 - lib/io.grpc-grpc-protobuf-lite-1.56.0.jar
 - lib/io.grpc-grpc-stub-1.56.0.jar
diff --git a/bookkeeper-dist/src/main/resources/NOTICE-bkctl.bin.txt 
b/bookkeeper-dist/src/main/resources/NOTICE-bkctl.bin.txt
index 00977d021f..27f8e4e8f8 100644
--- a/bookkeeper-dist/src/main/resources/NOTICE-bkctl.bin.txt
+++ b/bookkeeper-dist/src/main/resources/NOTICE-bkctl.bin.txt
@@ -5,15 +5,11 @@ This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
 
 
------------------------------------------------------------------------------------
-- lib/io.netty-netty-buffer-4.1.108.Final.jar
-- lib/io.netty-netty-codec-4.1.108.Final.jar
-- lib/io.netty-netty-codec-http-4.1.108.Final.jar
-- lib/io.netty-netty-codec-http2-4.1.108.Final.jar
-- lib/io.netty-netty-codec-socks-4.1.108.Final.jar
-- lib/io.netty-netty-common-4.1.108.Final.jar
-- lib/io.netty-netty-handler-4.1.108.Final.jar
-- lib/io.netty-netty-handler-proxy-4.1.108.Final.jar
-- lib/io.netty-netty-resolver-4.1.108.Final.jar
+- lib/io.netty-netty-buffer-4.1.111.Final.jar
+- lib/io.netty-netty-codec-4.1.111.Final.jar
+- lib/io.netty-netty-common-4.1.111.Final.jar
+- lib/io.netty-netty-handler-4.1.111.Final.jar
+- lib/io.netty-netty-resolver-4.1.111.Final.jar
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final.jar
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-linux-aarch_64.jar 
[11]
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-linux-x86_64.jar 
[11]
@@ -21,13 +17,13 @@ The Apache Software Foundation (http://www.apache.org/).
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-osx-x86_64.jar [11]
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-windows-x86_64.jar 
[11]
 - lib/io.netty-netty-tcnative-classes-2.0.65.Final.jar
-- lib/io.netty-netty-transport-4.1.108.Final.jar
-- lib/io.netty-netty-transport-classes-epoll-4.1.108.Final.jar
-- lib/io.netty-netty-transport-native-epoll-4.1.108.Final-linux-aarch_64.jar
-- lib/io.netty-netty-transport-native-epoll-4.1.108.Final-linux-x86_64.jar
+- lib/io.netty-netty-transport-4.1.111.Final.jar
+- lib/io.netty-netty-transport-classes-epoll-4.1.111.Final.jar
+- lib/io.netty-netty-transport-native-epoll-4.1.111.Final-linux-aarch_64.jar
+- lib/io.netty-netty-transport-native-epoll-4.1.111.Final-linux-x86_64.jar
 - 
lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.25.Final-linux-x86_64.jar
 - 
lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.25.Final-linux-aarch_64.jar
-- lib/io.netty-netty-transport-native-unix-common-4.1.108.Final.jar
+- lib/io.netty-netty-transport-native-unix-common-4.1.111.Final.jar
 
 
                             The Netty Project
@@ -61,7 +57,7 @@ Copyright 2010 Cedric Beust [email protected]
 - lib/io.grpc-grpc-auth-1.56.0.jar
 - lib/io.grpc-grpc-context-1.56.0.jar
 - lib/io.grpc-grpc-core-1.56.0.jar
-- lib/io.grpc-grpc-netty-1.56.0.jar
+- lib/io.grpc-grpc-netty-shaded-1.56.0.jar
 - lib/io.grpc-grpc-protobuf-1.56.0.jar
 - lib/io.grpc-grpc-protobuf-lite-1.56.0.jar
 - lib/io.grpc-grpc-stub-1.56.0.jar
diff --git a/bookkeeper-dist/src/main/resources/NOTICE-server.bin.txt 
b/bookkeeper-dist/src/main/resources/NOTICE-server.bin.txt
index eb088b5596..329722b322 100644
--- a/bookkeeper-dist/src/main/resources/NOTICE-server.bin.txt
+++ b/bookkeeper-dist/src/main/resources/NOTICE-server.bin.txt
@@ -5,17 +5,17 @@ This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
 
 
------------------------------------------------------------------------------------
-- lib/io.netty-netty-buffer-4.1.108.Final.jar
-- lib/io.netty-netty-codec-4.1.108.Final.jar
-- lib/io.netty-netty-codec-dns-4.1.108.Final.jar
-- lib/io.netty-netty-codec-http-4.1.108.Final.jar
-- lib/io.netty-netty-codec-http2-4.1.108.Final.jar
-- lib/io.netty-netty-codec-socks-4.1.108.Final.jar
-- lib/io.netty-netty-common-4.1.108.Final.jar
-- lib/io.netty-netty-handler-4.1.108.Final.jar
-- lib/io.netty-netty-handler-proxy-4.1.108.Final.jar
-- lib/io.netty-netty-resolver-4.1.108.Final.jar
-- lib/io.netty-netty-resolver-dns-4.1.108.Final.jar
+- lib/io.netty-netty-buffer-4.1.111.Final.jar
+- lib/io.netty-netty-codec-4.1.111.Final.jar
+- lib/io.netty-netty-codec-dns-4.1.111.Final.jar
+- lib/io.netty-netty-codec-http-4.1.111.Final.jar
+- lib/io.netty-netty-codec-http2-4.1.111.Final.jar
+- lib/io.netty-netty-codec-socks-4.1.111.Final.jar
+- lib/io.netty-netty-common-4.1.111.Final.jar
+- lib/io.netty-netty-handler-4.1.111.Final.jar
+- lib/io.netty-netty-handler-proxy-4.1.111.Final.jar
+- lib/io.netty-netty-resolver-4.1.111.Final.jar
+- lib/io.netty-netty-resolver-dns-4.1.111.Final.jar
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final.jar
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-linux-aarch_64.jar 
[11]
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-linux-x86_64.jar 
[11]
@@ -23,13 +23,13 @@ The Apache Software Foundation (http://www.apache.org/).
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-osx-x86_64.jar [11]
 - lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-windows-x86_64.jar 
[11]
 - lib/io.netty-netty-tcnative-classes-2.0.65.Final.jar
-- lib/io.netty-netty-transport-4.1.108.Final.jar
-- lib/io.netty-netty-transport-classes-epoll-4.1.108.Final.jar
-- lib/io.netty-netty-transport-native-epoll-4.1.108.Final-linux-aarch_64.jar
-- lib/io.netty-netty-transport-native-epoll-4.1.108.Final-linux-x86_64.jar
+- lib/io.netty-netty-transport-4.1.111.Final.jar
+- lib/io.netty-netty-transport-classes-epoll-4.1.111.Final.jar
+- lib/io.netty-netty-transport-native-epoll-4.1.111.Final-linux-aarch_64.jar
+- lib/io.netty-netty-transport-native-epoll-4.1.111.Final-linux-x86_64.jar
 - 
lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.25.Final-linux-x86_64.jar
 - 
lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.25.Final-linux-aarch_64.jar
-- lib/io.netty-netty-transport-native-unix-common-4.1.108.Final.jar
+- lib/io.netty-netty-transport-native-unix-common-4.1.111.Final.jar
 
 
                             The Netty Project
@@ -121,7 +121,7 @@ Copyright 2010 Cedric Beust [email protected]
 - lib/io.grpc-grpc-auth-1.56.0.jar
 - lib/io.grpc-grpc-context-1.56.0.jar
 - lib/io.grpc-grpc-core-1.56.0.jar
-- lib/io.grpc-grpc-netty-1.56.0.jar
+- lib/io.grpc-grpc-netty-shaded-1.56.0.jar
 - lib/io.grpc-grpc-protobuf-1.56.0.jar
 - lib/io.grpc-grpc-protobuf-lite-1.56.0.jar
 - lib/io.grpc-grpc-stub-1.56.0.jar
diff --git a/metadata-drivers/etcd/pom.xml b/metadata-drivers/etcd/pom.xml
index 257904bbde..7c34aabdd4 100644
--- a/metadata-drivers/etcd/pom.xml
+++ b/metadata-drivers/etcd/pom.xml
@@ -34,12 +34,17 @@
     </dependency>
 
     <dependency>
-      <groupId>io.etcd</groupId>
-      <artifactId>jetcd-core</artifactId>
-      <version>${etcd.version}</version>
+      <groupId>org.apache.bookkeeper.metadata.drivers</groupId>
+      <artifactId>jetcd-core-shaded</artifactId>
+      <version>${project.version}</version>
+      <classifier>shaded</classifier>
       <exclusions>
         <exclusion>
-          <groupId>io.grpc</groupId>
+          <groupId>io.etcd</groupId>
+          <artifactId>*</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>io.vertx</groupId>
           <artifactId>*</artifactId>
         </exclusion>
       </exclusions>
@@ -48,27 +53,11 @@
     <dependency>
       <groupId>io.grpc</groupId>
       <artifactId>grpc-all</artifactId>
-      <version>${grpc.version}</version>
-      <exclusions>
-        <exclusion>
-          <groupId>org.bouncycastle</groupId>
-          <artifactId>bcpkix-jdk15on</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>io.grpc</groupId>
-          <artifactId>grpc-okhttp</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>io.grpc</groupId>
-          <artifactId>grpc-servlet</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>io.grpc</groupId>
-          <artifactId>grpc-servlet-jakarta</artifactId>
-        </exclusion>
-      </exclusions>
     </dependency>
-
+    <dependency>
+      <groupId>io.grpc</groupId>
+      <artifactId>grpc-netty-shaded</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.arquillian.cube</groupId>
       <artifactId>arquillian-cube-docker</artifactId>
diff --git a/metadata-drivers/jetcd-core-shaded/pom.xml 
b/metadata-drivers/jetcd-core-shaded/pom.xml
new file mode 100644
index 0000000000..0a49ad4f6d
--- /dev/null
+++ b/metadata-drivers/jetcd-core-shaded/pom.xml
@@ -0,0 +1,196 @@
+<?xml version="1.0"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<project
+        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";
+        xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.bookkeeper.metadata.drivers</groupId>
+    <artifactId>metadata-drivers-parent</artifactId>
+    <version>4.17.1-SNAPSHOT</version>
+    <relativePath>..</relativePath>
+  </parent>
+  <groupId>org.apache.bookkeeper.metadata.drivers</groupId>
+  <artifactId>jetcd-core-shaded</artifactId>
+  <name>Apache BookKeeper :: Metadata Drivers:: jetcd-core shaded</name>
+
+  <dependencies>
+    <dependency>
+      <groupId>io.etcd</groupId>
+      <artifactId>jetcd-core</artifactId>
+      <version>${jetcd.version}</version>
+      <exclusions>
+        <exclusion>
+          <groupId>io.grpc</groupId>
+          <artifactId>grpc-netty</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>io.netty</groupId>
+          <artifactId>*</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>io.grpc</groupId>
+      <artifactId>grpc-netty-shaded</artifactId>
+    </dependency>
+    <!-- add transient dependencies for jetcd libraries, this is necessary for 
IntelliJ support -->
+    <dependency>
+      <groupId>dev.failsafe</groupId>
+      <artifactId>failsafe</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.grpc</groupId>
+      <artifactId>grpc-protobuf</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.grpc</groupId>
+      <artifactId>grpc-stub</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.grpc</groupId>
+      <artifactId>grpc-grpclb</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.grpc</groupId>
+      <artifactId>grpc-util</artifactId>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-shade-plugin</artifactId>
+        <executions>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>shade</goal>
+            </goals>
+            <configuration>
+              <createDependencyReducedPom>true</createDependencyReducedPom>
+              
<promoteTransitiveDependencies>true</promoteTransitiveDependencies>
+              <minimizeJar>false</minimizeJar>
+              <artifactSet>
+                <includes>
+                  <include>io.etcd:*</include>
+                  <include>io.vertx:*</include>
+                </includes>
+              </artifactSet>
+              <relocations>
+                <!-- relocate vertx packages since they will be transformed to 
use grpc-netty-shaded packages -->
+                <relocation>
+                  <pattern>io.vertx</pattern>
+                  
<shadedPattern>org.apache.pulsar.jetcd.shaded.io.vertx</shadedPattern>
+                </relocation>
+                <!-- relocate to use grpc-netty-shaded packages -->
+                <relocation>
+                  <pattern>io.grpc.netty</pattern>
+                  
<shadedPattern>io.grpc.netty.shaded.io.grpc.netty</shadedPattern>
+                </relocation>
+                <!-- relocate to use grpc-netty-shaded packages -->
+                <relocation>
+                  <pattern>io.netty</pattern>
+                  <shadedPattern>io.grpc.netty.shaded.io.netty</shadedPattern>
+                </relocation>
+              </relocations>
+              <filters>
+                <filter>
+                  <artifact>*:*</artifact>
+                  <excludes>
+                    <exclude>META-INF/*.SF</exclude>
+                    <exclude>META-INF/*.DSA</exclude>
+                    <exclude>META-INF/*.RSA</exclude>
+                    
<exclude>META-INF/maven/${project.groupId}/${project.artifactId}/pom.xml</exclude>
+                  </excludes>
+                </filter>
+              </filters>
+              <transformers>
+                <transformer 
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
+                <transformer 
implementation="org.apache.maven.plugins.shade.resource.PluginXmlResourceTransformer"/>
+                <transformer 
implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
+                  
<resource>META-INF/maven/${project.groupId}/${project.artifactId}/pom.xml</resource>
+                  <file>${project.basedir}/dependency-reduced-pom.xml</file>
+                </transformer>
+              </transformers>
+              <!-- required for IntelliJ support -->
+              <shadedArtifactAttached>true</shadedArtifactAttached>
+              <shadedClassifierName>shaded</shadedClassifierName>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <!-- required for IntelliJ support, for some reason 
shadedArtifactAttached isn't sufficient alone -->
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>build-helper-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>attach-shaded-jar</id>
+            <phase>package</phase>
+            <goals>
+              <goal>attach-artifact</goal>
+            </goals>
+            <configuration>
+              <artifacts>
+                <artifact>
+                  
<file>${project.build.directory}/${project.artifactId}-${project.version}-shaded.jar</file>
+                  <type>jar</type>
+                  <classifier>shaded</classifier>
+                </artifact>
+              </artifacts>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <!-- required for running tests with "mvn -f metadata-drivers/pom.xml 
test -DintegrationTests" -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-antrun-plugin</artifactId>
+        <version>${maven-antrun-plugin.version}</version>
+        <executions>
+          <execution>
+            <id>unpack-shaded-jar</id>
+            <phase>package</phase>
+            <goals>
+              <goal>run</goal>
+            </goals>
+            <configuration>
+              <target>
+                <unzip 
src="${project.build.directory}/${project.artifactId}-${project.version}-shaded.jar"
+                       dest="${project.build.outputDirectory}"
+                       overwrite="true" />
+              </target>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>com.github.spotbugs</groupId>
+        <artifactId>spotbugs-maven-plugin</artifactId>
+        <configuration>
+          <skip>true</skip>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/metadata-drivers/pom.xml b/metadata-drivers/pom.xml
index 7209f2a16c..dd8a33e329 100644
--- a/metadata-drivers/pom.xml
+++ b/metadata-drivers/pom.xml
@@ -27,6 +27,7 @@
     <packaging>pom</packaging>
     <name>Apache BookKeeper :: Metadata Drivers :: Parent</name>
     <modules>
+        <module>jetcd-core-shaded</module>
         <module>etcd</module>
     </modules>
 </project>
diff --git a/pom.xml b/pom.xml
index dbec6f467a..08a187925b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -129,7 +129,8 @@
     <bouncycastle.version>1.0.2.4</bouncycastle.version>
     <curator.version>5.1.0</curator.version>
     <dropwizard.version>4.1.12.1</dropwizard.version>
-    <etcd.version>0.7.7</etcd.version>
+    <jetcd.version>0.7.7</jetcd.version>
+    <failsafe.version>3.2.2</failsafe.version>
     <freebuilder.version>2.8.0</freebuilder.version>
     <google.code.version>3.0.2</google.code.version>
     <google.errorprone.version>2.9.0</google.errorprone.version>
@@ -154,7 +155,7 @@
     <log4j.version>2.18.0</log4j.version>
     <lz4.version>1.3.0</lz4.version>
     <mockito.version>4.11.0</mockito.version>
-    <netty.version>4.1.108.Final</netty.version>
+    <netty.version>4.1.111.Final</netty.version>
     <netty-iouring.version>0.0.25.Final</netty-iouring.version>
     <ostrich.version>9.1.3</ostrich.version>
     <prometheus.version>0.15.0</prometheus.version>
@@ -196,6 +197,7 @@
     <protobuf-maven-plugin.version>0.6.1</protobuf-maven-plugin.version>
     <puppycrawl.checkstyle.version>9.3</puppycrawl.checkstyle.version>
     <spotbugs-maven-plugin.version>4.7.3.2</spotbugs-maven-plugin.version>
+    
<build-helper-maven-plugin.version>3.6.0</build-helper-maven-plugin.version>
     <forkCount.variable>1</forkCount.variable>
     <servlet-api.version>4.0.0</servlet-api.version>
     <rxjava.version>3.0.1</rxjava.version>
@@ -411,6 +413,56 @@
         <type>pom</type>
         <scope>import</scope>
       </dependency>
+      <!-- exclude dependencies from grpc-all -->
+      <dependency>
+        <groupId>io.grpc</groupId>
+        <artifactId>grpc-all</artifactId>
+        <version>${grpc.version}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-testing</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-netty</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-okhttp</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>com.squareup.okhttp</groupId>
+            <artifactId>okhttp</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>com.squareup.okio</groupId>
+            <artifactId>okio</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-servlet</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-servlet-jakarta</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+
+      <dependency>
+        <groupId>io.grpc</groupId>
+        <artifactId>grpc-util</artifactId>
+        <!-- This is only used for JEtcd so far. Once we upgrade Grpc to >= 
1.60, we can remove the special version pin -->
+        <version>1.60.0</version>
+      </dependency>
+
+      <!-- used by jetcd-core-shaded -->
+      <dependency>
+        <groupId>dev.failsafe</groupId>
+        <artifactId>failsafe</artifactId>
+        <version>${failsafe.version}</version>
+      </dependency>
 
       <!-- override otel's okhttp 4.11.0 for now, wait for otel update -->
       <dependency>
diff --git 
a/stream/bk-grpc-name-resolver/src/test/java/org/apache/bookkeeper/grpc/resolver/GrpcChannelsTest.java
 
b/stream/bk-grpc-name-resolver/src/test/java/org/apache/bookkeeper/grpc/resolver/GrpcChannelsTest.java
index 9df1bf1deb..220f85c54a 100644
--- 
a/stream/bk-grpc-name-resolver/src/test/java/org/apache/bookkeeper/grpc/resolver/GrpcChannelsTest.java
+++ 
b/stream/bk-grpc-name-resolver/src/test/java/org/apache/bookkeeper/grpc/resolver/GrpcChannelsTest.java
@@ -22,7 +22,7 @@ package org.apache.bookkeeper.grpc.resolver;
 import static org.junit.Assert.assertTrue;
 
 import io.grpc.ManagedChannelBuilder;
-import io.grpc.netty.NettyChannelBuilder;
+import io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder;
 import org.apache.bookkeeper.clients.config.StorageClientSettings;
 import org.apache.bookkeeper.clients.utils.GrpcChannels;
 import org.junit.Test;
diff --git 
a/stream/clients/java/base/src/test/java/org/apache/bookkeeper/clients/utils/GrpcChannelsTest.java
 
b/stream/clients/java/base/src/test/java/org/apache/bookkeeper/clients/utils/GrpcChannelsTest.java
index 3e3e81e98e..f5b5fab1be 100644
--- 
a/stream/clients/java/base/src/test/java/org/apache/bookkeeper/clients/utils/GrpcChannelsTest.java
+++ 
b/stream/clients/java/base/src/test/java/org/apache/bookkeeper/clients/utils/GrpcChannelsTest.java
@@ -24,7 +24,7 @@ import static org.junit.Assert.fail;
 
 import io.grpc.ManagedChannelBuilder;
 import io.grpc.inprocess.InProcessChannelBuilder;
-import io.grpc.netty.NettyChannelBuilder;
+import io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder;
 import org.apache.bookkeeper.clients.config.StorageClientSettings;
 import org.junit.Test;
 
diff --git a/stream/common/pom.xml b/stream/common/pom.xml
index 3a86d2e5bc..56cdc7b631 100644
--- a/stream/common/pom.xml
+++ b/stream/common/pom.xml
@@ -39,29 +39,12 @@
     <dependency>
       <groupId>io.grpc</groupId>
       <artifactId>grpc-all</artifactId>
-      <exclusions>
-        <exclusion>
-          <groupId>io.grpc</groupId>
-          <artifactId>grpc-netty-shaded</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.bouncycastle</groupId>
-          <artifactId>bcpkix-jdk15on</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>io.grpc</groupId>
-          <artifactId>grpc-okhttp</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>io.grpc</groupId>
-          <artifactId>grpc-servlet</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>io.grpc</groupId>
-          <artifactId>grpc-servlet-jakarta</artifactId>
-        </exclusion>
-      </exclusions>
     </dependency>
+    <dependency>
+      <groupId>io.grpc</groupId>
+      <artifactId>grpc-netty-shaded</artifactId>
+    </dependency>
+
     <dependency>
       <groupId>javax.annotation</groupId>
       <artifactId>javax.annotation-api</artifactId>
diff --git a/stream/tests-common/pom.xml b/stream/tests-common/pom.xml
index acfd6cd94d..d32333b0d7 100644
--- a/stream/tests-common/pom.xml
+++ b/stream/tests-common/pom.xml
@@ -31,28 +31,14 @@
     <dependency>
       <groupId>io.grpc</groupId>
       <artifactId>grpc-all</artifactId>
-      <exclusions>
-        <exclusion>
-          <groupId>io.grpc</groupId>
-          <artifactId>grpc-netty-shaded</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.bouncycastle</groupId>
-          <artifactId>bcpkix-jdk15on</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>io.grpc</groupId>
-          <artifactId>grpc-okhttp</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>io.grpc</groupId>
-          <artifactId>grpc-servlet</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>io.grpc</groupId>
-          <artifactId>grpc-servlet-jakarta</artifactId>
-        </exclusion>
-      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>io.grpc</groupId>
+      <artifactId>grpc-netty-shaded</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.grpc</groupId>
+      <artifactId>grpc-testing</artifactId>
     </dependency>
     <dependency>
       <groupId>com.google.protobuf</groupId>

Reply via email to