You can now grab the
v1.59.0 release.
PLANNED ABI BREAKAGE!This breaks the ABI of the
@ExperimentalApi classes listed below.
This does not impact source code (API); it only impacts code compiled with a different version of gRPC than it runs with (ABI).
Users that recompiled their code using grpc-java
v1.36.0 (released on Feb 23, 2021) and later, ARE NOT AFFECTED.
Users that compiled their source using grpc-java earlier than v1.36.0 may need to recompile when upgrading to grpc-java v1.59.0.
See details in
#10406.
Affected classesClass io.grpc.internal.AbstractManagedChannelImplBuilder is deleted, and no longer in the class hierarchy of the channel builders:
io.grpc.netty.NettyChannelBuilder
io.grpc.okhttp.OkhttpChannelBuilder
io.grpc.cronet.CronetChannelBuilder
Class io.grpc.internal.AbstractServerImplBuilder is deleted, and no longer in the class hierarchy of the server builders:
io.grpc.netty.NettyServerBuilder
io.grpc.inprocess.InProcessServerBuilder
API Changescore: AbstractManagedChannelImplBuilder and AbstractServerImplBuilder are removed (
#10530). This is ABI-breaking, see the warning above. (
#10406)
core: Removed .class file hack previously introduced in
v1.36.0 to ease removal of internal ABIs. (
#10406)
api: Add ForwardingChannelBuilder2, an ABI-safe version of ForwardingChannelBuilder, which will be deprecated in the following release. (
#10585,
#10406)
api: Add LoadBalancer.FixedResultPicker convenience class for load balancer implementations. It is a replacement for ErrorPicker and EMPTY_PICKER added in 1.58.0
testing: Stabilize TestMethodDescriptors (
#10530)
Behavior Changescore: de-expermentalize pick first config parsing (
#10531)
netty: Respect -Dio.netty.allocator.type=unpooled when getting Netty Allocator instead of ignoring it (
#10543)
netty: Use UNAVAILABLE for connections closed while writing. Previously this would result in UNKNOWN
binder: Enable indirect addressing using s. (
#10550)
Improvementscore: only use reflection to resolve InternalCensusStatsAccessor once instead of once per channel
core: enhance error message in the case of DEADLINE_EXCEEDED to indicate name resolution delay.
netty: When creating a connection, use java.util.logging formatting instead of String.format to avoid work when not logged
netty: Touch ByteBuf when message framing has been decoded. If the buffer is leaked, this helps narrow down the source of reference counting bug
java_grpc_library.bzl: Disable Automatic Exec Groups inside grpc libraries (
#10514). This improves compatibility with future Bazel versions while retaining Bazel 5.x compatibility
Bug Fixesnetty: Avoid NettyAdaptiveCumulator incorrectly releasing its input ByteBuf twice when reading messages under certain error conditions (
#10537)
xds: Add fix for xdstp replacement for percent-encoded authorities (
#10571)
DocumentationAPI documentation (Javadoc) for Server and Channel builders now correctly displays inherited methods and the class hierarchy. (
#10406)
examples: add an example for OAuth (
#10560)
Dependencies
Upgrade Netty to 4.1.97.Final
Acknowledgements
John Cormie (@jdcormie)
Stephane Landelle (@slandelle)
@kotlaja