Halloween has come and gone and it’s already snowing here in the Rockies. Time to cuddle up with a warm compiler and check out the new edition of Twitter’s open source libraries!
finagle-base-http: Add Message.httpDateFormat(millis)
to format the epoch millis into
an RFC 7231 formatted String representation. eb9bec0e
finagle-core: Introduce an StackClient.withStack
overload that
makes modifying the existing Stack
easier when using method chaining.
8f69e833
finagle-mysql: Introduce session
to be able to perform multiple operations that require
session state on a guaranteed single connection. a06f7d67
finagle-netty4: When using the native epoll transport, finagle now publishes the TCP window size
and number of retransmits based on the tcpInfo
provided by from the channel. These stats are
published with a debug verbosity level. 16071088
finagle-http: HTTP clients and servers now accept fixedLengthStreamedAfter
param in their
withStreaming
configuration (default: 5 MB when streaming is enabled). This new parameter
controls the limit after which Finagle will stop aggregating messages with known Content-Length
(payload will be available at .content
) and switch into a streaming mode (payload will be
available at .reader
). Note messages with Transfer-Encoding: chunked
never aggregated.
842e5e1a
finagle-http: c.t.f.http.param.MaxChunkSize
has been removed. There is no good reason to
configure it with anything but Int.MaxValue
(unlimited). 990c8650
finagle-exp: Update DarkTrafficFilter#handleFailedInvocation
to accept the request type
for more fidelity in handling the failure. b247f941
finagle-http: Unset maxChunkSize
limit in Netty HTTP codecs. Now both clients and servers
emit all available data as a single chunk so we can put it into use quicker.
990c8650
finagle-http: Streaming clients (withStreaming(true)
) now aggregate inbound messages with known
Content-Length
if their payloads are less than 5mb (8k before). Use withStreaming(true, 32.kb)
to override it with a different value. 24271b29
finagle-http2: HTTP/2 servers perform a more graceful shutdown where an initial GOAWAY is sent with the maximum possible stream id and waits for either the client to hang up or for the close deadline, at which time a second GOAWAY is sent with the true last processed stream and the connection is then closed. 93fee499
EndpointerStackClient.transformed(Stack[ServiceFactory[Req, Rep]] => Stack[ServiceFactory[Req, Rep]])
in favor of the withStack
variant. 8f69e833finatra-thrift: Fixes and improvements for better Java support. ExceptionMappingFilter now
works properly with generated Java controllers, added an exception mapper for the exceptions
defined in finatra_thrift_exceptions.thrift
which works on the geneated Java code for these
exceptions. Better Java API separation to make usage less error prone and confusing.
f6c44cab
finatra-thrift: (BREAKING API CHANGE) Update DarkTrafficFilter#handleFailedInvocation
to accept
the request type for more fidelity in handling the failure. 20bd33ac
finatra-http: Move request.ContentType
and response.Mustache
Java annotations to
com.twitter.finatra.http
package namespace. ef135610
finatra-jackson: Move away from deprecated code and update error handling and exceptions post Jackson 2.9.x upgrade. f1e5c96e
inject-core: (BREAKING API CHANGE) Remove c.t.inject.TestMixin#sleep
. We do not want to
promote this usage of Thread blocking in testing utilities. Add a new testing function:
c.t.inject.TestMixin#await
which will perform Await.result
on a given c.t.util.Awaitable
.
This function was duplicated across tests in the codebase. We also introduce an overridable default
timeout on the underlying Await.result
call: c.t.inject.TestMixin#defaultAwaitTimeout
.
4aee1051
Filter.TypeAgnostic
filters to be applied to a generated
Java Service
via a new constructor that takes an additional argument of a Filter.TypeAgnostic
.
This filter is then applied per generated method service. 19c7d58bNo Changes
util-core: c.t.u.Future.raiseWithin
methods now take the timeout exception as a call-by-name
parameter instead of a strict exception. While Scala programs should compile as usual, Java
users will need to use a scala.Function0
as the second parameter. The helper
c.t.u.Function.func0
can be helpful. 9bde57ca
util-core: Rename c.t.io.Reader.ReaderDiscarded
to c.t.io.ReaderDiscardedException
.
a970c5b5