Skip to content

Releases: smallrye/smallrye-mutiny

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

1.1.2

13 Oct 14:16
Compare
Choose a tag to compare

Changelog

  • #728 - Bump reactor-core from 3.4.10 to 3.4.11
  • #727 - Bump rxjava from 3.1.1 to 3.1.2
  • #726 - Make UniRetry & MultiRetry propagate the original Exception (#724)
  • #725 - Use the SR-CP call that uses the context settings or MP-config settings
  • #724 - JavaDoc for UniRetry#atMost and MultiRetry#atMost is wrong
  • #723 - RevAPI upgrades
  • #719 - Bump smallrye-common-annotation from 1.6.0 to 1.7.1
  • #717 - Bump jandex-maven-plugin from 1.2.0 to 1.2.1
  • #716 - Bump mockito-core from 3.12.4 to 4.0.0

1.1.1

07 Oct 19:41
Compare
Choose a tag to compare

Changelog

  • #713 - RevApi combined upgrades
  • #712 - No need to release downstream subscriber references
  • #705 - Cannot invoke "MultiSubscriber.onCompletion()" because "this.downstream" is null

1.1.0

05 Oct 16:35
Compare
Choose a tag to compare

Changelog

  • #702 - Bump bnd-maven-plugin from 5.3.0 to 6.0.0
  • #701 - Bump moditect-maven-plugin from 1.0.0.RC1 to 1.0.0.RC2
  • #700 - Bump dokka-maven-plugin from 1.5.30 to 1.5.31
  • #698 - Use the setup-java caching
  • #695 - Use Eclipse Temurin + 8/11/17 matrix
  • #694 - Bump junit.version from 5.8.0 to 5.8.1
  • #691 - Fix UniToMultiPublisher race condition
  • #690 - Reduce Multi allocations
  • #689 - Multi.createBy().repeating() doesn't like flatMap
  • #688 - Bump assertj-core from 3.20.2 to 3.21.0
  • #687 - Bump kotlin.version from 1.5.30 to 1.5.31
  • #684 - Bump dokka-maven-plugin from 1.5.0 to 1.5.30
  • #683 - Bump reactor-core from 3.4.9 to 3.4.10
  • #682 - Bump junit.version from 5.7.2 to 5.8.0
  • #678 - Fix off-by-one retry count when using exponential backoff
  • #677 - Combined Unis does not get canceled if one of them emits a failure
  • #676 - Fix UniRepeat#until javadoc
  • #675 - Wrong bootstrapping when retrying
  • #674 - Bump smallrye-context-propagation from 1.2.1 to 1.2.2
  • #673 - Use GH action caching
  • #672 - Bump kotlinx-coroutines-core from 1.5.1 to 1.5.2
  • #671 - Bump jandex-maven-plugin from 1.1.1 to 1.2.0
  • #670 - Allow disabling all Callback decorators via environment properties
  • #669 - Use atomic field updaters in selected Uni places
  • #668 - Bump rxjava from 3.1.0 to 3.1.1
  • #666 - Reduce AtomicReference allocations
  • #665 - Bump smallrye-build-parent from 30 to 31
  • #664 - Bump mockito-core from 3.12.3 to 3.12.4
  • #654 - Implement converters for RX Java 3
  • #653 - Support for RXJava3 Types
  • #651 - Configure CI to test with Java 8, 11, 16, and 17-EA
  • #645 - Bump smallrye-build-parent from 29 to 30

1.0.0

27 Jul 15:45
Compare
Choose a tag to compare

Changelog

  • #643 - Harmonize POM name / description sections
  • #642 - Bump logback-classic from 1.2.4-groovyless to 1.2.5
  • #639 - Remove Java 15 from CI
  • #638 - Bump smallrye-context-propagation from 1.2.0 to 1.2.1
  • #637 - Bump logback-classic from 1.2.4 to 1.2.4-groovyless
  • #636 - Documentation for Uni.map incorrect
  • #635 - Use the thread-local ThreadContext in order to be able to define which contexts get propagated
  • #634 - Fix documentation for Multi.map method
  • #633 - Move dokka plugin to its own profile to be able to skip it
  • #632 - Simplify Uni to Multi bridge (again)
  • #631 - Simplify Uni to Multi bridge
  • #628 - Bump logback-classic from 1.2.3 to 1.2.4
  • #627 - Add failWith methods to UniOnNotNull
  • #626 - Support contextual context propagation
  • #625 - Bump revapi-java from 0.24.3 to 0.24.4
  • #624 - New Feature: Fail when item is present
  • #623 - Bump reactor-core from 3.4.7 to 3.4.8
  • #622 - Bump kotlin.version from 1.5.20 to 1.5.21
  • #621 - Bump addressable from 2.7.0 to 2.8.0 in /documentation/src/main/jekyll
  • #618 - Bump kotlinx-coroutines-core from 1.5.0 to 1.5.1
  • #613 - Bump testng from 6.14.3 to 7.4.0
  • #569 - UniAndGroupIterable loses input types
  • #567 - Update Kotlin and Coroutines to 1.5

Breaking Changes

  • class io.smallrye.mutiny.converters.uni.UniToMultiPublisher<T> updated to class io.smallrye.mutiny.converters.uni.UniToMultiPublisher<T>: Internal API optimization