Finatra v20.12.0 Release Notes

  • โž• Added

    
    * finatra-kafka-streams: Add async map commands to Kafka Streams DSL (`flatMapAsync`,
      `flatMapValuesAsync`, `mapAsync`, and `mapValuesAsync`) ``PHAB_ID=D593995``
    
    * โฌ†๏ธ finatra-kafka-streams: Allow String configuration to be null and set upgradefrom to null if it is
       running in 2.5 kafka client.  ``PHAB_ID=D592608``
    
    * finatra-http: Allow injecting filtered controllers in HttpRouter from Java. ``PHAB_ID=D590707``
    
    * ๐Ÿšš inject-utils: Move deprecation warning from `c.t.inject.conversions.map` to
      `c.t.inject.conversions.map.RichMap`. ``PHAB_ID=D591979``
    
    * kafka: Add an option `includePartitionMetrics` to `KafkaFinagleMetricsReporter` to not include
      metrics per partition of the `FinagleKafkaConsumer`. Defaults to true. ``PHAB_ID=D587636``
    
    * ๐Ÿ— finatra: Enables cross-build for 2.13.1 for inject-logback. ``PHAB_ID=D588586``
    
    * finatra-kafka-streams: Add delay DSL calls to insert a delay into a Kafka Streams topology.
    
    * ๐Ÿ— finatra: Enables cross-build for 2.13.1 for inject-thrift-client. ``PHAB_ID=D583509``
    
    * finatra-kafka-streams: Add `c.t.f.k.t.s.PersistentTimerValueStore` which stores a value in the
      timerstore that can be used when the timer is triggered. ``PHAB_ID=D583020``
    
    * ๐Ÿ›  inject-core: Add ability to call `InMemoryStats#waitFor` with a fixed timeout
      ``PHAB_ID=D576147``
    
    * ๐Ÿ— finatra: Enables cross-build for 2.13.1 for httpclient, http, and jackson. ``PHAB_ID=D574391``
    
    ๐Ÿ”„ Changed
    
    • ๐Ÿšš inject-utils: Deprecate all methods in c.t.inject.conversions.map.RichMap, and move functionality to c.t.conversions.MapOps in the util/util-core project. PHAB_ID=D578819

    • ๐Ÿšš inject-utils: Deprecate all methods in c.t.inject.conversions.tuple, and move functionality to c.t.conversions.TupleOps in the util/util-core project. PHAB_ID=D578804

    • ๐Ÿšš inject-utils: Deprecate all methods in c.t.inject.conversions.seq, and move functionality to c.t.conversions.SeqOps in the util/util-core project. PHAB_ID=D578605

    • ๐Ÿšš inject-utils: Remove deprecated camelify, pascalify, and snakify from c.t.inject.conversions.string.RichString. Additionally, deprecate toOption and getOrElse in c.t.inject.conversions.string.RichString, and move functionality to c.t.conversions.StringOps in the util/util-core project. PHAB_ID=D578549

    • c.t.finatra.http.exceptions.ExceptionMapperCollection changed from Traversable to Iterable for cross-building 2.12 and 2.13. PHAB_ID=D574391

    • ๐Ÿšš inject-core: (BREAKING API CHANGE) Move the testing utility InMemoryStatsReceiverUtility and InMemoryStats into inject-core from inject-server. They can both be found under com.twitter.inject. PHAB_ID=D574643

    • ๐Ÿ‘ validation: (BREAKING API CHANGE) Introduce new Validation Framework APIs which support cascading validation to nested case classes and other improvements which also closer align to JSR380. Validator#validate has changed from returning Unit and throwing an exception to model the JSR380 version that returns a Set of failed constraints. There is a new method which replicates the throwing behavior. PHAB_ID=D559644

    • kafka: Split c.t.f.kafka.tracingEnabled flag into c.t.f.k.producers.producerTracingEnabled and c.t.f.k.consumers.consumerTracingEnabled to selectively enable/disable tracing for producers/consumers. Producer tracing is turned on by default and consumer tracing is turned off by default now. PHAB_ID=D571064

    ๐Ÿ›  Fixed

    
    * inject-server: Wire through HTTP method in AdminHttpClient so that POST requests can be made to
      HTTPAdmin endpoints. ``PHAB_ID=D584988``