@simonbasle simonbasle released this Oct 23, 2017 · 346 commits to master since this release

Assets 2

This is the 2nd release of Reactor 3.1, part of BISMUTH-SR2 Release Train.

This is a recommended update for all Reactor 3 users. It notably contains an important fix for a Flux#windowTimeout bug introduced in v3.1.0.

New features and improvements

  • Overflow exception for interval has been clarified, making it clearer that interval doesn't really support backpressure (#911)
  • Improved means of customizing the request amount mid-chain: new limitRequest operator will strictly cap the total request (without prefecthing, unlike limitRate) and limitRate now has a variant that takes a lowTide parameter that allow to customize the replenishing amount (#879, #894)
  • Kotlin extension now extends Publisher with toFlux and toMono operations (#908)

🐞 Bug fixes

  • Flux#windowTimeout with <10ms timeouts could trigger race conditions and lose some windows/drop data to already closed windows. The operator has consequently been reworked (#912)
  • Periodic tasks of Schedulers and Workers are now correctly cancelled by calling dispose() (#880)
  • Ensure that Scannable scanning of PARENT and ACTUAL always returns a Scannable, even if the original unsafe scan didn't. In the later case, the UNAVAILABLE_SCAN instance is returned (#895)
  • ParallelFlux (.parallel()) is now considered a THREAD_BARRIER for fusion purposes, allowing sensitive operators to skip fusion (#905)

📖 Documentation, Tests and Build

  • Several typos fixed and rephrasing have been made (#885, #868, #902)
  • Reference guide now has a small section on reactor-extra (#899)
  • Build has been upgraded to Gradle 4.2, binary compatibility is now checked with a baseline (3.1.0.RELEASE) using japicmp (#884)
  • Java 9: fixed deep reflection issue and additional build with JDK9 in Travis CI (minus a few elements due to build dependencies not being ready, #881, #883, #891)
  • The Kotlin plugin has been upgraded to 1.1.51, with a workaround for a source jar class duplication issue (#889, #887)
  • OSGI compatibility has been improved with the removal of extraneous packages and marking kotlin and JSR305 as optional (#903)

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

@0xflotus, @Buzzardo, @kadyana, @quaff, @sdeleuze