Skip to content

Commit a95f698

Browse files
authored
Upgrade to Netty 4.1.111.Final and switch to use grpc-netty-shaded (#4426)
### Motivation [Netty 4.1.111.Final](https://netty.io/news/2024/06/11/4-1-111-Final.html) contains important fixes: - netty/netty#14086 - netty/netty#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. ### Changes - 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.
1 parent f936494 commit a95f698

File tree

14 files changed

+449
-257
lines changed

14 files changed

+449
-257
lines changed

bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt

+46-46
Original file line numberDiff line numberDiff line change
@@ -217,32 +217,32 @@ Apache Software License, Version 2.
217217
- lib/commons-io-commons-io-2.7.jar [8]
218218
- lib/commons-lang-commons-lang-2.6.jar [9]
219219
- lib/commons-logging-commons-logging-1.1.1.jar [10]
220-
- lib/io.netty-netty-buffer-4.1.108.Final.jar [11]
221-
- lib/io.netty-netty-codec-4.1.108.Final.jar [11]
222-
- lib/io.netty-netty-codec-dns-4.1.108.Final.jar [11]
223-
- lib/io.netty-netty-codec-http-4.1.108.Final.jar [11]
224-
- lib/io.netty-netty-codec-http2-4.1.108.Final.jar [11]
225-
- lib/io.netty-netty-codec-socks-4.1.108.Final.jar [11]
226-
- lib/io.netty-netty-common-4.1.108.Final.jar [11]
227-
- lib/io.netty-netty-handler-4.1.108.Final.jar [11]
228-
- lib/io.netty-netty-handler-proxy-4.1.108.Final.jar [11]
229-
- lib/io.netty-netty-resolver-4.1.108.Final.jar [11]
230-
- lib/io.netty-netty-resolver-dns-4.1.108.Final.jar [11]
220+
- lib/io.netty-netty-buffer-4.1.111.Final.jar [11]
221+
- lib/io.netty-netty-codec-4.1.111.Final.jar [11]
222+
- lib/io.netty-netty-codec-dns-4.1.111.Final.jar [11]
223+
- lib/io.netty-netty-codec-http-4.1.111.Final.jar [11]
224+
- lib/io.netty-netty-codec-http2-4.1.111.Final.jar [11]
225+
- lib/io.netty-netty-codec-socks-4.1.111.Final.jar [11]
226+
- lib/io.netty-netty-common-4.1.111.Final.jar [11]
227+
- lib/io.netty-netty-handler-4.1.111.Final.jar [11]
228+
- lib/io.netty-netty-handler-proxy-4.1.111.Final.jar [11]
229+
- lib/io.netty-netty-resolver-4.1.111.Final.jar [11]
230+
- lib/io.netty-netty-resolver-dns-4.1.111.Final.jar [11]
231231
- lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final.jar [11]
232232
- lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-linux-aarch_64.jar [11]
233233
- lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-linux-x86_64.jar [11]
234234
- lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-osx-aarch_64.jar [11]
235235
- lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-osx-x86_64.jar [11]
236236
- lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-windows-x86_64.jar [11]
237237
- lib/io.netty-netty-tcnative-classes-2.0.65.Final.jar [11]
238-
- lib/io.netty-netty-transport-4.1.108.Final.jar [11]
239-
- lib/io.netty-netty-transport-classes-epoll-4.1.108.Final.jar [11]
240-
- lib/io.netty-netty-transport-native-epoll-4.1.108.Final-linux-aarch_64.jar [11]
241-
- lib/io.netty-netty-transport-native-epoll-4.1.108.Final-linux-x86_64.jar [11]
238+
- lib/io.netty-netty-transport-4.1.111.Final.jar [11]
239+
- lib/io.netty-netty-transport-classes-epoll-4.1.111.Final.jar [11]
240+
- lib/io.netty-netty-transport-native-epoll-4.1.111.Final-linux-aarch_64.jar [11]
241+
- lib/io.netty-netty-transport-native-epoll-4.1.111.Final-linux-x86_64.jar [11]
242242
- lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.25.Final-linux-x86_64.jar [11]
243243
- lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.25.Final-linux-aarch_64.jar [11]
244244
- lib/io.netty.incubator-netty-incubator-transport-classes-io_uring-0.0.25.Final.jar [11]
245-
- lib/io.netty-netty-transport-native-unix-common-4.1.108.Final.jar [11]
245+
- lib/io.netty-netty-transport-native-unix-common-4.1.111.Final.jar [11]
246246
- lib/io.prometheus-simpleclient-0.15.0.jar [12]
247247
- lib/io.prometheus-simpleclient_common-0.15.0.jar [12]
248248
- lib/io.prometheus-simpleclient_hotspot-0.15.0.jar [12]
@@ -290,7 +290,7 @@ Apache Software License, Version 2.
290290
- lib/io.grpc-grpc-grpclb-1.64.0.jar [33]
291291
- lib/io.grpc-grpc-inprocess-1.64.0.jar [33]
292292
- lib/io.grpc-grpc-opentelemetry-1.64.0.jar [33]
293-
- lib/io.grpc-grpc-netty-1.64.0.jar [33]
293+
- lib/io.grpc-grpc-netty-shaded-1.64.0.jar [33]
294294
- lib/io.grpc-grpc-protobuf-1.64.0.jar [33]
295295
- lib/io.grpc-grpc-protobuf-lite-1.64.0.jar [33]
296296
- lib/io.grpc-grpc-services-1.64.0.jar [33]
@@ -364,7 +364,7 @@ Apache Software License, Version 2.
364364
[8] Source available at https://github.com/apache/commons-io/tree/rel/commons-io-2.7
365365
[9] Source available at https://github.com/apache/commons-lang/tree/LANG_2_6
366366
[10] Source available at https://github.com/apache/commons-logging/tree/commons-logging-1.1.1
367-
[11] Source available at https://github.com/netty/netty/tree/netty-4.1.108.Final
367+
[11] Source available at https://github.com/netty/netty/tree/netty-4.1.111.Final
368368
[12] Source available at https://github.com/prometheus/client_java/tree/parent-0.15.0
369369
[13] Source available at https://github.com/vert-x3/vertx-auth/tree/4.3.2
370370
[14] Source available at https://github.com/vert-x3/vertx-bridge-common/tree/4.3.2
@@ -408,9 +408,9 @@ Apache Software License, Version 2.
408408
[57] Source available at https://github.com/LMAX-Exchange/disruptor/releases/tag/4.0.0
409409

410410
------------------------------------------------------------------------------------
411-
lib/io.netty-netty-codec-4.1.108.Final.jar bundles some 3rd party dependencies
411+
lib/io.netty-netty-codec-4.1.111.Final.jar bundles some 3rd party dependencies
412412

413-
lib/io.netty-netty-codec-4.1.108.Final.jar contains the extensions to Java Collections Framework which has
413+
lib/io.netty-netty-codec-4.1.111.Final.jar contains the extensions to Java Collections Framework which has
414414
been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene:
415415

416416
* LICENSE:
@@ -419,31 +419,31 @@ been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene:
419419
* http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
420420
* http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/
421421

422-
lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified version of Robert Harder's Public Domain
422+
lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified version of Robert Harder's Public Domain
423423
Base64 Encoder and Decoder, which can be obtained at:
424424

425425
* LICENSE:
426426
* deps/netty/LICENSE.base64.txt (Public Domain)
427427
* HOMEPAGE:
428428
* http://iharder.sourceforge.net/current/java/base64/
429429

430-
lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 'Webbit', an event based
430+
lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 'Webbit', an event based
431431
WebSocket and HTTP server, which can be obtained at:
432432

433433
* LICENSE:
434434
* deps/netty/LICENSE.webbit.txt (BSD License)
435435
* HOMEPAGE:
436436
* https://github.com/joewalnes/webbit
437437

438-
lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 'SLF4J', a simple logging
438+
lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 'SLF4J', a simple logging
439439
facade for Java, which can be obtained at:
440440

441441
* LICENSE:
442442
* deps/netty/LICENSE.slf4j.txt (MIT License)
443443
* HOMEPAGE:
444444
* http://www.slf4j.org/
445445

446-
lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 'Apache Harmony', an open source
446+
lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 'Apache Harmony', an open source
447447
Java SE, which can be obtained at:
448448

449449
* NOTICE:
@@ -453,15 +453,15 @@ Java SE, which can be obtained at:
453453
* HOMEPAGE:
454454
* http://archive.apache.org/dist/harmony/
455455

456-
lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 'jbzip2', a Java bzip2 compression
456+
lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 'jbzip2', a Java bzip2 compression
457457
and decompression library written by Matthew J. Francis. It can be obtained at:
458458

459459
* LICENSE:
460460
* deps/netty/LICENSE.jbzip2.txt (MIT License)
461461
* HOMEPAGE:
462462
* https://code.google.com/p/jbzip2/
463463

464-
lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 'libdivsufsort', a C API library to construct
464+
lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 'libdivsufsort', a C API library to construct
465465
the suffix array and the Burrows-Wheeler transformed string for any input string of
466466
a constant-size alphabet written by Yuta Mori. It can be obtained at:
467467

@@ -470,63 +470,63 @@ a constant-size alphabet written by Yuta Mori. It can be obtained at:
470470
* HOMEPAGE:
471471
* https://github.com/y-256/libdivsufsort
472472

473-
lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of Nitsan Wakart's 'JCTools',
473+
lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of Nitsan Wakart's 'JCTools',
474474
Java Concurrency Tools for the JVM, which can be obtained at:
475475

476476
* LICENSE:
477477
* deps/netty/LICENSE.jctools.txt (ASL2 License)
478478
* HOMEPAGE:
479479
* https://github.com/JCTools/JCTools
480480

481-
lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'JZlib', a re-implementation of zlib in
481+
lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'JZlib', a re-implementation of zlib in
482482
pure Java, which can be obtained at:
483483

484484
* LICENSE:
485485
* deps/netty/LICENSE.jzlib.txt (BSD style License)
486486
* HOMEPAGE:
487487
* http://www.jcraft.com/jzlib/
488488

489-
lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'Compress-LZF', a Java library for encoding and
489+
lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'Compress-LZF', a Java library for encoding and
490490
decoding data in LZF format, written by Tatu Saloranta. It can be obtained at:
491491

492492
* LICENSE:
493493
* deps/netty/LICENSE.compress-lzf.txt (Apache License 2.0)
494494
* HOMEPAGE:
495495
* https://github.com/ning/compress
496496

497-
lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'lz4', a LZ4 Java compression
497+
lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'lz4', a LZ4 Java compression
498498
and decompression library written by Adrien Grand. It can be obtained at:
499499

500500
* LICENSE:
501501
* deps/netty/LICENSE.lz4.txt (Apache License 2.0)
502502
* HOMEPAGE:
503503
* https://github.com/jpountz/lz4-java
504504

505-
lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'lzma-java', a LZMA Java compression
505+
lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'lzma-java', a LZMA Java compression
506506
and decompression library, which can be obtained at:
507507

508508
* LICENSE:
509509
* deps/netty/LICENSE.lzma-java.txt (Apache License 2.0)
510510
* HOMEPAGE:
511511
* https://github.com/jponge/lzma-java
512512

513-
lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 'jfastlz', a Java port of FastLZ compression
513+
lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 'jfastlz', a Java port of FastLZ compression
514514
and decompression library written by William Kinney. It can be obtained at:
515515

516516
* LICENSE:
517517
* deps/netty/LICENSE.jfastlz.txt (MIT License)
518518
* HOMEPAGE:
519519
* https://code.google.com/p/jfastlz/
520520

521-
lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of and optionally depends on 'Protocol Buffers',
521+
lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of and optionally depends on 'Protocol Buffers',
522522
Google's data interchange format, which can be obtained at:
523523

524524
* LICENSE:
525525
* deps/netty/LICENSE.protobuf.txt (New BSD License)
526526
* HOMEPAGE:
527527
* https://github.com/google/protobuf
528528

529-
lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'Bouncy Castle Crypto APIs' to generate
529+
lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'Bouncy Castle Crypto APIs' to generate
530530
a temporary self-signed X.509 certificate when the JVM does not provide the
531531
equivalent functionality. It can be obtained at:
532532

@@ -535,79 +535,79 @@ equivalent functionality. It can be obtained at:
535535
* HOMEPAGE:
536536
* http://www.bouncycastle.org/
537537

538-
lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'Snappy', a compression library produced
538+
lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'Snappy', a compression library produced
539539
by Google Inc, which can be obtained at:
540540

541541
* LICENSE:
542542
* deps/netty/LICENSE.snappy.txt (New BSD License)
543543
* HOMEPAGE:
544544
* https://github.com/google/snappy
545545

546-
lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'JBoss Marshalling', an alternative Java
546+
lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'JBoss Marshalling', an alternative Java
547547
serialization API, which can be obtained at:
548548

549549
* LICENSE:
550550
* deps/netty/LICENSE.jboss-marshalling.txt (Apache License 2.0)
551551
* HOMEPAGE:
552552
* https://github.com/jboss-remoting/jboss-marshalling
553553

554-
lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'Caliper', Google's micro-
554+
lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'Caliper', Google's micro-
555555
benchmarking framework, which can be obtained at:
556556

557557
* LICENSE:
558558
* deps/netty/LICENSE.caliper.txt (Apache License 2.0)
559559
* HOMEPAGE:
560560
* https://github.com/google/caliper
561561

562-
lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'Apache Commons Logging', a logging
562+
lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'Apache Commons Logging', a logging
563563
framework, which can be obtained at:
564564

565565
* LICENSE:
566566
* deps/netty/LICENSE.commons-logging.txt (Apache License 2.0)
567567
* HOMEPAGE:
568568
* http://commons.apache.org/logging/
569569

570-
lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'Apache Log4J', a logging framework, which
570+
lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'Apache Log4J', a logging framework, which
571571
can be obtained at:
572572

573573
* LICENSE:
574574
* deps/netty/LICENSE.log4j.txt (Apache License 2.0)
575575
* HOMEPAGE:
576576
* http://logging.apache.org/log4j/
577577

578-
lib/io.netty-netty-codec-4.1.108.Final.jar optionally depends on 'Aalto XML', an ultra-high performance
578+
lib/io.netty-netty-codec-4.1.111.Final.jar optionally depends on 'Aalto XML', an ultra-high performance
579579
non-blocking XML processor, which can be obtained at:
580580

581581
* LICENSE:
582582
* deps/netty/LICENSE.aalto-xml.txt (Apache License 2.0)
583583
* HOMEPAGE:
584584
* http://wiki.fasterxml.com/AaltoHome
585585

586-
lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified version of 'HPACK', a Java implementation of
586+
lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified version of 'HPACK', a Java implementation of
587587
the HTTP/2 HPACK algorithm written by Twitter. It can be obtained at:
588588

589589
* LICENSE:
590590
* deps/netty/LICENSE.hpack.txt (Apache License 2.0)
591591
* HOMEPAGE:
592592
* https://github.com/twitter/hpack
593593

594-
lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified version of 'HPACK', a Java implementation of
594+
lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified version of 'HPACK', a Java implementation of
595595
the HTTP/2 HPACK algorithm written by Cory Benfield. It can be obtained at:
596596

597597
* LICENSE:
598598
* deps/netty/LICENSE.hyper-hpack.txt (MIT License)
599599
* HOMEPAGE:
600600
* https://github.com/python-hyper/hpack/
601601

602-
lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified version of 'HPACK', a Java implementation of
602+
lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified version of 'HPACK', a Java implementation of
603603
the HTTP/2 HPACK algorithm written by Tatsuhiro Tsujikawa. It can be obtained at:
604604

605605
* LICENSE:
606606
* deps/netty/LICENSE.nghttp2-hpack.txt (MIT License)
607607
* HOMEPAGE:
608608
* https://github.com/nghttp2/nghttp2/
609609

610-
lib/io.netty-netty-codec-4.1.108.Final.jar contains a modified portion of 'Apache Commons Lang', a Java library
610+
lib/io.netty-netty-codec-4.1.111.Final.jar contains a modified portion of 'Apache Commons Lang', a Java library
611611
provides utilities for the java.lang API, which can be obtained at:
612612

613613
* LICENSE:
@@ -616,15 +616,15 @@ provides utilities for the java.lang API, which can be obtained at:
616616
* https://commons.apache.org/proper/commons-lang/
617617

618618

619-
lib/io.netty-netty-codec-4.1.108.Final.jar contains the Maven wrapper scripts from 'Maven Wrapper',
619+
lib/io.netty-netty-codec-4.1.111.Final.jar contains the Maven wrapper scripts from 'Maven Wrapper',
620620
that provides an easy way to ensure a user has everything necessary to run the Maven build.
621621

622622
* LICENSE:
623623
* deps/netty/LICENSE.mvn-wrapper.txt (Apache License 2.0)
624624
* HOMEPAGE:
625625
* https://github.com/takari/maven-wrapper
626626

627-
lib/io.netty-netty-codec-4.1.108.Final.jar contains the dnsinfo.h header file,
627+
lib/io.netty-netty-codec-4.1.111.Final.jar contains the dnsinfo.h header file,
628628
that provides a way to retrieve the system DNS configuration on MacOS.
629629
This private header is also used by Apple's open source
630630
mDNSResponder (https://opensource.apple.com/tarballs/mDNSResponder/).

0 commit comments

Comments
 (0)