Skip to content

Releases: smallrye/smallrye-mutiny

1.8.0

09 Nov 13:31
Compare
Choose a tag to compare

Changelog

  • #1111 - Bump reactor-core from 3.4.24 to 3.5.0
  • #1104 - #1103 Refactor Multi.toFlow() to avoid blocking - Mutiny1
  • #1102 - Bump smallrye-build-parent from 36 to 37
  • #1097 - Update the Reactive Streams Operators 3.x implementation (jakarta)
  • #1095 - Bump smallrye-build-parent from 36 to 37
  • #1090 - Bump mockito-core from 4.8.0 to 4.8.1
  • #1081 - Hidden Subscription checkcast scalability issue (Fixes #1080)
  • #1063 - Bump kotlin.version from 1.7.10 to 1.7.20
  • #1043 - Bump mockito-core from 4.7.0 to 4.8.0
  • #1033 - Bump smallrye-build-parent from 35 to 36
  • #1030 - Implementation of MicroProfile Reactive Streams Operators 3.x
  • #1028 - Various 1.x branch upgrades

2.0.0-milestone2

16 Sep 08:15
Compare
Choose a tag to compare
2.0.0-milestone2 Pre-release
Pre-release

Changelog

  • #1048 - Bump logback-classic from 1.4.0 to 1.4.1
  • #1047 - Bump reactor-core from 3.4.22 to 3.4.23
  • #1042 - Bump mockito-core from 4.7.0 to 4.8.0
  • #1037 - Bump versions-maven-plugin from 2.11.0 to 2.12.0
  • #1032 - Bump smallrye-build-parent from 35 to 36
  • #1031 - Run the Reactive Streams Operators TCK again
  • #1024 - Bump logback-classic from 1.2.11 to 1.4.0
  • #999 - Bump junit.version from 5.8.2 to 5.9.0
  • #997 - ConcatMap operator without prefetch

Breaking Changes

Change New API Justification
.+org\.reactivestreams\..+ updated to .+java\.util\.concurrent\.Flow\..+ .+java.util.concurrent.Flow..+ Migration from the legacy Reactive Streams APIs to the Java Flow APIs

1.7.0

04 Aug 08:44
Compare
Choose a tag to compare

Changelog

  • #998 - Concatmap no prefetch – backport 1.x

2.0.0-milestone1

15 Jul 12:35
Compare
Choose a tag to compare
2.0.0-milestone1 Pre-release
Pre-release

