Skip to content

Commit f5dfd89

Browse files
committed
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: - 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. - 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 a95f698)
1 parent 43caf90 commit f5dfd89

File tree

14 files changed

+456
-257
lines changed

14 files changed

+456
-257
lines changed

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

+46-46
Large diffs are not rendered by default.

Diff for: bookkeeper-dist/src/main/resources/LICENSE-bkctl.bin.txt

+40-44
Original file line numberDiff line numberDiff line change
@@ -217,30 +217,26 @@ 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-http-4.1.108.Final.jar [11]
223-
- lib/io.netty-netty-codec-http2-4.1.108.Final.jar [11]
224-
- lib/io.netty-netty-codec-socks-4.1.108.Final.jar [11]
225-
- lib/io.netty-netty-common-4.1.108.Final.jar [11]
226-
- lib/io.netty-netty-handler-4.1.108.Final.jar [11]
227-
- lib/io.netty-netty-handler-proxy-4.1.108.Final.jar [11]
228-
- lib/io.netty-netty-resolver-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-common-4.1.111.Final.jar [11]
223+
- lib/io.netty-netty-handler-4.1.111.Final.jar [11]
224+
- lib/io.netty-netty-resolver-4.1.111.Final.jar [11]
229225
- lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final.jar [11]
230226
- lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-linux-aarch_64.jar [11]
231227
- lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-linux-x86_64.jar [11]
232228
- lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-osx-aarch_64.jar [11]
233229
- lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-osx-x86_64.jar [11]
234230
- lib/io.netty-netty-tcnative-boringssl-static-2.0.65.Final-windows-x86_64.jar [11]
235231
- lib/io.netty-netty-tcnative-classes-2.0.65.Final.jar [11]
236-
- lib/io.netty-netty-transport-4.1.108.Final.jar [11]
237-
- lib/io.netty-netty-transport-classes-epoll-4.1.108.Final.jar [11]
238-
- lib/io.netty-netty-transport-native-epoll-4.1.108.Final-linux-aarch_64.jar [11]
239-
- lib/io.netty-netty-transport-native-epoll-4.1.108.Final-linux-x86_64.jar [11]
232+
- lib/io.netty-netty-transport-4.1.111.Final.jar [11]
233+
- lib/io.netty-netty-transport-classes-epoll-4.1.111.Final.jar [11]
234+
- lib/io.netty-netty-transport-native-epoll-4.1.111.Final-linux-aarch_64.jar [11]
235+
- lib/io.netty-netty-transport-native-epoll-4.1.111.Final-linux-x86_64.jar [11]
240236
- lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.25.Final-linux-x86_64.jar [11]
241237
- lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.25.Final-linux-aarch_64.jar [11]
242238
- lib/io.netty.incubator-netty-incubator-transport-classes-io_uring-0.0.25.Final.jar [11]
243-
- lib/io.netty-netty-transport-native-unix-common-4.1.108.Final.jar [11]
239+
- lib/io.netty-netty-transport-native-unix-common-4.1.111.Final.jar [11]
244240
- lib/org.apache.logging.log4j-log4j-api-2.18.0.jar [16]
245241
- lib/org.apache.logging.log4j-log4j-core-2.18.0.jar [16]
246242
- lib/org.apache.logging.log4j-log4j-slf4j-impl-2.18.0.jar [16]
@@ -263,9 +259,9 @@ Apache Software License, Version 2.
263259
- lib/io.grpc-grpc-context-1.56.0.jar [32]
264260
- lib/io.grpc-grpc-core-1.56.0.jar [32]
265261
- lib/io.grpc-grpc-grpclb-1.56.0.jar [32]
266-
- lib/io.grpc-grpc-netty-1.56.0.jar [32]
267262
- lib/io.grpc-grpc-protobuf-1.56.0.jar [32]
268263
- lib/io.grpc-grpc-protobuf-lite-1.56.0.jar [32]
264+
- lib/io.grpc-grpc-netty-shaded-1.56.0.jar [32]
269265
- lib/io.grpc-grpc-services-1.56.0.jar [32]
270266
- lib/io.grpc-grpc-stub-1.56.0.jar [32]
271267
- lib/io.grpc-grpc-testing-1.56.0.jar [32]
@@ -303,7 +299,7 @@ Apache Software License, Version 2.
303299
[8] Source available at https://github.com/apache/commons-io/tree/rel/commons-io-2.7
304300
[9] Source available at https://github.com/apache/commons-lang/tree/LANG_2_6
305301
[10] Source available at https://github.com/apache/commons-logging/tree/commons-logging-1.1.1
306-
[11] Source available at https://github.com/netty/netty/tree/netty-4.1.108.Final
302+
[11] Source available at https://github.com/netty/netty/tree/netty-4.1.111.Final
307303
[16] Source available at https://github.com/apache/logging-log4j2/tree/rel/2.18.0
308304
[18] Source available at https://github.com/apache/commons-collections/tree/collections-4.1
309305
[19] Source available at https://github.com/apache/commons-lang/tree/LANG_3_6
@@ -334,9 +330,9 @@ Apache Software License, Version 2.
334330
[52] Source available at https://github.com/carrotsearch/hppc/tree/0.9.1
335331

336332
------------------------------------------------------------------------------------
337-
lib/io.netty-netty-codec-4.1.108.Final.jar bundles some 3rd party dependencies
333+
lib/io.netty-netty-codec-4.1.111.Final.jar bundles some 3rd party dependencies
338334

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

342338
* LICENSE:
@@ -345,31 +341,31 @@ been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene:
345341
* http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
346342
* http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/
347343

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

351347
* LICENSE:
352348
* deps/netty/LICENSE.base64.txt (Public Domain)
353349
* HOMEPAGE:
354350
* http://iharder.sourceforge.net/current/java/base64/
355351

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

359355
* LICENSE:
360356
* deps/netty/LICENSE.webbit.txt (BSD License)
361357
* HOMEPAGE:
362358
* https://github.com/joewalnes/webbit
363359

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

367363
* LICENSE:
368364
* deps/netty/LICENSE.slf4j.txt (MIT License)
369365
* HOMEPAGE:
370366
* http://www.slf4j.org/
371367

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

375371
* NOTICE:
@@ -379,15 +375,15 @@ Java SE, which can be obtained at:
379375
* HOMEPAGE:
380376
* http://archive.apache.org/dist/harmony/
381377

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

385381
* LICENSE:
386382
* deps/netty/LICENSE.jbzip2.txt (MIT License)
387383
* HOMEPAGE:
388384
* https://code.google.com/p/jbzip2/
389385

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

@@ -396,63 +392,63 @@ a constant-size alphabet written by Yuta Mori. It can be obtained at:
396392
* HOMEPAGE:
397393
* https://github.com/y-256/libdivsufsort
398394

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

402398
* LICENSE:
403399
* deps/netty/LICENSE.jctools.txt (ASL2 License)
404400
* HOMEPAGE:
405401
* https://github.com/JCTools/JCTools
406402

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

410406
* LICENSE:
411407
* deps/netty/LICENSE.jzlib.txt (BSD style License)
412408
* HOMEPAGE:
413409
* http://www.jcraft.com/jzlib/
414410

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

418414
* LICENSE:
419415
* deps/netty/LICENSE.compress-lzf.txt (Apache License 2.0)
420416
* HOMEPAGE:
421417
* https://github.com/ning/compress
422418

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

426422
* LICENSE:
427423
* deps/netty/LICENSE.lz4.txt (Apache License 2.0)
428424
* HOMEPAGE:
429425
* https://github.com/jpountz/lz4-java
430426

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

434430
* LICENSE:
435431
* deps/netty/LICENSE.lzma-java.txt (Apache License 2.0)
436432
* HOMEPAGE:
437433
* https://github.com/jponge/lzma-java
438434

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

442438
* LICENSE:
443439
* deps/netty/LICENSE.jfastlz.txt (MIT License)
444440
* HOMEPAGE:
445441
* https://code.google.com/p/jfastlz/
446442

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

450446
* LICENSE:
451447
* deps/netty/LICENSE.protobuf.txt (New BSD License)
452448
* HOMEPAGE:
453449
* https://github.com/google/protobuf
454450

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

@@ -461,79 +457,79 @@ equivalent functionality. It can be obtained at:
461457
* HOMEPAGE:
462458
* http://www.bouncycastle.org/
463459

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

467463
* LICENSE:
468464
* deps/netty/LICENSE.snappy.txt (New BSD License)
469465
* HOMEPAGE:
470466
* https://github.com/google/snappy
471467

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

475471
* LICENSE:
476472
* deps/netty/LICENSE.jboss-marshalling.txt (Apache License 2.0)
477473
* HOMEPAGE:
478474
* https://github.com/jboss-remoting/jboss-marshalling
479475

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

483479
* LICENSE:
484480
* deps/netty/LICENSE.caliper.txt (Apache License 2.0)
485481
* HOMEPAGE:
486482
* https://github.com/google/caliper
487483

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

491487
* LICENSE:
492488
* deps/netty/LICENSE.commons-logging.txt (Apache License 2.0)
493489
* HOMEPAGE:
494490
* http://commons.apache.org/logging/
495491

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

499495
* LICENSE:
500496
* deps/netty/LICENSE.log4j.txt (Apache License 2.0)
501497
* HOMEPAGE:
502498
* http://logging.apache.org/log4j/
503499

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

507503
* LICENSE:
508504
* deps/netty/LICENSE.aalto-xml.txt (Apache License 2.0)
509505
* HOMEPAGE:
510506
* http://wiki.fasterxml.com/AaltoHome
511507

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

515511
* LICENSE:
516512
* deps/netty/LICENSE.hpack.txt (Apache License 2.0)
517513
* HOMEPAGE:
518514
* https://github.com/twitter/hpack
519515

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

523519
* LICENSE:
524520
* deps/netty/LICENSE.hyper-hpack.txt (MIT License)
525521
* HOMEPAGE:
526522
* https://github.com/python-hyper/hpack/
527523

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

531527
* LICENSE:
532528
* deps/netty/LICENSE.nghttp2-hpack.txt (MIT License)
533529
* HOMEPAGE:
534530
* https://github.com/nghttp2/nghttp2/
535531

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

539535
* LICENSE:
@@ -542,15 +538,15 @@ provides utilities for the java.lang API, which can be obtained at:
542538
* https://commons.apache.org/proper/commons-lang/
543539

544540

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

548544
* LICENSE:
549545
* deps/netty/LICENSE.mvn-wrapper.txt (Apache License 2.0)
550546
* HOMEPAGE:
551547
* https://github.com/takari/maven-wrapper
552548

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

0 commit comments

Comments
 (0)