gRPC Java 1.36.0 is released and should be available on Maven Central and JCenter.
- Added .class file hack to ease removal of internal ABIs (#7834). This does not impact source code (API); it only impacts code compiled with a different version of gRPC than it runs with (ABI). Users of the transport-specific and experimental channel/server builders (
CronetChannelBuilder) are commonly referencing internal ABIs due to overly-specific generics in gRPC. There is now a .class file hack in place which preserves ABI compatibility for old builds while causing javac to use the intended public API for new builds. In a future release we will remove the internal ABI for these experimental APIs (#7211) which may cause runtime failures. Recompiling with this release or later will prevent your code from using those ABIs and so you will not be impacted by the ABI removal. This is related to the temporary ABI breakage in v1.33.0.
- Deleted deprecated
LoadBalancer.Helper APIs as they had been deprecated since v1.22 release (#7793).
LoadBalancer.Helper.createResolvingOobChannelBuilder(String target) in favor of the new experimental API
createResolvingOobChannelBuilder(String target, ChannelCredentials creds). The two APIs differ not only in signature but also in the default authority of the returned builder. See their javadoc for more detail.
ManagedChannelBuilder.overrideAuthority() is now used even if the NameResolver uses
EquivalentAddressGroup.ATTR_AUTHORITY_OVERRIDE. Previously the NameResolver’s override would be used
- grpclb: keep RR Subchannel state in TRANSIENT_FAILURE until becoming READY (#7816). This enhancement was previously made to the round_robin policy, but now also applies to grpclb
- netty: On server-side, stop logging expected STREAM_CLOSED exceptions. This reduces log pollution
- services: Add support for
grpc.channelz.v1.Channelz.GetServer, as defined in
- xds: support reading bootstrap config directly from env var (
GRPC_XDS_BOOTSTRAP_CONFIG) or system property (
- alts: Introduce
AltsContext to allow outside packages access to ALTS peer information
- core: Fixed a bug where RPCs queued waiting for a connection can use user-provided executors after the ManagedChannel is terminated (#6283)
- core: Fixed a bug where RPCs queued waiting on CallCredentials can use user-provided executors after the ManagedChannel is terminated (#7813)
- api: add nullable annotation to
Status.trailersFromThrowable (#7856). The annotation doesn’t change behavior, it just makes the behavior more clear
- alts: Remove dependency on Apache Commons Lang