Finagle v19.11.0 Release Notes

Release Date: 2019-11-06 // 16 days ago
  • 🆕 New Features

    • finagle-base-http: The Uri class now provides access publicly to its
      path, which is the request uri without the query parameters.
      f40fe447
    • 👍 finagle-mysql: Adding native support to finagle-mysql for MySQL JSON Data Type. A client
      can now use jsonAsObjectOrNull[T] or getJsonAsObject[T] APIs on c.t.f.mysql.Row to
      read the underlying json value as type T or use jsonBytesOrNull API to get a raw byte
      array of the the json column value. 4d403051
    • ✅ MySQL integration tests can now run on a port other than the default (3306). Add a port
      ✅ property to .finagle-mysql/integration-test.properties to customize the value.
      4d403051

    ⚙ Runtime Behavior Changes

    • ⬆️ finagle: Upgrade to Netty 4.1.43.Final and netty-tcnative 2.0.26.Final. cfaaa471
    • 👍 finagle: Add initial support for JDK 11 compatibility. 04def84b
    • ⬆️ finagle: Upgrade to caffeine 2.8.0 c335b29e
    • ✨ finagle-http2: Nacks in the form of RST(STREAM_REFUSED | ENHANCE_YOUR_CALM) no
      longer surface as a RstException, instead opting for a generic Failure to be
      symmetric with the HTTP/1.x nack behavior. cb67fa33
    • 🚤 finagle-mux: The mux handshake latency stat has be changed to Debug
      verbosity. 0eb2cfb6
    • ⬇️ finagle-serversets: finagle/serverset2/stabilizer/notify_ms histogram has been downgraded to
      debug verbosity. 30d3d0ea

    💥 Breaking API Changes

    • 🚚 finagle-base-http: c.t.f.http.codec.HttpContext moved into c.t.f.http.codec.context.HttpContext
      cc29b265

Previous changes from v19.10.0

  • 🆕 New Features

    
    * 🏗 finagle-partition: Enables cross-build for 2.13.0. ``PHAB_ID=D380444``
    
    * 🏗 finagle-exception: Enables cross-build for 2.13.0. ``PHAB_ID=D381107``
    
    * 🏗 finagle-exp: Enables cross-build for 2.13.0. ``PHAB_ID=D380497``
    
    * finagle-http: Expose header validation API to public. ``PHAB_ID=D381771``
    
    * 🏗 finagle-mysql: Enables cross-build for 2.13.0. ``PHAB_ID=D377721``
    
    * 🏗 finagle-{mux,thrift,thrift-mux}: Enables cross-build for 2.13.0. ``PHAB_ID=D373165``
    
    * 0️⃣ finagle-netty4: Add support to stop default Finagle Netty 4 Timer. ``PHAB_ID=D381605``
    
    * 🏗 finagle-redis: Enables cross-build for 2.13.0. ``PHAB_ID=D381107``
    
    * 🏗 finagle-tunable: Enables cross-build for 2.13.0. ``PHAB_ID=D373170``
    
    * 🏗 finagle-grpc-context: Enables cross-build for 2.13.0. ``PHAB_ID=D373168``
    
    * finagle-thrift: Pass a factory to create a TReusableBuffer as the parameter of a finagle client
      to allow multiple clients share one TReusableBuffer. ``PHAB_ID=D378466``
    
    * 🏗 finagle-zipkin-{core,scribe}: Enables cross-build for 2.13.0. ``PHAB_ID=D381675``
    
    ⚙ Runtime Behavior Changes
    
    • 🐎 finagle-base-http: Better performance for the default HeaderMap.add method for headers with the same name. PHAB_ID=D381142

    • finagle-http2: H2ServerFilter will no longer swallow exceptions that fire via exceptionCaught in the Netty pipeline. PHAB_ID=D369185

    • 🚚 finagle-http: Remove legacy HTTP/2 client implementation and make the MultiplexHandler-based implementation the default HTTP/2. PHAB_ID=D362950

    💥 Breaking API Changes

    
    * finagle-core: `c.t.f.l.FailureAccrualFactory`'s `didMarkDead()` changed to `didMarkDead(Duration)`.
      The `Duration` is the length of time the endpoint is marked dead. ``PHAB_ID=D369209``
    
    * 🚚 finagle-core: removed the `staticDetermisticApertureWidth` flag. The behavior is now as if the flag
      was set to `true` which was also the default behavior. ``PHAB_ID=D382779``
    
    🐛 Bug Fixes
    
    • finagle-mux: Mux now properly propagates Ignorable failures multiple levels for superseded backup requests. This allows for more accurate success rate metrics for downstream services, when using backup requests. PHAB_ID=D365729