reactor-core v3.3.0.RC1 Release Notes

Release Date: 2019-09-04 // over 4 years ago
  • ๐Ÿš€ Reactor-Core 3.3.0.RC1 is part of Dysprosium-RC1 Pre-Release Train.

    ๐Ÿ›  This first release candidate of the 3.3.x cycle contains bugfixes and improvements from the GA 3.2.12.RELEASE as well as a few new features. It also involves a few behavior impacting changes and deprecations.

    โšก๏ธ โš ๏ธ Update considerations and deprecations

    • A few Mono operators have slightly changed their behavior in regards to how when they propagate onNext: they could trigger onError after onNext, which is not permitted in Mono.
      • Mono#usingWhen now waits for the async complete handler termination before propagating onNext (#1832)
      • Mono#using similarly avoids triggering onNext+onError if cleanup fails (#1853)
      • Mono#doOnTerminate now acts similarly to doOnSuccess, executing the side effect before the onNext is propagated downstream (#1752)
    • ๐Ÿ—„ Mono#do[On|After]SuccessOrError has been deprecated and marked for removal in 3.4 (#1854)
    • ๐Ÿ’… usingWhen API has been polished, and some variants deprecated for removal in 3.4 (#1687)
      • A new overload has been introduced that uses BiFunction for error handler (exposing the failure that causes "rollback")
      • A single-handler version has been added to Mono for alignment with Flux. This is the simplest case: same handler for complete, error and cancel terminations.
      • All other overloads have been deprecated. Goal is to favor either the simple 1-handler-covers-all case OR force users to be explicit about ALL possible terminations.

    ๐Ÿฑ โœจ New features and improvements

    • Due to a few Throwable constants, class references could leak in multi-classloader environments. This is now avoided by skipping the filling of the stacktrace (#1872)
    • โž• Add BufferUntilChanged operator (#1706, bb5b2bb)
    • โž• Added new StepVerifier API to subscribe to source and verify it later (#1848, b2ce5fe)

    ๐Ÿฑ ๐Ÿž Bug fixes

    • (from 3.2:)
    • ๐Ÿ‘ Flux#flatMap with scalar source now supports onErrorContinue (#1684)
    • Flux#doAfterTerminate now executed when onError in fused mode (#1836, #1835)
    • Explicitly catch LinkageError in Traces. This helps with some static analyzers (#1830)
    • ๐Ÿ‘ Pass on cancelSupport when lifting ConnectableFlux (#1860)

    ๐Ÿ“š ๐Ÿ“– Documentation, Tests and Build

    • [doc] Add limitRate marble diagrams (#1449)
    • ๐Ÿ’… [build] Polish benchmarks build, remove jmh plugin (#1844, 1ba4944)
    • โœ๏ธ [doc] Fix several typos in javadocs (#1845)
    • ๐Ÿ— [build] Make it possible to run two JMH tasks - baseline and current (#1862)
    • ๐Ÿ’… [polish] Fix MaterializeSubscriber toString, AbstractQueue's won't work (df34ad9)
    • โšก๏ธ [chores] Update BlockHound to RC1 (#1877)
    • (from 3.2:)
    • ๐Ÿšš [github] Removed CONTRIBUTING.md and issue_template in favor of centralized ones (740c048)
    • ๐Ÿ— [build] Use JCenter, not MavenCentral for doDownloadBaseline (aa08709, d4f5332)
    • ๐Ÿšš [doc] Remove double mention of subscribe in Flux README (#1861)
    • 0๏ธโƒฃ [doc] Document that default initial delay for interval is the period (#1866)

    ๐Ÿš€ ๐Ÿ‘ Thanks to the following contributors that also participated to this release

    @gindex, @UgiR