Finagle v6.22.0 Release Notes
-
💥 Breaking API Changes
* 🚚 finagle-core: Removed unused `com.twitter.finagle.service.ProxyService`. It wasn't sufficiently general to be used outside of finagle, and was no longer used in finagle. * ✂ Removed TLSEngine, and replaced it with two, TLSClientEngine, and TLSServerEngine, where TLSServerEngine is the same as TLSEngine, and TLSClientEngine takes a SocketAddress instead of (). Additionally, the Netty3TransporterTLSConfig now takes a function SocketAddress => Engine, instead of () => Engine. 🆕 New Features ~~~~~~~~~~~~ * finagle-core: BroadcastStatsReceiver, introduce specialized implementation * finagle-core: Introduce gauges in SummarizingStatsReceiver * finagle-core: Introduce Transport#copyToWriter * finagle-core: Make base Dtab used in BindingFactory a Stack.Param * finagle-core: Proper decay in experimental ewma load metric * finagle-core: Simplify Stack{Client, Server} and unify around them ⚙ Runtime Behavior Changes
- 👍 finagle-core: Add support for non-URLClassloaders to LoadService
- finagle-core: clear locals before entering server dispatch loop
- finagle-core: Defer DNS Resolution in InetResolver to FuturePool
- finagle-core: for paths starting with /#/, skip rewrites where prefix is /
- finagle-core: include name resolution in tracing request span
- finagle-core: Properly wrap some IOException into ConnectionFailedException
- finagle-core: Scope InetResolver's stats properly
- finagle-http: Send "Connection: close" header while dispatcher is closing
- finagle-http: Set content length header when appropriate
- finagle-memcached: Use interruptible future for the client request readiness
- finagle-stats: Add content-type response header to JsonExporter
- finagle-thrift: Add back connection_preparation_latency stat in Thrift
- finagle-thriftmux: Record protocol as a gauge rather than a counter
📚 Documentation
* finagle-core: Add Scaladocs for ChannelBufferBuf and BufChannelBuffer * 🙋 finagle-core: link to the FAQ in FailedFastException * finagle-serversets: Defer DNS resolution for endpoints to InetResolver * 🗄 finagle-thrift{,mux}: Clarified with* deprecation warning * 🛠 Fix minor issues and missing code blocks in Finagle documentation Optimization ~~~~~~~~~~~~ * finagle-core: GlobalFlag isn't caching the property value * 📜 finagle-core: recursive-descent Path / NameTree / Dentry / Dtab parsers to reduce heap allocation 🐛 Bug Fixes ~~~~~~~~~ * finagle-core: Fix a deadlock in Contexts * finagle-core: Fix breaking ABI change in SummarizingStatsReceiver * finagle-core: Fix bug in computing array index in SummarizingStatsReceiver * 🏗 finagle-core: Fix build.properties location for maven builds * 🔀 finagle-core: Fix synchronization in LeasedFactory * finagle-core: Fix tracing with Stack{Client, Server} * finagle-core: Make FailedFastException an instance variable. * 🔀 finagle-core: Synchronized access to the Stackable mutable.params map * finagle-http: Fix CookieMap.rewriteCookieHeaders() * finagle-http: Fix the memory leak in HttpClientDispatcher * finagle-mysql: Fix timestamp fractional seconds encoding * finagle-mysql: Properly heed timezone when extracting TimestampValue * mux: clear contexts after receive, not in 'finally' clause