Finagle v18.4.0 Release Notes
-
๐ New Features
* finagle-core: `c.t.f.filter.NackAdmissionFilter` can now be disabled via a `with`-method. `$Protocol.client.withAdmissionControl.noNackAdmissionControl` ``PHAB_ID=D146873`` * finagle-mysql: Exceptions now include the SQL that was being executed when possible. ``PHAB_ID=D150503`` * finagle-mysql: Address `PreparedStatement` usability from Java via `PreparedStatement.asJava()`. Through this, you can use the API with varargs and Java 8 lambdas. ``PHAB_ID=D156755`` * ๐ finagle-mysql: Added support for `Option`\s to `Parameter` implicits. This allows for the natural representation of nullable columns with an `Option` where a `None` is treated as a `null`. ``PHAB_ID=D156186`` * finagle-netty4: Add 'tls/connections' gauge for Finagle on Netty 4 which tracks the number of open SSL/TLS connections per Finagle client or server. ``PHAB_ID=D144184`` * ๐ finagle-redis: Support has been added for a number of new cluster commands introduced in Redis 3.0.0. ``PHAB_ID=D152186`` ๐ Bug Fixes ~~~~~~~~~ * finagle-mysql: Fix handling of interrupts during transactions. ``PHAB_ID=D154441`` ๐ฅ Breaking API Changes
๐ finagle-core:
c.t.f.ssl.client.HostnameVerifier
has been removed since it was usingsun.security.util.HostnameChecker
which is no longer accessible in JDK 9.PHAB_ID=D144149
โฌ๏ธ finagle-thrift: Upgraded libthrift to 0.10.0,
c.t.f.thrift.Protocols.TFinagleBinaryProtocol
constructor now takesstringLengthLimit
andcontainerLengthLimit
,NO_LENGTH_LIMIT
value changed from 0 to -1.PHAB_ID=D124620
๐ finagle-thrift: Move "stateless" methods in
c.t.finagle.thrift.ThriftRichClient
toc.t.finagle.thrift.ThriftClient
. Then mix theThriftClient
trait into the ThriftMux and Thrift Client companions to make it clearer that these stateless methods are not affected by the changing state of the configured client instance but are instead simply utility methods which convert or wrap the incoming argument.PHAB_ID=D143185
๐ finagle-base-http: Removed deprecated
c.t.f.Cookie.value_=
; usec.t.f.Cookie.value
instead.PHAB_ID=D148266
๐ finagle-base-http: Removed deprecated
c.t.f.Cookie.domain_=
; usec.t.f.Cookie.domain
instead.PHAB_ID=D148266
๐ finagle-base-http: Removed deprecated
c.t.f.Cookie.path_=
; usec.t.f.Cookie.path
instead.PHAB_ID=D148266
โ Runtime Behavior Changes
* finagle-core: Add minimum request threshold for `successRateWithinDuration` failure accrual. ``PHAB_ID=D154129`` * finagle-core: `c.t.f.filter.NackAdmissionFilter` no longer takes effect when the client's request rate is too low to accurately update the EMA value or drop requests. ``PHAB_ID=D143996`` * finagle-core: SSL/TLS client hostname verification is no longer performed by `c.t.f.ssl.client.HostnameVerifier`. The same underlying library `sun.security.util.HostnameChecker` is used to perform the hostname verification. However it now occurs before the SSL/TLS handshake has been completed, and the exception on failure has changes from a `c.t.f.SslHostVerificationException` to a `javax.net.ssl.CertificateException`. ``PHAB_ID=D144149`` * finagle-core: Closing `c.t.f.NullServer` is now a no-op. ``PHAB_ID=D156098`` * 0๏ธโฃ finagle-netty4: Netty ByteBuf leak tracking is enabled by default. ``PHAB_ID=D152828`` ๐ Deprecations ~~~~~~~~~~~~ * ๐ finagle-thrift: System property "-Dorg.apache.thrift.readLength" is deprecated. Use constructors to set read length limit for TBinaryProtocol.Factory and TCompactProtocol.Factory. ``PHAB_ID=D124620``