This is the 4th release of Reactor 3.2, part of Californium-SR3 Release Train.
This is a recommended update for all Reactor 3.2 users.
⚠️ Update considerations and deprecations
- ✨ Add ability to multi-decorate backing ExecutorServices (#1408, #1409)
- This replaces the
Factorymethod that is now deprecated (but applied as the last decorator) - Decorators are keyed by a
String, allowing for easy identification and removal of specific decorators and good behavior when multiple libraries need to install a decorator
- This replaces the
- 🐞
Mono.fromFuture/Mono.fromCompletionStagenow correctly detects when the future is completed AFTER theMonohas been cancelled (#1414)- Any value is ignored by this point. Exceptions are still propagated except
CancellationException - The later means that one can also safely cancel the source
Futureitself in adoOnCancel
- Any value is ignored by this point. Exceptions are still propagated except
✨ New features and improvements
- StepVerifier now provides more details on unexpected termination during no-event (#1440)
- Reactor-provided
Schedulerbacked by anExecutorServicecan now be instrumented with Micrometer (#1201) - The
Schedulers.enableMetrics()method enables this - Only state of the executor (number of tasks in the queue for instance) is instrumented for now, not duration of the tasks.
- Custom-made
Schedulerimplementations can apply the same decorator (and any registered decorator) via the newSchedulers.decorateExecutorServicemethod - Make
expectAccessibleContextwork withinitialContextfromStepVerifierwhen just asserting a scalar source without operators (#1417)
🪲 Bug fixes
- Disposed worker also rejects scheduling a 0-period task (#1411)
- Ensure METER_FLOW_DURATION always have exception tag (would otherwise break assumptions of a few instrumentation providers) (#1425)
- Fixed request accounting in
onBackpressureLatest(#1430)
📖 Documentation, Tests and Build
- Various documentation typos have been fixed (#1420, #1419, #1424, #1427,
- The wording about guarantees enforced by the
Scheduler#createWorkerinterface has been clarified not to always include ordering (#1421) - [test] Attempt to fix flaky test
distinctUntilChanged*DoesntRetainObjects(#1428) - [test] Better evaluation of bufferWhen cancel/drain race (c5a93be)
👍 Thanks to the following contributors that also participated to this release
@nurkiewicz @lerencao @pranavek @quaff @OlegDokuka