Skip to content

v0.15.0 Release

Compare
Choose a tag to compare
@carl-mastrangelo carl-mastrangelo released this 07 Jul 23:03
· 5153 commits to master since this release

Major Changes

  • significant performance improvements around header processing
  • generated AbstractService class and interfaces are now deprecated in favor of ServiceImplBase
  • made Context is no longer experimental (#1705)

Generated Code / Stub

  • static bindService() method is deprecated
  • added ClientResponseObsever to interact with advanced features like flow-control

Core

  • improved error messages when unable to find a name resolver
  • fix onReady race by adding DelayedStreamListener
  • added a RoundRobin Loadbalancer
  • clarified and extended core documentation (#1479, #714, #986, #1962, #1805)
  • fix race with exception in onMessage and onCompleted (#1652)
  • made ServiceDescriptor final, and now accepts a collection of methods.
  • made ServerInterceptor, BindableService, ServerCallHandler non experimental (#1711, #1701)
  • promoted Deadline API no longer be experimental
  • added a NameResolverProvider
  • remove deprecated ClientCall.cancel overload
  • new client calls no longer get their a new context (fixes a stack overflow, #1926)
  • made CallOptions accept custom values
  • enable per-message compression by default, if a compression method is set.
  • added a fail-fast feature, which makes new RPCs fail if there are no connections
  • added CallOptions.waitForReady to support fail-fast
  • log exceptions from scheduled tasks (#1759)
  • implemented ManagedChannel.shutdownNow (#448)
  • made URI parsing for targets more robust (#1883)
  • increased visibility of Code.status() and Status.fromCode (#1722)
  • methodDescriptor argument moved from ServerInterceptor to ServerCall
  • added a health checking service (not on by default) (#647)
  • server call exception is saved when a message fails to close
  • status exceptions can now hold additional metadata
  • allow ClientCall.cancel before start. Fixes #1536
  • split HandlerRegistry into an immutable default and a fallback for dynamic dispatch
  • made Context.fork return a normal Context instead of CancellableContext (1626)
  • reduced memory usage when cancelling calls by using the right executor

Examples

  • stopped using deprecated generated classes
  • added examples to show how to get error information from different stubs
  • switch android example to use proto lite instead of nano proto
  • moved json encoding examples to the "advanced" package (#1778)

Auth

  • added a CallCredentials class for propagating credentials
  • promote OAuth2 service accounts to JWT (#785)
  • add MoreCallCredentials.from(Credentials) to work with the Google Auth Library
  • made ClientAuthInterceptor deprecated

Netty

  • fixed a bug when headers could get corrupted during decoding
  • use boringssl uberjar
  • detect when ALPN was not used. (#522)
  • add tests for Netty bug where a channel would break after a RST_STREAM frame (#1682)
  • added Trailiers to the Status for BlockingResponseStream (#1861)
  • call transportShutdown immediately on ID exhaustion (#1819)

Protobuf

  • bump dependency to 3.0.0-beta-3

OkHttp

  • fix NPE when using CLEARTEXT connectionSpec (#1815)

Other

  • deflake lots of tests based on finding an empty port
  • disable flaky test in ClientCallsTest
  • improve ClientCall test to fail more obviously
  • add test for MessageDeframer closed exception (#1795)
  • benchmark transport flag now works in AsyncClient
  • always set message encoding in headers, even for the "identy" encoding.
  • updated error codes returned to match the specification (#1605)
  • added a log message for unknown client streams
  • added more detail when recieving GOAWAY
  • cause removed from InProcessTransport (#1716)
  • setRemoveOnCancelPolicy