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

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

commit 7efcbd2b4a01f9287a0b0b32948f1ec3a433d9f8
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                                            |  58 +++++-
 .../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, 457 insertions(+), 258 deletions(-)

diff --git a/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt 
b/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
index e18cef2e07..52ea9954fe 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.54.1.jar [33]
 - lib/io.grpc-grpc-core-1.54.1.jar [33]
 - lib/io.grpc-grpc-grpclb-1.54.1.jar [33]
-- lib/io.grpc-grpc-netty-1.54.1.jar [33]
 - lib/io.grpc-grpc-protobuf-1.54.1.jar [33]
 - lib/io.grpc-grpc-protobuf-lite-1.54.1.jar [33]
+- lib/io.grpc-grpc-netty-shaded-1.54.1.jar [33]
 - lib/io.grpc-grpc-services-1.54.1.jar [33]
 - lib/io.grpc-grpc-stub-1.54.1.jar [33]
 - lib/io.grpc-grpc-testing-1.54.1.jar [33]
@@ -332,7 +332,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
@@ -372,9 +372,9 @@ Apache Software License, Version 2.
 [53] 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:
@@ -383,7 +383,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:
@@ -391,7 +391,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:
@@ -399,7 +399,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:
@@ -407,7 +407,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:
@@ -417,7 +417,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:
@@ -425,7 +425,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:
 
@@ -434,7 +434,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:
@@ -442,7 +442,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:
@@ -450,7 +450,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:
@@ -458,7 +458,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:
@@ -466,7 +466,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:
@@ -474,7 +474,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:
@@ -482,7 +482,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:
@@ -490,7 +490,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:
 
@@ -499,7 +499,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:
@@ -507,7 +507,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:
@@ -515,7 +515,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:
@@ -523,7 +523,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:
@@ -531,7 +531,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:
@@ -539,7 +539,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:
@@ -547,7 +547,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:
@@ -555,7 +555,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:
@@ -563,7 +563,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:
@@ -571,7 +571,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:
@@ -580,7 +580,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:
@@ -588,7 +588,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 f330c283f4..dfd2fea4f0 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.54.1.jar [32]
 - lib/io.grpc-grpc-core-1.54.1.jar [32]
 - lib/io.grpc-grpc-grpclb-1.54.1.jar [32]
-- lib/io.grpc-grpc-netty-1.54.1.jar [32]
 - lib/io.grpc-grpc-protobuf-1.54.1.jar [32]
 - lib/io.grpc-grpc-protobuf-lite-1.54.1.jar [32]
+- lib/io.grpc-grpc-netty-shaded-1.54.1.jar [32]
 - lib/io.grpc-grpc-services-1.54.1.jar [32]
 - lib/io.grpc-grpc-stub-1.54.1.jar [32]
 - lib/io.grpc-grpc-testing-1.54.1.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 73cff40678..fea213f758 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.54.1.jar [33]
 - lib/io.grpc-grpc-core-1.54.1.jar [33]
 - lib/io.grpc-grpc-grpclb-1.54.1.jar [33]
-- lib/io.grpc-grpc-netty-1.54.1.jar [33]
 - lib/io.grpc-grpc-protobuf-1.54.1.jar [33]
 - lib/io.grpc-grpc-protobuf-lite-1.54.1.jar [33]
+- lib/io.grpc-grpc-netty-shaded-1.54.1.jar [33]
 - lib/io.grpc-grpc-services-1.54.1.jar [33]
 - lib/io.grpc-grpc-stub-1.54.1.jar [33]
 - lib/io.grpc-grpc-testing-1.54.1.jar [33]
@@ -328,7 +328,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
@@ -367,9 +367,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:
@@ -378,7 +378,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:
@@ -386,7 +386,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:
@@ -394,7 +394,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:
@@ -402,7 +402,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:
@@ -412,7 +412,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:
@@ -420,7 +420,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:
 
@@ -429,7 +429,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:
@@ -437,7 +437,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:
@@ -445,7 +445,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:
@@ -453,7 +453,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:
@@ -461,7 +461,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:
@@ -469,7 +469,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:
@@ -477,7 +477,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:
@@ -485,7 +485,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:
 
@@ -494,7 +494,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:
@@ -502,7 +502,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:
@@ -510,7 +510,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:
@@ -518,7 +518,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:
@@ -526,7 +526,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:
@@ -534,7 +534,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:
@@ -542,7 +542,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:
@@ -550,7 +550,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:
@@ -558,7 +558,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:
@@ -566,7 +566,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:
@@ -575,7 +575,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:
@@ -583,7 +583,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 99d54b14c5..af368d1d94 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.54.1.jar
 - lib/io.grpc-grpc-context-1.54.1.jar
 - lib/io.grpc-grpc-core-1.54.1.jar
-- lib/io.grpc-grpc-netty-1.54.1.jar
+- lib/io.grpc-grpc-netty-shaded-1.54.1.jar
 - lib/io.grpc-grpc-protobuf-1.54.1.jar
 - lib/io.grpc-grpc-protobuf-lite-1.54.1.jar
 - lib/io.grpc-grpc-stub-1.54.1.jar
diff --git a/bookkeeper-dist/src/main/resources/NOTICE-bkctl.bin.txt 
b/bookkeeper-dist/src/main/resources/NOTICE-bkctl.bin.txt
index e090b812e2..88eaaf8a5d 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.54.1.jar
 - lib/io.grpc-grpc-context-1.54.1.jar
 - lib/io.grpc-grpc-core-1.54.1.jar
-- lib/io.grpc-grpc-netty-1.54.1.jar
+- lib/io.grpc-grpc-netty-shaded-1.54.1.jar
 - lib/io.grpc-grpc-protobuf-1.54.1.jar
 - lib/io.grpc-grpc-protobuf-lite-1.54.1.jar
 - lib/io.grpc-grpc-stub-1.54.1.jar
diff --git a/bookkeeper-dist/src/main/resources/NOTICE-server.bin.txt 
b/bookkeeper-dist/src/main/resources/NOTICE-server.bin.txt
index 0ae5fc921f..2873f19ded 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.54.1.jar
 - lib/io.grpc-grpc-context-1.54.1.jar
 - lib/io.grpc-grpc-core-1.54.1.jar
-- lib/io.grpc-grpc-netty-1.54.1.jar
+- lib/io.grpc-grpc-netty-shaded-1.54.1.jar
 - lib/io.grpc-grpc-protobuf-1.54.1.jar
 - lib/io.grpc-grpc-protobuf-lite-1.54.1.jar
 - lib/io.grpc-grpc-stub-1.54.1.jar
diff --git a/metadata-drivers/etcd/pom.xml b/metadata-drivers/etcd/pom.xml
index 08be63c467..02eb74201e 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..561927118b
--- /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.16.6-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 d80bfc0e56..f22a44a905 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 0026c30571..eceb6b74c5 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>3.12.4</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>
     <powermock.version>2.0.9</powermock.version>
@@ -198,6 +199,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>
@@ -412,6 +414,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>
 
       <!-- rocksdb dependencies -->
       <dependency>
@@ -744,7 +796,7 @@
         <artifactId>rxjava</artifactId>
         <version>${rxjava.version}</version>
       </dependency>
-  
+
       <dependency>
         <groupId>com.carrotsearch</groupId>
         <artifactId>hppc</artifactId>
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 bc871bca53..dde140f2b5 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 8aded3c666..6cae42550e 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