Changelog

  • #993 - Allow for pre-releases deployment
  • #992 - Bump kotlinx-coroutines-core from 1.6.3 to 1.6.4
  • #990 - Migrate to Java Flow APIs to replace the legacy Reactive Streams API
  • #989 - Bump dokka-maven-plugin from 1.7.0 to 1.7.10
  • #988 - Bump reactor-core from 3.4.19 to 3.4.21
  • #987 - Migrate to Java Flow APIs to replace the legacy Reactive Streams API
  • #985 - Should we keep mutiny-reactive-streams-operators in this repo?
  • #984 - Misc cleanups
  • #983 - Bump kotlin.version from 1.7.0 to 1.7.10
  • #982 - Enable parallel tests for the math module
  • #981 - Removal of the reactive-streams-junit5-tck module
  • #980 - Migration of the documentation and website to MkDocs
  • #979 - Drop Sonar
  • #978 - Drop Sonar integration
  • #976 - Combined upgrades of RevAPI 0.27.0
  • #975 - Remove unused outer queue in flatmap subscriber
  • #970 - Bump testng from 7.6.0 to 7.6.1
  • #968 - Bump smallrye-common-annotation from 1.12.0 to 1.13.0
  • #967 - Bump jandex-maven-plugin from 1.2.2 to 1.2.3
  • #965 - Bump testng-engine from 1.0.2 to 1.0.4
  • #960 - Bump kotlinx-coroutines-core from 1.6.2 to 1.6.3
  • #958 - Bump dokka-maven-plugin from 1.6.21 to 1.7.0
  • #956 - Add missing decoration of Callable
  • #955 - Avoid wrapping scheduled executors
  • #953 - Bump reactor-core from 3.4.18 to 3.4.19
  • #951 - Bump kotlin.version from 1.6.21 to 1.7.0
  • #950 - Bump version.surefire.plugin from 3.0.0-M6 to 3.0.0-M7
  • #948 - Bump mockito-core from 4.6.0 to 4.6.1
  • #946 - Remove unused dependencies / plugins
  • #944 - Remove RxJava 2 support
  • #942 - Reconsider and possibly remove reactive-streams-junit5-tck
  • #941 - Bump rxjava from 3.1.4 to 3.1.5
  • #940 - Bump assertj-core from 3.23.0 to 3.23.1
  • #939 - Bump assertj-core from 3.22.0 to 3.23.0
  • #937 - Bump mockito-core from 4.5.1 to 4.6.0
  • #932 - Disable website deployment on 0.x / 1.x tags
  • #931 - Upgrade to a Java 11 baseline
  • #930 - CI configuration for 2.0 / 1.x branches
  • #929 - Drop RxJava 2 support in 2.0
  • #928 - Bump versions-maven-plugin from 2.10.0 to 2.11.0
  • #923 - Bump testng from 7.5 to 7.6.0
  • #868 - Move the website to MkDocs and adopt the Diátaxis Framework
  • #848 - Remove Java 8 from GitHub Actions workflows
  • #847 - Integrate module-info.java to the main source tree and remove moditect
  • #846 - Upgrade compilers to Java 11
  • #839 - Use Java 11 as a baseline

Breaking Changes

Change New API Justification
.+org\.reactivestreams\..+ updated to .+java\.util\.concurrent\.Flow\..+ .+java.util.concurrent.Flow..+ Migration from the legacy Reactive Streams APIs to the Java Flow APIs
.+ updated to .+ .+ Migration from the legacy Reactive Streams APIs to the Java Flow APIs
.+ updated to .+ .+ Migration from the legacy Reactive Streams APIs to the Java Flow APIs
.+ updated to .+ .+ Migration from the legacy Reactive Streams APIs to the Java Flow APIs
.+ updated to .+ .+ Migration from the legacy Reactive Streams APIs to the Java Flow APIs
.+ updated to .+ .+ Migration from the legacy Reactive Streams APIs to the Java Flow APIs
.+ updated to .+ .+ Migration from the legacy Reactive Streams APIs to the Java Flow APIs
.+ updated to .+ .+ Migration from the legacy Reactive Streams APIs to the Java Flow APIs
.+ updated to .+ .+ Migration from the legacy Reactive Streams APIs to the Java Flow APIs
.+ updated to .+ .+ Migration from the legacy Reactive Streams APIs to the Java Flow APIs
.+ updated to .+ .+ Migration from the legacy Reactive Streams APIs to the Java Flow APIs
.+ updated to .+ .+ Migration from the legacy Reactive Streams APIs to the Java Flow APIs
.+ updated to .+ .+ Migration from the legacy Reactive Streams APIs to the Java Flow APIs
.+ updated to .+ .+ Migration from the legacy Reactive Streams APIs to the Java Flow APIs
.+ updated to .+ .+ Migration from the legacy Reactive Streams APIs to the Java Flow APIs
.+ updated to .+ .+ Migration from the legacy Reactive Streams APIs to the Java Flow APIs
.+ updated to .+ .+ Migration from the legacy Reactive Streams APIs to the Java Flow APIs
.+ updated to .+ .+ Migration from the legacy Reactive Streams APIs to the Java Flow APIs
.+ updated to .+ .+ Migration from the legacy Reactive Streams APIs to the Java Flow APIs
.+ updated to .+ .+ Migration from the legacy Reactive Streams APIs to the Java Flow APIs

