Finagle v7.1.0 Release Notes

  • ๐Ÿ†• New Features

    
    * ๐Ÿ”ง finagle-core: If a `c.t.u.tunable.Tunable` request or total timeout has been configured
      on a client which uses a `c.t.f.client.DynamicTimeout` filter, the current value of tunable will
      be used in the case of no dynamic timeout set for a request. ``PHAB_ID=D81886``
    
    * finagle-core: `FailFastException` now captures the throwable that caused it. ``PHAB_ID=D86396``
    
    * finagle-redis: finagle interface for redis DBSIZE command. ``PHAB_ID=D85305``
    
    ๐Ÿ› Bug Fixes
    ~~~~~~~~~
    
    * finagle-core: Unregister `ServerRegistry` entry on `StackServer#close`. A
      StackServer entry is registered in the `ServerRegistry` on serve of the
      server but never unregistered. It is now unregistered on close of
      the StackServer. ``PHAB_ID=D83200``
    
    * finagle-mux: Fix two issues with mux leases. In one bug, a new lease wouldn't be sent to
      the client if it was issued within 1 second of when the existing lease was set to expire.
      In a second bug, the server would only nack if the issued lease was 0, but didn't consider
      whether the lease had expired. ``PHAB_ID=D91645``
    
    
    * finagle-netty4: `Netty4ClientEngineFactory` and `Netty4ServerEngineFactory` now
      properly load all chain certificates when the `SslClientConfiguration` or
      `SslServerConfiguration` uses `KeyCredentials.CertKeyAndChain` instead of just the
      first one in the file. ``PHAB_ID=D82414``
    
    * ๐Ÿ”ง finagle-thrift/thriftmux: Thrift/ThriftMux servers and clients now can be configured
      with `withMaxReusableBufferSize` to specify the max size of the reusable buffer for
      Thrift responses. ``PHAB_ID=D83190``
    
    โš™ Runtime Behavior Changes
    
    • finagle-stats: Verbosity levels are now respected: debug-metrics aren't exported by default. PHAB_ID=D85278

    • finagle-netty4: ChannelTransport no longer considers the Channel.isWritable result when determining status. PHAB_ID=D82670

    ๐Ÿ—„ Deprecations

    
    * finagle-base-http: Encoding/decoding methods on `c.t.f.http.Request` and `c.t.f.http.Response`
      to/from Strings and arrays of bytes have been deprecated. Use the methods on
      `c.t.f.http.codec.HttpCodec` instead:
    
         - For `c.t.f.http.Request.encodeString`, use `c.t.f.Http.codec.HttpCodec.encodeRequestToString`
         - For `c.t.f.http.Request.encodeBytes`, use `c.t.f.Http.codec.HttpCodec.encodeRequestToBytes`
         - For `c.t.f.http.Request.decodeString`, use `c.t.f.Http.codec.HttpCodec.decodeStringToRequest`
         - For c.t.f.http.Request.decodeBytes`, use `c.t.f.Http.codec.HttpCodec.decodeBytesToRequest`
         - For `c.t.f.http.Response.encodeString`, use `c.t.f.Http.codec.HttpCodec.encodeResponseToString`
         - For `c.t.f.http.Response.decodeString`, use `c.t.f.Http.codec.HttpCodec.decodeStringToResponse`
         - For `c.t.f.http.Response.decodeBytes`, use `c.t.f.Http.codec.HttpCodec.decodeBytesToResponse`
    
      ``PHAB_ID=D81341``
    
    ๐Ÿ’ฅ Breaking API Changes
    
    • ๐Ÿšš finagle-core: Remove deprecated method httpProxyTo(String, Option[Transporter.Credentials]). Use httpProxyTo(String, Transporter.Credentials] instead. PHAB_ID=D84077

    • ๐Ÿšš finagle-*-http: Netty 3 specific HTTP transport related code has been moved into its own project, finagle-netty3-http, in preparation for removing it from Finagle. PHAB_ID=D84101

    • ๐Ÿš€ finagle-memcached: Remove deprecated method BaseClient.release(). Use BaseClient.close() instead. PHAB_ID=D83168

    ๐Ÿ—„ Deprecations

    
    * ๐Ÿšš finagle-memcached: Move `c.t.f.memcached.java.Client` to `c.t.f.memcached.JavaClient`,
      `c.t.f.memcached.java.ClientBase` to `c.t.f.memcached.JavaClientBase`, and
      `c.t.f.memcached.java.ResultWithCAS` to `c.t.f.memcached.ResultWithCAS`. ``PHAB_ID=D83719``
    
    * finagle-core: Added a new type member `Context` to `Transport`, and a method that
      returns a context, which has most of the methods currently directly on `Transport`.
      Also deprecates most of those methods--please start using the context instead of the
      `Transport` directly.  Also added type parameters to `Transporter`, `Listener`, and
      type members to `StackClient` and `StackServer`.  ``PHAB_ID=D83972``
    
    * finagle-core: `com.twitter.finagle.loadbalancer.DeterministicOrdering` was renamed
      to `com.twitter.finagle.loadbalancer.ProcessCoordinate` and the internal `Coord` ADT
      was changed as well. ``PHAB_ID=D84452``
    
    * ๐Ÿšš finagle-thrift: Move `Thrift.Server.param.MaxReusableBufferSize` to
      `Thrift.param.MaxReusableBufferSize` for both server and client use. ``PHAB_ID=D83190``