Finagle v19.8.0 Release Notes

Release Date: 2019-08-06 // 12 days ago
  • 💥 Breaking API Changes

    * finagle-core: The contents of the `c.t.f.dispatch.GenSerialClientDispatcher` object have been
      moved to the new `c.t.f.dispatch.ClientDispatcher` object. The stats receiver free constructors
      of `GenSerialClientDispatcher` and `SerialClientDispatcher` have been removed.
    * 🗄 finagle-thrift: The deprecated `ReqRepThriftServiceBuilder` object has been
      removed. Users should migrate to `ReqRepMethodPerEndpointBuilder`. ``PHAB_ID=D345740``
    ⚙ Runtime Behavior Changes
    • 🐧 finagle-core: Failed reads on Linux due to a remote peer disconnecting should now be properly seen as c.t.f.ChannelClosedException instead of a c.t.f.UnknownChannelException. PHAB_ID=D336428

    • ⬆️ finagle: Upgrade to Jackson 2.9.9. PHAB_ID=D345969

    • ⬆️ finagle: Upgrade to Netty 4.1.38.Final. PHAB_ID=D346259

    • 📦 finagle-base-http: Moved c.t.f.http.serverErrorsAsFailures out of its package object, which changes its name from com.twitter.finagle.http.package$serverErrorsAsFailures to com.twitter.finagle.http.serverErrorsAsFailures. PHAB_ID=D353045

    • 📦 finagle-thrift: Moved c.t.f.thrift.maxReusableBufferSize out of its package object, which changes its name from com.twitter.finagle.thrift.package$maxReusableBufferSize to com.twitter.finagle.thrift.maxReusableBufferSize. PHAB_ID=D353045

Previous changes from v19.7.0

  • 🆕 New Features

    🛰 finagle-http: Measure streaming (message.isChunked) chunk payload size with two new histograms:
    🛰 stream/request/chunk_payload_bytes and stream/response/chunk_payload_bytes, they are
    🛰 published with a debug verbosity level. These chunk payload sizes are also traced via the same
    trace keys. 11f4e32

    👍 finagle-base-http: Add support for new "b3" tracing header. 8721837

    finagle-core: Allow to not bypass SOCKS proxy for localhost by using the GlobalFlag
    -com.twitter.finagle.socks.socksProxyForLocalhost 5521bc8

    finagle-core: OffloadFilter flag to reduce network contention. 2bd4d61

    finagle-exp: Add private c.t.f.exp.ConcurrencyLimitFilter for rejecting requests
    that exceed estimated concurrency limit e331491

    ⚙ Runtime Behavior Changes

    finagle-http: c.t.f.http.Cors has been changed to no longer use the c.t.f.http.Response
    associated with the passed in c.t.f.http.Request. 455718a

    finagle-http: c.t.f.http.filter.ExceptionFilter has been changed to no longer
    👉 use the c.t.f.http.Response associated with the passed in. 54d4acf

    ⚡️ finagle-http: Optimize creation of new Http Dispatchers by re-using created metrics and loggers.

    💥 Breaking API Changes

    🚚 finagle-base-http: Removed the methods setStatusCode and getStatusCode from
    🗄 c.t.f.http.Response which have been deprecated since 2017. 20b37b0

    🏗 finagle-core: All deprecated c.t.f.builder.ServerBuilder#build methods have
    🏗 been removed. Users should migrate to using the build method which takes a
    ServiceFactory[Req, Rep] as a parameter. 7ae208d

    🚚 finagle-core: The c.t.f.ssl.client.SslClientEngineFactory#getHostname method has been removed.
    All uses should be changed to use the getHostString method of SslClientEngineFactory instead.

    finagle-http: The setOriginAndCredentials, setMaxAge, setMethod, and setHeaders methods
    of c.t.f.http.Cors.HttpFilter are no longer overridable. 455718a

    finagle-http: The details of the c.t.f.Http.HttpImpl class are meant to be implementation
    details so the class constructor was made private along with the fields. Along these same lines
    🚚 the c.t.f.Http.H2ClientImpl.transporter method has been moved to a private location.

    🐛 Bug Fixes

    🚚 finagle-core: Ensure ClientDispatcher queueSize gauge is removed on transport
    close, instead of waiting for clean-up at GC time. 963e9b8

    finagle-http2: Don't propagate stream dependency information for the H2 client.