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

[bookkeeper] 02/09: Update bookkeeper dependencies : netty/protobuf/grpc

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

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

commit 3cf0be80fff1a553b7614eead8bf185569e085f0
Author: Sijie Guo <si...@apache.org>
AuthorDate: Fri May 25 15:02:03 2018 -0700

    Update bookkeeper dependencies : netty/protobuf/grpc
    
    Descriptions of the changes in this PR:
    
    *Motivation*
    
    The netty version in bookkeeper is a bit dated than the version in pulsar.
    Hence the grpc version is limited to the version that use same netty version.
    It causes issues at pulsar using bookkeeper, because pulsar has been using
    a newer version for longer time. This causes conflicts when pulsar client and
    grpc are used together without proper shading.
    
    *Solution*
    
    Upgrade netty/protobuf/grpc dependencies.
    
    - update netty from `4.1.12` to `4.1.22`, which is the one grpc is using and closer to the one that pulsar is using.
    - update grpc from `1.5.0` to `1.12.0`, which is using netty `4.1.22` and protobuf `3.5.1`.
    - update protobuf from `3.4.0` to `3.5.1`
    
    Related Issue: apache/pulsar#1844
    
    Author: Sijie Guo <si...@apache.org>
    
    Reviewers: Enrico Olivelli <eo...@gmail.com>, Jia Zhai <None>, Matteo Merli <mm...@apache.org>
    
    This closes #1441 from sijie/bump_grpc_version
---
 bookkeeper-dist/src/assemble/bin-all.xml           |  7 +-
 bookkeeper-dist/src/assemble/bin-server.xml        |  7 +-
 .../src/main/resources/LICENSE-all.bin.txt         | 93 +++++++++++-----------
 .../src/main/resources/LICENSE-server.bin.txt      | 92 ++++++++++-----------
 .../src/main/resources/NOTICE-all.bin.txt          |  2 +-
 .../src/main/resources/NOTICE-server.bin.txt       |  2 +-
 .../LICENSE                                        |  0
 .../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
 .../LICENSE.webbit.txt                             |  0
 .../src/main/resources/deps/protobuf-3.3.1/LICENSE | 32 --------
 .../{protobuf-3.4.0 => protobuf-3.5.1}/LICENSE     |  0
 .../bookkeeper/proto/BookieProtoEncodingTest.java  | 19 +++--
 pom.xml                                            | 16 ++--
 .../clients/impl/channel/StorageServerChannel.java |  1 +
 .../clients/impl/internal/LocationClientImpl.java  |  1 +
 .../apache/bookkeeper/clients/utils/GrpcUtils.java | 18 ++++-
 .../common/grpc/proxy/PingPongServiceTestBase.java |  4 +-
 23 files changed, 141 insertions(+), 153 deletions(-)

diff --git a/bookkeeper-dist/src/assemble/bin-all.xml b/bookkeeper-dist/src/assemble/bin-all.xml
index 54cd125..3a76012 100644
--- a/bookkeeper-dist/src/assemble/bin-all.xml
+++ b/bookkeeper-dist/src/assemble/bin-all.xml
@@ -54,15 +54,14 @@
       <directory>../src/main/resources/deps</directory>
       <outputDirectory>/deps</outputDirectory>
       <includes>
