Finagle 18.5.0
New Features
-
finagle-base-http: Added ability to add SameSite attribute to Cookies to
comply with https://tools.ietf.org/html/draft-west-first-party-cookies-07.
The attribute may be set in the constructor via thec.t.f.http.Cookie
sameSite
param or via thec.t.f.http.Cookie.sameSite
method.- Pass
SameSite.Lax
to theCookie
to add the "Lax" attribute. - Pass
SameSite.Strict
to theCookie
to add the "Strict" attribute.
4b0a58b0
- Pass
-
finagle-base-http: Introduced an API to extract query string params from a
c.t.f.http.Request
,c.t.f.http.Uri.fromRequest
andc.t.f.http.Uri#params
.
0dd0a425 -
finagle-mysql: Added APIs to
Row
which simplify the common access pattern.
For example,Row.stringOrNull(columnName: String): String
and
Row.getString(columnName: String): Option[String]
.
f3676d31, f3676d31 -
finagle-mysql: Added
read
andmodify
APIs toc.t.f.mysql.Client
and
c.t.f.mysql.PreparedStatement
for that return the specific type of
Result
for those operations,ResultSet
andOK
respectively.
2f3650cf -
finagle-serversets: Zk2Session's AsyncSemaphore which controls the maximum
concurrent Zk operations is configurable (GlobalFlag c.t.f.serverset2.zkConcurrentOperations).
[3160a815](https://github.com/twitter/finagle/commit/3160a815c2552773a67d834841b029dca5ba0122)
-
finagle-mysql: Address
CursoredStatement
usability from Java via
CursoredStatement.asJava()
. Through this, you can use the API with
varargs and Java 8 lambdas. f67978aa -
finagle-toggle: Improved Java compatiblity for
ToggleMap
andToggle
. 16dbe170 -
finagle-toggle:
StandardToggleMap.apply
andStandardToggleMap.registeredLibraries
now
useToggleMap.Mutable
to better support mutating the underlying mutableToggleMap
.
8b136a22
Breaking API Changes
-
finagle-mux: With the introduction of the push-based mux client, we've
removed the need for the optimizedc.t.f.Mux.Netty4RefCountingControl
MuxImpl, which has been removed. 35980463 -
finagle-mysql:
c.t.f.mysql.Client.ping
now returns aFuture[Unit]
instead of the broadFuture[Result]
ADT. 2f3650cf -
finagle-toggle: Changed
ToggleMap.Mutable
from a trait to an abstract class, and
ToggleMap.Proxy
no longer extendsToggleMap
, but now has a self-type that conforms to
ToggleMap
instead. 16dbe170
Runtime Behavior Changes
-
finagle-core: Add
c.t.f.SslException
to better model exceptions related to SSL/TLS.
Thec.t.f.ChannelException.apply
method will now wrapjavax.net.ssl.SSLException
s in
c.t.f.SslException
. 955a0b3e -
finagle-core: MethodBuilder metrics now include failures.
f58ab46f, f58ab46f -
finagle-http: ServerAdmissionControl is circumvented for HTTP requests that have
a body unless the request contains the header 'finagle-http-retryable-request' since
it cannot be known whether the client can actually retry them, potentially resulting
in depressed success rates during periods of throttling. 4377f02a -
finagle-http2: Clients and servers no longer attempt a cleartext upgrade if the
first request of the HTTP/1.1 session has a body. bf09dd4c -
finagle-thriftmux: The push-based client muxer is now the default muxer implementation.
The push-based muxer has better performance and a simpler architecture. cc333151 -
finagle-toggle:
ToggleMap.Proxy#underlying
is now public, andToggleMap.Proxy
participates inToggleMap.components
. 8b136a22
Bug Fixes
-
finagle-base-http: Concurrent modification of the
c.t.f.http.DefaultHeaderMap
could
result in an infinite loop due to HashMap corruption. Access is now synchronized to avoid
the infinite loop. aa73d24d -
finagle-core:
FailureFlags
that have their flags set modified will now
retain the original stack trace, suppressed Throwables, and cause when possible.
f4543472 -
finagle-memcached: Added the missing support for partial success for the batch
operations in the new PartitioningService based Memcached client. 970af633 -
finagle-thrift: Removed copied libthrift files. 9deb18b4
-
finagle-thrift/thriftmux: Server side per-endpoint statsFilter by default is disabled now.
It can be set viac.t.f.thrift.RichServerParam
or awith
-method as
Thrift{Mux}.server.withPerEndpointStats
. 7b0281c5