Reactor-Core 3.3.1.RELEASE is part of Dysprosium-SR2 Release Train.
It also includes changes from the 3.2.13.RELEASE version.
One important change to pick up for testing Reactor is in StepVerifier: the combination of expectNoEvent followed by thenCancel wasn't working terribly well, and a new better terminal expectation has been introduced: expectTimeout (#1913)
💥 Known issues
- (since 3.3.0.M2) There are regressions with
Flux.replay/cachehanging or delivering wrong data (tracked in #2030)
⚠️ Update considerations and deprecations
- #1911 Instrument ScheduledExecutorService via Micrometer
- Instead of doing our own executor decorator we now rely on the Micrometer one, but it might have different coverage of tasks
✨ New features and improvements
- #1557 Removed greediness from FluxBufferTimeout
- #1938 Remove overeager toString calls in FluxIndexFuseable
- #1913
StepVerifier:expectTimeout(Duration)as an alternative toexpectNoEvent(Duration).thenCancel() - #1902 When
transformortransformDeferredapply a transformation to a non-ReactorPublisher, warn when/if the originalContextis lost (#1888) - #1966 Internal simplification of how the comparator is applied in
collectSortedList - #1962 Avoid extending
Map.EntryinContext1to ensure various libraries don't represent it inconsistenly when printing out collections ofContext - #1963 Retain insertion order in
ContextN(by extendingLinkedHashMapinstead ofHashMap) - changes from 3.2.13.RELEASE:
- #1916 Interpret MAX_VALUEms as indefinite caching in
Mono#cache(Function, Function, Supplier)(backported) - #1746 Add
VirtualTimeScheduler#getScheduledTaskCount()(backported) - #1968 Make
Flux#publish()propagate 1st subscriberContext - #1953 Add
Exceptions.isTraceback, and a mean to unwrap a composite without the tacebacks (Exceptions.unwrapMultipleExcludingTracebacks)
- #1916 Interpret MAX_VALUEms as indefinite caching in
🪲 Bug fixes
- changes from 3.2.13.RELEASE:
📖 Documentation, Tests and Build
- [doc] #1908 Marble diagram for
bufferWhilewas incorrectly showing dropped separators - [doc] #1915
Flux#joinjavadoc and marble have been clarified - [dependency] Bumped BlockHound to the release version (#1923)
- [build] Reorganization of the build with separation of concerns (buildSrc, gradle.properties, etc...) (0bd50de, a1dab8a)
- [build] Add reactor.blockhound to OSGI optional bundles (#1932, #1933)
- [build] Prepare for a releasetrain releaser script: add new tasks, allow mavenLocal source (06977a6, #1960)
- changes from 3.2.13.RELEASE:
- [build] Switched to Gradle 5.6 (8e97f91)
- [build] Switched publication plugin to
maven-publishandartifactory(#1943) - [build] Fixed generation of refguide pdf when custom version is used (2c621b6)
- [polish]
Exceptions.multiple(Iterable)now produces aCompositeException, more test coverage ofExceptionsutil (#1954)
👍 Thanks to the following contributors that also participated to this release
@andreisilviudragnea, @akarnokd, @berry120, @dittos, @EleanorRoseLegg, @gindex, @jabrena, @simondaudin, @slisaasquatch, @thiyagu-7, @ttddyy, @slisaasquatch, @wonwoo