Skip to content

Releases: smallrye/smallrye-mutiny

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

0.10.1

30 Oct 13:44
Compare
Choose a tag to compare

Major changes

Complete changelog

  • #346 - Fix CI cache
  • #345 - Fix Uni memoization infinite drain loop bug

0.10.0

28 Oct 13:21
Compare
Choose a tag to compare

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

01 Oct 09:29
Compare
Choose a tag to compare

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