Skip to content

Releases: smallrye/smallrye-mutiny

0.16.0

27 Apr 16:35
Compare
Choose a tag to compare

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

30 Mar 11:46
Compare
Choose a tag to compare

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

09 Mar 12:40
Compare
Choose a tag to compare
0.15.0.RC1 Pre-release
Pre-release

Pre-release to validate Reactive Streams Operators 2.0.

0.14.0

16 Feb 09:49
Compare
Choose a tag to compare

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

14 Jan 09:48
Compare
Choose a tag to compare

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

16 Dec 17:16
Compare
Choose a tag to compare

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

18 Dec 09:00
Compare
Choose a tag to compare

Changelog

0.12.1

18 Dec 09:01
Compare
Choose a tag to compare

Changelog

0.12.0

18 Dec 09:01
Compare
Choose a tag to compare

Changelog

0.11.0

19 Nov 12:53
Compare
Choose a tag to compare

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