Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update dependency io.projectreactor:reactor-core to v3.4.12 #176

Closed
wants to merge 1 commit into from

Conversation

ghost
Copy link

@ghost ghost commented Sep 14, 2021

This PR contains the following updates:

Package Update Change
io.projectreactor:reactor-core minor 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

New Contributors

Full Changelog: reactor/reactor-core@v3.4.11...v3.4.12

v3.4.11

Compare Source

Reactor-Core 3.4.11 is part of 2020.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.

⚠️ Update considerations and deprecations

  • Backtrace format has changed for cases where exception traverses multiple chains (#​2780)

✨ New features and improvements

  • Prevent unnecessary duplicated lines in backtraces (#​2780)

🐞 Bug fixes

  • SwitchOnFirst better tracks in/out premature close(#​2794)
  • ConcatArray: avoid next subscription if cancelled (#​2791)
  • from 3.3.x:
    • Mono.create sink now discards if emitting after cancel (#​2771)

📖 Documentation, Tests and Build

👍 Thanks to all contributors who participated to this release

@​rs017991

v3.4.10

Compare Source

Reactor-Core 3.4.10 is part of 2020.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.

⚠️ Update considerations and deprecations

  • Flux.replay underlying implementation doesn't support 0-size anymore (which was illogical in the first place)
    • For now, the operator transparently translates such calls to Flux.publish() instead (#​2741)
  • Align Mono#share() behavior with Flux#share, split sink impl out (#​2756)
    • Previously the Disposable obtained by calling mono.share().subscribe() (and that variant only) would terminate/cancel the whole mono.share() for all its subscribers. now this is an individual subscription, much like .subscribe(v -> {}) for instance.
    • the old behavior can still be obtained by calling toProcessor() and explicitly turning the source Mono into a MonoProcessor instead of sharing it, although the whole approach is deprecated.

✨ New features and improvements

  • from 3.3.x:
    • Have FluxOnBackpressureBufferStrategy reject sizes <= 0 (#​2757)

🐞 Bug fixes

  • Rework FluxReplay to avoid hanging, but reject 0 size (#​2741)
  • Align Mono#share() behavior with Flux#share, split sink impl out (#​2756)
  • Fix bad switchOnFirst state transition leading to dropped error (#​2768)
  • from 3.3.x:
    • [reactor-test] Fix consumeWhile+expectRecorded* skipping signal (#​2764)
    • In FluxIterable, defer hasNext exceptions from isEmpty to poll to protect against iterators that throw in hasNext (#​2766)

📖 Documentation, Tests and Build

  • Fix onDiscard/onErrorContinue javadoc position in Flux/Mono (#​2762)
  • [doc] remove stray mid-sentence newlines (#​2763)
  • from 3.3.x:

👍 Thanks to all contributors who participated to this release

@​hisener, @​KATKrazy, @​keturn

v3.4.9

Compare Source

Reactor-Core 3.4.9 is part of 2020.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

  • reworks FluxConcatArray to eliminate unexpected thread switch (#​2742)
  • from 3.3.x
    • Fix hanging of windoUntil(cutBefore=false) by replenishing (#​2749)

📖 Documentation, Tests and Build

  • Clarify behavior of collect* operators on empty sequences (#​2746)
  • from 3.3.x:
    • Polish logging: test scenario name, verbose MonoCollect logs (#​2750) 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 of 2020.0.9 Release Train (Europium SR9).

This service release contains bugfixes and new features.

⚠️ Update considerations and deprecations

  • Flux#mergeOrdered has been deprecated (#​2719)
    • this is because unlike other merge operators it would default to delaying errors
    • instead, mergeComparing has been introduced as an alternative that is more consistent with other merge operators

✨ New features and improvements

  • Add mergeComparing as fail-fast alternative to mergeOrdered (complemented with a delayError variant) (#​2719)
  • Add Mono.cacheInvalidateIf and Mono.cacheInvalidateWhen (#​2717)
    • these two new flavors of caching allow to invalidate the value inside the cache by respectively applying a Predicate on the value when a late subscriber comes in or by associating the cached value with a Mono<Void> invalidation trigger that can be externally completed

🪲 Bug fixes

  • Have groupBy replenish prefetch amount when last inner cancels (#​2737)

📖 Documentation, Tests and Build

  • [build] Parallelize slow tests in release workflow (2da73e9)
  • [chores] The copyright headers have been updated, finally taking the Pivotal acquisition by VMware into account (#​2722, #​2725, #​2729, #​2732, #​2734)
  • [polish] Tag 3min worth of tests as 'slow' (#​2738)

👍 Thanks to the following contributors that also participated to this release

@​koldat

v3.4.7

Compare Source

Reactor-Core 3.4.7 is part of 2020.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

  • Add fusionModeName static utility to Fuseable (#​2707)

📖 Documentation, Tests and Build

  • Improve Flux.any javadoc, aligning with Mono.any's (#​2703)
  • Polish OperatorDisposablesTest with RepeatedTests annotation (#​2710)
  • Explain deprecation workaround for Context#putAll(Context) (#​2721)
  • from 3.3.x:
    • Upgrade jcstress-gradle-plugin: mvn central coordinates, v0.8.11 (#​2705)
    • Upgrade gradle-enterprise-plugin to 3.6.1 (#​2705)
    • [chore] Bump AssertJ to 3.19.0, polish tests and isolate tckTest (#​2507)
    • Bump Artifactory plugin to 4.24.5 from Maven Central, Add Spring release repo for snapshot builds (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 of 2020.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.

⚠️ Update considerations and deprecations

  • MonoDelay doesn't produce a OverflowException 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 of Monos).
    • instead, it will now onNext+onComplete immediately upon first request
    • The old behavior of failing early is probably counterintuitive to most people, but in case someone relies on it it can be opted back in by using an undocumented Context key, reactor.core.publisher.MonoDelay.failOnBackpressure with value true. 

✨ New features and improvements

  • Add LIFTER Scannable attribute (#​2669)
  • Polish FluxRetry error message when times < 0 (#​2694)
  • Avoid backpressure error with tiny MonoDelay/emit on 1st request (#​2686)
  • from 3.3.x:
    • Add StepVerifierOptions.copy(), withVirtualTime uses default vts (#​2688)
    • Polish corner cases in FluxLimitRequest, complete fast on cap=0 (#​2699, 29d2e3b)

🪲 Bug fixes

  • Prevent infinite recursion of MonoMaterialize#request (#​2676)
  • Improve switchOnFirst race-safety by using single volatile state (#​2671)
  • Synchronize SinkManyBestEffort add/remove/termination (#​2695)
  • [reactor-test] ColdTestPublisher now increments subscriberCount before completing (#​2700)
  • from 3.3.x:
    • GroupBy request 1 more group when last active group is cancelled (#​2681)
    • Always terminate new subscribers when ColdTestPublisher is done (#​2697)

📖 Documentation, Tests and Build

  • Use contextWrite(f) rather than subscriberContext(f) in docs (#​2685)
  • from 3.3.x:
    • Renamed default branch to main, update CI (#​2679)
    • [polish] Set main class earlier in buildSrc/JmhExecTask (174afcc)
    • Make MonoCollectTest logs less verbose, remove discard fail logs (#​2687)

👍 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 of 2020.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.

⚠️ Update considerations and deprecations

  • from 3.3.x:
    • Remove Fuseable from MonoSingle[Mono|Callable] (#​2668)

✨ New features and improvements

  • from 3.3.x:
    • MonoDelayUntil now subscribes each trigger from the last trigger (#​2644)
    • Make Mono.then execution model more deterministic (#​2604)

🪲 Bug fixes

  • from 3.3.x:
    • Account for source disconnection in refCountGrace (#​2652)
    • Avoid infinite discard loop on fused fromIterable/fromStream (#​2655)
    • Fix both Flux.single variants when applied to a Callable (#​2657)
    • FluxWindowWhile now drains the inner window if it is cancelled, instead of hanging (#​2651)

📖 Documentation, Tests and Build

  • Fix buffer constructor error message displaying wrong variable name (#​2658)
  • Add links to "Which operator do I need?" documentation (#​2639)
  • Clarify onErrorContinue() caveats and alternatives (#​2662)
  • from 3.3.x:
    • Removed jcenter() from build
    • Upgraded the release process to stop relying on bintray/jcenter

👍 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 of 2020.0.5 Release Train (Codename Europium).

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.

⚠️ Notable Known Issues

  • Fusion of Mono.single() over most fuseable sources causes ClassCastException => tracked in #​2663

✨ New features and improvements

  • Add Mono.cache(ttl, ttl, ttl) overload with Scheduler (#​2619)
  • Introduce mapNotNull operator (#​2638)
  • from 3.3.x:
    • Work in progress for a future public abstraction: MonoInnerProducerBase (#​2632, #​2645)

🪲 Bug fixes

  • from 3.3.x:
    • Fix Mono.publish(Function) not propagating onError (#​2625)
    • Fix flatMap race favoring onComplete over onError (#​2628)
    • Prevent ordered merge hanging due to badly sized queue (#​2631)
    • Fix a leak in Mono.singleOrEmpty thanks to MonoInnerProducerBase (#​2632)
    • ⚠️ Mono.fromSupplier(() -> null).single() previously failed to produce an onError(NoSuchElementException) (#​2635)
      • instead it completed empty
      • in fact, any source Mono that was implementing Callable (which includes fromSupplier, fromCallable, fromRunnable to some extent...) would exhibit the wrong behavior
      • This is now fixed via #​2648.
      • 🐛 known issue: the same bug is still manifesting in Flux#single, which is going to be fixed by #​2657 in the next release

📖 Documentation, Tests and Build

  • Fix wrong param name in Sinks.Many#limit(Duration) javadoc (#​2617)
  • Fix Sinks.unsafe() snippet in advancedFeatures.adoc (#​2622)
  • from 3.3.x:
    • Extend RaceTestUtils to support N runnables (#​2601)
    • Add a RaceTestUtils.race variant with timeout parameter (#​2627)
    • Improve misleading javadoc of concatMapXxx prefetch parameter (#​2614)

👍 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 of 2020.0.4 release train (Europium SR4).

This is a maintenance release which also inherit changes from 3.3.14.RELEASE.

✨ New features and improvements

  • Provide a reworked FluxSwitchMap with no queue, allows switchMap/switchOnNext with prefetch=0 (#​2596)
  • from 3.3.14.RELEASE:
    • fix #​2569 Enrich message of elementAt's IndexOutOfBoundsException
    • Add hook to wrap Queues (#​2566)

🪲 Bug fixes

  • Protect against sparse array on subscribe (#​2557)
  • Rework how stepName() is computed (#​2551)
  • Reorder repeatWhen onComplete request vs signalling (#​2579)
  • from 3.3.14.RELEASE:
    • Metrics should prioritize closest tag in case of duplicates (#​2560)
    • Rework how stepName() is computed (backport #​2551 in 3.3.14.RELEASE)
    • skipUntil conditional subscriber logic inconsistent (#​2578)
    • Fix OverflowException in MultiSubscriptionSubscriber, notably affecting concatMap (#​2576)

📖 Documentation, Tests and Build

  • [reactor-test] Let TestLogger be configured with simplified format (#​2538)
  • [doc] Format Consumer in backpressure doc (#​2590)
  • from 3.3.14.RELEASE:
    • Fix some metrics tests to avoid implicit use of globalRegistry (#​2575)
    • [build] Enforce NoHTTP with plugin and relevant exclusions (#​2574)
    • [build] Document the Java 8/9 stubs in Core's build file (#​2573)
    • Fix a few return types in Mono javadocs (#​2581)
    • Amend SerializedSubscriberTest to accept rare double discard (#​2592)
    • Improve explanations in Retry javadoc (#​2609)

👍 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 of 2020.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

  • fix #​2494 Clarify Mono.thenReturn javadoc
  • fix #​2536 Remove references to old retry utils

👍 Thanks to the following contributors that also participated to this release

@​bbukaty

v3.4.1

Compare Source

Reactor-Core 3.4.1 is part of 2020.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 and 3.3.12.RELEASE are also included.

⚠️ Update considerations and deprecations

  • fix #​2459 Add a composite of all source as cause to firstWithValue error
    • this was overlooked when merging the new operator in 3.4.0, so we decided it was fresh enough that the slight behavior change would be acceptable

✨ New features and improvements

  • fix #​2195 Add timed() operator
    • this new operator exposes various timing information on a Timed wrapper object, allowing richer output of Duration compared to elapsed() and timestamp() (which use Tuple2 and Long)
  • [reactor-test] fix #​2269 Add test util to capture logs in early-established loggers (see also #​2512)
    • LoggerUtils allows the early installation of a Logger factory that will forward to a classic factory AND let the user activate a logging indirection later on during tests
    • this allows a TestLogger to capture internal logs from operators that were classloaded earlier than the unit test
  • [reactor-test] fix #​1518 Add cold variants of TestPublisher
    • cold variants better behave wrt backpressure and can replay to multiple subscribers at various stages
    • the old behavior (of ignoring requested amount) is still available through a createColdNonCompliant variant
  • [reactor-test] When asserting Context in StepVerifier, say from which operator the asserted Context was taken (#​2518)

🪲 Bug fixes

  • Make RetryWhenMainSubscriber#onError's calls serial (#​2499, Fixes #​2488)
  • fix #​2513 ReplayProcessor now correctly pass nanos to buffer, not ms
  • from 3.3.12.RELEASE:
    • fix #​2519 Cancel propagation on empty collectXxx
  • from 3.2..22.RELEASE:
    • fix #​2498 Exception thrown in Flux.handle causes hanging in fused case

📖 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 of 2020.0.0 Release Train (codename Europium).

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).

⚠️ Known Issues

  • the 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 to initCause in 3.4.1 (and properly document the behavior, setting it in stone) => #​2459

⚠️ Update considerations

⚠️ 🗑️ Removals
  • Schedulers deprecated back in 3.3 have been removed (WorkQueueProcessor and TopicProcessor, #​2208)
  • Previously deprecated methods and types have been removed (see #​2277)
⚠️ ⌛ Deprecations
  • 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)
    • see the main focus section below for more details
  • [api-change] MonoProcessor is made abstract and deprecated, to be removed in 3.5 (#​2188, #​1053 / f04bede, #​2431)
    • see the main focus section below for more details
  • Flux.subscribe(Consumer<Subscription>) variant is deprecated, to be removed in 3.5 (#​1825)
  • first is deprecated to be renamed to firstWithSignal (see firstWithValue in the new features below). The old deprecated method will be removed in 3.5 (#​2173)
  • Context changes (#​2282):
    • Operators exposing the Context at points where there is no use attempting to use write methods are deprecated and will be removed in 3.5 (#​2293, 7d6c862)
      • these all receive a ContextView-based variant (see new features below)
      • deferWithContext => deferContextual with a ContextView
      • Signal.getContext() => Signal.getContextView()
    • Operators modifying the Context are renamed to be clearer. Old names are deprecated and will be removed in 3.5 (see new feature below, #​2148, eed93d6)
⚠️ ♻️ Behavior Changes
  • Most operators that take a Duration and convert it to milliseconds now use nanosecond precision (#​1734)
  • Operators.onErrorDropped no longer throws, but only logs the dropped exception (#​1431)
  • When an 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)
  • Vanilla implementations of Scheduler now initiate their backing infrastructure and apply Schedulers decorator in start() rather than the constructor (#​1778)
    • start() is also now implicitly called when instantiating a Scheduler via the Schedulers.Factory
    • Allows to avoid this leaking from constructor
    • ⚠️ Custom implementations should similarly initialized and optionally decorate in start()
  • EmitterProcessor with a full backpressure queue no longer blocks until data is requested, but fails fast (#​2049)
  • Metrics changes
    • Change in how metric meters/tags are named in accordance with the name operator (#​1928, #​2302)
      • flow tag has been removed entirely
      • using the name({String}) operator will replace reactor. prefix in meter names with the user-provided {String}.
      • ⚠️ using custom tags via the tags(String...) operator, but not name(String) still creates a sparse set of tags in the application which could be rejected by some metrics backend
    • Change name of some meters that used to include (redundant) unit names (#​1807)
      • reactor_requested_requested_amount => {name}_requested
      • reactor_subscribed_subscribers => {name}_subscribed
      • notice these meters also take the user-provided {name} into account from the above change
    • Differentiate empty vs valued sequences in metrics via the status tag, introducing completedEmpty value (#​1803)
⚠️ ✨ Main focus: Sinks

Sinks are a new API constructed to replace the FluxProcessor and MonoProcessor APIs, which have been deprecated (#​2431, #​1053).

We distinguish Sinks.Many<T> (a Flux-like sink), Sinks.One<T> (a Mono-like sink) and Sinks.Empty (a Mono<Void>-like sink).

These sinks are constructed through specs under the Sinks class. They expose a two-faced API:

  • methods starting with tryEmit are atomic, never throw (#​2319, #​2329, #​2336, #​2426) and immediately return an EmitResult enum (originally named Emission) indicating various variations of success or error (#​2319, #​2338)
  • methods starting with emit attempt to provide an easier facade over the above, take an EmitFailureHandler 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 an emitError when parallel usage is detected (#​2365) but by using the EmitFailureHandler 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 (or asMono(), as relevant) for them to be passed to downstream and subscribed, and also expose a bit of state through currentSubscriberCount() getter (#​2372) and by being Scannable (at a minimum for TERMINATED and CANCELLED attributes, #​2394).

Compared to existing processors, most flavors have a sink equivalent except DirectProcessor, with two close cousins under Sinks.many().multicast() (#​2392, #​2451):

  • directAllOrNothing will ignore tryEmitNext 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)
  • All Scannable operators answer the new Attr.RUN_STYLE attribute with a RunStyle enum (#​2058, #​2123)
    • the enum allows to identify operators that run synchronously. Attribute is accessible both at Publisher and Subscriber level
    • RunStyle.SYNC guarantees the operator doesn't change threads
    • RunStyle.ASYNC indicates the operator MAY change threads
    • RunStyle.UNKNOWN (the default) indicates there's no available information (eg. due to the operator wrapping an arbitrary Publisher)
  • A Reactor-wide Micrometer MetricsRegistry other than the global one can now be configured (#​2253, 64fd556)
    • Use Metrics.MicrometerConfiguration#useRegistry for that purpose
    • The above will attempt to load Micrometer classes, so Micrometer MUST be on the classpath
  • New reactive context features (#​2282):
    • Context now extends a simplified ContextView API which only expose the read methods (#​2279, #​2293)
      • the goal is to avoid exposing a seemingly writable (copy-on-write) Context when the only meaningful operations are read operations
      • exposed in Signal#getContextView(), deferContextual operator (variant to deferWithContext) and new transformDeferredContextual operator
    • Added transformDeferredContextual operator that takes a BiFunction, allowing to access the ContextView in the transformation (#​2280 then renamed in #​2293)
      • Mono.subscribe(valueConsumer, errorConsumer, ...) error Consumer now gets notified of exceptions thrown by the value Consumer (#​1995)
    • Renamed Context operators with clearer names (#​2148, eed93d6)
      • Mono.subscriberContext() is not aliased, we now advise to use Mono.deferContextual(Mono::just) to get the exact same behavior
      • subscriberContext(Context) is replaced by contextWrite(ContextView) (notice the use of ContextView)
      • subscriberContext(Function) is replaced by contextWrite(Function)
  • Added method to snapshot factory+global schedulers (#​2325, #​2326, f9c7993)
    • use Schedulers.setFactoryWithSnapshot(Factory) to get a Snapshot object while replacing the Factory
    • reset the old factory by using resetFrom(Snapshot)
    • this is used by the reactor-test VirtualTimeScheduler to reset previously customized factories
  • The ParallelFlux.subscribe(array) method is now public to allow delegation in wrappers (#​2328)
  • The Retry object driving #retryWhen operator can now store user-provided state in the form of a ContextView, which is exposed through RetrySignal (#​2312, bd8db8a)
  • The GroupedFlux#key() method is now marked as @NonNull (#​2397)
  • Added firstWithValue factory operator (#​2173, 41c937f)
    • like first, it let multiple sources compete
    • except it prioritizes valued sources: empty sources are considered irrelevant
    • if no source completes with a value, a NoSuchElementException is thrown

📈 Improvements

  • Have push(emitter) delegate to push(emitter, backpressure) (#​2177)
  • Lazily instantiate exception in Mono#repeatWhenEmpty (#​2221)
  • log() will log context access at FINE(ST) level and now uses the more correct currentContext prefix (#​2220)
  • Mono#materialize() now takes into account that the source IS a Mono, so it doesn't cancel() it when materializing its onNext (#​2424, 765bfe8)
    • this could be considered a behavior change, but the previous behavior was unnecessary. cancelling the result of the materialization still propagates to the source.

📖 Documentation, Tests and Build

  • [doc] fix #​2170 Make parallel runOn methods doc consistent about work stealing
  • [doc] Document Android 21 desugaring options (#​2232)
  • [build] #​2237 remove most compilation warnings
  • [doc] fix #​2136 Turn discard/errorMode javadoc tags into plain paragraphs
  • [build] fix #​2400 use a different name for the jcstress jar
  • [build] Remove compilation warnings related to jsr305 (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.22.RELEASE

Compare Source

This is the last release of 3.3.x, as the Dysprosium line is now EoL

What's Changed

New 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 of Dysprosium-SR24 Release Train.

This service release contains one bugfixe and dependency bumps (including Gradle 7.2).

🐞 Bug fixes

  • Mono.create sink now discards if emitting after cancel (#​2771)

📖 Documentation, Tests and Build

  • Bump to Gradle 7.2, polish build and upgrade plugins/libraries (#​2775)
  • Fix Module was compiled with an incompatible version of Kotlin (#​2795)
  • Bump ByteBuddy to 1.11.16, use TestKit in agent integration test (#​2776)
  • Bump ByteBuddy from 1.11.16 to 1.11.19 (#​2803)

v3.3.20.RELEASE

Compare Source

Reactor-Core 3.3.20.RELEASE is part of Dysprosium-SR23 Release Train.

This service release contains bugfixes and polishing.

✨ New features and improvements

  • Have FluxOnBackpressureBufferStrategy reject sizes <= 0 (#​2757)

🪲 Bug fixes

  • [reactor-test] Fix consumeWhile+expectRecorded* skipping signal (#​2764)
  • In FluxIterable, defer hasNext exceptions from isEmpty to poll (#​2766)
    • this one is a bit on the defensive side, protecting against iterators that throw in hasNext

📖 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 of DYSPROSIUM-SR22 Release Train.

This service release contains a bugfix, as well as some build/ci polishing.

🪲 Bug fixes

  • Fix hanging of windoUntil(cutBefore=false) by replenishing (#​2749)

📖 Documentation, Tests and Build

  • [ci] Mark 3 min worth of tests as "slow" => executed in parallel job (#​2738)
  • [chores] All copyright headers have been updated, and the spotless plugin introduced to check java headers (#​2722, #​2732)
  • [test] verbosity of some tests has been reduced, and logging of scenario names improved (#​2750)

v3.3.18.RELEASE

Compare Source

Reactor-Core 3.3.18.RELEASE is part of Dysprosium-SR21 Release Train.

This minor service release contains a few test and build enhancements.

📖 Documentation, Tests and Build

  • Upgrade jcstress-gradle-plugin: mvn central coordinates, v0.8.11 (#​2705)
  • Upgrade gradle-enterprise-plugin to 3.6.1 (#​2705)
  • [chore] Bump AssertJ to 3.19.0, polish tests and isolate tckTest (#​2706)
  • Bump Artifactory plugin to 4.24.5 from Maven Central, Add Spring release repo for snapshot builds(72eaa4a, 2e9fb8e)

v3.3.17.RELEASE

Compare Source

Reactor-Core 3.3.17.RELEASE is part of Dysprosium-SR20 Release Train.

This service release contains a few bugfixes and enhancements.

✨ New features and improvements

  • Add StepVerifierOptions.copy(), withVirtualTime uses default vts (#​2688)
  • Polish corner cases in FluxLimitRequest, complete fast on cap=0 (#​2699, 29d2e3b)

🪲 Bug fixes

  • GroupBy request 1 more group when last active group is cancelled (#​2681)
  • Always terminate new subscribers when ColdTestPublisher is done (#​2697)

📖 Documentation, Tests and Build

  • Renamed default branch to main, update CI (#​2679)
  • [polish] Set main class earlier in buildSrc/JmhExecTask (174afcc)
  • Make MonoCollectTest logs less verbose, remove discard fail logs (#​2687)

v3.3.16.RELEASE

Compare Source

Reactor-Core 3.3.16.RELEASE is part of Dysprosium-SR19 Release Train.

This service release contains bugfixes and a couple implementation improvements.

⚠️ Update considerations and deprecations

  • Remove Fuseable from MonoSingle[Mono|Callable] (#​2668)

✨ New features and improvements

  • MonoDelayUntil now subscribes each trigger from the last trigger (#​2644)
  • Make Mono.then execution model more deterministic (#​2604)

🪲 Bug fixes

  • Account for source disconnection in refCountGrace (#​2652)
  • Avoid infinite discard loop on fused fromIterable/fromStream (#​2655)
  • Fix both Flux.single variants when applied to a Callable (#​2657)
  • FluxWindowWhile now drains the inner window if it is cancelled, instead of hanging (#​2651)

📖 Documentation, Tests and Build

  • Removed jcenter() from build
  • Upgraded the release process to stop relying on bintray/jcenter

👍 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.


  • If you want to rebase/retry this PR, check this box.

@ghost ghost force-pushed the renovate/reactor-core.version branch from ca1e01a to 5976b0e Compare September 15, 2021 05:55
@ghost ghost force-pushed the renovate/reactor-core.version branch from 5976b0e to 87bdc94 Compare October 14, 2021 01:58
@ghost ghost changed the title Update dependency io.projectreactor:reactor-core to v3.4.10 Update dependency io.projectreactor:reactor-core to v3.4.11 Oct 14, 2021
@ghost ghost changed the title Update dependency io.projectreactor:reactor-core to v3.4.11 Update dependency io.projectreactor:reactor-core to v3.4.11 - autoclosed Nov 11, 2021
@ghost ghost closed this Nov 11, 2021
@ghost ghost deleted the renovate/reactor-core.version branch November 11, 2021 01:21
@ghost ghost changed the title Update dependency io.projectreactor:reactor-core to v3.4.11 - autoclosed Update dependency io.projectreactor:reactor-core to v3.4.11 Nov 13, 2021
@ghost ghost restored the renovate/reactor-core.version branch November 13, 2021 05:31
@ghost ghost reopened this Nov 13, 2021
@ghost ghost force-pushed the renovate/reactor-core.version branch from 87bdc94 to 74ad0a8 Compare November 14, 2021 06:48
@ghost ghost changed the title Update dependency io.projectreactor:reactor-core to v3.4.11 Update dependency io.projectreactor:reactor-core to v3.4.12 Nov 14, 2021
@juanchib juanchib closed this Nov 26, 2021
@ghost
Copy link
Author

ghost commented Nov 26, 2021

Renovate Ignore Notification

As this PR has been closed unmerged, Renovate will now ignore this update (3.4.12). You will still receive a PR once a newer version is released, so if you wish to permanently ignore this dependency, please add it to the ignoreDeps array of your renovate config.

If this PR was closed by mistake or you changed your mind, you can simply rename this PR and you will soon get a fresh replacement PR opened.

@ghost ghost deleted the renovate/reactor-core.version branch November 26, 2021 13:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants