Finatra v20.5.0 Release Notes

Release Date: 2020-05-19 // almost 4 years ago
  • โž• 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 to inject/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 prefer mockito-scala <https://github.com/mockito/mockito-scala>_ (or ScalaTest MockitoSugar <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. A previous 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 the RFC7231 <https://tools.ietf.org/html/rfc7231#section-7.1.2>_ which replaces the obsolete RFC2616 <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 arg fullyQualifyLocationHeader set to 'true'. This addresses issue #524. PHAB_ID=D467909

    • ๐Ÿšš 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. PHAB_ID=D473177

    • โšก๏ธ finatra-http: Update c.t.finatra.http.StreamingJsonTestHelper to not use Thread.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``