November 2019 Release Notes - Version 19.11.0 ❄️
Now that Halloween has come and gone, it’s time to get ready for cold weather fun! ❄️
New Features
- finagle-base-http: The Uri class now provides access publicly to its
path, which is the request uri without the query parameters.
f40fe447
- finagle-mysql: Adding native support to finagle-mysql for MySQL JSON Data Type. A client
can now use jsonAsObjectOrNull[T] or getJsonAsObject[T] APIs on c.t.f.mysql.Row to
read the underlying json value as type T or use jsonBytesOrNull API to get a raw byte
array of the the json column value. 4d403051
- MySQL integration tests can now run on a port other than the default (3306). Add a port
property to .finagle-mysql/integration-test.properties to customize the value.
4d403051
Runtime Behavior Changes
- finagle: Upgrade to Netty 4.1.43.Final and netty-tcnative 2.0.26.Final. cfaaa471
- finagle: Add initial support for JDK 11 compatibility. 04def84b
- finagle: Upgrade to caffeine 2.8.0 c335b29e
- finagle-http2: Nacks in the form of RST(STREAM_REFUSED | ENHANCE_YOUR_CALM) no
longer surface as a RstException, instead opting for a generic Failure to be
symmetric with the HTTP/1.x nack behavior. cb67fa33
- finagle-mux: The mux handshake latency stat has be changed to Debug
verbosity. 0eb2cfb6
- finagle-serversets: finagle/serverset2/stabilizer/notify_ms histogram has been downgraded to
debug verbosity. 30d3d0ea
Breaking API Changes
- finagle-base-http: c.t.f.http.codec.HttpContext moved into c.t.f.http.codec.context.HttpContext
cc29b265
Fixed
- finatra-http: Better handling of URI decoding issues when extracting path parameters for
routing. If we cannot extract a path pattern, and the exception is not intercepted by a
user-defined Exception Mapper, we will now explicitly return a 400 - BAD REQUEST.
Fixes #507. 5f293844
Added
- finatra: Add initial support for JDK 11 compatibility. dfc521c9
- inject-core: Add support for optional binding in c.t.inject.TwitterModule.
285da3bb
Changed
- finatra-http: (BREAKING API CHANGE) AsyncStream[Buf] => AsyncStream[String] and
Reader[Buf] => Reader[String] handlers will always be tread the output as a JSON arrays of
Strings. Whereas, before, the incoming bytes would have been converted to String and
returned as-is. 43eaa555
- finatra: Deprecate c.t.finatra.http.modules.DocRootModule. Introduce FileResolverModule.
The DocRootModule defines configuration flags for the FileResolver which was moved from
finatra/http to a more correctly generic location in finatra/utils. However, configuration for
injection of a properly configured FileResolver is still incorrectly tied to HTTP because of the
DocRootModule. Thus, we deprecate the DocRootModule and introduce the
c.t.finatra.modules.FileResolverModule which is defined closer to the
c.t.finatra.utils.FileResolver in finatra/utils. This allows the FileResolver to be properly
configured outside of HTTP concerns. 5a97b2aa
- finatra-thrift: Updated BUILD files for Pants 1:1:1 layout. c46209fd
- inject-ports: Add finatra/inject/inject-ports which has c.t.inject.server.Ports and
c.t.inject.server.PortUtils. 5676d038
- inject-utils: Move AnnotationUtils to c.t.inject.utils.AnnotationUtils and make public
for use. 0ac7af99
- finatra-http: Updated package structure for Pants 1:1:1 layout. Moved META-INF/mime.types file
to finatra/utils which is where the FileResolver is located for proper resolution of mime types
from file extension. 57555f80
New Features
util: Add initial support for JDK 11 compatibility. e6970ed1
util-core: Created public method Closable.stopCollectClosablesThread that stops CollectClosables
thread. a8260998
util-core: Introduced Reader.fromIterator to create a Reader from an iterator. It is not
recommended to call iterator.next() after creating a Reader from it. Doing so will affect the
behavior of Reader.read() because it will skip the value returned from iterator.next.
d1b42f4b
Runtime Behavior Changes
- util: Upgrade to caffeine 2.8.0 f35ae591
Breaking API Changes
- util-core: Add c.t.io.BufReader.readAll to consume a Reader[Buf] and concat values to a Buf.
Replace c.t.io.Reader.readAll with Reader.readAllItems, the new API consumes a generic Reader[T],
and return a Seq of items. a47a219b
- util-core: Moved c.t.io.Reader.chunked to c.t.io.BufReader.chunked, and Reader.framed to
BufReader.framed. 459038f9
- util-core: Moved c.t.io.Reader.copy to c.t.io.Pipe.copy, and Reader.copyMany to
Pipe.copyMany. 5562ebf3
Deprecations
- util-core: Mark c.t.io.BufReaders, c.t.io.Bufs, c.t.io.Readers, and c.t.io.Writers as
Deprecated. These classes will no longer be needed, and will be removed, after 2.11 support is
dropped. 844fe24d
- util-stats: Removed deprecated methods stat0 and counter0 from StatsReceiver. 5119e65c
- Add initial support for JDK 11 compatibility. 99914111
- The endpoints section of the clients page has been fixed
to no longer render an incorrect html line break tag. 4463e9d5
- scrooge: Add initial support for JDK 11 compatibility. e7b88e84