gRPC Java 0.15.0 released

166 views
Skip to first unread message

Carl Mastrangelo

unread,
Jul 7, 2016, 7:06:11 PM7/7/16
to grpc.io

Major Changes
  • significant performance improvements around header processing
  • generated AbstractService classes 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
  • renamed withCredentials to withCallCredentials on CallOptions
  • 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 
  • handle null metadata for Credentials

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 bsed 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

Wang Tao

unread,
Jul 7, 2016, 9:39:42 PM7/7/16
to grpc.io
great job!
Reply all
Reply to author
Forward
0 new messages