gRPC Java 1.17.0 is released and available on Maven Central. JCenter hasn't picked up the new binary yet, but it should be available shortly. You can also view the up-to-date notes on https://github.com/grpc/grpc-java/releases/tag/v1.17.0. Known Issues
- Bazel apps lacking a (transitive) dependency on @io_grpc_grpc_java//core:util will fail at runtime. See detail / workaround <https://github.com/grpc/grpc-java/issues/5114> for more detail Dependencies - Updated to OpenCensus version to 0.17.0 - Updated to Error Prone to 2.3.2 Bug Fixes - Bazel build warning "unknown enum constant" is fixed (#5047 <https://github.com/grpc/grpc-java/pull/5047>) - core: Add missing synchronization in KeepAliveManager which fixes a crash caused by a race (#5096 <https://github.com/grpc/grpc-java/issues/5096>). This fixes the “IllegalStateException: There should be no outstanding pingFuture” exception New Features - core: added service-loader-based LoadBalancerProvider/LoadBalancerRegistry. Providers are to be accessed by policy name through the registry. (#4996 <https://github.com/grpc/grpc-java/pull/4996>) - core: LoadBalancer now exposes ChannelLogger for logging information into ChannelTrace (#5024 <https://github.com/grpc/grpc-java/pull/5024>) - core: Add maxInboundMetadataSize() to ManagedChannelBuilder and ServerBuilder (#4897 <https://github.com/grpc/grpc-java/pull/4897>). It is now also implemented by the inprocess and okhttp transports - okhttp: flow control window size is configurable via OkHttpChannelBuilder.flowControlWindow() (#4959 <https://github.com/grpc/grpc-java/pull/4959>) - services: implemented the stream-based “Watch” method of health-checking service (#4930 <https://github.com/grpc/grpc-java/pull/4930>) - services: implemented client-side health-checking ( https://github.com/grpc/proposal/blob/master/A17-client-side-health-checking.md). This issues health check RPCs from the client to avoid unhealthy backends - HealthCheckingLoadBalancerUtil can be used to enable health-checking on custom LoadBalancer implementations. - The “round_robin” balancer, when accessed through LoadBalancerRegistry, will have health-checking enabled if the application has a runtime dependency on “grpc-services”. API Changes - core: Change CallCredentials.MetadataApplier from an abstract class back to an interface, as it was in 1.15.x. Introduce a new CallCredentials2.MetadataApplier that is an abstract class, instead. This is ABI incompatible with 1.16.0 but ABI compatible with 1.15.x and 1.16.1 (#5007 <https://github.com/grpc/grpc-java/pull/5007>) - core: LoadBalancer.Helper.runSerialized() is deprecated in favor of newly introduced getSerializationContext(). - core/grpclb: deprecated all stock LoadBalancerFactory implementations in favor of service-loader-based LoadBalancerProvider/LoadBalancerRegistry. Instead of referencing RoundRobinLoadBalancerFactory and GrpclbLoadBalancerFactory directly, applications should access providers by their policy names, such as “round_robin” and “grpclb”.(#4996 <https://github.com/grpc/grpc-java/pull/4996>). - core: mark convenience overloads in LoadBalancer.Helper and Subchannel as final, as there is no purpose in overriding them. (#4954 <https://github.com/grpc/grpc-java/pull/4954>) - core: Improved documentation of ManagedChannelBuilder.intercept's execution order - netty: NettyChannelBuilder.maxMessageSize() is removed in favor of maxInboundMessageSize() (#5054 <https://github.com/grpc/grpc-java/pull/5054>) API Stabilization - services: V1alpha binlog is removed in favor of v1 (#4963 <https://github.com/grpc/grpc-java/pull/4963>) Behavior Changes - core: Enabling retry will automatically disable census. Note that this behavior is still subject to change in future releases as a design is needed. (#4941 <https://github.com/grpc/grpc-java/pull/4941>) Comments <https://github.com/grpc/grpc-java/issues/3982> are welcome - core: SRV records are now queried by default when doing DNS lookups. SRV lookups are avoided for localhost and literal IP addresses. SRV is not looked up when running on Android - core: Trim trailing dot from SRV hostnames (#5006 <https://github.com/grpc/grpc-java/pull/5006>) - all: Now grpc java library emits binary metadata without padding in its base64 encoding (previously with padding). grpc library still supports receiving both padded and unpadded binary metadata (#5037 <https://github.com/grpc/grpc-java/pull/5037>) - okhttp: Pending data uses less memory by merging buffers (#5023 <https://github.com/grpc/grpc-java/pull/5023>). This can save memory when the server is applying flow control and many small messages are being sent on a streaming RPC - core: Improved error message for Auto-LB configuration failure (#5031 <https://github.com/grpc/grpc-java/pull/5031>). Previously it triggered a NullPointerException - okhttp: “error in frame handler” error is now INTERNAL instead of UNAVAILABLE (#5049 <https://github.com/grpc/grpc-java/pull/5049>) - core,netty,testing: supports receiving comma-separated multi-valued binary metadata (#5020 <https://github.com/grpc/grpc-java/pull/5020>) - core: Name resolver error message now includes type of name resolver ( #4928 <https://github.com/grpc/grpc-java/pull/4928>) - core: When SRV lookup is disabled, DNS resolution now fails with helpful error message instead of “UNAVAILABLE: NameResolver returned an empty list” (#4951 <https://github.com/grpc/grpc-java/issues/4951>) - core: For android devices, DNS cache is disabled due to known issue ( #4962 <https://github.com/grpc/grpc-java/issues/4962>). The DNS cache is mainly used for SRV lookup results, which aren’t performed on Android - Netty: NettyServer log quietly when established connection was aborted by the software in your host machine (#5001 <https://github.com/grpc/grpc-java/pull/5001>) Acknowledgements Thanks to all our external contributors: - Elliotte Rusty Harold @elharo <https://github.com/elharo> - Nicholas DiPiazza @nddipiazza <https://github.com/nddipiazza> - Rodrigo Queiro @drigz <https://github.com/drigz> - ST-DDT @ST-DDT <https://github.com/ST-DDT> - Thomas Broyer @tbroyer <https://github.com/tbroyer> - Yang Song @songy23 <https://github.com/songy23> -- 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/grpc-io. To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/eca84279-96aa-4abf-a20c-40f8932eb4c3%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