1.6.0

20 Jun 13:55
Compare
Choose a tag to compare

Changelog

  • #957 - 1.6.0 backports

1.5.0

22 May 18:46
Compare
Choose a tag to compare

Changelog

  • #924 - Upgrade to smallrye-common-annotation 1.12.0 with correct module info
  • #920 - Remove some lambda expressions
  • #912 - Bump reactor-core from 3.4.17 to 3.4.18
  • #910 - Bump testng-engine from 1.0.1 to 1.0.2
  • #908 - Allow to set timeout in UniCreate.future
  • #907 - Add a link to the public API / Javadocs
  • #906 - Update shortcuts.adoc to show the parenthesis of the uni.eventually shortcut
  • #905 - Context passing guide- Context.of not existing
  • #904 - Bump dokka-maven-plugin from 1.6.20 to 1.6.21
  • #903 - Bump mockito-core from 4.4.0 to 4.5.1
  • #902 - Bump nexus-staging-maven-plugin from 1.6.12 to 1.6.13
  • #895 - Upgrade to Smallrye Commons Annotations with JPMS module descriptor
  • #894 - Bump kotlinx-coroutines-core from 1.6.0 to 1.6.1
  • #893 - Bump version.surefire.plugin from 3.0.0-M5 to 3.0.0-M6
  • #892 - Bump kotlin.version from 1.6.10 to 1.6.20
  • #890 - Use Maven 3.8.5
  • #887 - Fix the capping operators outstanding demand management
  • #886 - New demand capping operator shall accumulate demand and not just cap it
  • #884 - Promote spies to a stable API
  • #883 - Move io.smallrye.mutiny.operators.multi.processors to the public API
  • #882 - Document the Git commit requirements
  • #881 - BroadcastProcessor package is not exported
  • #880 - Conflict resolution when collecting into a Map
  • #879 - Misc fixes to .build/BlameAPI.java
  • #878 - Promote spies as a stable API
  • #877 - New experimental demand capping operators
  • #876 - Add the missing CheckReturnValue annotations to the Multi replay operator API
  • #875 - New Multi demand pacing operator
  • #874 - MultiReplay misses @CheckReturnValue annotations
  • #873 - Demand caping operator
  • #872 - Demand pacing operator
  • #871 - Bump reactor-core from 3.4.15 to 3.4.16
  • #870 - Bump versions-maven-plugin from 2.9.0 to 2.10.0
  • #869 - Bump maven-dependency-plugin from 3.2.0 to 3.3.0
  • #867 - Document creating Multis from a generator
  • #866 - Mention Multi.createFrom().generator() in creating-multis doc

Breaking Changes

Change New API Justification
method <T> Multi<T> MultiReplay::ofMulti(Multi<T>) updated to method <T> Multi<T> MultiReplay::ofMulti(Multi<T>) method Multi MultiReplay::ofMulti(Multi) Not breaking. The annotation was missing and has now be added.
method <T> Multi<T> MultiReplay::ofSeedAndMulti(Iterable<T>, Multi<T>) updated to method <T> Multi<T> MultiReplay::ofSeedAndMulti(Iterable<T>, Multi<T>) method Multi MultiReplay::ofSeedAndMulti(Iterable, Multi) Not breaking. The annotation was missing and has now be added.
method MultiReplay MultiReplay::upTo(long) updated to method MultiReplay MultiReplay::upTo(long) method MultiReplay MultiReplay::upTo(long) Not breaking. The annotation was missing and has now be added.
method MultiDemandPacing<T> Multi<T>::paceDemand() has been introduced method MultiDemandPacing Multi::paceDemand() New Multi paceDemand experimental operator
method Multi<T> Multi<T>::capDemandsUsing(LongFunction<Long>) has been introduced method Multi Multi::capDemandsUsing(LongFunction) New Multi capDemandsUsing experimental operator
interface Spy updated to interface Spy interface Spy Not breaking. Experimental promotion.

