Reactor Core v3.4.0-RC1 Release Notes
Release Date: 2020-09-15 // over 3 years ago-
๐ Reactor-Core
3.4.0.-RC1
is part of2020.0.0-RC1
Release Train (codenameEuropium
).๐ This first Release Candidate brings further changes to the
Sinks
API introduced in M2๐ This release note focuses on RC1-specific changes, but RC1 also contains all the changes released in 3.2.20.RELEASE and 3.3.10.RELEASE.
โก๏ธ โ ๏ธ Update considerations and deprecations
โก๏ธ Processors and sinks update considerations
๐ฆ The most impactful change is the switch in focus from an API that emulates
Subscriber
(with void return types) to a lower level API that can consistently provide immediate feedback to a signalling attempt via the returnedEmission
. Now the later is prefixed withtryEmit
. Anemit
API is offered as an initial problematic attempt at a higher level abstraction, but it had to be@Deprecated
. See #2374 for potential ways to rewrite code that used to callonNext
/next
/emitNext
-without-checking-returned-Emission in previous versions.@simonbasle is also preparing a retrospective write up of all the changes through which the sinks API went in #2382.
emitXxx
replaced withtryEmitXxx
- ๐ See #2319 : Split emitXxx/tryEmitXxx, more consistent use of hooks.
๐ new
Emission.FAIL_xxx
error codesEmission.FAIL_NON_SERIALIZED
(see #2342 Failing fast on non-serialized access to Sink)Emission.FAIL_ZERO_SUBSCRIBER
(see #2338 Add new Emission FAIL_ZERO_SUBSCRIBER error code)
"safe"
onBackpressureError()
not exposed anymore- ๐ See #2375 : Remove
Sinks.many().multicast().onBackpressureError()
.
๐
emitXxx
part of the API to be removed / heavily reworked- ๐ See #2374 : Deprecate Sinks
emit{Next,Error,Complete}
methods.
๐ฑ ๐ Bug fixes
- These are incremental improvements over the
tryEmitNext
API (previouslyemitNext
in M2):
๐ฑ โจ New features and improvements
- #2312 Add user provided state to
Retry
- โฑ #2325 Add method to snapshot factory+global schedulers, used by VTS (#2326)
- #2328 Make ParallelFlux.subscribe(array) public to allow delegation
Sinks
related improvements over M2:- ๐ [Polish] Add inners[] param to Operators dropMulticast private methods
๐ ๐ Documentation, Tests and Build
- [doc] As the custom javadoc tags are not displayed in all IDEs, turned discard/errorMode javadoc tags into plain paragraphs (#2136)
- ๐ [build] #2353 Use
api
for reactive streams api dependency import - โ๏ธ several typos and inconsistencies fixed by various contributors
- ๐ [doc] #2317 Add examples to deprecation notes of processors
- โ [test] Avoid potential infinite busy looping in tests
- ๐ [doc] Polish javadoc of the multicast onBackpressureBuffer Sinks (#2373)
- ๐ [doc] Polish variable names in snippet (#2351)
๐ ๐ Thanks to the following contributors that also participated to this release