August 2020 Release Notes - Version 20.8.0
Another month, another release. 😺 Here’s the August release of Finagle, Finatra, Scrooge, Twitter Server, and Util.
Runtime Behavior Changes
- finagle-netty4-http: Post, Put, Patch non-streaming outbound requests with empty bodies will
be added the Content-Length header with value 0. 9ce18e85
- finagle-core: A ServiceFactory created by ServiceFactory.const/constant propagates the wrapped
service status. 3347c095
- finagle-http: c.t.f.http.filter.PayloadSizeFilter no longer adds an annotation on each
streaming chunk and instead aggregates the byte count and adds a single record on stream
termination. e87b1c35
- finagle-zipkin-scribe: zipkin scribe log_span prefix replaced with scribe. zipkin-scribe/scribe/<stats>. 5b100ee9
New Features
- finagle-core: introduce type-safe ReqRep variant 459daf68
- finagle-core: Added a new variant of Filter.andThenIf which allows passing the parameters
as individual parameters instead of a Scala tuple. fb071d9b
- finagle-core: new metric (counter) for traces that are sampled. finagle/tracing/sampled 1d6503e0
- finagle-netty4: Add the c.t.f.netty4.Netty4Listener.MaxConnections param that can be used
to limit the number of connections that a listener will maintain. Connections that exceed
the limit are eagerly closed. 9991aae3
- finagle-thrift: Added java-friendly c.t.f.thrift.exp.partitioning.ClientHashingStrategy and
c.t.f.thrift.exp.partitioning.ClientCustomStrategy create methods, and added java-friendly
c.t.f.thrift.exp.partitioning.RequestMergerRegistry#addRequestMerger and
c.t.f.thrift.exp.partitioning.ResponseMergerRegistry#addResponseMerger to make partitioning
easier to use from Java. e0d78d14
Breaking API Changes
- finagle-core: ReqRep can no longer be created via new ReqRep(..). Please use
ReqRep.apply(..) instead.
459daf68
- finagle-thrift: Updated the c.t.f.thrift.exp.partitioning.ClientHashingStrategy and the
c.t.f.thrift.exp.partitioning.ClientCustomStrategy to take constructor arguments instead
of needing to override methods on construction. e0d78d14
- finagle-zipkin-core: Removed unused statsReceiver constructor argument from RawZipkinTracer. 5b100ee9
Added
- inject-app: Add more Java-friendly constructors for the TestInjector. 2408860e
Changed
- inject-modules: Improve Java usability: rename apply to get for
StatsReceiverModule and LoggerModule.
Add get methods for other TwitterModule singleton objects.
(BREAKING API CHANGE) 0cbbf8ab
- inject-core: Deprecate c.t.inject.Resettable (no replacement) and c.t.inject.TestTwitterModule.
Users should prefer the #bind[T] DSL over usage of the TestTwitterModule. f95fe7cb
Fixed
- inject-server: Fix EmbeddedTwitterServer to return StartupTimeoutException when server under
test fails to start within max startup time. 3eb0cd85
New Features
- util-stats: Store MetricSchemas in InMemoryStatsReceiver to enable further testing. c305712e
- util-core: c.t.u.Var.Observer is now public. This allows scala users to extend the Var trait
as has been the case for Java users. ee1cebcf
- util-core: Added two new methods to c.t.u.Duration and c.t.u.Time: .fromHours and .fromDays. 955f2ce9
Runtime Behavior Changes
- util-app: Treat empty strings as empty collections in Flag[Seq[_]], Flag[Set[_]],
Flag[java.util.List[_]], and Flag[java.util.Set[_]]. They were treated as collections
with single element, empty string, before. 43f83d22
No Changes
- scrooge: replace deprecated ScalaTest 3.0 API with ScalaTest 3.1/3.2 API. 9878247b
- scrooge-core: Change c.t.scrooge.ThriftStructMetaData from an abstract class to a trait
to allow for mixin to classes that already extend other classes. 982e8530