Jing Yan

@freshlemonfish

Posted October 27, 2020

October 2020 Release Notes - Version 20.10.0 🎃

Trick or… our October release is as sweet as candies 👻

Finagle

Breaking API Changes

  • finagle-thrift: Change the partition locator function getLogicalPartitionId in PartitioningStrategy from Int => Int to Int => Seq[Int], which supports many to many mapping from hosts and logical partitions. ab641adc

Runtime Behavior Changes

  • finagle-core: Disable eager connections for balancers with a non 1.0 weight. 11eae0d6

Finatra

Added

  • finatra-kafka-streams: Add toCluster DSL call to publish to another Kafka cluster. 449eea1a

  • jackson: Add support for validating @JsonCreator annotated static (e.g., companion object defined apply methods) or secondary case class constructors. 1c1b55c9

  • inject-app: Allow injecting flags without default values as both scala.Option and java.util.Optional. b74fe9e9

Changed

  • utils: Undo usage of TypesApi for help in determining if a class is a Scala case class as this fails for generic case classes in Scala 2.11, failing some supported cases for Jackson processing. b1d43381
  • utils: Update ClassUtils#simpleName to handle when package names have underscores followed by a number which throws an InternalError. Add tests. bbc0cf7b
  • utils: Revamp ClassUtils#isCaseClass to use the TypesApi for help in determining if a class is a Scala case class. Add tests. bbc0cf7b
  • http: The http server did not properly log the bound address on server startup. Fix this and make the thrift server consistent. 4410ff38
  • utils: (BREAKING API CHANGE) Rename maybeIsCaseClass to notCaseClass in ClassUtils and change the scope of the method. 82ffb4be
  • http: Adding support for optionally passing chain in the TLS sever trait. 5bcce35c
  • finatra: Bump version of Joda-Time to 2.10.8. e2cbca30

Fixed

  • finatra-kafka-streams: Revert AsyncTransformer to still use ConcurrentHashMap. 7d5b3ccf

  • inject-thrift-client: The Singleton annotation has been removed from the DarkTrafficFilter and the JavaDarkTrafficFilter. It was there in error. 5efc1ab2

  • inject-thrift-client: When using RepRepServicePerEndpoint, Finatra’s DarkTrafficFilter would throw a NoSuchMethodException when trying to lookup an inherited Thrift endpoint. 697b2137

Util

Bug Fixes

  • util-stat: MetricBuilder now uses a configurable metadataScopeSeparator to align more closely with the metrics.json api. Services with an overridden scopeSeparator will now see that reflected in metric_metadata.json where previously it was erroneously using / in all cases. 7665b9eb
  • util-slf4j-api: Better Java interop. Deprecate c.t.util.logging.Loggers as Java users should be able to use the c.t.util.logging.Logger companion object with less verbosity required. 26e7874b

Scrooge

No Changes

Twitter Server

No Changes