gRPC-Java 1.42.0 Released

95 views
Skip to first unread message

Sergii Tkachenko

unread,
Nov 5, 2021, 6:09:51 PM11/5/21
to grpc.io
gRPC Java 1.42.0 is released and is available on Maven Central.

In this release we drop support for Android API level 18 or lower (Jelly Bean or earlier), following Google Play Service’s discontinued updates for Jelly Bean (API levels 16, 17 & 18).

API Changes
  • xds: Added XdsServerBuilder.overrideBootstrapForTest() to provide bootstrap override for testing purposes. This way, the test does not need to use the shared environment variable for bootstrap injection. (#8575)
  • api: Stabilize the Status.asException(Metadata) method. (#8520)
Bug Fixes
  • netty: Requests with Connection header are malformed. This is required per HTTP/2. The server now rejects such requests. To improve debuggability for clients, Metadata.Key will log if creating a key for “Connection”
  • grpclb: Fix “IllegalStateException: already in fallback” channel panic, by not starting fallback timer if already in fallback (#8646). This builds on the fix in 1.38.1. The bug was introduced in 1.38.0.
  • core, netty, okhttp: Fix AbstractManagedChannelImplBuilder#maxInboundMessageSize(int) ABI (#8607). Solves the issue with NettyChannelBuilder.maxInboundMessageSize(int) and OkHttpChannelBuilder.maxInboundMessageSize(int) not working in rare cases when pre-1.33 builds combined with post-1.33. See issue #8313 for the details.
New Features
  • binder: A new transport with channel and server builders which support cross-process and cross-application communication on Android. BinderChannel is production ready and in use by several Google applications, though the APIs are still experimental and subject to change. It does not currently support rpc-level flow control for streaming RPCs. See gRFC L73 for background.
  • xds: implemented rbac filter per A41 xDS RBAC. This is the first HTTP filter supported on server-side.
  • stub: add ServerCallStreamObserver.setOnCloseHandler(Runnable). Notified when gRPC has completed processing the RPC. (#8452)
Behavior Changes
  • core: gRPC-Java library discards any Content-Length header set by the application because in most cases this header is blindly forwarded from some other source and is incorrect for gRPC payload.
  • netty: Use Host header on server-side if :authority is not present
  • rls: the cache_size in route lookup config is limited to 5M
  • core: changed the level mapping ChannelLogger uses for java.util.logging.Level (#8531). It is now possible to enable Java logging for Channelz’s INFO without also enabling DEBUG (previously they were both FINEST).
Dependencies
  • Compatibility with the upcoming Bazel 5 added. This required dropping support for Bazel 1-3. Bazel 4 or later is required (#7598)
  • netty: bump netty to 4.1.63.Final and tcnative to 2.0.38.Final. (#8167)
Improvements
  • core: io.grpc.util.AdvancedTlsX509KeyManager and AdvancedTlsX509TrustManager support loading configuration from static files. (#8525)
  • core: io.grpc.util.CertificateUtils.getPrivateKey() now supports RSA and EC key algorithms

Piotr Morgwai Kotarbinski

unread,
Nov 6, 2021, 3:30:56 AM11/6/21
to grpc.io
On Saturday, November 6, 2021 at 5:09:51 AM UTC+7 serg...@google.com wrote:
New Features
  • stub: add ServerCallStreamObserver.setOnCloseHandler(Runnable). Notified when gRPC has completed processing the RPC. (#8452)

FINALLY I can ditch all the private maven repos maintained only for the patched version containing this :)
Reply all
Reply to author
Forward
0 new messages