Changelog History
Page 1
-
v22.7.0 Changes
๐ Changed
* ๐ฆ inject-utils|inject-thrift: Move package private methods `PossiblyRetryable#isCancellation` and `PossibleRetryable#isNonRetryable` in inject-thrift to inject-utils `ExceptionUtils` as publicly usable methods. These methods are generally useful when processing interrupts on Futures. ``PHAB_ID=D935287`` โ Runtime Behavior Changes
- ๐ inject-server: Remove deprecated
c.t.inject.server.DeprecatedLogging
trait. This trait was introduced as a placeholder shim to ensure that JUL util-logging Flags were still defined within a Finatra server such that servers did not fail upon startup if Flag values were being set. The default behavior during Flag parsing is to error if a Flag value is passed for a Flag not defined within the application.
We have removed the shim and the trait (and thus the Flag definitions), as it is not expected that users use util-logging JUL Flags for logging configuration with Finatra servers since Finatra uses the SLF4J-API. Logging configuration should be done on the choosen SLF4J-API logging implementation. If your server fails to start after this change, please ensure you are not passing values for the JUL util-logging Flags.
PHAB_ID=D850852
๐ Changed
* ๐ finatra: Removed ``kafka`` and ``kafka-streams`` modules from finatra core library. Note: We published a stand-alone `finatra-kafka client <https://github.com/finagle/finatra-kafka>`_ with deprecation announcement to serve as exit pathway for current users. Announcement: `finagle blog <https://finagle.github.io/blog/2022/06/01/announce-migrations/>`_ ``PHAB_ID=D878136`` โ Added ~~~~~ * โ finatra: Introduce InMemoryTracer for inspecting Trace information via tests. ``PHAB_ID=D878616`` โ Runtime Behavior Changes
โก๏ธ finatra: Update Jackson library to version 2.13.3
PHAB_ID=D906005
- ๐ inject-server: Remove deprecated
-
v22.4.0 Changes
No Changes
-
v22.3.0 Changes
โ Runtime Behavior Changes
* ๐ inject-app: Remove the SLF4J-API logging bridges as dependencies. These were originally added as the framework was expressly opionated that users should use Logback as an SLF4J-API implementation, however specifying the bridges on the Finatra inject/inject-app library causes many issues with code that must use a different SLF4J-API logging implementation but still uses the Finatra framework. Users should note that if they do not include these bridges in some other manner that they may lose logging if they have any libraries which log with one of the formerly bridged implementations. Also note that servers using a `TwitterServer` logging implementation to support `dynamically changing log levels <https://twitter.github.io/twitter-server/Features.html#dynamically-change-log-levels>`__ will get the proper bridges as dependencies. ``PHAB_ID=D854393`` โ Runtime Behavior Changes
- ๐ inject-server: Throw an
UnsupportedOperationException
when access to thec.t.inject.server.DeprecatedLogging#log
instance is attempted. This is a JUL Logger instance which was provided only as a backward-compatible shim for Finatra services when thec.t.server.TwitterServer
framework was moved to theSLF4J-API
. The instance was marked@deprecated
in hopes of alerting users to not use it. We have now updated it to throw an exception when accessed. Please refer to the Finatra documentation for more information on using the SLF4J-API for logging with the Finatra framework: https://twitter.github.io/finatra/user-guide/logging/index.html.PHAB_ID=D854365
โ Added
* โ inject-app: Introduce test-friendly `c.t.inject.app.console.ConsoleWriter` and `c.t.inject.app.TestConsoleWriter`, which can be used to inspect the output of a command-line style `c.t.inject.app.App`. ``PHAB_ID=D856159`` ๐ Changed
๐ inject-modules: Remove deprecated
c.t.inject.modules.LoggerModule
.PHAB_ID=D853325
finatra: Bump version of Jackson to 2.13.2
PHAB_ID=D848592
๐ inject-thrift-client: Deprecate
c.t.inject.thrift.AndThenService
,c.t.inject.thrift.modules.AndThenServiceModule
, andc.t.inject.thrift.internal.DefaultAndThenServiceImpl
. These were plumbing for unreleased experimental record/replay functionality and currently do nothing with no plan for implementation.PHAB_ID=D845841
- ๐ inject-server: Throw an
-
v22.2.0 Changes
- โก๏ธ inject-modules: Deprecate
c.t.inject.modules.LoggerModule
. Updatec.t.inject.app.App
to mix in theutil/util-slf4j-jul-bridge
Slf4jBridge
trait. TheLoggerModule
does not provide a solution inline with the best practices for bridging JUL to the SLF4J-API and users are encouraged to instead mix in thec.t.util.logging.Slf4jBridge
into the main class of their application if necessary. The updates toc.t.inject.app.App
will now properly bridge JUL to the SLF4J-API early in the constructor of the application catching any log messages emitted to JUL before where the bridging would have been attempted when using theLoggerModule
.
Note that the
Slf4jBridge
trait is already mixed into thec.t.server.TwitterServer
trait and thus no further action is necessary for bridging JUL to the SLF4J-API in extensions ofc.t.server.TwitterServer
.PHAB_ID=D827584
- ๐ inject-slf4j: Deprecate
c.t.inject.logging.Logging
trait and methods. Users are encouraged to use thec.t.util.logging.Logging
trait directly. There are no replacements forc.t.inject.logging.Logging#debugFutureResult
andc.t.inject.logging.Logging#time
.PHAB_ID=D821722
- โก๏ธ inject-modules: Deprecate
-
v22.1.0 Changes
โ Added
* ๐ http-server: (BREAKING API CHANGE) Allow for customization of the building of the HTTP and HTTPS `ListeningServer` constructs. This allows users to specify any additional configuration over the Finagle `Service[-R, +R]` that is constructed by the `HttpRouter`. The `c.t.finatra.http.HttpServerTrait#build` method has been replaced by two more specific versions: `#buildHttpListeningServer` and `#buildHttpsListeningServer` which are used in `postWarmup` to create the appropriate `ListeningServer` given it has a defined port value. We also update the `EmbeddedHttpServer` and `EmbeddedHttpClient` to allow for being able to run both the HTTP and HTTPS listening servers in tests. This is done by setting the `httpsPortFlag` to the value of `https.port` which will enable the binding of the HTTPS listening server to the ephemeral port in tests. ``PHAB_ID=D809633`` * ๐ง mysql-client: Add base client configuration in EmbeddedMysqlServer to enable for more robust testing setup. This would allow users to add configurations like `charset`. Added a overridable function `createRichClient` to MysqlClientModuleTrait to allow creating the mysql client in other ways like `newRichClient(Finagle.Name, String)`. ``PHAB_ID=D805245`` ๐ Changed
- finatra: Bump version of Jackson to 2.13.1
PHAB_ID=D808049
- finatra: Bump version of Jackson to 2.13.1
-
v21.12.0 Changes
๐ Changed
* ๐ inject-core: Move `runAfterAll` hook from `c.t.inject.IntegrationTestMixin` to `c.t.inject.TestMixin`. ``PHAB_ID=D784576``
-
v21.11.0 Changes
โ Added
* โ inject-core: Introduce a `runAfterAll` hook in `c.t.inject.IntegrationTestMixin` to allow for running logic to clean-up test resources in the `org.scalatest.BeforeAndAfterAll#afterAll` without needing to 1) override `org.scalatest.BeforeAndAfterAll#afterAll`, 2) ensure `super` is called for other resources clean-up, and 3) ensure all resources get cleaned up, regardless of non-fatal exceptions thrown as part of the clean-up logic and otherwise fail the TestSuite run. ``PHAB_ID=D707939`` โ Runtime Behavior Changes
- http-server: Treat non-constant routes with or without trailing slash as 2 different routes.
For example, "/user/:id" and "/user/:id/" are treated as different routes in Finatra. You can still
use the optional trailing slash
/?
which will indicate Finatra to ignore the trailing slash while routing. We don't recommend to mix both use cases when defining your routes. For example: passing in both/user/:id
and/user/:id/?
at the same time.PHAB_ID=D787560
๐ Changed
* http-server (BREAKING API CHANGE): Will now serialize many self-referential Jackson types as "{}" instead of returning a serialization error. See https://github.com/FasterXML/jackson-databind/commit/765e2fe1b7f6cdbc6855b32b39ba876fdff9fbcc for more details. ``PHAB_ID=D744627``
- http-server: Treat non-constant routes with or without trailing slash as 2 different routes.
For example, "/user/:id" and "/user/:id/" are treated as different routes in Finatra. You can still
use the optional trailing slash
-
v21.10.0 Changes
- http-server: Add versions of
HttpRouter#filter
which accept a GuiceTypeLiteral
to aid Java users in being able to apply generically typed Filters obtained from the object graph.PHAB_ID=D768777
- http-server: Add versions of
-
v21.9.0 Changes
๐ฅ Breaking API Change
* ๐ finatra-thrift: Removed c.t.finatra.thrift.ThriftClient#thriftClient, use #methodPerEndpoint. ``PHAB_ID=D747744`` โ Runtime Behavior Changes
finatra: Bump version of Logback to 1.2.6.
PHAB_ID=D742405
finatra: Bump version of Jackson to 2.11.4.
PHAB_ID=D727879
finatra: Bump version of Joda-Time to 2.10.10.
PHAB_ID=D729742
finatra: Bump version of logback to 1.2.5.
PHAB_ID=D729767
finatra: Bump version of json4s to 3.6.11.
PHAB_ID=D729764
-
v21.8.0 Changes
๐ Fixed
* โ inject-core: Fixed a bug where `c.t.inject.TestMixin#assertFailedFuture` would incorrectly pass for non-failed `c.t.util.Future` in some cases where the tested failure is a supertype of `org.scalatest.exceptions.TestFailedException`. ``PHAB_ID=D705002`` ๐ฅ Breaking API Change
๐ inject-utils: Removed deprecated
c.t.inject.conversions.string
, usec.t.conversions.StringOps
in the util/util-core project instead.PHAB_ID=D692729
๐ inject-utils: Removed deprecated
c.t.inject.conversions.tuple
, usec.t.conversions.TupleOps
in the util/util-core project instead.PHAB_ID=D692429
๐ inject-utils: Removed deprecated
c.t.inject.conversions.seq
, usec.t.conversions.SeqOps
in the util/util-core project instead.PHAB_ID=D692775
๐ inject-utils: Removed implicit class RichMap from
c.t.inject.conversions.map
, usec.t.conversions.MapOps
in the util/util-core project instead.PHAB_ID=D699010
๐ Changed
* โก๏ธ thrift: Update the test `c.t.finatra.thrift.ThriftClient` to close client and clean-up resources during the `EmbeddedTwitterServer` close. ``PHAB_ID=D707963`` * โก๏ธ finatra: Update ScalaCheck to version 1.15.4 ``PHAB_ID=D691691``