Finatra v17.10.0 Release Notes
-
➕ Added
* 🚚 inject-core: Remove deprecated ``c.t.inject.TestMixin#resetMocks``. Properly use ``c.t.inject.Mockito`` trait in tests. Deprecate resetting of mocks and resettables in ``c.t.inject.IntegrationTestMixin``. ``PHAB_ID=D93876`` * finatra-http: Parameterize ``@RouteParam``,\ ``@QueryParam``,\ ``@FormParam``, and ``@Header`` to allow specifying the field name to read from the params or header map. Previously these annotations only looked for values by the case class field name leading to possible ugliness when defining case class fields (especially with ``@Header``). \`\ ``PHAB_ID=``\ D94220\` * 👍 finatra: Add support for using a ``java.lang.annotation.Annotation`` instance with the ``#bind[T]`` testing DSL. This adds a way to bind instances in tests that use the @Named binding annotation. ``PHAB_ID=D91330`` * finatra-http: Allow setting the content type of a Mustache view. ``PHAB_ID=D91949`` 🔄 Changed
🚚 finatra-http: Move
FileResolver
to finatra/utils.PHAB_ID=D103536
🚚 finatra-utils: Move
ResponseUtils
to finatra/http.PHAB_ID=D103507
🚀 From now on, release versions will be based on release date in the format of YY.MM.x where x is a patch number.
PHAB_ID=D101244
🚚 finatra-utils: Remove deprecated
ExternalServiceExceptionMatcher
.PHAB_ID=D98343
finatra-jackson: ScalaType's
isMap
andisCollection
methods now check that the given object's class is a subclass ofscala.collection.Map[Any, Any]
andscala.collection.Iterable[Any]
, respectively. Previously the superclasses' packages were unspecified. This is a runtime behavior change.PHAB_ID=D93104
🛠 finatra-http: Require that route URIs and prefixes begin with forward slash (/).
PHAB_ID=D90895
inject-utils: (BREAKING API CHANGE) RichOption toFutureOrFail, toTryOrFail, and toFutureOrElse signature changed to take the fail or else parameter by name.
PHAB_ID=D89544
🚚 inject-server: Remove usage of deprecated
c.t.inject.logging.Slf4jBridgeUtility
. Change usages toc.t.util.logging.Slf4jBridgeUtility
.PHAB_ID=D88095
🚚 finatra-http, inject-thrift-client: Remove netty3 specific types and dependency. In finatra-http, the code using these types is deprecated and can be removed allowing us to remove netty3-specific dependencies. In inject-thrift-client we can default to use the DefaultTimer for the backupRequestFilter method param instead of the HashedWheelTimer.
PHAB_ID=D88025
🛠 Fixed
* finatra-http: Parameterized route callback inputs fail because the lookup of a corresponding ``MessageBodyManager`` reader lookup does not properly handle parameterized types such as collections. This change updates the ``MessageBodyManager`` ``MessageBodyReader`` lookup to take into account parameterized types. This allows for a user to parse a ``Seq[T]``, or ``Map[K, V]`` as a route callback input type using the default Finatra ``MessageBodyReader``. ``PHAB_ID=D104277`` * finatra-jackson: Fix issue causing ``IllegalArgumentException`` from Validations to be swallowed. A catch clause in the ``c.t.finatra.json.internal.caseclass.jackson.FinatraCaseClassDeserializer`` is too broad as it catches thrown ``IllegalArgumentException``\ s from field validations when the annotation is applied to a field of the incorrect type, e.g., when ``@Max`` is applied to a String field. ``PHAB_ID=D95306`` Closed