reactor-core v3.3.0.M3 Release Notes
Release Date: 2019-07-30 // over 4 years ago-
๐ Reactor-Core
3.3.0.M3
is part ofDysprosium-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
andTopicProcessor
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 renamedtransformDeferred()
- ๐ 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 correspondingSignal
must be explicitly requested from upstream (one extrarequest(1)
)
๐ฑ โจ New features and improvements
- โ 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
- (from 3.2:)
- #1793 Reject Context.of calls with duplicate keys
- ๐ Polish ContextN null checks (#1801)
๐ฑ ๐ Bug fixes
- (from 3.2:)
- โฑ #1739 Enforce a name for Schedulers.fromExecutorService
- without this explicit name, the metrics would use
null
as a name
- without this explicit name, the metrics would use
- ๐ #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
- ๐ [doc] Various documentation improvements and typo fixes (1847fcf, a7a25d3, 6289325, 631b399, #1757, #1796, #1820, #1821, d48ac6c)
- ๐ [build] Use "check" task as an aggregator, not "test" (#1776)
- ๐ [doc] #1539 Add "metrics" section to the reference guide (see also #1812, #1817)
- โก๏ธ Update BlockHound to 1.0.0.M4 (#1751)
- ๐ [chores] Polish codebase to fix compiler warnings/suppress some in tests (#1824)
๐ ๐ Thanks to the following contributors that also participated to this release
@jbnizet, @izeye, @dittos, @apuravchauhan, @gindex, @hisener, @berry120, @pcdavid, @ttddyy, @ramonPires