Releases: smallrye/smallrye-mutiny
Releases · smallrye/smallrye-mutiny
0.16.0
Changelog
- #531 - Fix incomplete AssertJ API usage
- #530 - Change the default infrastructure pool to be a cached thread pool instead of the fork/join
- #528 - Update MicroProfile Reactive Streams Operators to version 2.0
- #526 - New approach for the awaitItems method in the AssertSubscriber
- #525 - Multiple upstream requests in the multi.collect().last() operator
- #524 - Fix duplicate items issue when create a multi from a collection
- #522 - Bump mockito-core from 3.8.0 to 3.9.0
- #520 - Fix race condition when waiting for items in the MultiGroupTest
- #518 - Fix race condition when waiting for items in the MultiGroupTest
- #517 - #516 Let MultiMerge.streams accept Iterable<? extends Publisher>
- #516 - Discrepancy between MultiConcat and MultiMerge
Breaking Changes
parameter <T> io.smallrye.mutiny.Multi<T> io.smallrye.mutiny.groups.MultiMerge::streams(===java.lang.Iterable<org.reactivestreams.Publisher<T>>===)
updated to parameter <T> io.smallrye.mutiny.Multi<T> io.smallrye.mutiny.groups.MultiMerge::streams(===java.lang.Iterable<? extends org.reactivestreams.Publisher<T>>===)
: Align concatenation and merge APIs
0.15.0
Changelog
- #514 - Delay the start of the "ticks" after the first request.
- #513 - The JUnit5 RS TCK support does not handle skipping
- #512 - TCK: support TestNG SkipException
- #511 - Break dependency to mutiny-test-utils
- #509 - Bump kotlin.version from 1.4.31 to 1.4.32
- #508 - Bump revapi-maven-plugin from 0.13.5 to 0.13.6
- #507 - Fix a request / consume race when using .request(x).awaitNextItems(x)
- #506 - Bump smallrye-common-annotation from 1.5.0 to 1.6.0
- #505 - Configure CI to run the build with Java 15 and 16 (EA).
- #503 - Bump reactor-core from 3.4.3 to 3.4.4
- #502 - Bump dokka-maven-plugin from 1.4.20-dev-65 to 1.4.30
- #500 - Bump microprofile-context-propagation-api from 1.1 to 1.2
- #498 - Allow configuring a delay between two repetitions
- #497 - Rename occurrences of the master branch to main
- #496 - Rename the master branch to main
- #494 - Enhance testing utilities
- #493 - keep pushback intact on Multi.groupItems().intoLists().of(size,duration)
- #489 - Add Uni.createFrom().resourceFromUni
- #488 - Should Uni.onItemOrFailure propagate composite exceptions?
- #487 - Uni.replaceWithVoid
- #486 - Uni lacks replacing with void
- #485 - Implement Multi.createFrom().emitter(Consumer, int buffSize)
- #480 - Fix doc typos
- #479 - Fix doc typos
- #477 - Fix waiting for artefacts
- #476 - GitHub Action website deployment workflow dispatch
- #475 - Migrate Ruby GH Action
- #472 - Uni and Multi log operators
- #465 - Add possibility to wait for the next event testing utils
- #395 - Allows creation a Multi with an emitter and a buffer size
- #307 - Add a Multi.createFrom().resource method with a Supplier
- #141 - Implement logging operator
Breaking changes
Change |
New API |
Justification |
method Multi<T> Multi<T>::log() has been introduced |
|
New log operator |
method Multi<T> Multi<T>::log(String s) has been introduced |
|
New log operator |
method Uni<T> Uni<T>::log() has been introduced |
|
New log operator |
method Uni<T> Uni<T>::log(String s) has been introduced |
|
New log operator |
0.15.0.RC1
Pre-release to validate Reactive Streams Operators 2.0.
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