Skip to content

Finagle 18.9.0

Compare
Choose a tag to compare
@finaglehelper finaglehelper released this 12 Sep 00:06
· 1855 commits to develop since this release

18.9.0

New Features

  • finagle-core: c.t.f.FailureFlags is now a public API. This is
    Finagle's API for attaching metadata to an exception. As an example
    this is used to check if an exception is known to be safe to retry.
    Java compatibility has also been added.
    e6389831
  • finagle-core: Introducing StackTransformer, a consistent mechanism
    for accessing and transforming the default ServerStack.
    0b6844cd
  • finagle-netty4: Allow sockets to be configured with the
    [SO_REUSEPORT](http://lwn.net/Articles/542629/) option when
    using native epoll, which allows multiple processes to bind and
    accept connections from the same port.

Breaking API Changes

  • finagle: c.t.io.Reader and c.t.io.Writer are now abstracted over the
    type they produce/consume (Reader[A] and Writer[A]) and are no
    longer fixed to Buf.
    5242d49d
  • finagle-core: Address.hashOrdering now takes a seed parameter and
    PeerCoordinate.setCoordinate does not take a peerOffset any longer.
    9e6734b2
  • finagle-core: Removed deprecated members
    c.t.f.Failure.{Interrupted, Ignorable, DeadlineExceeded,
    Rejected, NonRetryable, flagsOf}.
    54435221
  • finagle-core: SingletonPool now takes an additional parameter which
    indicates if interrupts should propagate to the underlying resource.
    c83ad5d1
  • finagle-core: Remove TimeoutFactory.Role in favor of passing a role
    to the module function. Since this module is a re-used within the
    client stack, it needs unique identifiers for each distinct module.
    4c46b80d
  • finagle-core: the valid range for the argument to
    WindowedPercentileHistogram.percentile is now [0.0..1.0], e.g.,
    0.95 means 95th percentile.
    8ad96f96
  • finagle-mux: The old pull-based mux implementations have been
    removed.
    d1baeff9
  • finagle-netty3: The type of context of a ChannelTransport has been
    changed from a LegacyContext to a ChannelTransportContext.
    4cdd15d9
  • finagle-netty4: The type of context of a ChannelTransport has been
    changed from a Netty4Context to a ChannelTransportContext.
    edce8093
  • finagle-netty4: c.t.f.netty4.param.useUnpoolledByteBufAllocator flag
    has been removed. There is no good reason to opt-out of a more
    efficient, pooled allocator.
    07495a14
  • finagle-thrift: DeserializeCtx became ClientDeserializeCtx for
    client side response classification, add ServerDeserializeCtx to
    handle server side response classification.
    a8be34bd
  • finagle-serversets: ZkMetadata.shardHashOrdering now takes a seed
    parameter.
    9e6734b2

Bug Fixes

  • finagle-thrift: Thrift clients created via .servicePerEndpoint now
    propagate exceptions appropriately when the method return type is
    void.
    bb2654e1
  • finagle-thrift, finagle-thriftmux: Response classification is
    enabled in server side.
    a8be34bd

Runtime Behavior Changes

  • finagle-memcached: A Memcached client (c.t.f.Memcached.Client) is
    now backed by a more efficient, push-based implementation.
    c0a1f295
  • finagle-netty4: Finagle's Netty 4 implementation now defaults to use
    Linux's native epoll transport, when available. Run with
    -com.twitter.finagle.netty4.useNativeEpoll=false to opt out.
    137f5672