Releases: reactor/reactor-core
v3.6.0
Reactor-Core 3.6.0 is part of 2023.0.0 Release Train.
This is the first GA release of 2023.0.0 π
This note focuses on 3.6.0 proper, curating changes from across all milestones and also includes changes already released as part of 3.4.x line up to 3.4.34 as well as 3.5.x line up to 3.5.12.
While there are plenty of improvements and bug fixes, it's worth to highlight the bigger themes first:
- The
Schedulers.boundedElastic()
may return a specific implementation tailored for Project Loom and running on virtual threads if application runs in Java 21+ runtime and have set thereactor.schedulers.defaultBoundedElasticOnVirtualThreads
system property totrue
. Please consult the javadocs and the reference documentation for more information. - Support for Multi-Release Jar. Since this release project has java version specific sources that are enabled if runs in specific Java runtime. This allows to avoid unnecessary reflection checks as well as embrace some new neat java features without changing the baseline for the whole code base.
- Hardening of the context-propagation. This release introduces better support for external
Publisher
s detection with their corresponding decoration if detected. This enables more stable context-propagation when it comes to external libraries integration.
See dedicated pre-release blogpost for more information.
What's Changed
β οΈ Update considerations and deprecations
- Regression in Flux.create:
addCap
always returns value with flag by @OlegDokuka in #3610 - makes
throwable
assignment happens-beforedone
assignment inonError
for FluxPublish by @OlegDokuka in #3638
β¨ New features and improvements
- Hardening automatic context propagation by @chemicL in #3549
- InternalOperator automatic context propagation by @chemicL in #3625
- adds support for gradle 8.1.1 by @OlegDokuka in #3521
- adds support for multi-release-jar | rework
Traces
by @OlegDokuka in #3523 - introduces automatic loom support by @OlegDokuka in #3524
- provides minimal troubleshooting for mrj by @OlegDokuka in #3532
- fix #3539 takeUntil Predicate test before emit by @AramMessdaghi9001 in #3544
- Reworks FluxPublish internals to relay on predictable state machine by @OlegDokuka in #3538
- dedicated loom oriented boundeElasticScheduler implementation by @OlegDokuka in #3566
- Handling 1.0.0 of context-propagation by @chemicL in #3609
- provides extra check for contextualName presence by @OlegDokuka in #3611
- JCStress: Await Scheduler dispose and increase timeouts by @chemicL in #3630
π Bug fixes
- fixes
MonoDelayElement
to properly handle race between delayrun
andonNext
signal by @OlegDokuka in #3546 - ensures
GroupedFlux
delivers subscription for the second subscriber by @OlegDokuka in #3555 - ensures late
onRequest
consumer observes demand by @OlegDokuka in #3557 - ensures that proper index is used during onNext check by @OlegDokuka in #3614
- ensures SchedulerTask uses isShutdown instead of isDisposed by @OlegDokuka in #3623
π Documentation, Tests and Build
- Fix return type for Mono.tap in javadoc by @ajax-surovskyi-y in #3564
- fixes CI.yml by @OlegDokuka in #3575
- adds CI nightly builds by @OlegDokuka in #3581
- disables temporarily java 21 tests by @OlegDokuka in #3590
- Bump actions/setup-java from 3.12.0 to 3.13.0 in /.github/workflows by @dependabot in #3585
- Bump actions/checkout from 3.1.0 to 4.1.0 in /.github/workflows by @dependabot in #3586
- Bump gradle/gradle-build-action from 2.7.0 to 2.9.0 in /.github/workflows by @dependabot in #3594
- improves build speed by @OlegDokuka in #3597
- Revised documentation about context propagation by @chemicL in #3617
- updates to java 21 GA temurin by @OlegDokuka in #3631
- Gradle 8.4 upgrade by @chemicL in #3632
π Dependency Upgrades
- Bump gradle/wrapper-validation-action from 1.0.5 to 1.1.0 in /.github/workflows by @dependabot in #3542
- Bump com.gradle.enterprise from 3.12.4 to 3.14.1 by @dependabot in #3548
- Bump actions/setup-java from 3.6.0 to 3.12.0 in /.github/workflows by @dependabot in #3550
- Bump gradle/gradle-build-action from 2.3.3 to 2.7.0 in /.github/workflows by @dependabot in #3551
- Update
Micrometer
version to1.10.10
by @violetagg in #3560 - upgrades to latest micrometer versions by @OlegDokuka in #3561
- Bump io.spring.nohttp from 0.0.10 to 0.0.11 by @dependabot in #3497
- Bump org.junit:junit-bom from 5.9.2 to 5.10.0 by @dependabot in #3556
- Bump me.champeau.gradle.japicmp from 0.4.1 to 0.4.2 by @dependabot in #3595
- Bump jmhVersion from 1.36 to 1.37 by @dependabot in #3596
- Bump byteBuddyVersion from 1.14.5 to 1.14.8 by @dependabot in #3601
- Bump com.gradle.enterprise from 3.14.1 to 3.15 by @dependabot in #3602
- Bump ch.qos.logback:logback-classic from 1.2.11 to 1.2.12 by @dependabot in #3476
- Bump de.undercouch.download from 5.4.0 to 5.5.0 by @dependabot in #3608
- Bump com.gradle.enterprise from 3.15 to 3.15.1 by @dependabot in #3613
- Update micrometer and micrometerTracing by @pderop in #3636
- Update micrometer, micrometerTracing, contextPropagation by @pderop in #3637
New Contributors
- @AramMessdaghi9001 made their first contribution in #3544
- @ajax-surovskyi-y made their first contribution in #3564
Full Changelog: v3.5.8...v3.6.0
v3.5.12
Reactor Core
3.5.12
is part of 2022.0.13
Release Train.
What's Changed
β οΈ Update considerations and deprecations
- Make
throwable
assignment happens-beforedone
assignment inonError
forFluxPublish
by @OlegDokuka in #3638
β¨ New features and improvements
π Dependency Upgrades
Full Changelog: v3.5.11...v3.5.12
v3.4.34
Reactor Core
3.4.34
is part of 2020.0.38
Release Train.
What's Changed
π Bug fixes
- Ensure
addCap
always returns value with flag by @OlegDokuka in 0b988cb
Full Changelog: v3.4.33...v3.4.34
v3.6.0-RC1
What's Changed
β οΈ Update considerations and deprecations
- ensures
addCap
always returns value with flag by @OlegDokuka in #3610
β¨ New features and improvements
- hardening automatic context propagation (stronger guarantees that ThreadLocal restoration works in all the possibles cases) by @chemicL in #3549
- dedicated loom oriented boundeElasticScheduler implementation by @OlegDokuka in #3566
- Handling 1.0.0 of context-propagation by @chemicL in #3609
- provides extra check for
contextualName
presence by @OlegDokuka in #3611
π Bug fixes
- ensures that
FluxBufferTime
uses properindex
value duringonNext
check by @OlegDokuka in #3614
π Documentation, Tests and Build
- fixes CI.yml by @OlegDokuka in #3575
- adds CI nightly builds by @OlegDokuka in #3581
- disables temporarily java 21 tests by @OlegDokuka in #3590
- Bump actions/setup-java from 3.12.0 to 3.13.0 in /.github/workflows by @dependabot in #3585
- Bump actions/checkout from 3.1.0 to 4.1.0 in /.github/workflows by @dependabot in #3586
- Bump gradle/gradle-build-action from 2.7.0 to 2.9.0 in /.github/workflows by @dependabot in #3594
- improves build speed by @OlegDokuka in #3597
π Dependency Upgrades
- Bump io.spring.nohttp from 0.0.10 to 0.0.11 by @dependabot in #3497
- Bump org.junit:junit-bom from 5.9.2 to 5.10.0 by @dependabot in #3556
- Bump me.champeau.gradle.japicmp from 0.4.1 to 0.4.2 by @dependabot in #3595
- Bump jmhVersion from 1.36 to 1.37 by @dependabot in #3596
- Bump byteBuddyVersion from 1.14.5 to 1.14.8 by @dependabot in #3601
- Bump com.gradle.enterprise from 3.14.1 to 3.15 by @dependabot in #3602
- Bump ch.qos.logback:logback-classic from 1.2.11 to 1.2.12 by @dependabot in #3476
- Bump de.undercouch.download from 5.4.0 to 5.5.0 by @dependabot in #3608
- Bump com.gradle.enterprise from 3.15 to 3.15.1 by @dependabot in #3613
Full Changelog: v3.6.0-M3...v3.6.0-RC1
v3.5.11
What's Changed
β οΈ Update considerations and deprecations
- ensures
addCap
always returns value with flag by @OlegDokuka in #3610
β¨ New features and improvements
- provides extra check for
contextualName
presence by @OlegDokuka in #3611 - Handling 1.0.0 of context-propagation by @chemicL in #3609
π Bug fixes
- ensures that
FluxBufferTime
uses properindex
value duringonNext
check by @OlegDokuka in #3614
π Documentation, Tests and Build
- adds CI nightly builds by @OlegDokuka in #3581
- Bump actions/setup-java from 3.12.0 to 3.13.0 in /.github/workflows by @dependabot in #3585
- Bump actions/checkout from 3.1.0 to 4.1.0 in /.github/workflows by @dependabot in #3586
- Bump gradle/gradle-build-action from 2.7.0 to 2.9.0 in /.github/workflows by @dependabot in #3594
π Dependency Upgrades
- Bump io.spring.nohttp from 0.0.10 to 0.0.11 by @dependabot in #3497
- Bump org.junit:junit-bom from 5.9.2 to 5.10.0 by @dependabot in #3556
- Bump me.champeau.gradle.japicmp from 0.4.1 to 0.4.2 by @dependabot in #3595
- Bump jmhVersion from 1.36 to 1.37 by @dependabot in #3596
- Bump byteBuddyVersion from 1.14.5 to 1.14.8 by @dependabot in #3601
- Bump com.gradle.enterprise from 3.14.1 to 3.15 by @dependabot in #3602
- Bump ch.qos.logback:logback-classic from 1.2.11 to 1.2.12 by @dependabot in #3476
- Bump de.undercouch.download from 5.4.0 to 5.5.0 by @dependabot in #3608
- Bump com.gradle.enterprise from 3.15 to 3.15.1 by @dependabot in #3613
Full Changelog: v3.5.10...v3.5.11
v3.4.33
What's Changed
π Documentation, Tests and Build
- Bump actions/setup-java from 3.12.0 to 3.13.0 in /.github/workflows by @dependabot in #3585
- Bump actions/checkout from 3.1.0 to 4.1.0 in /.github/workflows by @dependabot in #3586
- Bump gradle/gradle-build-action from 2.7.0 to 2.9.0 in /.github/workflows by @dependabot in #3594
π Dependency Upgrades
- Bump io.spring.nohttp from 0.0.10 to 0.0.11 by @dependabot in #3497
- Bump org.junit:junit-bom from 5.9.2 to 5.10.0 by @dependabot in #3556
- Bump me.champeau.gradle.japicmp from 0.4.1 to 0.4.2 by @dependabot in #3595
- Bump jmhVersion from 1.36 to 1.37 by @dependabot in #3596
- Bump byteBuddyVersion from 1.14.5 to 1.14.8 by @dependabot in #3601
- Bump com.gradle.enterprise from 3.14.1 to 3.15 by @dependabot in #3602
- Bump ch.qos.logback:logback-classic from 1.2.11 to 1.2.12 by @dependabot in #3476
- Bump de.undercouch.download from 5.4.0 to 5.5.0 by @dependabot in #3608
- Bump com.gradle.enterprise from 3.15 to 3.15.1 by @dependabot in #3613
Full Changelog: v3.4.32...v3.4.33
v3.6.0-M3
Reactor Core
3.6.0-M3
is part of 2023.0.0-M3
Pre Release Train.
What's Changed
π Documentation, Tests and Build
- Fix return type for Mono.tap in javadoc by @ajax-surovskyi-y in #3564
New Contributors
- @ajax-surovskyi-y made their first contribution in #3564
Full Changelog: v3.6.0-M2...v3.6.0-M3
v3.5.10
Reactor Core
3.5.10
is part of 2022.0.11
Release Train.
What's Changed
π Documentation, Tests and Build
- Fix return type for
Mono.tap
in javadoc by @ajax-surovskyi-y in #3564
π Dependency Upgrades
New Contributors
- @ajax-surovskyi-y made their first contribution in #3564
Full Changelog: v3.5.9...v3.5.10
v3.6.0-M2
Reactor Core
3.6.0-M2
is part of 2023.0.0-M2
Pre Release Train.
What's Changed
β¨ New features and improvements
- Rework
FluxPublish
internals to relay on predictable state machine by @OlegDokuka in #3538 - Fix
takeUntil
Predicate test before emit by @AramMessdaghi9001 in #3544
π Bug fixes
- Fix
MonoDelayElemnt
to properly handle race between run andonNext
by @OlegDokuka in #3546 - Ensure
GroupedFlux
delivers subscription for the second subscriber by @OlegDokuka in #3555 - Ensure late
onRequest
consumer observes demand by @OlegDokuka in #3557
π Dependency Upgrades
- Bump
gradle/wrapper-validation-action
from1.0.5
to1.1.0
in /.github/workflows by @dependabot in #3542 - Bump
com.gradle.enterprise
from3.12.4
to3.14.1
by @dependabot in #3548 - Bump
actions/setup-java
from3.6.0
to3.12.0
in /.github/workflows by @dependabot in #3550 - Bump
gradle/gradle-build-action
from2.3.3
to2.7.0
in /.github/workflows by @dependabot in #3551 - Upgrade to latest
Micrometer
versions by @OlegDokuka in #3561
New Contributors
- @AramMessdaghi9001 made their first contribution in #3544
Full Changelog: v3.6.0-M1...v3.6.0-M2
v3.5.9
Reactor Core
3.5.9
is part of 2022.0.10
Release Train.
What's Changed
β¨ New features and improvements
- Rework
FluxPublish
internals to relay on predictable state machine by @OlegDokuka in #3538 - Fix
takeUntil
Predicate test before emit by @AramMessdaghi9001 in #3544
π Bug fixes
- Fixe
MonoDelayElement
to properly handle race between run andonNext
by @OlegDokuka in #3546 - Ensure
GroupedFlux
delivers subscription for the second subscriber by @OlegDokuka in #3555 - Ensure late
onRequest
consumer observes demand by @OlegDokuka in #3557
π Dependency Upgrades
- Bump
gradle/wrapper-validation-action
from1.0.5
to1.1.0
in /.github/workflows by @dependabot in #3542 - Bump
com.gradle.enterprise
from3.12.4
to3.14.1
by @dependabot in #3548 - Bump
actions/setup-java
from3.6.0
to3.12.0
in /.github/workflows by @dependabot in #3550 - Bump
gradle/gradle-build-action
from2.3.3
to2.7.0
in /.github/workflows by @dependabot in #3551 - Update
Micrometer
version to1.10.10
by @violetagg in #3560
New Contributors
- @AramMessdaghi9001 made their first contribution in #3544
Full Changelog: v3.5.8...v3.5.9