Vladimir Kostyukov

@vkostyukov

Posted May 29, 2020

May 2020 Release Notes - Version 20.5.0

Finagle

Runtime Behavior Changes

  • finagle: Bump jackson version to 2.11.0. 696bb515

Finatra

Added

  • inject-mdc: Move MDC integration from inject/inject-slf4j to inject/inject-mdc. daf8716d
  • 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. 2c45831c

Changed

  • inject-slf4j: Move MDC integration from inject/inject-slf4j to inject/inject-mdc. daf8716d
  • 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. e827d91f
  • inject-core: Make flag methods in c.t.inject.TwitterModule public an final. 455ee6de
  • inject-core: c.t.inject.Mockito has been marked deprecated. Users are encouraged to prefer mockito-scala (or ScalaTest MockitoSugar which provides some basic syntax sugar for Mockito). 9dac0470
  • http: (BREAKING API CHANGE) Update the c.t.finatra.http.HttpResponseFilter to optionally fully qualify response ‘Location’ header values. A previous change 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 the RFC7231 which replaces the obsolete RFC2616. 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 arg fullyQualifyLocationHeader set to ‘true’. This addresses issue #524. b6453a4d
  • jackson: Remove deprecated FinatraObjectMapper and FinatraJacksonModule. Users are encouraged to switch to the equivalent c.t.finatra.jackson.ScalaObjectMapper and c.t.finatra.jackson.modules.ScalaObjectMapperModule. 416cb346
  • finatra-http: Update c.t.finatra.http.StreamingJsonTestHelper to not use Thread.sleep for writing JSON elements on an artificial delay. 01fdd9cf
  • inject-app: Remove finagle-core dependency. Introduce finatra/inject/inject-dtab. f8f4a35e
  • finatra: Bump version of Jackson to 2.11.0. e265ba87
  • 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. b0626bd8
  • finatra: Bump version of Joda-Time to 2.10.6. f67fb7ab

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. ca538d64

Util

New Features

  • util-security: Moved Credentials from util-core: c.t.util.Credentials => c.t.util.security.Credentials. c34cd8ef

Breaking API Changes

  • util-core: Move Credentials to util-security: c.t.util.Credentials => c.t.util.security.Credentials. c34cd8ef

  • util-core: Change the namespace of ActivitySource and its derivatives to com.twitter.io as its no longer considered experimental since the code has changed minimally in the past 5 years. 3e939701

Twitter Server

New Features

  • Make lookup of Admin LoggingHandler more resilient when multiple implementations are detected. Now instead of perhaps using an incorrect handler the server will instead emit a lint rule violation and not attempt to install a logging handler ensuring that only when a single LoggingHandler is located that the functionality is enabled. 1ffd0f6b

Runtime Behavior Changes

  • Bump jackson version to 2.11.0. 2fc34c6a

Scrooge

  • scrooge: Update sbt-bintray plugin to 0.5.6 which supports passing environment variables BINTRAY_USER and BINTRAY_PASS for username and password credentials respectively. 2df31ac2
  • scrooge-generator: Close open files in Importer. 74cfc670