1.4.0

10 Mar 10:31
Compare
Choose a tag to compare

Changelog

  • #863 - Avoid overflow when using ChronoUnit.FOREVER with the memoize operator
  • #862 - Long overflow when using memoize() with ChronoUnit.FOREVER.getDuration()
  • #861 - Add the ability not to clear certain versions
  • #859 - Multi replay operator (experimental API)
  • #856 - Bump logback-classic from 1.2.10 to 1.2.11
  • #855 - Bump awaitility from 4.1.1 to 4.2.0
  • #854 - Run tests in random order
  • #851 - Bump nexus-staging-maven-plugin from 1.6.11 to 1.6.12
  • #849 - Bump smallrye-build-parent from 34 to 35
  • #844 - Bump nexus-staging-maven-plugin from 1.6.10 to 1.6.11
  • #842 - Bump nexus-staging-maven-plugin from 1.6.8 to 1.6.10
  • #841 - Limit the javadocs to the public API
  • #840 - Limit javadocs to the public API
  • #837 - Bump smallrye-common-annotation from 1.8.0 to 1.9.0
  • #836 - JPMS open modules do not export packages
  • #835 - Issue with the new mutiny module-info.java (1.3.1)
  • #831 - Avoid Uni.join().first(unis).toTerminate() with a concurrency limit
  • #830 - Uni.join().first(unis).toTerminate() must not support concurrency limit
  • #829 - Limit concurrency in Uni.combine().all()
  • #825 - Limit Uni.join().{all,first}() concurrency
  • #824 - Fix a Kotlin test timing issue due to slow starting coroutines
  • #822 - Bump versions-maven-plugin from 2.8.1 to 2.9.0
  • #819 - Reduce MutinySchedulerTest flakiness in CI
  • #816 - MultiAsFlowTest flaky test in CI
  • #767 - Clearing RevAPI justifications and non-main release branches
  • #699 - Uni.{join,combine} shall limit concurrency
  • #536 - Add ability to replay last N items of a Multi on subscription, or emit something predefined if nothing has been emitted yet
  • #158 - Improve combination/merging/concatenation API

1.3.1

19 Jan 09:11
Compare
Choose a tag to compare

Changelog

  • #817 - MultiOnRetry is ignoring the onFailure predicate
  • #815 - Fix RevAPI filtering new syntax
  • #810 - Bump maven-jar-plugin from 3.2.1 to 3.2.2
  • #809 - Limit workflow concurrency (main CI/CD + PR check workflows)
  • #808 - Improve breaking changes presentation
  • #806 - Bump maven-jar-plugin from 3.2.0 to 3.2.1
  • #804 - Magic sauce to nicely format RevAPI changes in GitHub releases

Breaking Changes

Change New API Justification
method void MultiRetry<T>::<init>(Multi<T>, Predicate<? super Throwable>) updated to method void MultiRetry<T>::<init>(Multi<T>, Predicate<? super Throwable>, Predicate<? super Throwable>) method void MultiRetry::(Multi, Predicate<? super Throwable>, Predicate<? super Throwable>) MultiRetry is an operator class (not user facing). The change adds support for the onFailure predicate

1.3.0

11 Jan 22:09
Compare
Choose a tag to compare

