Changelog History
Page 3
-
v20.8.0 Changes
August 11, 2020โ Added
* โ inject-app: Add more Java-friendly constructors for the TestInjector. ``PHAB_ID=D520900`` ๐ Changed
inject-modules: Improve Java usability: rename
apply
toget
for StatsReceiverModule and LoggerModule. Addget
methods for other TwitterModule singleton objects. (BREAKING API CHANGE)PHAB_IB=D525696
โ inject-core: Deprecate
c.t.inject.Resettable
(no replacement) andc.t.inject.TestTwitterModule
. Users should prefer the#bind[T]
DSL over usage of theTestTwitterModule
.PHAB_ID=D520889
๐ Fixed
* inject-server: Fix EmbeddedTwitterServer to return `StartupTimeoutException` when server under test fails to start within max startup time. ``PHAB_ID=D519318``
-
v20.7.0 Changes
July 22, 202020.7.0
โ Added
- inject-app: Adding flag converters for java.io.File (including comma-separated variants).
48429870 - finatra-kafka-streams: Added TracingKafkaClientSupplier to provide TracingKafkaProducer and
TracingKafkaConsumer to enable Zipkin tracing. Tracing can be enabled with the toggle
com.twitter.finatra.kafka.TracingEnabled. fd2c5e0d - finatra-kafka: Added TracingKafkaProducer and TracingKafkaConsumer to enable Zipkin tracing
๐ for Kafka. FinagleKafkaProducerBuilder.build() and FinagleKafkaConsumerBuilder.buildClient()
now return instances of TracingKafkaProducer and TracingKafkaConsumer respectively with
0๏ธโฃ tracing enabled by default. Tracing can be enabled with the toggle
com.twitter.finatra.kafka.TracingEnabled. d0d8a060
๐ Changed
โก๏ธ finatra: Update org.scalatest dependency to 3.1.2 and introduce finer-grained dependencies on
โ org.scalatestplus artifacts. ceccb7c5 fbb7b535๐ inject-thrift-client: Remove unused ClientId property from
ThriftMethodBuilderClientModule#provideServicePerEndpoint method. 381853f8inject-server: Improve startup time of EmbeddedTwitterServer by observing lifecycle events to
determine startup, where previously we were doing 1 second polls. The nonInjectableServerStarted
๐ property is removed and isStarted should be referenced regardless of the type of underlying
๐ twitterServer type. The end result should see a faster test execution feedback loop. Our Finatra
โ test targets range from a roughly 2x to 10x reduction in execution times.โ You may experience new test failures in cases where an exception is thrown as part of
โ c.t.inject.TwitterServer.start() or c.t.server.TwitterServer.main() and the test would have
expected a failure as part of startup. As the error takes place after the startup lifecycle,
you may now need to Await.result the EmbeddedTwitterServer.mainResult() to assert the error.๐ You may also experience some new non-deterministic behavior when testing against PubSub style
โ logic. As the server may be started earlier, your tests may be relying on assumptions that
๐ an event would have occurred within the previous 1 second startup poll, which is no longer
โ guaranteed. You may need to adjust your test logic to account for this behavior.โก๏ธ finatra: Update com.google.inject.guice dependency to 4.2.3 and net.codingwell.scala-guice
to version 4.2.11. The net.codingwell.scala-guice library has switched from Manifests to TypeTags
๐ for transparent binding and injector key creation. The c.t.inject.TwitterModule has moved from its
custom bind DSL to the scalaguice.ScalaModule which brings the TwitterModule inline with both the
โ TwitterPrivateModule and the bind[T] test DSL to now have the same consistent binding DSL across
all three. Thus, there is no more confusing bindSingleton function in the TwitterModule bind API.โฌ๏ธ Upgrading scalaguice helps move a necessary dependency of Finatra to a version which is Scala 2.13
๐ compatible moving Finatra closer to Scala 2.13 support. 26c1e810 5faa2e6f๐ Fixed
- inject-app: Having two sets of flag converters for primitive types (both Java and Scala) confuses
the DI runtime, preventing the injection. We now have only a single set of converters, based off
Scala primitive types. 9c1b0d68
- inject-app: Adding flag converters for java.io.File (including comma-separated variants).
-
v20.6.0 Changes
June 24, 2020โ Added
- inject-app: You can now inject Flag values of any type (not just primitive types). Most of the
๐ common Flag types are already supported out of the box (e.g., Seq[InetSocketAddress]), but it's
also possible to register your own converters derived from any Flaggable instance.
92a47062 - ๐ inject-stack: Move StackTransformer from inject/inject-core to inject/inject-stack to
โ remove the finagle-core dependency from inject/inject-core. 554e367e - โ inject-server: adding httpPostAdmin test method. 067b45cf
๐ Changed
- ๐ฒ thrift/http: Introduce a Common Log Format
๐ฒ type of formatting for Thrift access logging to replace the current prelog text. Ensure
๐ฒ the HTTP and Thrift access logging filters are aligned in functionality and behavior.
f7108618 - ๐ inject-slf4j: Remove Jackson dependency. Case classes which wish to use the slf4j Logging
functionality should use the finatra/jackson c.t.finatra.jackson.caseclass.SerdeLogging
๐ฒ trait which provides a @JsonIgnoreProperties to ignore logging fields. 70111cd8
- inject-app: You can now inject Flag values of any type (not just primitive types). Most of the
-
v20.5.0 Changes
May 19, 2020โ Added
* ๐ inject-mdc: Move MDC integration from `inject/inject-slf4j` to `inject/inject-mdc`. ``PHAB_ID=D485870`` * โก๏ธ finatra-http|finatra-thrift: Update TraceIdMDCFilter to log traceSampled and traceSpanId ``PHAB_ID=472013`` * finatra-examples: Ensure there are Java and Scala examples for the different types of applications and servers which can be built with Finatra. Update `/examples` directory layout for discoverability and consistency. ``PHAB_ID=D469677`` ๐ Changed
๐ inject-slf4j: Move MDC integration from
inject/inject-slf4j
toinject/inject-mdc
.PHAB_ID=D485870
finatra-http: Allow extensions of the
c.t.finatra.http.filters.HttpResponseFilter
to specify how to set the Location Header value into a Response. Additionally, don't allow exceptions resulting from the inability to set a non-compliant 'Location' response header escape the filter.PHAB_ID=D483793
inject-core: Make flag methods in
c.t.inject.TwitterModule
public an final.PHAB_ID=D484168
๐ inject-core:
c.t.inject.Mockito
has been marked deprecated. Users are encouraged to prefermockito-scala <https://github.com/mockito/mockito-scala>
_ (or ScalaTestMockitoSugar <http://doc.scalatest.org/3.1.1/#org.scalatestplus.mockito.MockitoSugar>
_ which provides some basic syntax sugar for Mockito).PHAB_ID=D482531
โก๏ธ http: (BREAKING API CHANGE) Update the
c.t.finatra.http.HttpResponseFilter
to optionally fully qualify response 'Location' header values. Aprevious change <https://github.com/twitter/finatra/commit/ff9acc9fbf4e89b532df9daf2b9cba6d90b2df96>
_ made the filter always attempt to fully qualify any response 'Location' header value. This updates the logic to be opt-in for the more strict returning of fully qualified 'Location' header values with the default being to allow relative values per theRFC7231 <https://tools.ietf.org/html/rfc7231#section-7.1.2>
_ which replaces the obsoleteRFC2616 <https://tools.ietf.org/html/rfc2616#section-14.30>
_. This is thus a breaking API change as the default is now to allow relative values. To enable the previous strict behavior, users should instantiate the filter with the constructor argfullyQualifyLocationHeader
set to 'true'. This addresses issue #524.PHAB_ID=D467909
๐ jackson: Remove deprecated
FinatraObjectMapper
andFinatraJacksonModule
. Users are encouraged to switch to the equivalentc.t.finatra.jackson.ScalaObjectMapper
andc.t.finatra.jackson.modules.ScalaObjectMapperModule
.PHAB_ID=D473177
โก๏ธ finatra-http: Update
c.t.finatra.http.StreamingJsonTestHelper
to not useThread.sleep
for writing JSON elements on an artificial delay.PHAB_ID=D470793
๐ inject-app: Remove finagle-core dependency. Introduce finatra/inject/inject-dtab.
PHAB_ID=D474298
finatra: Bump version of Jackson to 2.11.0.
PHAB_ID=D457496
finatra-http: Only create
EnrichedResponse
counters when needed. Any "service/failure" response counters will only be generated upon first failure and not eagerly for each response generated. This change impacts users who expect a counter value of 0 when no response failures have been encountered - now the counter will not exist until the first failure has been recorded.PHAB_ID=D474918
finatra: Bump version of Joda-Time to 2.10.6.
PHAB_ID=D473522
๐ Fixed
* inject-thrift-client: Convert non-camel case `ThriftMethod` names, e.g., "get_tweets" to camelCase, e.g., "getTweets" for reflection lookup of generated `ReqRepServicePerEndpoint` interface methods in `c.t.inject.thrift.filters.DarkTrafficFilter`. ``PHAB_ID=D478104``
-
v20.4.1 Changes
April 26, 2020โ Added
* 0๏ธโฃ inject-app: Add default type conversions for `java.time.LocalTime`, `c.t.util.Time`, `java.net.InetSocketAddress`, and `c.t.util.StorageUnit`. This allows the injector to convert from a String representation to the given type. The type conversion for `java.net.InetSocketAddress` uses the `c.t.app.Flaggable.ofInetSocketAddress` implementation and the type conversion for `c.t.util.Time` uses the `c.t.app.Flaggable.ofTime` implementation for consistency with Flag parsing. Because of the current state of type erasure with `c.t.app.Flag` instances, Finatra currently binds a parsed `c.t.app.Flag` value as a String type, relying on registered Guice TypeConverters to convert from the bound String type to the requested type. These conversions now allow for a `c.t.app.Flag` defined over the type to be injected by the type as Guice now has a type conversion from the bound String type rather than as a String representation which then must be manually converted. ``PHAB_ID=D471545`` * โ finatra-http: Method in tests to return an absolute path URI with the https scheme and authority ``PHAB_ID=D466424`` * โ finatra: Java-friendly `bindClass` test APIs. The `bindClass` API calls from Java can be now chained with the `TestInjector`, `EmbeddedApp`, `EmbeddedTwitterServer`, `EmbeddedThriftServer`, and `EmbeddedHttpServer`. For example, the following is now possible:
EmbeddedHttpServer server = new EmbeddedHttpServer( new HelloWorldServer(), Collections.emptyMap(), Stage.DEVELOPMENT) .bindClass(Integer.class, Flags.named("magic.number"), 42) .bindClass(Integer.class, Flags.named("module.magic.number"), 9999);
return server;
``PHAB_ID=D463042`` ๐ Changed
inject-app: Introduce consistent
c.t.app.Flag
creation methods for Java. Bring HTTP and Thrift server traits inline with each other to provide consistent Java support. Ensure Java examples in documentation.PHAB_ID=D471716
โก๏ธ inject-core: Update the configuration of
c.t.app.Flag
instances created within ac.t.inject.TwitterModule
to havefailFastUntilParsed
set to 'true' by default. While this is configurable for a givenc.t.inject.TwitterModule
, much like for the application itself, it is STRONGLY recommended that users adopt this behavior.PHAB_ID=D448047
โก๏ธ inject-app: Update
c.t.inject.app.TestInjector
to always add theInjectorModule
.PHAB_ID=D465943
inject-app: Reduce visibility of internal code in
c.t.inject.app.internal
.PHAB_ID=D465597
โก๏ธ inject-modules: Updated BUILD files for Pants 1:1:1 layout.
PHAB_ID=D442977
๐ Fixed
* finatra-kafka: Close a result observer when Namer.resolve fails. ``PHAB_ID=D416044``
-
v20.4.0 Changes
April 02, 2020โ Added
inject-app: Add Java-friendly
main
toEmbeddedApp
. 4b40075dโฑ finatra-kafka: Expose timeout duration in KafkaProducerConfig dest(). c5340a97
๐ Changed
- finatra-validation|jackson: (BREAKING API CHANGE) Introduced new case class validation library
inspired by JSR-380 specification. The new library can be used as its own to validate field and
method annotations for a case class. The library is also automatically integrated with Finatra's
customCaseClassDeserializer
to efficiently apply per field and method validations as request
๐ parsing is performed. However, Users can easily turn off validation during request parsing with
๐ง the settingnoValidation
in their server configurations. For more information, please checkout
Finatra User's Guide <https://docbird.twitter.biz/finatra/user-guide/index.html>
__.
d874b1a9
- finatra-validation|jackson: (BREAKING API CHANGE) Introduced new case class validation library
-
v20.3.0 Changes
March 08, 2020โ Added
โ finatra-kafka-streams: Add method to
c.t.f.kafkastreams.test.TopologyTesterTopic
to write
Kafka messages with custom headers to topics. a9fef3dcfinatra-http: Add
toBufReader
to get the underlying Reader of Buf from StreamingResponse.
If the consumed Stream primitive is not Buf, the returned reader streams a serialized
JSON array. 876d0ba9๐ inject-app: Add functions to
c.t.inject.app.AbstractApp
to provide better
ergonomics for Java users to call and use basicApp
lifecycle callbacks.
f04772dfinject-server: Add functions to
c.t.inject.server.AbstractTwitterServer
to provide
๐ better ergonomics for Java users to call and use basicTwitterServer
lifecycle
callbacks. f04772dfinject-slf4j: Add a way to retrieve the currently stored Local Context map backing the
MDC. 12b9410e๐ finatra-jackson: Added new functionality in the
CaseClassDeserializer
to support more
๐ Jackson annotations during deserialization. See documentation for more information.
49014890โ finatra: Add NullKafkaProducer for unit tests to avoid network connection failures in the log.
d8d4d5db๐ Changed
๐ finatra-validation|jackson: Remove Jackson dependency from finatra/validation. This
๐ was forErrorCode
reporting but can be moved to finatra/jackson. f024f929โก๏ธ finatra-kafka-streams: (BREAKING API CHANGE) Update AsyncTransformer to preserve
record context. be5dd08f๐ finatra-jackson: Better handling of Scala enumeration mapping errors. Currently, if mapping
of a Scala enumeration during deserialization fails ajava.util.NoSuchElementException
is
โก๏ธ thrown which escapes deserialization error handling. Update to instead handle this failure case
in order to correctly translate into aCaseClassFieldMappingException
which will be wrapped
into aCaseClassMappingException
. 4753c6e8โก๏ธ finatra: Update Google Guice version to 4.2.0 76506c35
finatra: Bumped version of Joda to 2.10.2 and Joda-Convert to 1.5. 9adef421
๐ finatra-jackson|finatra-http-annotations: Move http-releated Jackson "injectablevalues"
annotations fromfinatra/jackson
tofinatra/http-annotations
.๐ฆ Specifically the follow have changed packages,
c.t.finatra.request.QueryParam
-->c.t.finatra.http.annotations.QueryParam
c.t.finatra.request.RouteParam
-->c.t.finatra.http.annotations.RouteParam
c.t.finatra.request.FormParam
-->c.t.finatra.http.annotations.FormParam
c.t.finatra.request.Header
-->c.t.finatra.http.annotations.Header
c.t.finatra.request.JsonIgnoreBody
-->c.t.finatra.http.annotations.JsonIgnoreBody
โก๏ธ Users should update from
finatra/jackson/src/main/java
(finatra-jackson_2.12
)
tofinatra/http-annotations/src/main/java
(finatra-http-annotations_2.12
).
77469e17โก๏ธ finatra-jackson: Updated Finatra Jackson integration to introduce a new
ScalaObjectMapper
๐ and module to simplify configuration and creation of the mapper. See documentation for more
information. 49014890๐ finatra-jackson: (BREAKING API CHANGE) Moved the java binding annotations,
CamelCaseMapper
and
SnakeCaseMapper
fromc.t.finatra.annotations
infinatra/jackson
to
๐c.t.finatra.json.annotations
infinatra/json-annotations
. Moved
c.t.finatra.response.JsonCamelCase
toc.t.finatra.json.annotations.JsonCamelCase
which is also
๐ now deprecated. Users are encouraged to use the standard Jackson annotations or a mapper with
๐ง the desired property naming strategy configured.Many exceptions for case class deserialization were meant to be internal to the framework but are
๐ useful or necessary outside of the internals of JSON deserialization. As such we have cleaned up
๐ and made most JSON deserialization exceptions public. As a result, all the exceptions have been moved
fromc.t.finatra.json.internal.caseclass.exceptions
toc.t.finatra.jackson.caseclass.exceptions
.c.t.finatra.json.internal.caseclass.exceptions.CaseClassValidationException
has been renamed to
c.t.finatra.jackson.caseclass.exceptions.CaseClassFieldMappingException
.JsonInjectException
,
๐JsonInjectionNotSupportedException
, andRequestFieldInjectionNotSupportedException
have all been
โ deleted and replaced withc.t.finatra.jackson.caseclass.exceptions.InjectableValuesException
which represents the same error cases.๐ The
FinatraJsonMappingException
has been removed. Users are encouraged to instead use the general
JacksonJsonMappingException
(which theFinatraJsonMappingException
extends).๐
RepeatedCommaSeparatedQueryParameterException
has been moved tom finatra/http.
49014890๐ Fixed
๐ finatra-jackson: Access to parameter names via Java reflection is not supported in Scala 2.11.
โ Added a work around for the parsing of case class structures to support JSON deserialization in
Scala 2.11 and forward. 59ec2c21finatra-jackson: Fix for enforcing "fail on unknown properties" during deserialization. Previously,
โก๏ธ theCaseClassDeserializer
was optimized to only read the fields in the case class constructor
from the incoming JSON and thus ignored any unknown fields during deserialization. The fix will
๐ง now properly fail if theDeserializationFeature
is set or if theJsonProperties
is configured
accordingly. 49014890 -
v20.2.1 Changes
โ Added
* โ finatra-kafka-streams: Add method to `c.t.f.kafkastreams.test.TopologyTesterTopic` to write Kafka messages with custom headers to topics. ``PHAB_ID=D424440`` * finatra-http: Add `toBufReader` to get the underlying Reader of Buf from StreamingResponse. If the consumed Stream primitive is not Buf, the returned reader streams a serialized JSON array. ``PHAB_ID=D434448`` * ๐ inject-app: Add functions to `c.t.inject.app.AbstractApp` to provide better ergonomics for Java users to call and use basic `App` lifecycle callbacks. ``PHAB_ID=D433874`` * inject-server: Add functions to `c.t.inject.server.AbstractTwitterServer` to provide better ergonomics for Java users to call and use basic `TwitterServer` lifecycle callbacks. ``PHAB_ID=D433874`` * inject-slf4j: Add a way to retrieve the currently stored Local Context map backing the MDC. ``PHAB_ID=D431148`` * ๐ finatra-jackson: Added new functionality in the `CaseClassDeserializer` to support more Jackson annotations during deserialization. See documentation for more information. ``PHAB_ID=D407284`` * โ finatra: Add NullKafkaProducer for unit tests to avoid network connection failures in the log. ``PHAB_ID=D429004`` ๐ Changed
โก๏ธ finatra: Update Google Guice version to 4.2.0
PHAB_ID=D372886
finatra: Bumped version of Joda to 2.10.2 and Joda-Convert to 1.5.
PHAB_ID=D435987
๐ finatra-jackson|finatra-http-annotations: Move http-releated Jackson "injectablevalues" annotations from
finatra/jackson
tofinatra/http-annotations
.
Specifically the follow have changed packages,
c.t.finatra.request.QueryParam
-->c.t.finatra.http.annotations.QueryParam
c.t.finatra.request.RouteParam
-->c.t.finatra.http.annotations.RouteParam
c.t.finatra.request.FormParam
-->c.t.finatra.http.annotations.FormParam
c.t.finatra.request.Header
-->c.t.finatra.http.annotations.Header
c.t.finatra.request.JsonIgnoreBody
-->c.t.finatra.http.annotations.JsonIgnoreBody
Users should update from
finatra/jackson/src/main/java
(finatra-jackson_2.12
) tofinatra/http-annotations/src/main/java
(finatra-http-annotations_2.12
).PHAB_ID=D418766
โก๏ธ finatra-jackson: Updated Finatra Jackson integration to introduce a new
ScalaObjectMapper
and module to simplify configuration and creation of the mapper. See documentation for more information.PHAB_ID=D407284
๐ finatra-jackson: (BREAKING API CHANGE) Moved the java binding annotations,
CamelCaseMapper
andSnakeCaseMapper
fromc.t.finatra.annotations
infinatra/jackson
toc.t.finatra.json.annotations
infinatra/json-annotations
. Movedc.t.finatra.response.JsonCamelCase
toc.t.finatra.json.annotations.JsonCamelCase
which is also now deprecated. Users are encouraged to use the standard Jackson annotations or a mapper with the desired property naming strategy configured.
Many exceptions for case class deserialization were meant to be internal to the framework but are useful or necessary outside of the internals of JSON deserialization. As such we have cleaned up and made most JSON deserialization exceptions public. As a result, all the exceptions have been moved from
c.t.finatra.json.internal.caseclass.exceptions
toc.t.finatra.jackson.caseclass.exceptions
.c.t.finatra.json.internal.caseclass.exceptions.CaseClassValidationException
has been renamed toc.t.finatra.jackson.caseclass.exceptions.CaseClassFieldMappingException
.JsonInjectException
,JsonInjectionNotSupportedException
, andRequestFieldInjectionNotSupportedException
have all been deleted and replaced withc.t.finatra.jackson.caseclass.exceptions.InjectableValuesException
which represents the same error cases.The
FinatraJsonMappingException
has been removed. Users are encouraged to instead use the general JacksonJsonMappingException
(which theFinatraJsonMappingException
extends).RepeatedCommaSeparatedQueryParameterException
has been moved tom finatra/http.PHAB_ID=D407284
๐ Fixed
* ๐ finatra-jackson: Access to parameter names via Java reflection is not supported in Scala 2.11. Added a work around for the parsing of case class structures to support JSON deserialization in Scala 2.11 and forward. ``PHAB_ID=D431837`` * finatra-jackson: Fix for enforcing "fail on unknown properties" during deserialization. Previously, the `CaseClassDeserializer` was optimized to only read the fields in the case class constructor from the incoming JSON and thus ignored any unknown fields during deserialization. The fix will now properly fail if the `DeserializationFeature` is set or if the `JsonProperties` is configured accordingly. ``PHAB_ID=D407284``
-
v20.1.0 Changes
January 29, 2020๐ Changed
- finatra: Exposing Listening Server's bound address in Thrift and HTTP server traits
c17f55df - โฌ๏ธ finatra: Upgrade logback to 1.2.3 445ddf89
๐ Fixed
- inject-server: Fix issue in c.t.inject.server.EmbeddedHttpClient where assertion of an
empty response body was incorrectly disallowed. This prevented asserting that a server
was not yet healthy as the /health endpoint returns an empty string, thus even a not yet
โ healthy server would report as "healthy" to the testing infrastructure as long as the health
endpoint returned a 200 - OK response. e9aa2dac
- finatra: Exposing Listening Server's bound address in Thrift and HTTP server traits
-
v19.12.0 Changes
December 13, 2019๐ Changed
โฌ๏ธ finatra: Upgrade to jackson 2.9.10 and jackson-databind 2.9.10.1 14fc3714
finatra: Correctly track Ignorable Exceptions in per-method StatsFilter. Responses
marked as Ignorable are tracked in the global requests and exceptions metrics but
were not counted under the per-method metrics. There are now counts of ignored
๐ป and total requests as well as ignored requests by Exception for each method. E.g.per_method_stats/foo/ignored 1
per_method_stats/foo/ignored/java.lang.Exception 1
per_method_stats/foo/requests 1๐ finatra-http|jackson (BREAKING API CHANGE): Move parsing of message body contents
๐ from finatra/jackson via the FinatraObjectMapper #parseMessageBody, #parseRequestBody,
๐ and #parseResponseBody methods to finatra/http with functionality replicated via an
โก๏ธ implicit which enhances a given FinatraObjectMapper. Additionally we have updated
finatra-http the MessageBodyComponent API to use c.t.finagle.http.Message instead
of c.t.finagle.http.Request and c.t.finagle.http.Response. This means that users can use the
MessageBodyComponent API to read the body of Finagle HTTP requests or responses and all HTTP
concerns are co-located in finatra-http instead of being partially implemented in finatra-jackson.โก๏ธ In updating the MessageBodyComponent API we have removed support for polymorphic MessageBodyReader
๐ types, that is we have simplified the MessageBodyReader API to no longer express the #parse
๐ method parameterized to a subtype of the class type. This API allowed parsing a message body
into a subtype solely through the presence of a given type parameter but the resulting API has
proven to be extremely clunky. We feel that the same behavior is achievable in other ways (such
๐ as adapting the type after parsing) and the improvement and simplification of the
MessageBodyReader API to be worth removing the awkward method signature.๐ Lastly, we have fixed the returned charset encoding on response content-type header to be
applicable only where appropriate instead of always being added when the
http.response.charset.enabled flag is set to true. 4c6283b2๐ finatra: (BREAKING API CHANGE) move DarkTrafficFilter and related modules
from finatra/thrift to inject/inject-thrift-client. The modules now extend
๐ง from c.t.inject.thrift.modules.ThriftClientModuleTrait for more uniform configuration.
The following changes were made:- c.t.finatra.thrift.filters.DarkTrafficFilter ->
c.t.inject.thrift.filters.DarkTrafficFilter - c.t.finatra.thrift.modules.DarkTrafficFilterModule ->
c.t.inject.thrift.modules.DarkTrafficFilterModule - c.t.finatra.thrift.modules.ReqRepDarkTrafficFilterModule ->
c.t.inject.thrift.modules.ReqRepDarkTrafficFilterModule - c.t.finatra.thrift.modules.JavaDarkTrafficFilterModule ->
c.t.inject.thrift.modules.JavaDarkTrafficFilterModule
โก๏ธ finatra: Update Google Guice version to 4.1.0, update ScalaTest to 3.0.8, and ScalaCheck
to 1.14.0. 1bc3e889๐ finatra-http: Remove deprecated c.t.finatra.http.HttpHeaders. Users should use
com.twitter.finagle.http.Fields instead. e9e5d4e2๐ finatra-http: Remove deprecated DocRootModule. 6163e7f7
๐ finatra-http: (BREAKING CHANGE) Remove automatic handling of Mustache rendering from
๐ finatra/http and break Mustache support into two separate libraries: finatra/mustache
and finatra/http-mustache.HTTP services that want the framework to automatically negotiate Mustache template rendering
via the Finatra HTTP MessageBodyComponents framework must now bring this concern into their
HTTP services via the finatra/http-mustache c.t.finatra.http.modules.MustacheModule as the
๐ HTTP framework support for specifying a MustacheModule in the HttpServer has been removed.
I.e., add this module to the server's list of modules.โ Additionally, it is also now possible to use Mustache templating completely independent of
Finatra HTTP concerns by consuming and using only the finatra/mustache library which will
render Strings via defined Mustache templates. e6aaa19f๐ Fixed
- 0๏ธโฃ finatra-http: Fixed issue in the DefaultMessageBodyReaderImpl that determines if the incoming
message is "json encoded". c1f1a093 - ๐ inject-modules: Removed the extra registration for closing a client, which used to log false
โ warnings when startup a ClientModule. Only register close after materialized clients.
ddda0b12 - inject-server: Addressed a race condition that could allow for an AdminHttpServer to be
started, even when the disableAdminHttpServer property was set. The AdminHttpServer will
no longer start prior to the warm-up phase if disabled. The disableAdminHttpServer property
๐ has also been moved to com.twitter.server.AdminHttpServer. 113b7d8 - ๐ finatra: Remove com.sun.activation dependency from build.sbt file. The dependency
duplicates the javax.activation dependency and as a result can cause a uber-JAR to fail
๐ to build. fd67b836
โ Added
- ๐ finatra-jackson: (BREAKING API CHANGE) Move all Case Class annotation validation related logic to
โก๏ธ a new library in finatra-validation. Please update your library dependencies to the new library if
you are using case class validations. ba5a0451
- c.t.finatra.thrift.filters.DarkTrafficFilter ->