Releases: smallrye/smallrye-mutiny
Releases · smallrye/smallrye-mutiny
0.14.0
Changelog
- #474 - Bump reactor-core from 3.4.2 to 3.4.3
- #471 - Fix a bug when Uni from JDK Future get cancelled
- #469 - Bump junit-jupiter from 5.7.0 to 5.7.1
- #468 - Bump kotlin.version from 1.4.21-2 to 1.4.30
- #467 - Add a BOM to Mutiny
- #466 - Provide a BOM
- #464 - Uni signals tracking and ordering assertion in UniAssertSubscriber
- #463 - Fix memoize missing late subscriber subscription
- #462 - Explicitly cancel the scheduled future upon user's cancellation
- #460 - Timeout not thrown when using memoize()
- #459 - Uni subscription and operators rework
- #457 - Add the ability to create a Uni from a Future or a Supplier of Future
- #456 - Uni from Future
- #454 - Fix repetition when the first emitted item is
null
- #452 - Cleanup the operator classes package layout
- #450 - New Context Propagation Support
- #449 - Multi.onItem().scan does not emit the accumulated value
- #447 - Multi.createBy().repeating().supplier() completes on empty (null) item
- #446 - Release process improvements
- #388 - Explore relying less on UniSerializedSubscriber
Breaking Changes
Change |
New API |
Justification |
class MultiItemCombineIterable moved to io.smallrye.mutiny.groups |
|
API-exposed class has been moved to a public API package, it was mistakenly located into an implementation package |
class MultiItemCombine2 ...MultiItemCombine9 moved to io.smallrye.mutiny.groups |
|
API-exposed class has been moved to a public API package, it was mistakenly located into an implementation package |
method void UniGlobalSpy<T>::subscribing(UniSubscriber<? super T>) renamed |
subscribe(UniSubscriber<? super T>) |
The method has been renamed to subscribe to align with the Multi API. |
method void UniOnCancellationSpy<T>::subscribing(UniSubscriber<? super T>) renamed |
subscribe(UniSubscriber<? super T>) |
The method has been renamed to subscribe to align with the Multi API. |
method void UniOnFailureSpy<T>::subscribing(UniSubscriber<? super T>) renamed |
subscribe(UniSubscriber<? super T>) |
The method has been renamed to subscribe to align with the Multi API. |
method void UniOnItemOrFailureSpy<T>::subscribing(UniSubscriber<? super T>) renamed |
subscribe(UniSubscriber<? super T>) |
The method has been renamed to subscribe to aligned with the Multi API. |
method void UniOnItemSpy<T>::subscribing(UniSubscriber<? super T>) renamed |
subscribe(UniSubscriber<? super T>) |
The method has been renamed to subscribe to align with the Multi API. |
method void UniOnSubscribeSpy<T>::subscribing(UniSubscriber<? super T>) renamed |
subscribe(UniSubscriber<? super T>) |
The method has been renamed to subscribe to align with the Multi API. |
method void UniOnTerminationSpy<T>::subscribing(UniSubscriber<? super T>) renamed |
subscribe(UniSubscriber<? super T>) |
The method has been renamed to subscribe to align with the Multi API. |
0.13.0
Changelog
- #443 - Fix Uni subscription when interceptors are present
- #442 - Iteration optimisations regarding Infrastructure's interceptors
- #441 - Another RevAPI update
- #440 - Maven POM descriptors cosmetics
- #435 - Update RevAPI
- #428 - Bump revapi versions
- #423 - remove subscribeOn and configure revapi properly
- #422 - Uni repeat operators do not handle predicate exceptions properly
- #421 - Provide Uni implementation to avoid abusing from the emitter
- #419 - Kotlin module
- #418 - Handle late registration of onTermination callback
- #417 - Uni/Multi
onTermination
behaviour on late arrival
- #416 - Add multi.collect().where(...) and multi.collect().when(...).
- #414 - Add helpers.{spies,test} and subscription packages in the module-info.java
- #413 - Rename collectItems() and groupItems() into collect() and group()
- #412 - Improve test utilities
- #411 - module-info missing export for io.smallrye.mutiny.subscription?
- #410 - Fix UniCreate.deferred Javadoc
- #407 - Fix typo in documentation
- #403 - Mutiny integration with Kotlin Coroutines
- #396 - Multi select / skip group
- #384 - Introduce more Uni builders
- #377 - Internal optimisations
Breaking Changes
Change |
New API |
Justification |
method AssertSubscriber<T>::<init>(Subscriber<T>) updated |
method void AssertSubscriber<T>::<init>() |
Provide a new test API |
method AssertSubscriber<T>::<init>(Subscriber<T>, long, boolean) has been removed. |
|
Provide a new test API |
method AssertSubscriber<T> AssertSubscriber<T>::create(Subscriber<T>) has been removed. |
|
Provide a new test API |
method AssertSubscriber<T> AssertSubscriber<T>::create(Subscriber<T>) has been removed. |
|
Provide the new test API, spy support has been removed, extend the class if needed. |
class MultiSelect<T> has been introduced. |
|
Addition of the new select group to Multi. If you are impacted by such a change, we recommend extending AbstractMulti instead of implementing Multi directly. |
class MultiSkip<T> has been introduced. |
|
Addition of the new skip group to Multi. If you are impacted by such a change, we recommend extending AbstractMulti instead of implementing Multi directly. |
method MultiCollect<T> Multi<T>::collect() has been introduced. |
|
Replace the collectItems group. If you are impacted by such a change, we recommend extending AbstractMulti instead of implementing Multi directly. |
method MultiGroup<T> Multi<T>::group() has been introduced. |
|
Replace the groupItems group. If you are impacted by such a change, we recommend extending AbstractMulti instead of implementing Multi directly. |
method MultiSelect<T> Multi<T>::select() has been introduced. |
|
New select group, replace multi.transform().first/test/filter . If you are impacted by such a change, we recommend extending AbstractMulti instead of implementing Multi directly. |
method MultiSkip<T> Multi<T>::skip() has been introduced. |
|
|
New skip group, replace multi.transform().skipX(...) . If you are impacted by such a change, we recommend extending AbstractMulti instead of implementing Multi directly. |
|
|
method Multi<T> Multi<T>::toHotStream() has been introduced. |
|
New method to create a hot stream, replace multi.transform().toHotStream() . If you are impacted by such a change, we recommend extending AbstractMulti instead of implementing Multi directly. |
method Multi<T> Multi<T>::subscribeOn(Executor) has been removed. |
runSubscriptionOn(...) |
Remove the deprecated subscribeOn method, use runSubscriptionOn instead. |
method Uni<T> Uni<T>::subscribeOn(Executor) has been removed. |
runSubscriptionOn(...) |
Remove the deprecated subscribeOn method, use runSubscriptionOn instead. |
0.12.5
Changelog
- #402 - Fix the website deployment
- #401 - Upgrade the website version on release
- #400 - Write a getting started guide about events, invoke and call
- #399 - Website/docs - add a guide that explains the difference between "invoke" and "call"
- #398 - Clarify and verify the semantic of the combination, merge and concatenation of none or one upstream.
- #397 - Multi.createBy() and single upstream
- #391 - Bump smallrye-parent from 23 to 25
- #390 - Mention Red Hat sponsoring and privacy policy
- #389 - Fix the site CI
- #387 - New web site
- #386 - Fix potential deadlock in the SwitchableSubscriptionSubscriber
- #385 - Specialised Uni from item builders
- #382 - Remove UniSerializedSubscriber isCancelledOrDone
- #381 - Bump smallrye-config from 1.9.3 to 1.10.0
- #379 - Refactor to UniSubscriber
- #378 - Do not trigger onCancellation() when the stream has already completed
- #376 - Fix documentation typos
- #375 - Uni.combine().all().unis(Collections.emptyList()).combinedWith(list -> null)
- #374 - Optimize MultiFilterOp on the hot path
- #373 - Allow Multi creation from publishers that are assumed to be TCK-compliant
- #372 - HalfSerializer onNext(): simplify the entry condition
- #371 - SafeSubscriber: move the upstream subscription to a regular field
- #370 - Clarify what happens when the supplier is null
- #369 - UniCreate.item(Supplier) javadoc wrong statement
- #357 - Various cleanups
- #356 - Initial configuration of revapi to detect API incompatibility.
- #145 - New documentation
Breaking Changes
method <T> io.smallrye.mutiny.helpers.Subscriptions.SingleItemSubscription<T> io.smallrye.mutiny.helpers.Subscriptions::single(org.reactivestreams.Subscriber<T>, T)
updated to method <T> org.reactivestreams.Subscription io.smallrye.mutiny.helpers.Subscriptions::single(org.reactivestreams.Subscriber<T>, T)
: SingleItemSubscription should not be exposed, and should be used as a regular Subscription
parameter void io.smallrye.mutiny.helpers.spies.UniGlobalSpy<T>::subscribing(===io.smallrye.mutiny.operators.UniSerializedSubscriber<? super T>===)
updated to parameter void io.smallrye.mutiny.helpers.spies.UniGlobalSpy<T>::subscribing(===io.smallrye.mutiny.subscription.UniSubscriber<? super T>===)
: subscribing(subscriber) is a protected method that is not used by regular consumers of the Mutiny public API
parameter void io.smallrye.mutiny.helpers.spies.UniOnCancellationSpy<T>::subscribing(===io.smallrye.mutiny.operators.UniSerializedSubscriber<? super T>===)
updated to parameter void io.smallrye.mutiny.helpers.spies.UniOnCancellationSpy<T>::subscribing(===io.smallrye.mutiny.subscription.UniSubscriber<? super T>===)
: subscribing(subscriber) is a protected method that is not used by regular consumers of the Mutiny public API
parameter void io.smallrye.mutiny.helpers.spies.UniOnFailureSpy<T>::subscribing(===io.smallrye.mutiny.operators.UniSerializedSubscriber<? super T>===)
updated to parameter void io.smallrye.mutiny.helpers.spies.UniOnFailureSpy<T>::subscribing(===io.smallrye.mutiny.subscription.UniSubscriber<? super T>===)
: subscribing(subscriber) is a protected method that is not used by regular consumers of the Mutiny public API
parameter void io.smallrye.mutiny.helpers.spies.UniOnItemOrFailureSpy<T>::subscribing(===io.smallrye.mutiny.operators.UniSerializedSubscriber<? super T>===)
updated to parameter void io.smallrye.mutiny.helpers.spies.UniOnItemOrFailureSpy<T>::subscribing(===io.smallrye.mutiny.subscription.UniSubscriber<? super T>===)
: subscribing(subscriber) is a protected method that is not used by regular consumers of the Mutiny public API
parameter void io.smallrye.mutiny.helpers.spies.UniOnItemSpy<T>::subscribing(===io.smallrye.mutiny.operators.UniSerializedSubscriber<? super T>===)
updated to parameter void io.smallrye.mutiny.helpers.spies.UniOnItemSpy<T>::subscribing(===io.smallrye.mutiny.subscription.UniSubscriber<? super T>===)
: subscribing(subscriber) is a protected method that is not used by regular consumers of the Mutiny public API
parameter void io.smallrye.mutiny.helpers.spies.UniOnSubscribeSpy<T>::subscribing(===io.smallrye.mutiny.operators.UniSerializedSubscriber<? super T>===)
updated to parameter void io.smallrye.mutiny.helpers.spies.UniOnSubscribeSpy<T>::subscribing(===io.smallrye.mutiny.subscription.UniSubscriber<? super T>===)
: subscribing(subscriber) is a protected method that is not used by regular consumers of the Mutiny public API
parameter void io.smallrye.mutiny.helpers.spies.UniOnTerminationSpy<T>::subscribing(===io.smallrye.mutiny.operators.UniSerializedSubscriber<? super T>===)
updated to parameter void io.smallrye.mutiny.helpers.spies.UniOnTerminationSpy<T>::subscribing(===io.smallrye.mutiny.subscription.UniSubscriber<? super T>===)
: subscribing(subscriber) is a protected method that is not used by regular consumers of the Mutiny public API
parameter void io.smallrye.mutiny.operators.AbstractUni<T>::subscribing(===io.smallrye.mutiny.operators.UniSerializedSubscriber<? super T>===)
updated to parameter void io.smallrye.mutiny.operators.AbstractUni<T>::subscribing(===io.smallrye.mutiny.subscription.UniSubscriber<? super T>===)
: subscribing(subscriber) is a protected method that is not used by regular consumers of the Mutiny public API
0.11.0
Major changes
Complete changelog
- #355 - Generator-based Multi builder
- #353 - Fix mistake in JavaDocs of ExecutorConfiguration
- #352 - Move test subscribers to the public API
- #351 - Implement batching with maximumDelay
- #349 - onOverflow invoke / call
- #348 - Fix potential invalid request (0) in the SkipOperator
- #347 - Missing invoke and call methods in the
onOverflow()
group
0.10.1
Major changes
Complete changelog
- #346 - Fix CI cache
- #345 - Fix Uni memoization infinite drain loop bug
0.10.0
Major changes
Complete changelog
- #337 - Avoid requesting individual items if the first request in requesting Long.MAX
- #336 - Pluggable ThreadContext from the context propagation interceptors
- #334 - Bump mockito-core from 3.5.13 to 3.5.15
- #333 - Bump smallrye-config from 1.9.1 to 1.9.2
- #330 - Homogenise method names in the AssertSubscriber and the UniAssertSubscriber
- #329 - Fix a race condition between onSubscribe / cancel / on{Item,Failure}
- #327 - Add tests verifying the correctness of inner merge and concat when the emission are done on different threads
- #325 - Missing upstream cancellation on back pressure failure
- #324 - Uni.replaceWithNull and UniOnFailure.recoverWithNull
- #323 - Add support for onItem().failWith
- #318 - overload transform / transformToUni / transformToMulti
- #317 - recoverWithNull() and replaceWithNull()
- #313 - Memoization group
- #312 - Alternative design for UniCache
- #231 - Provide the possibility to invalidate a cached Uni
0.9.0
Major changes
Complete changelog
- #316 - Mark spies as an experimental API
- #315 - Synchronize the ConnectableProcessor onComplete and onError to avoid race condition on state
- #314 - Do not create Exception on the hot path as stack trace collection is very expensive
- #311 - New Uni.replaceWith shortcuts
- #310 - Make item collection optional in MultiOnItemSpy
- #306 - Spies
- #304 - Support for custom Uni/Multi operators
- #303 - Deprecate MultiOnEvent and UniOnEvent
- #302 - UniRetry and MultiRetry now tests the predicate from onFailure()
- #301 - UniRetry and MultiRetry with Backoff and Predicate testing.
- #290 - Uni.replace()
- #286 - Deprecate MultiOnEvent and UniOnEvent