Changelog

  • #803 - Bring back the JUnit5 RS TCK shim
  • #802 - Remove deprecated RevAPI configuration for filtering and reporting
  • #799 - Bump testng from 7.4.0 to 7.5
  • #798 - Uni memoization is not experimental anymore
  • #797 - GitBlameDeprecated: refactor to a blame deprecated / experimental API tool
  • #796 - Round of deprecation removals and misc cleanups ahead of 1.3.0
  • #795 - 1.3.0 round of deprecation removals
  • #794 - Profile to run the RS TCK TestNG tests in parallel
  • #793 - Remove reactive-streams-junit5-tck and switch back to plain RS TestNG TCK
  • #792 - Bump assertj-core from 3.21.0 to 3.22.0
  • #791 - Bump dokka-maven-plugin from 1.6.0 to 1.6.10
  • #790 - Update Coroutines to 1.6.0, Kotlin API to 1.5 and refactored tests
  • #786 - Multi from repeating with delay causes Zombie Thread
  • #782 - Extract TCK tests to a separate Maven module and remove reactive-streams-junit5-tck using a TestNG JUnit5 runner
  • #781 - Properly propagate Multi cancellation to Flow when using Flow.asMulti
  • #776 - Context support
  • #774 - Reactivate dokka for all JDK versions
  • #773 - Rework the module-info declarations to be fully open modules
  • #772 - Update Kotlin and Dokka to 1.6.0
  • #770 - Parallel tests execution
  • #769 - Reduce tests flakiness, especially in CI / constrained environments
  • #757 - Context support
  • #755 - test(kotlin): create test to cancel deferred
  • #739 - Export less packages in module-info or open them all

Breaking Changes

Change New API Justification
method void UniAwait<T>::<init>(Uni<T>) updated to method void UniAwait<T>::<init>(Uni<T>, Context) method void UniAwait::(Uni, Context) Private API impacted by the new Mutiny context support
method void UniAwaitOptional<T>::<init>(Uni<T>) updated to method void UniAwaitOptional<T>::<init>(Uni<T>, Context) method void UniAwaitOptional::(Uni, Context) Private API impacted by the new Mutiny context support
method void BlockingIterable<T>::<init>(org.reactivestreams.Publisher<? extends T>, int, Supplier<Queue<T>>) updated to method void BlockingIterable<T>::<init>(Multi<? extends T>, int, Supplier<Queue<T>>, Supplier<Context>) method void BlockingIterable::(Multi<? extends T>, int, Supplier<Queue>, Supplier) Private API impacted by the new Mutiny context support
method void UniCallbackSubscriber<T>::<init>(Consumer<? super T>, Consumer<? super Throwable>) updated to method void UniCallbackSubscriber<T>::<init>(Consumer<? super T>, Consumer<? super Throwable>, Context) method void UniCallbackSubscriber::(Consumer<? super T>, Consumer<? super Throwable>, Context) Private API impacted by the new Mutiny context support
method void subscription.Subscribers.CallbackBasedSubscriber<T>::<init>(Consumer<? super T>, Consumer<? super Throwable>, Runnable, Consumer<? super org.reactivestreams.Subscription>) updated to method void subscription.Subscribers.CallbackBasedSubscriber<T>::<init>(Context, Consumer<? super T>, Consumer<? super Throwable>, Runnable, Consumer<? super org.reactivestreams.Subscription>) method void subscription.Subscribers.CallbackBasedSubscriber::(Context, Consumer<? super T>, Consumer<? super Throwable>, Runnable, Consumer<? super org.reactivestreams.Subscription>) Private API impacted by the new Mutiny context support
method <T> subscription.CancellableSubscriber<T> subscription.Subscribers::from(Consumer<? super T>, Consumer<? super Throwable>, Runnable, Consumer<? super org.reactivestreams.Subscription>) updated to method <T> subscription.CancellableSubscriber<T> subscription.Subscribers::from(Context, Consumer<? super T>, Consumer<? super Throwable>, Runnable, Consumer<? super org.reactivestreams.Subscription>) method subscription.CancellableSubscriber subscription.Subscribers::from(Context, Consumer<? super T>, Consumer<? super Throwable>, Runnable, Consumer<? super org.reactivestreams.Subscription>) Private API impacted by the new Mutiny context support
method MultiCollect<T> Multi<T>::collectItems() has been removed Deprecated API removal (~1 year old)
method MultiGroup<T> Multi<T>::groupItems() has been removed Deprecated API removal (~1 year old)
method MultiTransform<T> Multi<T>::transform() has been removed Deprecated API removal (~1 year old)
method Uni<T> Uni<T>::cache() has been removed Deprecated API removal (~1 year old)
method Multi<T> MultiOverflow<T>::drop(Consumer<T>) has been removed Deprecated API removal (~1 year old)
class MultiTransform<T> has been removed Deprecated API removal (~1 year old)
method MultiTransform<T> AbstractMulti<T>::transform() @ MultiGlobalSpy<T> has been removed Deprecated API removal (~1 year old)
method MultiTransform<T> AbstractMulti<T>::transform() @ MultiOnCancellationSpy<T> has been removed Deprecated API removal (~1 year old)
method MultiTransform<T> AbstractMulti<T>::transform() @ MultiOnCompletionSpy<T> has been removed Deprecated API removal (~1 year old)
method MultiTransform<T> AbstractMulti<T>::transform() @ MultiOnFailureSpy<T> has been removed Deprecated API removal (~1 year old)
method MultiTransform<T> AbstractMulti<T>::transform() @ MultiOnItemSpy<T> has been removed Deprecated API removal (~1 year old)
method MultiTransform<T> AbstractMulti<T>::transform() @ MultiOnOverflowSpy<T> has been removed Deprecated API removal (~1 year old)
method MultiTransform<T> AbstractMulti<T>::transform() @ MultiOnRequestSpy<T> has been removed Deprecated API removal (~1 year old)
method MultiTransform<T> AbstractMulti<T>::transform() @ MultiOnSubscribeSpy<T> has been removed Deprecated API removal (~1 year old)
method MultiTransform<T> AbstractMulti<T>::transform() @ MultiOnTerminationSpy<T> has been removed Deprecated API removal (~1 year old)
method UniMemoize<T> Uni<T>::memoize() updated to method UniMemoize<T> Uni<T>::memoize() method UniMemoize Uni::memoize() Experimental API has been promoted
class UniMemoize<T> updated to class UniMemoize<T> class UniMemoize Experimental API has been promoted

