You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by mm...@apache.org on 2018/11/06 20:22:27 UTC

[bookkeeper] branch master updated: Upgrade to Netty 4.1.31 and use individual dependencies

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

mmerli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git


The following commit(s) were added to refs/heads/master by this push:
     new da3bd81  Upgrade to Netty 4.1.31 and use individual dependencies
da3bd81 is described below

commit da3bd81ef8849589d63d6051c4f1dc86981c7436
Author: Matteo Merli <mm...@apache.org>
AuthorDate: Tue Nov 6 12:22:23 2018 -0800

    Upgrade to Netty 4.1.31 and use individual dependencies
    
    ### Motivation
    
     * Upgrade to latest Netty version which brings in perf improvements and some new features (eg: https://github.com/netty/netty/pull/8267)
    
     * Broke down the dependencies from `netty-all` into individual components, as discussed at https://github.com/apache/bookkeeper/pull/1755#discussion_r228449352
    
    
    
    Reviewers: Ivan Kelly <iv...@apache.org>, Enrico Olivelli <eo...@gmail.com>, Sijie Guo <si...@apache.org>
    
    This closes #1784 from merlimat/netty-4.1.31
---
 bookkeeper-dist/src/assemble/bin-all.xml           | 17 +------
 bookkeeper-dist/src/assemble/bin-server.xml        | 16 +-----
 .../src/main/resources/LICENSE-all.bin.txt         | 56 +++++++++++----------
 .../src/main/resources/LICENSE-server.bin.txt      | 56 +++++++++++----------
 .../src/main/resources/NOTICE-all.bin.txt          | 18 ++++++-
 .../src/main/resources/NOTICE-server.bin.txt       | 17 ++++++-
 .../deps/netty-4.1.22.Final/LICENSE.webbit.txt     | 37 --------------
 .../LICENSE.base64.txt                             |  0
 .../LICENSE.jbzip2.txt                             |  0
 .../LICENSE.jfastlz.txt                            |  0
 .../LICENSE.jsr166y.txt                            |  0
 .../LICENSE.libdivsufsort.txt                      |  0
 .../LICENSE.protobuf.txt                           |  0
 .../LICENSE.slf4j.txt                              |  0
 bookkeeper-server/pom.xml                          | 20 ++------
 .../prometheus-metrics-provider/pom.xml            |  2 +-
 microbenchmarks/pom.xml                            |  4 --
 pom.xml                                            | 57 ++++++++++++++++++++--
 stream/distributedlog/core/pom.xml                 | 11 -----
 19 files changed, 157 insertions(+), 154 deletions(-)

diff --git a/bookkeeper-dist/src/assemble/bin-all.xml b/bookkeeper-dist/src/assemble/bin-all.xml
index c1d8b43..9e11c8e 100644
--- a/bookkeeper-dist/src/assemble/bin-all.xml
+++ b/bookkeeper-dist/src/assemble/bin-all.xml
@@ -58,7 +58,7 @@
         <include>javax.servlet-api-3.1.0/CDDL+GPL-1.1</include>
         <include>jsr-305/LICENSE</include>
         <include>netty-3.10.1.Final/*</include>
-        <include>netty-4.1.22.Final/*</include>
+        <include>netty-4.1.31.Final/*</include>
         <include>paranamer-2.8/LICENSE.txt</include>
         <include>protobuf-3.0.0/LICENSE</include>
         <include>jline-2.11/LICENSE</include>
@@ -99,21 +99,6 @@
       <!-- Include 'groupId' in the dependencies Jar names to better identify the provenance of the jar -->
       <outputFileNameMapping>${artifact.groupId}-${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
       <excludes>
-        <!-- All these dependencies are already included in netty-all -->
-        <exclude>io.netty:netty-buffer</exclude>
-        <exclude>io.netty:netty-codec</exclude>
-        <exclude>io.netty:netty-codec-dns</exclude>
-        <exclude>io.netty:netty-codec-http</exclude>
-        <exclude>io.netty:netty-codec-http2</exclude>
-        <exclude>io.netty:netty-codec-socks</exclude>
-        <exclude>io.netty:netty-common</exclude>
-        <exclude>io.netty:netty-handler</exclude>
-        <exclude>io.netty:netty-handler-proxy</exclude>
-        <exclude>io.netty:netty-resolver</exclude>
-        <exclude>io.netty:netty-resolver-dns</exclude>
-        <exclude>io.netty:netty-tcnative-boringssl-static</exclude>
-        <exclude>io.netty:netty-transport-native-epoll</exclude>
-        <exclude>io.netty:netty-transport</exclude>
         <!-- All these dependencies are already included in stream-storage-java-client -->
         <exclude>org.apache.bookkeeper:stream-storage-common</exclude>
         <exclude>org.apache.bookkeeper:stream-storage-proto</exclude>
diff --git a/bookkeeper-dist/src/assemble/bin-server.xml b/bookkeeper-dist/src/assemble/bin-server.xml
index 46054c7..ee88fe0 100644
--- a/bookkeeper-dist/src/assemble/bin-server.xml
+++ b/bookkeeper-dist/src/assemble/bin-server.xml
@@ -51,7 +51,7 @@
       <includes>
         <include>google-auth-library-credentials-0.9.0/LICENSE</include>
         <include>javax.servlet-api-3.1.0/CDDL+GPL-1.1</include>
-        <include>netty-4.1.22.Final/*</include>
+        <include>netty-4.1.31.Final/*</include>
         <include>protobuf-3.0.0/LICENSE</include>
         <include>jline-2.11/LICENSE</include>
         <include>protobuf-3.5.1/LICENSE</include>
@@ -89,20 +89,6 @@
       <outputFileNameMapping>${artifact.groupId}-${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
       <excludes>
         <exclude>com.google.code.findbugs:jsr305</exclude>
-        <!-- All these dependencies are already included in netty-all -->
-        <exclude>io.netty:netty-buffer</exclude>
-        <exclude>io.netty:netty-codec</exclude>
-        <exclude>io.netty:netty-codec-dns</exclude>
-        <exclude>io.netty:netty-codec-http</exclude>
-        <exclude>io.netty:netty-codec-http2</exclude>
-        <exclude>io.netty:netty-codec-socks</exclude>
-        <exclude>io.netty:netty-common</exclude>
-        <exclude>io.netty:netty-handler</exclude>
-        <exclude>io.netty:netty-handler-proxy</exclude>
-        <exclude>io.netty:netty-resolver</exclude>
-        <exclude>io.netty:netty-resolver-dns</exclude>
-        <exclude>io.netty:netty-tcnative-boringssl-static</exclude>
-        <exclude>io.netty:netty-transport</exclude>
         <!-- All these dependencies are already included in stream-storage-java-client -->
         <exclude>org.apache.bookkeeper:stream-storage-common</exclude>
         <exclude>org.apache.bookkeeper:stream-storage-proto</exclude>
diff --git a/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt b/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
index 748ca24..175050d 100644
--- a/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
+++ b/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
@@ -250,7 +250,22 @@ Apache Software License, Version 2.
 - lib/io.dropwizard.metrics-metrics-graphite-3.1.0.jar [21]
 - lib/io.dropwizard.metrics-metrics-jvm-3.1.0.jar [21]
 - lib/io.netty-netty-3.10.1.Final.jar [22]
-- lib/io.netty-netty-all-4.1.22.Final.jar [23]
+- lib/io.netty-netty-buffer-4.1.31.Final.jar [23]
+- lib/io.netty-netty-codec-4.1.31.Final.jar [23]
+- lib/io.netty-netty-codec-dns-4.1.31.Final.jar [23]
+- lib/io.netty-netty-codec-http-4.1.31.Final.jar [23]
+- lib/io.netty-netty-codec-http2-4.1.31.Final.jar [23]
+- lib/io.netty-netty-codec-socks-4.1.31.Final.jar [23]
+- lib/io.netty-netty-common-4.1.31.Final.jar [23]
+- lib/io.netty-netty-handler-4.1.31.Final.jar [23]
+- lib/io.netty-netty-handler-proxy-4.1.31.Final.jar [23]
+- lib/io.netty-netty-resolver-4.1.31.Final.jar [23]
+- lib/io.netty-netty-resolver-dns-4.1.31.Final.jar [23]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.19.Final.jar [23]
+- lib/io.netty-netty-transport-4.1.31.Final.jar [23]
+- lib/io.netty-netty-transport-native-epoll-4.1.31.Final.jar [23]
+- lib/io.netty-netty-transport-native-epoll-4.1.31.Final-linux-x86_64.jar [23]
+- lib/io.netty-netty-transport-native-unix-common-4.1.31.Final.jar [23]
 - lib/io.prometheus-simpleclient-0.0.21.jar [24]
 - lib/io.prometheus-simpleclient_common-0.0.21.jar [24]
 - lib/io.prometheus-simpleclient_hotspot-0.0.21.jar [24]
@@ -385,71 +400,63 @@ WebSocket and HTTP server:
     * https://github.com/joewalnes/webbit
 
 ------------------------------------------------------------------------------------
-lib/io.netty-netty-all-4.1.22.Final.jar bundles some 3rd party dependencies
+lib/io.netty-netty-codec-4.1.31.Final.jar bundles some 3rd party dependencies
 
-lib/io.netty-netty-all-4.1.22.Final.jar contains the extensions to Java Collections Framework which has
+lib/io.netty-netty-codec-4.1.31.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:
-    * deps/netty-4.1.22.Final/LICENSE.jsr166y.txt (Public Domain)
+    * deps/netty-4.1.31.Final/LICENSE.jsr166y.txt (Public Domain)
   * HOMEPAGE:
     * 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-all-4.1.22.Final.jar contains a modified version of Robert Harder's Public Domain
+lib/io.netty-netty-codec-4.1.31.Final.jar contains a modified version of Robert Harder's Public Domain
 Base64 Encoder and Decoder, which can be obtained at:
 
   * LICENSE:
-    * deps/netty-4.1.22.Final/LICENSE.base64.txt (Public Domain)
+    * deps/netty-4.1.31.Final/LICENSE.base64.txt (Public Domain)
   * HOMEPAGE:
     * http://iharder.sourceforge.net/current/java/base64/
 
-lib/io.netty-netty-all-4.1.22.Final.jar contains a modified portion of 'Webbit', an event based
-WebSocket and HTTP server, which can be obtained at:
-
-  * LICENSE:
-    * deps/netty-4.1.22.Final/LICENSE.webbit.txt (BSD License)
-  * HOMEPAGE:
-    * https://github.com/joewalnes/webbit
-
-lib/io.netty-netty-all-4.1.22.Final.jar contains a modified portion of 'SLF4J', a simple logging
+lib/io.netty-netty-common-4.1.31.Final.jar contains a modified portion of 'SLF4J', a simple logging
 facade for Java, which can be obtained at:
 
   * LICENSE:
-    * deps/netty-4.1.22.Final/LICENSE.slf4j.txt (MIT License)
+    * deps/netty-4.1.31.Final/LICENSE.slf4j.txt (MIT License)
   * HOMEPAGE:
     * http://www.slf4j.org/
 
-lib/io.netty-netty-all-4.1.22.Final.jar contains a modified portion of 'jbzip2', a Java bzip2 compression
+lib/io.netty-netty-codec-4.1.31.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:
-    * deps/netty-4.1.22.Final/LICENSE.jbzip2.txt (MIT License)
+    * deps/netty-4.1.31.Final/LICENSE.jbzip2.txt (MIT License)
   * HOMEPAGE:
     * https://code.google.com/p/jbzip2/
 
-lib/io.netty-netty-all-4.1.22.Final.jar contains a modified portion of 'libdivsufsort', a C API library to construct
+lib/io.netty-netty-codec-4.1.31.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:
 
   * LICENSE:
-    * deps/netty-4.1.22.Final/LICENSE.libdivsufsort.txt (MIT License)
+    * deps/netty-4.1.31.Final/LICENSE.libdivsufsort.txt (MIT License)
   * HOMEPAGE:
     * https://github.com/y-256/libdivsufsort
 
-lib/io.netty-netty-all-4.1.22.Final.jar contains a modified portion of 'jfastlz', a Java port of FastLZ compression
+lib/io.netty-netty-codec-4.1.31.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:
-    * deps/netty-4.1.22.Final/LICENSE.jfastlz.txt (MIT License)
+    * deps/netty-4.1.31.Final/LICENSE.jfastlz.txt (MIT License)
   * HOMEPAGE:
     * https://code.google.com/p/jfastlz/
 
-lib/io.netty-netty-all-4.1.22.Final.jar contains a modified portion of and optionally depends on 'Protocol Buffers', Google's data
+lib/io.netty-netty-codec-4.1.31.Final.jar contains a modified portion of and optionally depends on 'Protocol Buffers', Google's data
 interchange format, which can be obtained at:
 
   * LICENSE:
-    * deps/netty-4.1.22.Final/LICENSE.protobuf.txt (New BSD License)
+    * deps/netty-4.1.31.Final/LICENSE.protobuf.txt (New BSD License)
   * HOMEPAGE:
     * https://github.com/google/protobuf
 
@@ -554,4 +561,3 @@ license. For details, see deps/jline-2.11/LICENSE
 
 Bundled as
   - lib/jline-jline-2.11.jar
-
diff --git a/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt b/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt
index bd023c8..62b4f19 100644
--- a/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt
+++ b/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt
@@ -215,7 +215,21 @@ Apache Software License, Version 2.
 - lib/commons-io-commons-io-2.4.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-all-4.1.22.Final.jar [11]
+- lib/io.netty-netty-buffer-4.1.31.Final.jar [11]
+- lib/io.netty-netty-codec-4.1.31.Final.jar [11]
+- lib/io.netty-netty-codec-dns-4.1.31.Final.jar [11]
+- lib/io.netty-netty-codec-http-4.1.31.Final.jar [11]
+- lib/io.netty-netty-codec-http2-4.1.31.Final.jar [11]
+- lib/io.netty-netty-codec-socks-4.1.31.Final.jar [11]
+- lib/io.netty-netty-common-4.1.31.Final.jar [11]
+- lib/io.netty-netty-handler-4.1.31.Final.jar [11]
+- lib/io.netty-netty-handler-proxy-4.1.31.Final.jar [11]
+- lib/io.netty-netty-resolver-4.1.31.Final.jar [11]
+- lib/io.netty-netty-resolver-dns-4.1.31.Final.jar [11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.19.Final.jar [11]
+- lib/io.netty-netty-transport-4.1.31.Final.jar [11]
+- lib/io.netty-netty-transport-native-epoll-4.1.31.Final.jar [11]
+- lib/io.netty-netty-transport-native-unix-common-4.1.31.Final.jar [11]
 - lib/io.prometheus-simpleclient-0.0.21.jar [12]
 - lib/io.prometheus-simpleclient_common-0.0.21.jar [12]
 - lib/io.prometheus-simpleclient_hotspot-0.0.21.jar [12]
@@ -275,7 +289,7 @@ Apache Software License, Version 2.
 [8] Source available at https://git-wip-us.apache.org/repos/asf?p=commons-io.git;a=tag;h=603579
 [9] Source available at https://git-wip-us.apache.org/repos/asf?p=commons-lang.git;a=tag;h=375459
 [10] Source available at http://svn.apache.org/viewvc/commons/proper/logging/tags/commons-logging-1.1.1/
-[11] Source available at https://github.com/netty/netty/tree/netty-4.1.22.Final
+[11] Source available at https://github.com/netty/netty/tree/netty-4.1.31.Final
 [12] Source available at https://github.com/prometheus/client_java/tree/parent-0.0.21
 [13] Source available at https://github.com/vert-x3/vertx-auth/tree/3.4.1
 [14] Source available at https://github.com/eclipse/vert.x/tree/3.4.1
@@ -303,71 +317,63 @@ Apache Software License, Version 2.
 [36] Source available at https://github.com/apache/yetus/tree/rel/0.5.0
 
 ------------------------------------------------------------------------------------
-lib/io.netty-netty-all-4.1.22.Final.jar bundles some 3rd party dependencies
+lib/io.netty-netty-codec-4.1.31.Final.jar bundles some 3rd party dependencies
 
-lib/io.netty-netty-all-4.1.22.Final.jar contains the extensions to Java Collections Framework which has
+lib/io.netty-netty-codec-4.1.31.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:
-    * deps/netty-4.1.22.Final/LICENSE.jsr166y.txt (Public Domain)
+    * deps/netty-4.1.31.Final/LICENSE.jsr166y.txt (Public Domain)
   * HOMEPAGE:
     * 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-all-4.1.22.Final.jar contains a modified version of Robert Harder's Public Domain
+lib/io.netty-netty-codec-4.1.31.Final.jar contains a modified version of Robert Harder's Public Domain
 Base64 Encoder and Decoder, which can be obtained at:
 
   * LICENSE:
-    * deps/netty-4.1.22.Final/LICENSE.base64.txt (Public Domain)
+    * deps/netty-4.1.31.Final/LICENSE.base64.txt (Public Domain)
   * HOMEPAGE:
     * http://iharder.sourceforge.net/current/java/base64/
 
-lib/io.netty-netty-all-4.1.22.Final.jar contains a modified portion of 'Webbit', an event based
-WebSocket and HTTP server, which can be obtained at:
-
-  * LICENSE:
-    * deps/netty-4.1.22.Final/LICENSE.webbit.txt (BSD License)
-  * HOMEPAGE:
-    * https://github.com/joewalnes/webbit
-
-lib/io.netty-netty-all-4.1.22.Final.jar contains a modified portion of 'SLF4J', a simple logging
+lib/io.netty-netty-common-4.1.31.Final.jar contains a modified portion of 'SLF4J', a simple logging
 facade for Java, which can be obtained at:
 
   * LICENSE:
-    * deps/netty-4.1.22.Final/LICENSE.slf4j.txt (MIT License)
+    * deps/netty-4.1.31.Final/LICENSE.slf4j.txt (MIT License)
   * HOMEPAGE:
     * http://www.slf4j.org/
 
-lib/io.netty-netty-all-4.1.22.Final.jar contains a modified portion of 'jbzip2', a Java bzip2 compression
+lib/io.netty-netty-codec-4.1.31.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:
-    * deps/netty-4.1.22.Final/LICENSE.jbzip2.txt (MIT License)
+    * deps/netty-4.1.31.Final/LICENSE.jbzip2.txt (MIT License)
   * HOMEPAGE:
     * https://code.google.com/p/jbzip2/
 
-lib/io.netty-netty-all-4.1.22.Final.jar contains a modified portion of 'libdivsufsort', a C API library to construct
+lib/io.netty-netty-codec-4.1.31.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:
 
   * LICENSE:
-    * deps/netty-4.1.22.Final/LICENSE.libdivsufsort.txt (MIT License)
+    * deps/netty-4.1.31.Final/LICENSE.libdivsufsort.txt (MIT License)
   * HOMEPAGE:
     * https://github.com/y-256/libdivsufsort
 
-lib/io.netty-netty-all-4.1.22.Final.jar contains a modified portion of 'jfastlz', a Java port of FastLZ compression
+lib/io.netty-netty-codec-4.1.31.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:
-    * deps/netty-4.1.22.Final/LICENSE.jfastlz.txt (MIT License)
+    * deps/netty-4.1.31.Final/LICENSE.jfastlz.txt (MIT License)
   * HOMEPAGE:
     * https://code.google.com/p/jfastlz/
 
-lib/io.netty-netty-all-4.1.22.Final.jar contains a modified portion of and optionally depends on 'Protocol Buffers', Google's data
+lib/io.netty-netty-codec-4.1.31.Final.jar contains a modified portion of and optionally depends on 'Protocol Buffers', Google's data
 interchange format, which can be obtained at:
 
   * LICENSE:
-    * deps/netty-4.1.22.Final/LICENSE.protobuf.txt (New BSD License)
+    * deps/netty-4.1.31.Final/LICENSE.protobuf.txt (New BSD License)
   * HOMEPAGE:
     * https://github.com/google/protobuf
 
diff --git a/bookkeeper-dist/src/main/resources/NOTICE-all.bin.txt b/bookkeeper-dist/src/main/resources/NOTICE-all.bin.txt
index dea8a3f..c9a0255 100644
--- a/bookkeeper-dist/src/main/resources/NOTICE-all.bin.txt
+++ b/bookkeeper-dist/src/main/resources/NOTICE-all.bin.txt
@@ -45,7 +45,23 @@ License for the specific language governing permissions and limitations
 under the License.
 
 ------------------------------------------------------------------------------------
-- lib/io.netty-netty-all-4.1.22.Final.jar
+- lib/io.netty-netty-buffer-4.1.31.Final.jar
+- lib/io.netty-netty-codec-4.1.31.Final.jar
+- lib/io.netty-netty-codec-dns-4.1.31.Final.jar
+- lib/io.netty-netty-codec-http-4.1.31.Final.jar
+- lib/io.netty-netty-codec-http2-4.1.31.Final.jar
+- lib/io.netty-netty-codec-socks-4.1.31.Final.jar
+- lib/io.netty-netty-common-4.1.31.Final.jar
+- lib/io.netty-netty-handler-4.1.31.Final.jar
+- lib/io.netty-netty-handler-proxy-4.1.31.Final.jar
+- lib/io.netty-netty-resolver-4.1.31.Final.jar
+- lib/io.netty-netty-resolver-dns-4.1.31.Final.jar
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.19.Final.jar
+- lib/io.netty-netty-transport-4.1.31.Final.jar
+- lib/io.netty-netty-transport-native-epoll-4.1.31.Final.jar
+- lib/io.netty-netty-transport-native-epoll-4.1.31.Final-linux-x86_64.jar
+- lib/io.netty-netty-transport-native-unix-common-4.1.31.Final.jar
+
 
                             The Netty Project
                             =================
diff --git a/bookkeeper-dist/src/main/resources/NOTICE-server.bin.txt b/bookkeeper-dist/src/main/resources/NOTICE-server.bin.txt
index d2f4f40..c2dcf1d 100644
--- a/bookkeeper-dist/src/main/resources/NOTICE-server.bin.txt
+++ b/bookkeeper-dist/src/main/resources/NOTICE-server.bin.txt
@@ -5,7 +5,22 @@ This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
 
 ------------------------------------------------------------------------------------
-- lib/io.netty-netty-all-4.1.22.Final.jar
+- lib/io.netty-netty-buffer-4.1.31.Final.jar
+- lib/io.netty-netty-codec-4.1.31.Final.jar
+- lib/io.netty-netty-codec-dns-4.1.31.Final.jar
+- lib/io.netty-netty-codec-http-4.1.31.Final.jar
+- lib/io.netty-netty-codec-http2-4.1.31.Final.jar
+- lib/io.netty-netty-codec-socks-4.1.31.Final.jar
+- lib/io.netty-netty-common-4.1.31.Final.jar
+- lib/io.netty-netty-handler-4.1.31.Final.jar
+- lib/io.netty-netty-handler-proxy-4.1.31.Final.jar
+- lib/io.netty-netty-resolver-4.1.31.Final.jar
+- lib/io.netty-netty-resolver-dns-4.1.31.Final.jar
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.19.Final.jar
+- lib/io.netty-netty-transport-4.1.31.Final.jar
+- lib/io.netty-netty-transport-native-epoll-4.1.31.Final.jar
+- lib/io.netty-netty-transport-native-unix-common-4.1.31.Final.jar
+
 
                             The Netty Project
                             =================
diff --git a/bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.webbit.txt b/bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.webbit.txt
deleted file mode 100644
index 05ae225..0000000
--- a/bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.webbit.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-(BSD License: http://www.opensource.org/licenses/bsd-license)
-
-Copyright (c) 2011, Joe Walnes, Aslak Hellesøy and contributors
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or 
-without modification, are permitted provided that the 
-following conditions are met:
-
-* Redistributions of source code must retain the above 
-  copyright notice, this list of conditions and the 
-  following disclaimer.
-
-* Redistributions in binary form must reproduce the above
-  copyright notice, this list of conditions and the 
-  following disclaimer in the documentation and/or other
-  materials provided with the distribution.
-
-* Neither the name of the Webbit nor the names of
-  its contributors may be used to endorse or promote products
-  derived from this software without specific prior written
-  permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
-CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 
-GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 
-BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 
-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
-POSSIBILITY OF SUCH DAMAGE.
diff --git a/bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.base64.txt b/bookkeeper-dist/src/main/resources/deps/netty-4.1.31.Final/LICENSE.base64.txt
similarity index 100%
rename from bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.base64.txt
rename to bookkeeper-dist/src/main/resources/deps/netty-4.1.31.Final/LICENSE.base64.txt
diff --git a/bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.jbzip2.txt b/bookkeeper-dist/src/main/resources/deps/netty-4.1.31.Final/LICENSE.jbzip2.txt
similarity index 100%
rename from bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.jbzip2.txt
rename to bookkeeper-dist/src/main/resources/deps/netty-4.1.31.Final/LICENSE.jbzip2.txt
diff --git a/bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.jfastlz.txt b/bookkeeper-dist/src/main/resources/deps/netty-4.1.31.Final/LICENSE.jfastlz.txt
similarity index 100%
rename from bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.jfastlz.txt
rename to bookkeeper-dist/src/main/resources/deps/netty-4.1.31.Final/LICENSE.jfastlz.txt
diff --git a/bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.jsr166y.txt b/bookkeeper-dist/src/main/resources/deps/netty-4.1.31.Final/LICENSE.jsr166y.txt
similarity index 100%
rename from bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.jsr166y.txt
rename to bookkeeper-dist/src/main/resources/deps/netty-4.1.31.Final/LICENSE.jsr166y.txt
diff --git a/bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.libdivsufsort.txt b/bookkeeper-dist/src/main/resources/deps/netty-4.1.31.Final/LICENSE.libdivsufsort.txt
similarity index 100%
rename from bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.libdivsufsort.txt
rename to bookkeeper-dist/src/main/resources/deps/netty-4.1.31.Final/LICENSE.libdivsufsort.txt
diff --git a/bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.protobuf.txt b/bookkeeper-dist/src/main/resources/deps/netty-4.1.31.Final/LICENSE.protobuf.txt
similarity index 100%
rename from bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.protobuf.txt
rename to bookkeeper-dist/src/main/resources/deps/netty-4.1.31.Final/LICENSE.protobuf.txt
diff --git a/bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.slf4j.txt b/bookkeeper-dist/src/main/resources/deps/netty-4.1.31.Final/LICENSE.slf4j.txt
similarity index 100%
rename from bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.slf4j.txt
rename to bookkeeper-dist/src/main/resources/deps/netty-4.1.31.Final/LICENSE.slf4j.txt
diff --git a/bookkeeper-server/pom.xml b/bookkeeper-server/pom.xml
index e093d80..10b5ea4 100644
--- a/bookkeeper-server/pom.xml
+++ b/bookkeeper-server/pom.xml
@@ -29,13 +29,6 @@
       <groupId>org.apache.bookkeeper</groupId>
       <artifactId>bookkeeper-common</artifactId>
       <version>${project.parent.version}</version>
-      <exclusions>
-        <!-- exclude "netty-common" since "netty-all" already introduces it -->
-        <exclusion>
-          <groupId>io.netty</groupId>
-          <artifactId>netty-common</artifactId>
-        </exclusion>
-      </exclusions>
     </dependency>
     <dependency>
       <groupId>org.apache.bookkeeper</groupId>
@@ -61,7 +54,11 @@
     </dependency>
     <dependency>
       <groupId>io.netty</groupId>
-      <artifactId>netty-all</artifactId>
+      <artifactId>netty-handler</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.netty</groupId>
+      <artifactId>netty-transport-native-epoll</artifactId>
     </dependency>
     <dependency>
       <groupId>io.netty</groupId>
@@ -76,13 +73,6 @@
       <groupId>org.apache.bookkeeper</groupId>
       <artifactId>circe-checksum</artifactId>
       <version>${project.version}</version>
-      <exclusions>
-        <!-- exclude "netty-buffer" since "netty-all" already introduces it -->
-        <exclusion>
-          <groupId>io.netty</groupId>
-          <artifactId>netty-buffer</artifactId>
-        </exclusion>
-      </exclusions>
     </dependency>
     <dependency>
       <groupId>commons-cli</groupId>
diff --git a/bookkeeper-stats-providers/prometheus-metrics-provider/pom.xml b/bookkeeper-stats-providers/prometheus-metrics-provider/pom.xml
index 92b35c6..9f212e5 100644
--- a/bookkeeper-stats-providers/prometheus-metrics-provider/pom.xml
+++ b/bookkeeper-stats-providers/prometheus-metrics-provider/pom.xml
@@ -50,7 +50,7 @@
     
     <dependency>
        <groupId>io.netty</groupId>
-       <artifactId>netty-all</artifactId>
+       <artifactId>netty-common</artifactId>
     </dependency>
 
     <dependency>
diff --git a/microbenchmarks/pom.xml b/microbenchmarks/pom.xml
index a0841bb..0f34b31 100644
--- a/microbenchmarks/pom.xml
+++ b/microbenchmarks/pom.xml
@@ -39,10 +39,6 @@
       <scope>provided</scope>
     </dependency>
     <dependency>
-      <groupId>io.netty</groupId>
-      <artifactId>netty-all</artifactId>
-    </dependency>
-    <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
     </dependency>
diff --git a/pom.xml b/pom.xml
index 8d43ecd..25624b2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -147,8 +147,8 @@
     <lombok.version>1.16.22</lombok.version>
     <lz4.version>1.3.0</lz4.version>
     <mockito.version>2.22.0</mockito.version>
-    <netty.version>4.1.22.Final</netty.version>
-    <netty-boringssl.version>2.0.7.Final</netty-boringssl.version>
+    <netty.version>4.1.31.Final</netty.version>
+    <netty-boringssl.version>2.0.19.Final</netty-boringssl.version>
     <ostrich.version>9.1.3</ostrich.version>
     <powermock.version>2.0.0-beta.5</powermock.version>
     <prometheus.version>0.0.21</prometheus.version>
@@ -371,7 +371,58 @@
       </dependency>
       <dependency>
         <groupId>io.netty</groupId>
-        <artifactId>netty-all</artifactId>
+        <artifactId>netty-transport</artifactId>
+        <version>${netty.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-handler</artifactId>
+        <version>${netty.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-transport-native-epoll</artifactId>
+        <version>${netty.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-transport-native-epoll</artifactId>
+        <version>${netty.version}</version>
+        <classifier>linux-x86_64</classifier>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-codec-dns</artifactId>
+        <version>${netty.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-codec-http</artifactId>
+        <version>${netty.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-codec-http2</artifactId>
+        <version>${netty.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-codec-socks</artifactId>
+        <version>${netty.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-handler-proxy</artifactId>
+        <version>${netty.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-resolver</artifactId>
+        <version>${netty.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>io.netty</groupId>
+        <artifactId>netty-resolver-dns</artifactId>
         <version>${netty.version}</version>
       </dependency>
       <dependency>
diff --git a/stream/distributedlog/core/pom.xml b/stream/distributedlog/core/pom.xml
index 5617f2c..5821975 100644
--- a/stream/distributedlog/core/pom.xml
+++ b/stream/distributedlog/core/pom.xml
@@ -29,17 +29,6 @@
       <groupId>org.apache.distributedlog</groupId>
       <artifactId>distributedlog-protocol</artifactId>
       <version>${project.parent.version}</version>
-      <exclusions>
-        <!-- netty-all is introduced by bookkeeper-server -->
-        <exclusion>
-          <groupId>io.netty</groupId>
-          <artifactId>netty-buffer</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>io.netty</groupId>
-          <artifactId>netty-common</artifactId>
-        </exclusion>
-      </exclusions>
     </dependency>
     <dependency>
       <groupId>org.apache.zookeeper</groupId>