-        <include>google-auth-library-credentials-0.4.0/LICENSE</include>
+        <include>google-auth-library-credentials-0.9.0/LICENSE</include>
         <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.12.Final/*</include>
+        <include>netty-4.1.22.Final/*</include>
         <include>paranamer-2.8/LICENSE.txt</include>
         <include>protobuf-3.0.0/LICENSE</include>
-        <include>protobuf-3.3.1/LICENSE</include>
-        <include>protobuf-3.4.0/LICENSE</include>
+        <include>protobuf-3.5.1/LICENSE</include>
         <include>scala-library-2.11.7/LICENSE.md</include>
         <include>scala-parser-combinators_2.11-1.0.4/LICENSE.md</include>
         <include>scala-reflect-2.11.8/LICENSE.md</include>
diff --git a/bookkeeper-dist/src/assemble/bin-server.xml b/bookkeeper-dist/src/assemble/bin-server.xml
index 693fda6..10eb30c 100644
--- a/bookkeeper-dist/src/assemble/bin-server.xml
+++ b/bookkeeper-dist/src/assemble/bin-server.xml
@@ -49,12 +49,11 @@
       <directory>../src/main/resources/deps</directory>
       <outputDirectory>/deps</outputDirectory>
       <includes>
-        <include>google-auth-library-credentials-0.4.0/LICENSE</include>
+        <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.12.Final/*</include>
+        <include>netty-4.1.22.Final/*</include>
         <include>protobuf-3.0.0/LICENSE</include>
-        <include>protobuf-3.3.1/LICENSE</include>
-        <include>protobuf-3.4.0/LICENSE</include>
+        <include>protobuf-3.5.1/LICENSE</include>
         <include>slf4j-1.7.25/LICENSE.txt</include>
       </includes>
       <fileMode>644</fileMode>
diff --git a/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt b/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
index 289916d..98159e7 100644
--- a/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
+++ b/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
@@ -250,7 +250,7 @@ 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.12.Final.jar [23]
+- lib/io.netty-netty-all-4.1.22.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]
@@ -276,25 +276,28 @@ Apache Software License, Version 2.
 - lib/net.jpountz.lz4-lz4-1.3.0.jar [38]
 - lib/org.codehaus.jackson-jackson-core-asl-1.9.11.jar [39]
 - lib/org.codehaus.jackson-jackson-mapper-asl-1.9.11.jar [40]
-- lib/com.google.api.grpc-proto-google-common-protos-0.1.9.jar [41]
+- lib/com.google.api.grpc-proto-google-common-protos-1.0.0.jar [41]
 - lib/com.google.code.gson-gson-2.7.jar [42]
-- lib/com.google.instrumentation-instrumentation-api-0.4.3.jar [43]
+- lib/io.opencensus-opencensus-api-0.11.0.jar [43]
+- lib/io.opencensus-opencensus-contrib-grpc-metrics-0.11.0.jar [43]
 - lib/com.squareup.okhttp-okhttp-2.5.0.jar [44]
-- lib/com.squareup.okio-okio-1.6.0.jar [45]
-- lib/io.grpc-grpc-all-1.5.0.jar [46]
-- lib/io.grpc-grpc-auth-1.5.0.jar [46]
-- lib/io.grpc-grpc-context-1.5.0.jar [46]
-- lib/io.grpc-grpc-core-1.5.0.jar [46]
-- lib/io.grpc-grpc-netty-1.5.0.jar [46]
-- lib/io.grpc-grpc-okhttp-1.5.0.jar [46]
-- lib/io.grpc-grpc-protobuf-1.5.0.jar [46]
-- lib/io.grpc-grpc-protobuf-lite-1.5.0.jar [46]
-- lib/io.grpc-grpc-protobuf-nano-1.5.0.jar [46]
-- lib/io.grpc-grpc-stub-1.5.0.jar [46]
+- lib/com.squareup.okio-okio-1.13.0.jar [45]
+- lib/io.grpc-grpc-all-1.12.0.jar [46]
+- lib/io.grpc-grpc-auth-1.12.0.jar [46]
+- lib/io.grpc-grpc-context-1.12.0.jar [46]
+- lib/io.grpc-grpc-core-1.12.0.jar [46]
+- lib/io.grpc-grpc-netty-1.12.0.jar [46]
+- lib/io.grpc-grpc-okhttp-1.12.0.jar [46]
+- lib/io.grpc-grpc-protobuf-1.12.0.jar [46]
+- lib/io.grpc-grpc-protobuf-lite-1.12.0.jar [46]
+- lib/io.grpc-grpc-protobuf-nano-1.12.0.jar [46]
+- lib/io.grpc-grpc-stub-1.12.0.jar [46]
+- lib/io.grpc-grpc-testing-1.12.0.jar [46]
 - lib/org.apache.curator-curator-client-4.0.1.jar [47]
 - lib/org.apache.curator-curator-framework-4.0.1.jar [47]
 - lib/org.apache.curator-curator-recipes-4.0.1.jar [47]
 - lib/org.inferred-freebuilder-1.14.9.jar [48]
+- lib/com.google.errorprone-error_prone_annotations-2.1.2.jar [49]
 
 [1] Source available at https://github.com/FasterXML/jackson-annotations/tree/jackson-annotations-2.8.9
 [2] Source available at https://github.com/FasterXML/jackson-core/tree/jackson-core-2.8.9
@@ -318,7 +321,7 @@ Apache Software License, Version 2.
 [20] Source available at https://github.com/twitter/util/tree/util-6.43.0
 [21] Source available at https://github.com/dropwizard/metrics/tree/v3.1.0
 [22] Source available at https://bintray.com/netty/downloads/download_file?file_path=netty-3.10.1.Final-dist.tar.bz2
-[23] Source available at https://github.com/netty/netty/tree/netty-4.1.12.Final
+[23] Source available at https://github.com/netty/netty/tree/netty-4.1.22.Final
 [24] Source available at https://github.com/prometheus/client_java/tree/parent-0.0.21
 [25] Source available at https://github.com/vert-x3/vertx-auth/tree/3.4.1
 [26] Source available at https://github.com/eclipse/vert.x/tree/3.4.1
@@ -337,12 +340,13 @@ Apache Software License, Version 2.
 [40] Source available at https://github.com/codehaus/jackson/tree/1.9
 [41] Source available at https://github.com/googleapis/googleapis
 [42] Source available at https://github.com/google/gson/tree/gson-parent-2.7
-[43] Source available at https://github.com/census-instrumentation/opencensus-java/tree/v0.4.3
+[43] Source available at https://github.com/census-instrumentation/opencensus-java/tree/v0.11.0
 [44] Source available at https://github.com/square/okhttp/tree/parent-2.5.0
-[45] Source available at https://github.com/square/okio/tree/okio-parent-1.6.0
-[46] Source available at https://github.com/grpc/grpc-java/tree/v1.5.0
+[45] Source available at https://github.com/square/okio/tree/okio-parent-1.13.0
+[46] Source available at https://github.com/grpc/grpc-java/tree/v1.12.0
 [47] Source available at https://github.com/apache/curator/tree/apache-curator-4.0.1
 [48] Source available at https://github.com/inferred/FreeBuilder/tree/v1.14.9
+[49] Source available at https://github.com/google/error-prone/tree/v2.1.2
 
 
 ------------------------------------------------------------------------------------
@@ -380,71 +384,71 @@ WebSocket and HTTP server:
     * https://github.com/joewalnes/webbit
 
 ------------------------------------------------------------------------------------
-lib/io.netty-netty-all-4.1.12.Final.jar bundles some 3rd party dependencies
+lib/io.netty-netty-all-4.1.22.Final.jar bundles some 3rd party dependencies
 
-lib/io.netty-netty-all-4.1.12.Final.jar contains the extensions to Java Collections Framework which has
+lib/io.netty-netty-all-4.1.22.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.12.Final/LICENSE.jsr166y.txt (Public Domain)
+    * deps/netty-4.1.22.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.12.Final.jar contains a modified version of Robert Harder's Public Domain
+lib/io.netty-netty-all-4.1.22.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.12.Final/LICENSE.base64.txt (Public Domain)
+    * deps/netty-4.1.22.Final/LICENSE.base64.txt (Public Domain)
   * HOMEPAGE:
     * http://iharder.sourceforge.net/current/java/base64/
 
-lib/io.netty-netty-all-4.1.12.Final.jar contains a modified portion of 'Webbit', an event based  
+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.12.Final/LICENSE.webbit.txt (BSD 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.12.Final.jar contains a modified portion of 'SLF4J', a simple logging
+lib/io.netty-netty-all-4.1.22.Final.jar contains a modified portion of 'SLF4J', a simple logging
 facade for Java, which can be obtained at:
 
   * LICENSE:
-    * deps/netty-4.1.12.Final/LICENSE.slf4j.txt (MIT License)
+    * deps/netty-4.1.22.Final/LICENSE.slf4j.txt (MIT License)
   * HOMEPAGE:
     * http://www.slf4j.org/
 
-lib/io.netty-netty-all-4.1.12.Final.jar contains a modified portion of 'jbzip2', a Java bzip2 compression
+lib/io.netty-netty-all-4.1.22.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.12.Final/LICENSE.jbzip2.txt (MIT License)
+    * deps/netty-4.1.22.Final/LICENSE.jbzip2.txt (MIT License)
   * HOMEPAGE:
     * https://code.google.com/p/jbzip2/
 
-lib/io.netty-netty-all-4.1.12.Final.jar contains a modified portion of 'libdivsufsort', a C API library to construct
+lib/io.netty-netty-all-4.1.22.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.12.Final/LICENSE.libdivsufsort.txt (MIT License)
+    * deps/netty-4.1.22.Final/LICENSE.libdivsufsort.txt (MIT License)
   * HOMEPAGE:
     * https://github.com/y-256/libdivsufsort
 
-lib/io.netty-netty-all-4.1.12.Final.jar contains a modified portion of 'jfastlz', a Java port of FastLZ compression
+lib/io.netty-netty-all-4.1.22.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.12.Final/LICENSE.jfastlz.txt (MIT License)
+    * deps/netty-4.1.22.Final/LICENSE.jfastlz.txt (MIT License)
   * HOMEPAGE:
     * https://code.google.com/p/jfastlz/
 
-lib/io.netty-netty-all-4.1.12.Final.jar contains a modified portion of and optionally depends on 'Protocol Buffers', Google's data
+lib/io.netty-netty-all-4.1.22.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.12.Final/LICENSE.protobuf.txt (New BSD License)
+    * deps/netty-4.1.22.Final/LICENSE.protobuf.txt (New BSD License)
   * HOMEPAGE:
     * https://github.com/google/protobuf
 
@@ -489,18 +493,15 @@ Source available at https://storage.googleapis.com/google-code-archive-source/v2
 This product bundles Google Protocal Buffers, which is available under a "3-clause BSD"
 license.
 
-Bundled as lib/com.google.protobuf-protobuf-java-3.4.0.jar
-Source available at https://github.com/google/protobuf/tree/v3.4.0
-For details, see deps/protobuf-3.4.0/LICENSE.
+Bundled as
+  - lib/com.google.protobuf-protobuf-java-3.5.1.jar
+  - lib/com.google.protobuf-protobuf-java-util-3.5.1.jar
+Source available at https://github.com/google/protobuf/tree/v3.5.1
+For details, see deps/protobuf-3.5.1/LICENSE.
 
 Bundled as lib/com.google.protobuf.nano-protobuf-javanano-3.0.0-alpha-5.jar
 Source available at https://github.com/google/protobuf/tree/3.0.0-pre
 For details, see deps/protobuf-3.0.0/LICENSE.
-
-Bundled as com.google.protobuf-protobuf-java-util-3.3.1.jar
-Source available at https://github.com/google/protobuf/tree/v3.3.1
-For details, see deps/protobuf-3.3.1/LICENSE.
-
 ------------------------------------------------------------------------------------
 This product bundles Paranamer, which is available under a "3-clause BSD" license.
 For details, see deps/paranamer-2.8/LICENSE.txt.
@@ -541,9 +542,9 @@ Bundled as
 Source available at https://github.com/qos-ch/slf4j/tree/v_1.7.25
 ------------------------------------------------------------------------------------
 This product bundles the Google Auth Library, which is available under a "3-clause BSD"
-license. For details, see deps/google-auth-library-credentials-0.4.0/LICENSE
+license. For details, see deps/google-auth-library-credentials-0.9.0/LICENSE
 
 Bundled as
-  - lib/com.google.auth-google-auth-library-credentials-0.4.0.jar
-Source available at https://github.com/google/google-auth-library-java/tree/0.4.0
+  - lib/com.google.auth-google-auth-library-credentials-0.9.0.jar
+Source available at https://github.com/google/google-auth-library-java/tree/0.9.0
 
diff --git a/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt b/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt
index 168f8fd..e970577 100644
--- a/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt
+++ b/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt
@@ -215,7 +215,7 @@ 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.12.Final.jar [11]
+- lib/io.netty-netty-all-4.1.22.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]
@@ -241,25 +241,28 @@ Apache Software License, Version 2.
 - lib/net.jpountz.lz4-lz4-1.3.0.jar [25]
 - lib/org.codehaus.jackson-jackson-core-asl-1.9.11.jar [26]
 - lib/org.codehaus.jackson-jackson-mapper-asl-1.9.11.jar [27]
-- lib/com.google.api.grpc-proto-google-common-protos-0.1.9.jar [28]
+- lib/com.google.api.grpc-proto-google-common-protos-1.0.0.jar [28]
 - lib/com.google.code.gson-gson-2.7.jar [29]
-- lib/com.google.instrumentation-instrumentation-api-0.4.3.jar [30]
+- lib/io.opencensus-opencensus-api-0.11.0.jar [30]
+- lib/io.opencensus-opencensus-contrib-grpc-metrics-0.11.0.jar [30]
 - lib/com.squareup.okhttp-okhttp-2.5.0.jar [31]
-- lib/com.squareup.okio-okio-1.6.0.jar [32]
-- lib/io.grpc-grpc-all-1.5.0.jar [33]
-- lib/io.grpc-grpc-auth-1.5.0.jar [33]
-- lib/io.grpc-grpc-context-1.5.0.jar [33]
-- lib/io.grpc-grpc-core-1.5.0.jar [33]
-- lib/io.grpc-grpc-netty-1.5.0.jar [33]
-- lib/io.grpc-grpc-okhttp-1.5.0.jar [33]
-- lib/io.grpc-grpc-protobuf-1.5.0.jar [33]
-- lib/io.grpc-grpc-protobuf-lite-1.5.0.jar [33]
-- lib/io.grpc-grpc-protobuf-nano-1.5.0.jar [33]
-- lib/io.grpc-grpc-stub-1.5.0.jar [33]
+- lib/com.squareup.okio-okio-1.13.0.jar [32]
+- lib/io.grpc-grpc-all-1.12.0.jar [33]
+- lib/io.grpc-grpc-auth-1.12.0.jar [33]
+- lib/io.grpc-grpc-context-1.12.0.jar [33]
+- lib/io.grpc-grpc-core-1.12.0.jar [33]
+- lib/io.grpc-grpc-netty-1.12.0.jar [33]
+- lib/io.grpc-grpc-okhttp-1.12.0.jar [33]
+- lib/io.grpc-grpc-protobuf-1.12.0.jar [33]
+- lib/io.grpc-grpc-protobuf-lite-1.12.0.jar [33]
+- lib/io.grpc-grpc-protobuf-nano-1.12.0.jar [33]
+- lib/io.grpc-grpc-stub-1.12.0.jar [33]
+- lib/io.grpc-grpc-testing-1.12.0.jar [33]
 - lib/org.apache.curator-curator-client-4.0.1.jar [34]
 - lib/org.apache.curator-curator-framework-4.0.1.jar [34]
 - lib/org.apache.curator-curator-recipes-4.0.1.jar [34]
 - lib/org.inferred-freebuilder-1.14.9.jar [35]
+- lib/com.google.errorprone-error_prone_annotations-2.1.2.jar [36]
 
 [1] Source available at https://github.com/FasterXML/jackson-annotations/tree/jackson-annotations-2.8.9
 [2] Source available at https://github.com/FasterXML/jackson-core/tree/jackson-core-2.8.9
@@ -271,7 +274,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.12.Final
+[11] Source available at https://github.com/netty/netty/tree/netty-4.1.22.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
@@ -290,79 +293,80 @@ Apache Software License, Version 2.
 [27] Source available at https://github.com/codehaus/jackson/tree/1.9
 [28] Source available at https://github.com/googleapis/googleapis
 [29] Source available at https://github.com/google/gson/tree/gson-parent-2.7
-[30] Source available at https://github.com/census-instrumentation/opencensus-java/tree/v0.4.3
+[30] Source available at https://github.com/census-instrumentation/opencensus-java/tree/v0.11.0
 [31] Source available at https://github.com/square/okhttp/tree/parent-2.5.0
-[32] Source available at https://github.com/square/okio/tree/okio-parent-1.6.0
-[33] Source available at https://github.com/grpc/grpc-java/tree/v1.5.0
+[32] Source available at https://github.com/square/okio/tree/okio-parent-1.13.0
+[33] Source available at https://github.com/grpc/grpc-java/tree/v1.12.0
 [34] Source available at https://github.com/apache/curator/tree/apache-curator-4.0.1
 [35] Source available at https://github.com/inferred/FreeBuilder/tree/v1.14.9
+[36] Source available at https://github.com/google/error-prone/tree/v2.1.2
 
 ------------------------------------------------------------------------------------
-lib/io.netty-netty-all-4.1.12.Final.jar bundles some 3rd party dependencies
+lib/io.netty-netty-all-4.1.22.Final.jar bundles some 3rd party dependencies
 
-lib/io.netty-netty-all-4.1.12.Final.jar contains the extensions to Java Collections Framework which has
+lib/io.netty-netty-all-4.1.22.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.12.Final/LICENSE.jsr166y.txt (Public Domain)
+    * deps/netty-4.1.22.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.12.Final.jar contains a modified version of Robert Harder's Public Domain
+lib/io.netty-netty-all-4.1.22.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.12.Final/LICENSE.base64.txt (Public Domain)
+    * deps/netty-4.1.22.Final/LICENSE.base64.txt (Public Domain)
   * HOMEPAGE:
     * http://iharder.sourceforge.net/current/java/base64/
 
-lib/io.netty-netty-all-4.1.12.Final.jar contains a modified portion of 'Webbit', an event based  
+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.12.Final/LICENSE.webbit.txt (BSD 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.12.Final.jar contains a modified portion of 'SLF4J', a simple logging
+lib/io.netty-netty-all-4.1.22.Final.jar contains a modified portion of 'SLF4J', a simple logging
 facade for Java, which can be obtained at:
 
   * LICENSE:
-    * deps/netty-4.1.12.Final/LICENSE.slf4j.txt (MIT License)
+    * deps/netty-4.1.22.Final/LICENSE.slf4j.txt (MIT License)
   * HOMEPAGE:
     * http://www.slf4j.org/
 
-lib/io.netty-netty-all-4.1.12.Final.jar contains a modified portion of 'jbzip2', a Java bzip2 compression
+lib/io.netty-netty-all-4.1.22.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.12.Final/LICENSE.jbzip2.txt (MIT License)
+    * deps/netty-4.1.22.Final/LICENSE.jbzip2.txt (MIT License)
   * HOMEPAGE:
     * https://code.google.com/p/jbzip2/
 
-lib/io.netty-netty-all-4.1.12.Final.jar contains a modified portion of 'libdivsufsort', a C API library to construct
+lib/io.netty-netty-all-4.1.22.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.12.Final/LICENSE.libdivsufsort.txt (MIT License)
+    * deps/netty-4.1.22.Final/LICENSE.libdivsufsort.txt (MIT License)
   * HOMEPAGE:
     * https://github.com/y-256/libdivsufsort
 
-lib/io.netty-netty-all-4.1.12.Final.jar contains a modified portion of 'jfastlz', a Java port of FastLZ compression
+lib/io.netty-netty-all-4.1.22.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.12.Final/LICENSE.jfastlz.txt (MIT License)
+    * deps/netty-4.1.22.Final/LICENSE.jfastlz.txt (MIT License)
   * HOMEPAGE:
     * https://code.google.com/p/jfastlz/
 
-lib/io.netty-netty-all-4.1.12.Final.jar contains a modified portion of and optionally depends on 'Protocol Buffers', Google's data
+lib/io.netty-netty-all-4.1.22.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.12.Final/LICENSE.protobuf.txt (New BSD License)
+    * deps/netty-4.1.22.Final/LICENSE.protobuf.txt (New BSD License)
   * HOMEPAGE:
     * https://github.com/google/protobuf
 
@@ -401,17 +405,15 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 This product bundles Google Protocal Buffers, which is available under a "3-clause BSD"
 license.
 
-Bundled as lib/com.google.protobuf-protobuf-java-3.4.0.jar
-Source available at https://github.com/google/protobuf/tree/v3.4.0
-For details, see deps/protobuf-3.4.0/LICENSE.
+Bundled as
+  - lib/com.google.protobuf-protobuf-java-3.5.1.jar
+  - lib/com.google.protobuf-protobuf-java-util-3.5.1.jar
+Source available at https://github.com/google/protobuf/tree/v3.5.1
+For details, see deps/protobuf-3.5.1/LICENSE.
 
 Bundled as lib/com.google.protobuf.nano-protobuf-javanano-3.0.0-alpha-5.jar
 Source available at https://github.com/google/protobuf/tree/3.0.0-pre
 For details, see deps/protobuf-3.0.0/LICENSE.
-
-Bundled as com.google.protobuf-protobuf-java-util-3.3.1.jar
-Source available at https://github.com/google/protobuf/tree/v3.3.1
-For details, see deps/protobuf-3.3.1/LICENSE.
 ------------------------------------------------------------------------------------
 This product bundles the JCP Standard Java Servlet API, which is available under a
 CDDL 1.1 license. For details, see deps/javax.servlet-api-3.1.0/CDDL+GPL-1.1.
@@ -428,8 +430,8 @@ Bundled as
 Source available at https://github.com/qos-ch/slf4j/tree/v_1.7.25
 ------------------------------------------------------------------------------------
 This product bundles the Google Auth Library, which is available under a "3-clause BSD"
-license. For details, see deps/google-auth-library-credentials-0.4.0/LICENSE
+license. For details, see deps/google-auth-library-credentials-0.9.0/LICENSE
 
 Bundled as
-  - lib/com.google.auth-google-auth-library-credentials-0.4.0.jar
-Source available at https://github.com/google/google-auth-library-java/tree/0.4.0
+  - lib/com.google.auth-google-auth-library-credentials-0.9.0.jar
+Source available at https://github.com/google/google-auth-library-java/tree/0.9.0
diff --git a/bookkeeper-dist/src/main/resources/NOTICE-all.bin.txt b/bookkeeper-dist/src/main/resources/NOTICE-all.bin.txt
index 7357414..d9984b6 100644
--- a/bookkeeper-dist/src/main/resources/NOTICE-all.bin.txt
+++ b/bookkeeper-dist/src/main/resources/NOTICE-all.bin.txt
@@ -45,7 +45,7 @@ License for the specific language governing permissions and limitations
 under the License.
 
 ------------------------------------------------------------------------------------
-- lib/io.netty-netty-all-4.1.12.Final.jar
+- lib/io.netty-netty-all-4.1.22.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 905c4c1..1fd2f53 100644
--- a/bookkeeper-dist/src/main/resources/NOTICE-server.bin.txt
+++ b/bookkeeper-dist/src/main/resources/NOTICE-server.bin.txt
@@ -5,7 +5,7 @@ This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
 
 ------------------------------------------------------------------------------------
-- lib/io.netty-netty-all-4.1.12.Final.jar
+- lib/io.netty-netty-all-4.1.22.Final.jar
 
                             The Netty Project
                             =================
diff --git a/bookkeeper-dist/src/main/resources/deps/google-auth-library-credentials-0.4.0/LICENSE b/bookkeeper-dist/src/main/resources/deps/google-auth-library-credentials-0.9.0/LICENSE
similarity index 100%
rename from bookkeeper-dist/src/main/resources/deps/google-auth-library-credentials-0.4.0/LICENSE
rename to bookkeeper-dist/src/main/resources/deps/google-auth-library-credentials-0.9.0/LICENSE
diff --git a/bookkeeper-dist/src/main/resources/deps/netty-4.1.12.Final/LICENSE.base64.txt b/bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.base64.txt
similarity index 100%
rename from bookkeeper-dist/src/main/resources/deps/netty-4.1.12.Final/LICENSE.base64.txt
rename to bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.base64.txt
diff --git a/bookkeeper-dist/src/main/resources/deps/netty-4.1.12.Final/LICENSE.jbzip2.txt b/bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.jbzip2.txt
similarity index 100%
rename from bookkeeper-dist/src/main/resources/deps/netty-4.1.12.Final/LICENSE.jbzip2.txt
rename to bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.jbzip2.txt
diff --git a/bookkeeper-dist/src/main/resources/deps/netty-4.1.12.Final/LICENSE.jfastlz.txt b/bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.jfastlz.txt
similarity index 100%
rename from bookkeeper-dist/src/main/resources/deps/netty-4.1.12.Final/LICENSE.jfastlz.txt
rename to bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.jfastlz.txt
diff --git a/bookkeeper-dist/src/main/resources/deps/netty-4.1.12.Final/LICENSE.jsr166y.txt b/bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.jsr166y.txt
similarity index 100%
rename from bookkeeper-dist/src/main/resources/deps/netty-4.1.12.Final/LICENSE.jsr166y.txt
rename to bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.jsr166y.txt
diff --git a/bookkeeper-dist/src/main/resources/deps/netty-4.1.12.Final/LICENSE.libdivsufsort.txt b/bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.libdivsufsort.txt
similarity index 100%
rename from bookkeeper-dist/src/main/resources/deps/netty-4.1.12.Final/LICENSE.libdivsufsort.txt
rename to bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.libdivsufsort.txt
diff --git a/bookkeeper-dist/src/main/resources/deps/netty-4.1.12.Final/LICENSE.protobuf.txt b/bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.protobuf.txt
similarity index 100%
rename from bookkeeper-dist/src/main/resources/deps/netty-4.1.12.Final/LICENSE.protobuf.txt
rename to bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.protobuf.txt
diff --git a/bookkeeper-dist/src/main/resources/deps/netty-4.1.12.Final/LICENSE.slf4j.txt b/bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.slf4j.txt
similarity index 100%
rename from bookkeeper-dist/src/main/resources/deps/netty-4.1.12.Final/LICENSE.slf4j.txt
rename to bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.slf4j.txt
diff --git a/bookkeeper-dist/src/main/resources/deps/netty-4.1.12.Final/LICENSE.webbit.txt b/bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.webbit.txt
similarity index 100%
rename from bookkeeper-dist/src/main/resources/deps/netty-4.1.12.Final/LICENSE.webbit.txt
rename to bookkeeper-dist/src/main/resources/deps/netty-4.1.22.Final/LICENSE.webbit.txt
diff --git a/bookkeeper-dist/src/main/resources/deps/protobuf-3.3.1/LICENSE b/bookkeeper-dist/src/main/resources/deps/protobuf-3.3.1/LICENSE
deleted file mode 100644
index 2dcab42..0000000
--- a/bookkeeper-dist/src/main/resources/deps/protobuf-3.3.1/LICENSE
+++ /dev/null
@@ -1,32 +0,0 @@
-Copyright 2014, Google Inc.  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 Google Inc. 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
-OWNER 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.
-
-Code generated by the Protocol Buffer compiler is owned by the owner
-of the input file used when generating it.  This code is not
-standalone and requires a support library to be linked with it.  This
-support library is itself covered by the above license.
diff --git a/bookkeeper-dist/src/main/resources/deps/protobuf-3.4.0/LICENSE b/bookkeeper-dist/src/main/resources/deps/protobuf-3.5.1/LICENSE
similarity index 100%
rename from bookkeeper-dist/src/main/resources/deps/protobuf-3.4.0/LICENSE
rename to bookkeeper-dist/src/main/resources/deps/protobuf-3.5.1/LICENSE
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/proto/BookieProtoEncodingTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/proto/BookieProtoEncodingTest.java
index 6f9cc9a..a7f0c92 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/proto/BookieProtoEncodingTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/proto/BookieProtoEncodingTest.java
@@ -27,6 +27,7 @@ import static org.mockito.Mockito.when;
 
 import com.google.common.collect.Lists;
 import com.google.protobuf.ByteString;
+import com.google.protobuf.ExtensionRegistry;
 import com.google.protobuf.InvalidProtocolBufferException;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.UnpooledByteBufAllocator;
@@ -43,6 +44,7 @@ import org.apache.bookkeeper.proto.BookkeeperProtocol.BKPacketHeader;
 import org.apache.bookkeeper.proto.BookkeeperProtocol.OperationType;
 import org.apache.bookkeeper.proto.BookkeeperProtocol.ProtocolVersion;
 import org.apache.bookkeeper.proto.BookkeeperProtocol.StatusCode;
+import org.junit.Before;
 import org.junit.Test;
 
 /**
@@ -50,6 +52,13 @@ import org.junit.Test;
  */
 public class BookieProtoEncodingTest {
 
+    private ExtensionRegistry registry;
+
+    @Before
+    public void setup() {
+        this.registry = ExtensionRegistry.newInstance();
+    }
+
     @Test
     public void testV3ResponseDecoderNoFallback() throws Exception {
         AddResponse v2Resp = AddResponse.create(
@@ -79,10 +88,10 @@ public class BookieProtoEncodingTest {
                 return null;
         });
 
-        ResponseEnDeCoderPreV3 v2Encoder = new ResponseEnDeCoderPreV3(null);
-        ResponseEnDecoderV3 v3Encoder = new ResponseEnDecoderV3(null);
+        ResponseEnDeCoderPreV3 v2Encoder = new ResponseEnDeCoderPreV3(registry);
+        ResponseEnDecoderV3 v3Encoder = new ResponseEnDecoderV3(registry);
 
-        ResponseDecoder v3Decoder = new ResponseDecoder(null, false);
+        ResponseDecoder v3Decoder = new ResponseDecoder(registry, false);
         try {
             v3Decoder.channelRead(ctx,
                 v2Encoder.encode(v2Resp, UnpooledByteBufAllocator.DEFAULT)
@@ -101,8 +110,8 @@ public class BookieProtoEncodingTest {
 
     @Test(expected = IllegalStateException.class)
     public void testV2RequestDecoderThrowExceptionOnUnknownRequests() throws Exception {
-        RequestEnDeCoderPreV3 v2ReqEncoder = new RequestEnDeCoderPreV3(null);
-        RequestEnDecoderV3 v3ReqEncoder = new RequestEnDecoderV3(null);
+        RequestEnDeCoderPreV3 v2ReqEncoder = new RequestEnDeCoderPreV3(registry);
+        RequestEnDecoderV3 v3ReqEncoder = new RequestEnDecoderV3(registry);
 
         BookkeeperProtocol.Request v3Req = BookkeeperProtocol.Request.newBuilder()
             .setHeader(BKPacketHeader.newBuilder()
diff --git a/pom.xml b/pom.xml
index 715a2c2..8104b08 100644
--- a/pom.xml
+++ b/pom.xml
@@ -122,7 +122,7 @@
     <freebuilder.version>1.14.9</freebuilder.version>
     <google.code.version>3.0.2</google.code.version>
     <google.errorprone.version>2.1.2</google.errorprone.version>
-    <grpc.version>1.5.0</grpc.version>
+    <grpc.version>1.12.0</grpc.version>
     <guava.version>21.0</guava.version>
     <hadoop.version>2.7.3</hadoop.version>
     <hamcrest.version>1.3</hamcrest.version>
@@ -139,14 +139,14 @@
     <lombok.version>1.16.20</lombok.version>
     <lz4.version>1.3.0</lz4.version>
     <mockito.version>2.13.0</mockito.version>
-    <netty.version>4.1.12.Final</netty.version>
-    <netty-boringssl.version>2.0.3.Final</netty-boringssl.version>
+    <netty.version>4.1.22.Final</netty.version>
+    <netty-boringssl.version>2.0.7.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>
     <datasketches.version>0.8.3</datasketches.version>
-    <protobuf.version>3.4.0</protobuf.version>
-    <protoc-gen-grpc-java.version>1.0.0</protoc-gen-grpc-java.version>
+    <protobuf.version>3.5.1</protobuf.version>
+    <protoc-gen-grpc-java.version>1.12.0</protoc-gen-grpc-java.version>
     <rocksdb.version>5.8.6</rocksdb.version>
     <shrinkwrap.version>3.0.1</shrinkwrap.version>
     <slf4j.version>1.7.25</slf4j.version>
@@ -362,12 +362,6 @@
         <groupId>io.grpc</groupId>
         <artifactId>grpc-all</artifactId>
         <version>${grpc.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>com.google.errorprone</groupId>
-            <artifactId>error_prone_annotations</artifactId>
-          </exclusion>
-        </exclusions>
       </dependency>
 
       <!-- rocksdb dependencies -->
diff --git a/stream/clients/java/base/src/main/java/org/apache/bookkeeper/clients/impl/channel/StorageServerChannel.java b/stream/clients/java/base/src/main/java/org/apache/bookkeeper/clients/impl/channel/StorageServerChannel.java
index 7e1e022..d9e9388 100644
--- a/stream/clients/java/base/src/main/java/org/apache/bookkeeper/clients/impl/channel/StorageServerChannel.java
+++ b/stream/clients/java/base/src/main/java/org/apache/bookkeeper/clients/impl/channel/StorageServerChannel.java
@@ -74,6 +74,7 @@ public class StorageServerChannel implements AutoCloseable {
      * @param token    token used to access range server
      * @param usePlainText whether to plain text protocol or not
      */
+    @SuppressWarnings("deprecation")
     public StorageServerChannel(Endpoint endpoint,
                                 Optional<String> token,
                                 boolean usePlainText,
diff --git a/stream/clients/java/base/src/main/java/org/apache/bookkeeper/clients/impl/internal/LocationClientImpl.java b/stream/clients/java/base/src/main/java/org/apache/bookkeeper/clients/impl/internal/LocationClientImpl.java
index 95cae9a..db1c656 100644
--- a/stream/clients/java/base/src/main/java/org/apache/bookkeeper/clients/impl/internal/LocationClientImpl.java
+++ b/stream/clients/java/base/src/main/java/org/apache/bookkeeper/clients/impl/internal/LocationClientImpl.java
@@ -58,6 +58,7 @@ public class LocationClientImpl implements LocationClient {
     private final ManagedChannel channel;
     private final StorageContainerServiceFutureStub locationService;
 
+    @SuppressWarnings("deprecation")
     public LocationClientImpl(StorageClientSettings settings,
                               OrderedScheduler scheduler) {
         this.settings = settings;
diff --git a/stream/clients/java/base/src/main/java/org/apache/bookkeeper/clients/utils/GrpcUtils.java b/stream/clients/java/base/src/main/java/org/apache/bookkeeper/clients/utils/GrpcUtils.java
index cc7084a..e1d396a 100644
--- a/stream/clients/java/base/src/main/java/org/apache/bookkeeper/clients/utils/GrpcUtils.java
+++ b/stream/clients/java/base/src/main/java/org/apache/bookkeeper/clients/utils/GrpcUtils.java
@@ -20,11 +20,14 @@ package org.apache.bookkeeper.clients.utils;
 
 import static org.apache.bookkeeper.clients.utils.ClientConstants.TOKEN;
 
+import io.grpc.Attributes;
 import io.grpc.CallCredentials;
 import io.grpc.Metadata;
+import io.grpc.MethodDescriptor;
 import io.grpc.stub.AbstractStub;
 import java.util.Optional;
 import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.Executor;
 
 /**
  * Grpc related utils.
@@ -47,8 +50,19 @@ public final class GrpcUtils {
             Metadata metadata = new Metadata();
             Metadata.Key<String> tokenKey = Metadata.Key.of(TOKEN, Metadata.ASCII_STRING_MARSHALLER);
             metadata.put(tokenKey, t);
-            CallCredentials callCredentials = (method, attrs, appExecutor, applier) -> {
-                applier.apply(metadata);
+            CallCredentials callCredentials = new CallCredentials() {
+                @Override
+                public void applyRequestMetadata(MethodDescriptor<?, ?> method,
+                                                 Attributes attrs,
+                                                 Executor appExecutor,
+                                                 MetadataApplier applier) {
+                    applier.apply(metadata);
+                }
+
+                @Override
+                public void thisUsesUnstableApi() {
+                    // no-op;
+                }
             };
             return stub.withCallCredentials(callCredentials);
         }).orElse(stub);
diff --git a/stream/common/src/test/java/org/apache/bookkeeper/common/grpc/proxy/PingPongServiceTestBase.java b/stream/common/src/test/java/org/apache/bookkeeper/common/grpc/proxy/PingPongServiceTestBase.java
index ce3dcfd..6f7da16 100644
--- a/stream/common/src/test/java/org/apache/bookkeeper/common/grpc/proxy/PingPongServiceTestBase.java
+++ b/stream/common/src/test/java/org/apache/bookkeeper/common/grpc/proxy/PingPongServiceTestBase.java
@@ -95,7 +95,7 @@ public abstract class PingPongServiceTestBase {
 
         if (useReverseProxy) {
             proxyChannel = InProcessChannelBuilder.forName(serverName)
-                .usePlaintext(false)
+                .usePlaintext()
                 .build();
 
             ProxyHandlerRegistry registry = ProxyHandlerRegistry.newBuilder()
@@ -113,7 +113,7 @@ public abstract class PingPongServiceTestBase {
         }
 
         clientChannel = InProcessChannelBuilder.forName(SERVICE_NAME)
-            .usePlaintext(false)
+            .usePlaintext()
             .build();
 
         client = PingPongServiceGrpc.newStub(clientChannel);

-- 
To stop receiving notification emails like this one, please contact
sijie@apache.org.