core: fix regression in v1.9.0 where the user-agent would be like "grpc-java-netty1.9.0" instead of "grpc-java-netty/1.9.0" (#3974)
netty: workaround Netty regression in v1.9.0 (netty/netty#7639) which caused TLS failures to fail with "UNAVAILABLE: Channel closed while performing protocol negotiation" instead of useful failure information (#4033)
netty: fix regression in v1.9.0 where using GRPC_PROXY_EXP with the Netty transport would cause an UnresolvedAddressException (#4027). ProxySelector (including the default one that processes -Dhttps.proxyHost) is still known-broken for Netty; this is being tracked in #4029
netty: workaround Netty regression in v1.9.0 (netty/netty#7639) which caused TLS failures to fail with "UNAVAILABLE: Channel closed while performing protocol negotiation" instead of useful failure information (#3997)
netty: avoid NullPointerException in NettyServerHandler.newStreamException (#3932)
core: MethodDescriptor.toBuilder() now copies the schemaDescriptor (#3941)
core: change @Internal and @ExperimentalApi retention policies to CLASS, to enable the upcoming grpc/grpc-java-api-checker to access these annotations (#3994)
compiler: avoid invoking experimental method in generated code, to clean up the output of the upcoming grpc/grpc-java-api-checker (#4055)
API changes
core: delete outboundMessage() and inboundMessage() on StreamTracer. (#4014)
core: deprecate passing ServerCall to StatsTraceContext (#3912)
Features:
netty: Use Java 9 ALPN if available (#3555). We still want to improve testing with Java 9 ALPN, but it has been reported to work.