v1.6.1 Release
v1.6.0 was mistagged and has been deleted. The binaries of v1.6.0 are effectively the same as v1.6.1.
Important Changes
- Android users should no longer need
-keep
s in their ProGuard configuration (#2633) - gRPC is no longer using the current Thread’s “context ClassLoader” when searching for transport Providers (#2375). Instead it is using the current class’s ClassLoader. This should not break existing users and work out-of-the-box in a larger number of environments
- Fix support for Google AppEngine Java 8 (#3296)
- Log netty connection errors at FINE instead of SEVERE (#1768)
- Update netty to 4.1.14 and tcnative to 2.0.5 (#3307)
- Channel state API is now implemented via
ManagedChannel.getState/notifyWhenStateChanged
. This requires LoadBalancer support; custom LoadBalancers should be updated to callupdateBalancingState()
instead ofupdatePicker()
- Referencing CallCredentials is now stable API (#3289). Implementing or consuming CallCredentials is still ExperimentalApi
- New method
ClientCallStreamObserver.cancel()
allows clients to cancel RPCs without requiring using an interceptor or Context (#3115)
Features
- Census
tracetags propagation is now enabled by default, but only if the Census Impl is available in the classpath (#3294) - Update google-auth-library-oauth2-http to 0.7.0 (#3188)
- Update io.opencensus:opencensus-api to 0.5.1 (#3204)
- CallOptions now passed to ClientStreamTracer.newClientStreamTracer (#3276)
- Allow custom hostname verifiers for OkHttp via
OkHttpChannelBuilder.hostnameVerifier()
(#3205)
Bug Fixes
- Calls should no longer fail with the message “Channel requested transport to shut down” when
Channel.shutdown()
was not called. The calls may still fail, but will have a more accurate message (#3351) - Clean up Context class initialization to avoid circular class loading issues (#3203, #3191)
- Fix keepalive bug that sent too many pings (#3274)
- Fixed “onStreamAllocated was not called, but it seems the stream is active” warning (#3007)
Incompatible Changes
- Pseudo headers (headers that begin with “:”) can no longer be set or retrieved (#3114). This has been the documented API, but now is being enforced
- The object returned by
Context.attach()
must be the one passed intodetach()
(#3292) - When NameResolver returns >= 1 balancer GRPCLB policy will be forced (grpc/grpc#10258)