1.2.0

29 Nov 09:45
Compare
Choose a tag to compare

Changelog

  • #768 - Use a Maven wrapper
  • #766 - Maven profile to skip running the Reactive Streams TCK tests
  • #764 - Bump rxjava from 3.1.2 to 3.1.3
  • #763 - Bump bnd-maven-plugin from 6.0.0 to 6.1.0
  • #761 - Bump mockito-core from 4.0.0 to 4.1.0
  • #759 - Fix and simplify Uni.join() parametric types
  • #754 - Grouped dependencies updates
  • #750 - Update documentation example
  • #744 - Bump reactor-core from 3.4.11 to 3.4.12
  • #741 - Random type fixes
  • #740 - Check for emptiness when joining an empty set of Unis and extend Javadoc
  • #738 - Uni join all empty list
  • #737 - Add item timeouts to Multi
  • #736 - Fix Issue #733: Not attaching to calling coroutine context anymore
  • #734 - Kotlin-Module: Cancel Multi subscription in case of cancelled coroutine context
  • #733 - Quarkus + Mutiny Kotlin - io.vertx.core.VertxException: Thread blocked
  • #732 - Bump smallrye-build-parent from 31 to 32
  • #731 - Fix javadoc of the deprecated MultiOverflow.drop(Consumer)
  • #729 - CheckReturnValue annotation for static analysis tools
  • #704 - Annotation CheckReturnValue for subscribe() and other builder-like methods

Breaking Changes

Change New API Justification
Addition of the CheckReturnValue annotation This annotation is used by static code analyzers to inform the user of a potential misusage of the API.
New ifNoItem group on Multi This group allows handling timeouts on Multi
Change of parameter in UniJoin.Builder<T> UniJoin.Builder<T>::add(Uni<T>) Fix issues with parametric types in Uni.join() experimental APIs. The usage of UniJoin.Builder<T>::add(Uni<? extends T>) was erroneous