Skip to content

Releases: twitter/finatra

Finatra 22.12.0

26 Dec 14:40
Compare
Choose a tag to compare

22.12.0

Changed

  • inject-app: (BREAKING CHANGE) EmbeddedApp now sets com.google.inject.Stage to DEVELOPMENT
    117f36b6

Runtime Behavior Changes

  • util: Bump version of logback to 1.2.11. 7df56d38

Finatra 22.7.0

28 Jul 21:25
Compare
Choose a tag to compare

22.7.0

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.
    3d351450

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. 5b5ccf4f

Changed

  • finatra: Removed kafka and kafka-streams modules from finatra core library.

    Note: We published a stand-alone finatra-kafka client
    with deprecation announcement to serve as exit pathway for current users.

    Announcement: finagle blog
    27e2c9c4

Added

  • finatra: Introduce InMemoryTracer for inspecting Trace information via tests. 0755b77e

Runtime Behavior Changes

finatra: Update Jackson library to version 2.13.3 a4065f19

Finatra 22.4.0

20 Apr 16:44
Compare
Choose a tag to compare

22.4.0

No Changes

Finatra 22.3.0

29 Mar 21:50
Compare
Choose a tag to compare

22.3.0

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 will get the proper bridges as dependencies.
    a73a2957

Runtime Behavior Changes

  • inject-server: Throw an UnsupportedOperationException when access to the c.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 the c.t.server.TwitterServer framework was moved to the SLF4J-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.
    e2f26752

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. 404f7eeb

Changed

  • inject-modules: Remove deprecated c.t.inject.modules.LoggerModule. 4fa62a88
  • finatra: Bump version of Jackson to 2.13.2 3e0bd999
  • inject-thrift-client: Deprecate c.t.inject.thrift.AndThenService, c.t.inject.thrift.modules.AndThenServiceModule,
    and c.t.inject.thrift.internal.DefaultAndThenServiceImpl. These were plumbing for unreleased
    experimental record/replay functionality and currently do nothing with no plan for implementation.
    887c2ffb

Finatra 22.2.0

04 Mar 16:11
Compare
Choose a tag to compare

22.2.0

  • inject-modules: Deprecate c.t.inject.modules.LoggerModule. Update c.t.inject.app.App to
    mix in the util/util-slf4j-jul-bridge Slf4jBridge trait. The LoggerModule 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 the c.t.util.logging.Slf4jBridge into the
    main class of their application if necessary. The updates to c.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
    the LoggerModule.

    Note that Slf4jBridge trait is already mixed into the c.t.server.TwitterServer trait and
    thus no further action is necessary forbridging JUL to the SLF4J-API in extensions of
    c.t.server.TwitterServer. 83360745

  • inject-slf4j: Deprecate c.t.inject.logging.Logging trait and methods. Users are encouraged
    to use the c.t.util.logging.Logging trait directly. There are no replacements for
    c.t.inject.logging.Logging#debugFutureResult and c.t.inject.logging.Logging#time.
    084257a9

Finatra 22.1.0

18 Jan 20:31
Compare
Choose a tag to compare

22.1.0

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. 13a600ff

  • 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).
    dc1de215

Changed

  • finatra: Bump version of Jackson to 2.13.1 79bd09c4

Finatra 21.12.0

17 Dec 12:31
Compare
Choose a tag to compare

21.12.0

Deprecations

  • finagle-zipkin-core: c.t.f.zipkin.core.Sampler.DefaultSampleRate is deprecated in
    favor of c.t.f.zipkin.core.DefaultSampler.sampleRate. bd04e1c9

Bug Fixes

  • finagle-zipkin-core: c.t.f.zipkin.core.Sampler would sample at 1/10,000
    rate when configured with a lower (but non-zero) rate. It can now sample
    at rates as low as 1/16,777,216. 17cfb580

Runtime Behavior Changes

  • finagle-zipkin-scribe: c.t.f.zipkin.thrift.ZipkinTracer uses
    c.t.f.zipkin.core.DefaultSampler.sampleRate as the default sample rate instead of
    deprecated c.t.f.zipkin.core.Sampler.DefaultSampleRate. This allows it to correctly
    observe user-configured overrides to the default sample rate. When a ZipkinTracer is
    constructed with default parameters and there are no user-configured overrides, the
    behavior is unchanged. bd04e1c9

Finatra 21.11.0

24 Nov 22:31
Compare
Choose a tag to compare

21.11.0

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.
    42c17b87

Changed

Finatra 21.10.0

01 Nov 20:01
Compare
Choose a tag to compare

21.10.0

  • http-server: Add versions of HttpRouter#filter which accept a Guice TypeLiteral to
    aid Java users in being able to apply generically typed Filters obtained from the object graph.
    46a45c4b

Finatra 21.9.0

01 Oct 20:48
Compare
Choose a tag to compare

Breaking API Change

  • finatra-thrift: Removed c.t.finatra.thrift.ThriftClient#thriftClient, use
    #methodPerEndpoint. ed7ffac4

Runtime Behavior Changes

  • finatra: Bump version of Logback to 1.2.6. 42cb5fc3
  • finatra: Bump version of Jackson to 2.11.4. dff47602
  • finatra: Bump version of Joda-Time to 2.10.10. 4906eab1
  • finatra: Bump version of logback to 1.2.5. 9eaa5f9d
  • finatra: Bump version of json4s to 3.6.11. 496d0e7d