Skip to content

@simonbasle simonbasle released this Jul 30, 2019 · 26 commits to master since this release

Reactor-Core 3.3.0.M3 is part of Dysprosium-M3 Release Train.

This third milestone of the 3.3.x cycle contains bugfixes and improvements (including changes from the GA 3.2.11.RELEASE) as well as some behavior/API impacting changes:

⚠️ Update considerations and deprecations

  • #1742 Processors and Kotlin extensions deprecations
  • the WorkQueueProcessor and TopicProcessor have been marked as deprecated for 3.3.x and will be removed in 3.4
  • the Kotlin extensions are deprecated in core and replaced by a dedicated project/repo
  • in both cases, the deprecated classes don't appear in the generated javadoc jar
  • #1764 Deprecated method Schedulers.Factory#decorateExecutorService has been removed
  • #1669 All onBackpressureBuffer(maxSize+error) variants now delay errors
  • In debug mode, most of the original stacktrace is artificially moved at the end of the exception's output, after the "backtrace" (#1781)
  • #1745 compose() has been deprecated and renamed transformDeferred()
  • deprecated operator will be removed in 3.4
  • #1451 Dematerialize has been reworked and now expects 1 request per upstream Signal
  • This avoids onNext events to be emitted only when the subsequent signal is ready upstream
  • This also means that in order to get a terminal signal like onComplete signal, the corresponding Signal must be explicitly requested from upstream (one extra request(1))

New features and improvements

  • #1793 Reject Context.of calls with duplicate keys
  • Polish ContextN null checks (#1801)
  • Add "VirtualTimeScheduler#getScheduledTaskCount()" (#1746)
  • #1763 Flux.parallel now uses Schedulers.DEFAULT_POOL_SIZE (which can be overridden by system property)
  • #1767 Add ParallelFlux#then to compose on parallel termination
  • #1722 Make sure ElasticScheduler.CachedService gets disposed
  • #1798 Use bounded wildcard in error(Supplier)
  • Polish flux metrics (#1802)
    • see also the other commits linked in that PR
  • Actually record executor service metrics to Micrometer (#1795)
  • Add a Context-aware {Mono,Flux}.deferWithContext (#1819)
  • Eliminate subscribe from stack by optimizing the "tail calls" (#1761, #1826)
  • #1416 Add lambda subscribe variants with a context

🐞 Bug fixes

  • #1739 Enforce a name for Schedulers.fromExecutorService
    • without this explicit name, the metrics would use null as a name
  • #1783 Do not drop errors in MonoCacheTime, better doc (#1784)
  • #1738 FluxRefCount inner doesn't guard against multiple cancels
  • #1797 Explicitly reject null keys/values in Context constructors
  • #1741 MonoCreate hanging if delayUntil throws exception

📖 Documentation, Tests and Build

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

@jbnizet, @izeye, @dittos, @apuravchauhan, @gindex, @hisener, @berry120, @pcdavid, @ttddyy, @ramonPires

Assets 2
You can’t perform that action at this time.