gRPC Java 1.8.0 is now released and available on Maven Central.

v1.9.0 is scheduled for January 2nd, but the holidays will likely delay the
release some. Delays will not impact later releases; v1.10 would still be
scheduled for 6 weeks from January 2nd.

Dependencies

   - core: Now using io.opencensus:opencensus-api and
   io.opencensus:opencensus-contrib-grpc-metrics instead of
   com.google.instrumentation:instrumentation-api for stats and tagging. The
   gRPC Monitoring Service continues to use instrumentation-api.
   - examples: In Android example, bump minSdkVersion to 14. Google Play
   Services, which is used for TLS, bumped their minimum supported version

API Changes

   - core: Removed deprecated load balancer and name resolver APIs. This
   includes LoadBalancer.handleResolvedAddresses(),
   LoadBalancer.Helper.updatePicker(), NameResolver.Listener.onUpdate(),
   ResolvedServerInfo, and ResolvedServerInfoGroup
   - stub: Added @DoNotMock annotations to AbstractStub, CallStreamObserver
   , ClientCallStreamObserver, ServerCallStreamObserver. The normal gRPC
   implementations of these classes should be used in tests
   - codegen: Removed enable_deprecated protoc plugin option (#3541
   <https://github.com/grpc/grpc-java/pull/3541>). These deprecated APIs
   pre-date 1.0 and were off by default
   - codegen: Added methods for accessing generated method descriptors.
   This replaces the METHOD_FOO constants with static getFooMethod() methods.
   The constants are deprecated and will be removed in a future release. Once
   the constants are removed, this change will allow the descriptors (and the
   messages they reference) to be lazily created which can dramatically
   decrease class initialization time and allows unused RPC messages to be
   removed by Proguard.
   - testing: TestMethodDescriptors.noopMethod() is deprecated in favor
   voidMethod() or test services. The simple service in grpc-testing-proto
   should work in most cases where voidMethod()is insufficient
   - testing: Marked DeadlineSubject experimental. It is planned for
   removal to ease future Guava dependency issues with Truth. It could be
   moved into its own artifact, but best as we can tell nobody is using it. If
   you're using it, please file an issue so we can be made aware
   - testing: Deprecated StreamRecorder. It will be removed in a future
   release. The class is *very* old (since the beginning in OSS) and was
   used in internal tests before there were blocking stubs. Most users should
   use blocking stubs instead. To use properly, you must know the class's
   implementation; if you liked it, copy the code to your own codebase
   - testing: Deprecated TestUtils.recordServerCallInterceptor(). It will
   be removed in a future release. It has no known use cases for normal users
   - The (unreleased) Thrift support has been removed from this repository.
   It can be found athttps://github.com/grpc-ecosystem/grift instead

New Features

   - The Cronet transport is open-sourced. Cronet is Chrome's network stack
   made into a library for mobile. We do not provide a build file nor are we
   making binaries, but if you're interested it shouldn't be too hard to build
   manually
   - context: CancellableContext now implements Closeable (#3607
   <https://github.com/grpc/grpc-java/pull/3607>). close() is an alias for
   cancel(null). This should make it more clear that the context needs to
   be cancelled/closed, while also enabling try-with-resources
   - core: Attributes.Builder.build() may now be called multiple times
   - core: Added first-class drop support for load balancers via
   PickResult.withDrop(Status). This is necessary if the LB wants to fail
   waitForReady RPCs to shed load
   - core: Added MethodDescriptor.getSampledToLocalTracing()/
   Builder.setSampledToLocalTracing to permit per-method stats keeping
   memory overhead (#3627 <https://github.com/grpc/grpc-java/pull/3627>).
   The option is to prevent unbounded memory overhead when dynamically-created
   MethodDescriptors are used and is enabled in the generated code.
   - core: Added resetConnectBackoff() method to ManagedChannel. This can
   be used when the OS notifies your application that the network has become
   available
   - stub: Added stub.withExecutor(Executor). This was already available on
   CallOptions and can be used to specify a call-specific executor to use for
   callbacks
   - testing: Added TlsTesting.loadCert as an alternative to deprecated
   TestUtils.loadCert. The TlsTesting version returns an InputStream instead
   of a File which avoids creating temporary files

Behavior changes

   - core: Added handshake timeout for all server transports. The default
   is 20 seconds (which is a bug; should be 120 seconds to match client-side).
   The default can be overridden by ServerBuilder.handshakeTimeout()
   - core: LoadBalancer callbacks will no longer be called after shut down (
   #3573 <https://github.com/grpc/grpc-java/pull/3573>). This changes the
   behavior to match that documented in LoadBalancer.shutdown()
   - core: Refresh name resolution when an OOB connection is closed (#3588
   <https://github.com/grpc/grpc-java/pull/3588>). This has already been
   happening for Subchannels.
   - netty,okhttp: Now detecting proxy via ProxySelector. This enables
   observation of the Java-standard proxy options -Dhttps.proxyHost=host
   -Dhttps.proxyPort=port. Authenticator is consulted for along with auth.
   Users of the GRPC_PROXY_EXP environment variable should migrate; the
   environment variable will be removed in a future release.
   - netty: Connection log info has been moved to a separate logger:
   io.grpc.netty.NettyServerTransport.connections (#3591
   <https://github.com/grpc/grpc-java/pull/3591>).
   - auth: Treat IOExceptions as UNAVAILABLE instead of UNAUTHENTICATED (
   #3267 <https://github.com/grpc/grpc-java/issues/3267>). This allows
   retrying RPCs if the OAuth token failed to be retrieved

Bug fixes

   - core: Fixed ManagedChannel docs since it supports the
   getState/notifyWhenStateChanged API (#3762
   <https://github.com/grpc/grpc-java/issues/3762>)
   - core: When Context cancellation cancels an RPC, and the Context
   cancellation cause is null, we now include a description in the Status
   to help expose what happened
   - netty: Fixed broken server keepalive when using TLS. If using Netty
   server, server keepalives, and TLS, you were impacted. Plaintext did not
   exhibit the bug. This could trigger grpc-java clients to log "WARNING:
   Received unexpected ping ack. No ping outstanding."
   - netty: Improved ALPN error message to be less misleading and link to
   troubleshooting procedures
   - netty: Fixed clearing of SSLParameters. This may fix ALPN with JDK9,
   but full support for ALPN with JDK9 is still later work and not supporting
   it yet. Fixes #3532 <https://github.com/grpc/grpc-java/issues/3532>
   - netty: When a RST_STREAM kills an RPC, we now include the HTTP/2 error
   code in the Status
   - netty: Fixed Netty server poorly handling unknown content type. It
   previously would refuse the stream; now it responds with a normal grpc
   status and HTTP error code
   - bazel: java_grpc_library: Fixed remote protos that are 'src's. Fixes
   #3650 <https://github.com/grpc/grpc-java/issues/3650>
   - examples: Replaced IntelliJ IDEA-specific sourceDirs with sourceSets.
   This helps Eclipse and other IDE users

Documentation

   - SECURITY.md now includes a table showing the preferred Netty and
   netty-tcnative version for each grpc-java release
   - SECURITY.md clarify that the Dynamic Security Provider must be
   installed before OkHttp channel creation

-- 
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/CA%2B4M1oOWzwxpWj-NscWzoNrs4dGM1K8dLa4Em1Rs6tMV0z1A%3DQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to