Notice: This is expected to be the last version supporting Java 6. Comment on #3961 if this causes you trouble. Android API level 14 support will be unchanged.
Dependencies
-
Updated to Netty 4.1.27 and Netty TCNative 2.0.12
-
gRPC is now regularly tested with JDK 9 and 10
-
Warning, a bug was discovered after this release where using Netty Epoll would increase memory usage. Please avoid this release of gRPC if you know you use Netty Epoll
API Changes
OkHttpChannelBuilder#negotiationType
is now deprecated- Made protobuf, protobuf-lite, and protobuf-nano classes final.
New Features
- Channel Tracing now record State Changes
- Stubs now have an
RpcMethod
annotation for use with annotation processors - Added support for providing
List<EquivalentAddressGroup>
to LoadBalancer Subchannels, in addition to the option of providing aEquivalentAddressGroup
(EAG). This prevents the need forLoadBalancer
s to "flatten" aList<EquivalentAddressGroup>
into a singleEquivalentAddressGroup
which loses/confuses the EAG'sAttributes
.NameResolver
s can now specifyAttributes
in an EAG and expect that the values are passed to gRPC's core. Future work will addList<EAG>
forOobChannel
s. - InProcessSocketAddress now has a useful
toString()
method - AndroidChannelBuilder is now easier to build
- RoundRobinLoadBalancer now scales better when using stickiness
Behavior Changes
- gRPCLB no longer depends on having a Service Config
Bug Fixes
- Fix regression that broke Java 9 ALPN support. This fixes the error "SunJSSE selected, but Jetty NPN/ALPN unavailable" (#4620)
- Fixed a bug with gRPC LB parsing SRV DNS records ( 6dbe392 )
enterIdle()
will exit idle mode if channel is still in use (#4665)TransmitStatusRuntimeExceptionInterceptor
now avoids accidentally double closing the call.
Documentation
- Clarified
StreamObserver
interaction with thread safety
Thanks to all our Contributors: