@simonbasle simonbasle released this Feb 11, 2019 · 3 commits to master since this release

Reactor-Core 3.2.6.RELEASE is part of Californium-SR5} Release Train.

This is a recommended update for all Reactor 3 users.

⚠️ Update considerations and deprecations

  • ConsoleLogger doesn't log TRACE/DEBUG levels by default now (#1484)
    • (note it is the default logging implementation when SLF4J isn't found)
    • DEBUG/TRACE levels had potential for being a very verbose default, especially when using reactor-netty
    • DEBUG/TRACE on console can be programmatically opted-in via Loggers.useVerboseConsoleLoggers()
    • Use of JDK loggers instead of console can be activated at start up via setting reactor.logging.fallback system property to JDK

New features and improvements

  • Flux.collect and friends (collectList, collectMap, collectMultiMap) now support doOnDiscard (#1510)
  • Scheduler#schedulePeriodically now accepts 0 delay and 0 duration periodic tasks (#1498)

🐞 Bug fixes

  • Proactively avoid logging onNext(QueueSubscription) (#1515)
    • We would previously rely on UnsupportedOperationException to detect cases of attempting to "deep-logging" an internal object as a Collection
    • Log4J2 recently started swallowing all exceptions.
    • We now eagerly convert the usual suspect (QueueSubscription) to a String before passing to logging implementation.
  • switchOnFirst has been improved
    • It now better support case where one switches to an unrelated Publisher (#1517)
    • source Flux will get cancelled at the termination of said unrelated publisher
    • Despite cancellation, the operator would previously still trigger the switching BiFunction (#1502)
  • Mono#fromRunnable can now be cancelled immediately and withholds invoking the Runnable (#1503)
  • Fixed windowWhile/windowUntil cancellation when the resulting Flux is cancelled before the last in flight window (#1452)
  • mergeSequential's first inner sequence would not be cancelled with the rest when output Flux was cancelled (#1500)
  • usingWhen terminal callbacks are now mutually exclusive with the cancel one (#1487)

📖 Documentation, Tests and Build

  • [doc] new marble diagrams have been introduced in this release (#1463, #1448)
    • index,limitRequest,onBackpressureBuffer variant, sort, sequenceEquals, doFinally, doOnEach, switchOnFirst
  • [doc] Wording of switchOnFirst has been clarified, regarding the inclusion of first signal in the Flux passed to the BiFunction (#1514)
  • [doc] Fixed reactive-stream Gradle coordinates in reference documentation (#1505)
  • [build] Changed the way JApiCmp gets its baseline (don't rely on Gradle) (6ca1ae9)
  • [build] Adapt JDK javadoc links when building under JDK9-10 and JDK11+ (0788a2b)

👍 Thanks to the following contributors that also participated to this release

@glandais-eptica, @OlegDokuka

Assets 2