Update dependency io.projectreactor:reactor-core to v3.4.12 #176
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
3.2.0.M1
->3.4.12
Release Notes
reactor/reactor-core
v3.4.12
Compare Source
(curated release note to come)
What's Changed
@NonNull
annotation, not JetBrain's NotNull by @simonbasle in Use@NonNull
annotation, not JetBrain's NotNull reactor/reactor-core#2808New Contributors
Full Changelog: reactor/reactor-core@v3.4.11...v3.4.12
v3.4.11
Compare Source
Reactor-Core
3.4.11
is part of2020.0.12
Release Train (Europium
SR12).This service release contains bugfixes and one enhancement.
All changes from
3.3.21.RELEASE
are also included and these are listed below with an additional level of indentation.✨ New features and improvements
🐞 Bug fixes
📖 Documentation, Tests and Build
limit(0)
(#2787)👍 Thanks to all contributors who participated to this release
@rs017991
v3.4.10
Compare Source
Reactor-Core
3.4.10
is part of2020.0.11
Release Train (Europium
SR11).This service release contains bugfixes and polishing changes.
All changes from
3.3.20.RELEASE
are also included and these are listed below with an additional level of indentation.Flux.replay
underlying implementation doesn't support 0-size anymore (which was illogical in the first place)Flux.publish()
instead (#2741)Disposable
obtained by callingmono.share().subscribe()
(and that variant only) would terminate/cancel the wholemono.share()
for all its subscribers. now this is an individual subscription, much like.subscribe(v -> {})
for instance.toProcessor()
and explicitly turning the sourceMono
into aMonoProcessor
instead of sharing it, although the whole approach is deprecated.✨ New features and improvements
FluxOnBackpressureBufferStrategy
reject sizes <= 0 (#2757)🐞 Bug fixes
hasNext
(#2766)📖 Documentation, Tests and Build
👍 Thanks to all contributors who participated to this release
@hisener, @KATKrazy, @keturn
v3.4.9
Compare Source
Reactor-Core
3.4.9
is part of2020.0.10
Release Train (Europium
SR10).This service release contains bugfixes and new features.
Some changes from
3.3.19.RELEASE
are also included and these are listed below with an additional level of indentation.🪲 Bug fixes
📖 Documentation, Tests and Build
8425677
👍 Thanks to the following contributors that also participated to this release
@ivyazmitinov
v3.4.8
Compare Source
Reactor-Core
3.4.8
is part of2020.0.9
Release Train (Europium
SR9).This service release contains bugfixes and new features.
Flux#mergeOrdered
has been deprecated (#2719)mergeComparing
has been introduced as an alternative that is more consistent with other merge operators✨ New features and improvements
mergeComparing
as fail-fast alternative tomergeOrdered
(complemented with adelayError
variant) (#2719)Mono.cacheInvalidateIf
andMono.cacheInvalidateWhen
(#2717)Predicate
on the value when a late subscriber comes in or by associating the cached value with aMono<Void>
invalidation trigger that can be externally completed🪲 Bug fixes
📖 Documentation, Tests and Build
2da73e9
)👍 Thanks to the following contributors that also participated to this release
@koldat
v3.4.7
Compare Source
Reactor-Core
3.4.7
is part of2020.0.8
Release Train (Europium
SR8).This minor service release contains build and test improvements as well as one new minor feature.
All changes from
3.3.18.RELEASE
are also included and these are listed below with an additional level of indentation.✨ New features and improvements
📖 Documentation, Tests and Build
00afede
)👍 Thanks to the following contributors that also participated to this release
@clayly, @eas5
v3.4.6
Compare Source
Reactor-Core
3.4.6
is part of2020.0.7
Release Train (Europium
SR7).This service release contains bugfixes and new features.
All changes from
3.3.17.RELEASE
are also included and these are listed below with an additional level of indentation.MonoDelay
doesn't produce aOverflowException
backpressure error when the delay is so small that it terminates before regular request had a chance to be made (since the operator assume subscribe == request, like a lot ofMono
s).reactor.core.publisher.MonoDelay.failOnBackpressure
with valuetrue
. ✨ New features and improvements
29d2e3b
)🪲 Bug fixes
📖 Documentation, Tests and Build
contextWrite(f)
rather than subscriberContext(f) in docs (#2685)main
, update CI (#2679)174afcc
)👍 Thanks to the following contributors that also participated to this release
@horizonzy, @robotmrv, @vovikdrg
v3.4.5
Compare Source
Reactor-Core
3.4.5
is part of2020.0.6
Release Train (Europium
SR6).This service release contains bugfixes and a couple implementation improvements forwarded from the 3.3.x line as well as documentation improvements.
All changes from
3.3.16.RELEASE
are also included and these are listed below with an additional level of indentation.✨ New features and improvements
🪲 Bug fixes
📖 Documentation, Tests and Build
👍 Thanks to the following contributors that also participated to this release
@berry120, @mickeelm, @underbell
v3.4.4
Compare Source
Reactor-Core
3.4.4
is part of2020.0.5
Release Train (CodenameEuropium
).This service release contains a few improvements and new features. It also contains bugfixes from the 3.3.x line.
All changes from
3.3.15.RELEASE
are also included and these are listed below with an additional level of indentation.✨ New features and improvements
MonoInnerProducerBase
(#2632, #2645)🪲 Bug fixes
Mono.fromSupplier(() -> null).single()
previously failed to produce anonError(NoSuchElementException)
(#2635)Mono
that was implementingCallable
(which includesfromSupplier
,fromCallable
,fromRunnable
to some extent...) would exhibit the wrong behaviorFlux#single
, which is going to be fixed by #2657 in the next release📖 Documentation, Tests and Build
👍 Thanks to the following contributors that also participated to this release
@kevinten10, @mickeelm, @SimonBerry555, @v-terret
v3.4.3
Compare Source
Reactor-Core
3.4.3
is part of2020.0.4
release train (Europium SR4).This is a maintenance release which also inherit changes from
3.3.14.RELEASE
.✨ New features and improvements
switchMap
/switchOnNext
with prefetch=0 (#2596)🪲 Bug fixes
skipUntil
conditional subscriber logic inconsistent (#2578)concatMap
(#2576)📖 Documentation, Tests and Build
TestLogger
be configured with simplified format (#2538)👍 Thanks to the following contributors that also participated to this release
@richardfearn, @vdjuketic
v3.4.2
Compare Source
Reactor-Core
3.4.2
is part of2020.0.3
Release Train (Europium
SR3).This service release contains a couple bugfixes inherited from
3.3.13.RELEASE
as well as additional documentation polishing.This note focuses on changes specific to this version, see also from
3.3.13.RELEASE
release notes📖 Documentation, Tests and Build
👍 Thanks to the following contributors that also participated to this release
@bbukaty
v3.4.1
Compare Source
Reactor-Core
3.4.1
is part of2020.0.2
Release Train (Europium SR2).This service release contains bugfixes and new features.
This note focuses on changes specific to this version, but all changes from
3.2.22.RELEASE
and3.3.12.RELEASE
are also included.✨ New features and improvements
Timed
wrapper object, allowing richer output ofDuration
compared toelapsed()
andtimestamp()
(which useTuple2
andLong
)LoggerUtils
allows the early installation of aLogger
factory that will forward to a classic factory AND let the user activate a logging indirection later on during testsTestLogger
to capture internal logs from operators that were classloaded earlier than the unit testTestPublisher
createColdNonCompliant
variantContext
inStepVerifier
, say from which operator the asserted Context was taken (#2518)🪲 Bug fixes
RetryWhenMainSubscriber#onError
's calls serial (#2499, Fixes #2488)📖 Documentation, Tests and Build
👍 Thanks to the following contributors that also participated to this release
@dowgiallom, @seants
v3.4.0
Compare Source
Reactor-Core
3.4.0
is part of2020.0.0
Release Train (codenameEuropium
).This is the first GA release of Europium 🎉
This note focuses on
3.4.0
proper, curating changes from across all milestones.Note that the 3.4.0 effort was started right after
3.3.5.RELEASE
, so this version also contains changes from 3.3.6 to 3.3.11 (see the end of the notes for links).firstWithValue
new operator has an undocumented way of checking the cause of failure for individual sources, but it uses a suppressed exception rather than a cause. Please refrain from using that, as we'll switch toinitCause
in3.4.1
(and properly document the behavior, setting it in stone) => #2459WorkQueueProcessor
andTopicProcessor
, #2208)Schedulers.elastic()
and variants are deprecated, to be removed in 3.5 (#1893)FluxProcessor
(as well as all concrete implementations of it) are now deprecated and will be removed in 3.5 (#2188, #2431)MonoProcessor
is made abstract and deprecated, to be removed in 3.5 (#2188, #1053 /f04bede
, #2431)Flux.subscribe(Consumer<Subscription>)
variant is deprecated, to be removed in 3.5 (#1825)first
is deprecated to be renamed tofirstWithSignal
(seefirstWithValue
in the new features below). The old deprecated method will be removed in 3.5 (#2173)Context
changes (#2282):Context
at points where there is no use attempting to use write methods are deprecated and will be removed in 3.5 (#2293,7d6c862
)ContextView
-based variant (see new features below)deferWithContext
=>deferContextual
with aContextView
Signal.getContext()
=>Signal.getContextView()
Context
are renamed to be clearer. Old names are deprecated and will be removed in 3.5 (see new feature below, #2148,eed93d6
)Duration
and convert it to milliseconds now use nanosecond precision (#1734)Operators.onErrorDropped
no longer throws, but only logs the dropped exception (#1431)onError
signal reaches the last (lambda based) subscriber in a chain which doesn't have an error handler, the exception is no longer thrown but only logged (#2176)Scheduler
now initiate their backing infrastructure and applySchedulers
decorator instart()
rather than the constructor (#1778)start()
is also now implicitly called when instantiating aScheduler
via theSchedulers.Factory
this
leaking from constructorstart()
EmitterProcessor
with a full backpressure queue no longer blocks until data is requested, but fails fast (#2049)name
operator (#1928, #2302)flow
tag has been removed entirelyname({String})
operator will replacereactor.
prefix in meter names with the user-provided{String}.
tags(String...)
operator, but notname(String)
still creates a sparse set of tags in the application which could be rejected by some metrics backendreactor_requested_requested_amount
=>{name}_requested
reactor_subscribed_subscribers
=>{name}_subscribed
{name}
into account from the above changestatus
tag, introducingcompletedEmpty
value (#1803)Sinks
Sinks
are a new API constructed to replace theFluxProcessor
andMonoProcessor
APIs, which have been deprecated (#2431, #1053).We distinguish
Sinks.Many<T>
(aFlux
-like sink),Sinks.One<T>
(aMono
-like sink) andSinks.Empty
(aMono<Void>
-like sink).These sinks are constructed through specs under the
Sinks
class. They expose a two-faced API:tryEmit
are atomic, never throw (#2319, #2329, #2336, #2426) and immediately return anEmitResult
enum (originally named Emission) indicating various variations of success or error (#2319, #2338)emit
attempt to provide an easier facade over the above, take anEmitFailureHandler
allowing to fine tune some aspects of the default behavior (#2377)By default, the instances are "serialized", detecting parallel usage and failing fast in
tryEmit
(#2342, #2410, #2365,19fc1ba
, #2412).The vanilla reactor sink implementations of
emit
API terminate with the equivalent of anemitError
when parallel usage is detected (#2365) but by using theEmitFailureHandler
to drive the sink to retry, possibly with a small amount of sleeping, it should be possible to optimistically get rid of the contention.It is also possible to get a low-overhead, low-protection instance of vanilla sinks by using the
Sinks.unsafe()
spec (#2418).This doesn't detect parallel usage, so it must be used in a responsible way (in a context where the Reactive Streams contract is already externally enforced).
Sinks also expose a
asFlux()
view (orasMono()
, as relevant) for them to be passed to downstream and subscribed, and also expose a bit of state throughcurrentSubscriberCount()
getter (#2372) and by beingScannable
(at a minimum forTERMINATED
andCANCELLED
attributes, #2394).Compared to existing processors, most flavors have a sink equivalent except
DirectProcessor
, with two close cousins underSinks.many().multicast()
(#2392, #2451):directAllOrNothing
will ignoretryEmitNext
attempts when at least one subscriber doesn't have enough demand,directBestEffort
will instead push to the subset of subscribers with demand and drop from the perspective of slow subscribers.This differs from
DirectProcessor
in the sense that both these sinks are kept open in such a situation, so slow subscribers that increase their request will start seeing values pushed after that (instead of being immediately terminated in DirectProcessor).There is also a new flavor: an
onBackpressureError()
variant of the unicast Sink (#2347)🐞 Bugfixes
See links to Dysprosium releases (3.3.6 to 3.3.11) at the end.
✨ New features
concatMap
now has a variant with 0 prefetch (#2202)Scannable
operators answer the newAttr.RUN_STYLE
attribute with aRunStyle
enum (#2058, #2123)Publisher
andSubscriber
levelRunStyle.SYNC
guarantees the operator doesn't change threadsRunStyle.ASYNC
indicates the operator MAY change threadsRunStyle.UNKNOWN
(the default) indicates there's no available information (eg. due to the operator wrapping an arbitraryPublisher
)MetricsRegistry
other than the global one can now be configured (#2253,64fd556
)Metrics.MicrometerConfiguration#useRegistry
for that purposeContext
now extends a simplifiedContextView
API which only expose the read methods (#2279, #2293)Context
when the only meaningful operations are read operationsSignal#getContextView()
,deferContextual
operator (variant to deferWithContext) and newtransformDeferredContextual
operatortransformDeferredContextual
operator that takes aBiFunction
, allowing to access theContextView
in the transformation (#2280 then renamed in #2293)Mono.subscribe(valueConsumer, errorConsumer, ...)
errorConsumer
now gets notified of exceptions thrown by the valueConsumer
(#1995)Context
operators with clearer names (#2148,eed93d6
)Mono.subscriberContext()
is not aliased, we now advise to useMono.deferContextual(Mono::just)
to get the exact same behaviorsubscriberContext(Context)
is replaced bycontextWrite(ContextView)
(notice the use ofContextView
)contextWrite(Function)
f9c7993
)Schedulers.setFactoryWithSnapshot(Factory)
to get aSnapshot
object while replacing theFactory
resetFrom(Snapshot)
VirtualTimeScheduler
to reset previously customized factoriesParallelFlux.subscribe(array)
method is now public to allow delegation in wrappers (#2328)Retry
object driving#retryWhen
operator can now store user-provided state in the form of aContextView
, which is exposed throughRetrySignal
(#2312,bd8db8a
)GroupedFlux#key()
method is now marked as@NonNull
(#2397)firstWithValue
factory operator (#2173,41c937f
)first
, it let multiple sources competeNoSuchElementException
is thrown📈 Improvements
log()
will log context access at FINE(ST) level and now uses the more correctcurrentContext
prefix (#2220)Mono#materialize()
now takes into account that the source IS aMono
, so it doesn'tcancel()
it when materializing itsonNext
(#2424,765bfe8
)📖 Documentation, Tests and Build
85da74b
)👍 Thanks to the following contributors that also participated to this release
@AayushyaVajpayee, @camsteffen, @cnabro, @hamidshahid, @Inego, @jonenst, @josemalonsom, @OlegDokuka, @robotmrv, @seants, @smaldini, @steppedreckoner, @yschimke
Links to Dysprosium release notes during 3.4.0 development effort
All changes from these releases have been forward-merged into
3.4.0
:v3.3.6.RELEASE
v3.3.7.RELEASE
v3.3.8.RELEASE
v3.3.9.RELEASE
v3.3.10.RELEASE
v3.3.11.RELEASE
v3.3.22.RELEASE
Compare Source
This is the last release of 3.3.x, as the Dysprosium line is now EoL
What's Changed
@NonNull
annotation, not JetBrain's NotNull by @simonbasle in Use@NonNull
annotation, not JetBrain's NotNull reactor/reactor-core#2808New Contributors
Full Changelog: reactor/reactor-core@v3.3.21.RELEASE...v3.3.22.RELEASE
v3.3.21.RELEASE
Compare Source
Reactor-Core
3.3.21
is part ofDysprosium-SR24
Release Train.This service release contains one bugfixe and dependency bumps (including Gradle 7.2).
🐞 Bug fixes
📖 Documentation, Tests and Build
v3.3.20.RELEASE
Compare Source
Reactor-Core
3.3.20.RELEASE
is part ofDysprosium-SR23
Release Train.This service release contains bugfixes and polishing.
✨ New features and improvements
FluxOnBackpressureBufferStrategy
reject sizes <= 0 (#2757)🪲 Bug fixes
📖 Documentation, Tests and Build
👍 Thanks to all contributors who participated to this release
@hisener
v3.3.19.RELEASE
Compare Source
Reactor-Core
3.3.19.RELEASE
is part ofDYSPROSIUM-SR22
Release Train.This service release contains a bugfix, as well as some build/ci polishing.
🪲 Bug fixes
📖 Documentation, Tests and Build
spotless
plugin introduced to check java headers (#2722, #2732)v3.3.18.RELEASE
Compare Source
Reactor-Core
3.3.18.RELEASE
is part ofDysprosium-SR21
Release Train.This minor service release contains a few test and build enhancements.
📖 Documentation, Tests and Build
72eaa4a
,2e9fb8e
)v3.3.17.RELEASE
Compare Source
Reactor-Core
3.3.17.RELEASE
is part ofDysprosium-SR20
Release Train.This service release contains a few bugfixes and enhancements.
✨ New features and improvements
29d2e3b
)🪲 Bug fixes
📖 Documentation, Tests and Build
main
, update CI (#2679)174afcc
)v3.3.16.RELEASE
Compare Source
Reactor-Core
3.3.16.RELEASE
is part ofDysprosium-SR19
Release Train.This service release contains bugfixes and a couple implementation improvements.
✨ New features and improvements
🪲 Bug fixes
📖 Documentation, Tests and Build
👍 Thanks to the following contributors that also participated to this release
@bruto1
v3.3.15.RELEASE
[Compare Sou
Configuration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.