You can now grab the v1.59.0 
<https://github.com/grpc/grpc-java/releases/tag/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 
<https://github.com/grpc/grpc-java/releases/tag/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 <https://github.com/grpc/grpc-java/pull/10406>.

*Affected classes*

Class 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 Changes
core: AbstractManagedChannelImplBuilder and AbstractServerImplBuilder are 
removed (#10530 <https://github.com/grpc/grpc-java/pull/10530>). This is 
ABI-breaking, see the warning above. (#10406 
<https://github.com/grpc/grpc-java/pull/10406>)
core: Removed .class file hack previously introduced in v1.36.0 
<https://github.com/grpc/grpc-java/releases/tag/v1.36.0> to ease removal of 
internal ABIs. (#10406 <https://github.com/grpc/grpc-java/pull/10406>)
api: Add ForwardingChannelBuilder2, an ABI-safe version of 
ForwardingChannelBuilder, which will be deprecated in the following 
release. (#10585 <https://github.com/grpc/grpc-java/issues/10585>, #10406 
<https://github.com/grpc/grpc-java/pull/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 
<https://github.com/grpc/grpc-java/pull/10530>)

Behavior Changes
core: de-expermentalize pick first config parsing (#10531 
<https://github.com/grpc/grpc-java/pull/10531>)
netty: Respect -Dio.netty.allocator.type=unpooled when getting Netty 
Allocator instead of ignoring it (#10543 
<https://github.com/grpc/grpc-java/pull/10543>)
netty: Use UNAVAILABLE for connections closed while writing. Previously 
this would result in UNKNOWN
binder: Enable indirect addressing using s. (#10550 
<https://github.com/grpc/grpc-java/pull/10550>)

Improvements
core: 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 <https://github.com/grpc/grpc-java/pull/10514>). This improves 
compatibility with future Bazel versions while retaining Bazel 5.x 
compatibility

Bug Fixes
netty: Avoid NettyAdaptiveCumulator incorrectly releasing its input ByteBuf 
twice when reading messages under certain error conditions (#10537 
<https://github.com/grpc/grpc-java/pull/10537>)
xds: Add fix for xdstp replacement for percent-encoded authorities (#10571 
<https://github.com/grpc/grpc-java/pull/10571>)

Documentation
API documentation (Javadoc) for Server and Channel builders now correctly 
displays inherited methods and the class hierarchy. (#10406 
<https://github.com/grpc/grpc-java/pull/10406>)
examples: add an example for OAuth (#10560 
<https://github.com/grpc/grpc-java/pull/10560>)

Dependencies
Upgrade Netty to 4.1.97.Final

Acknowledgements
John Cormie (@jdcormie)
Stephane Landelle (@slandelle)
@kotlaja

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to grpc-io+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/64bd646c-5167-4201-9118-b18a8d5bd50dn%40googlegroups.com.

Reply via email to