From c73cff8bad0094c2683da9e9bbf39ec2c2307e38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Deleuze?= Date: Mon, 9 Nov 2020 14:49:08 +0100 Subject: [PATCH] Use RxJava 2/3 fromPublisher() when possible in ReactiveAdapterRegistry Closes gh-26051 --- .../core/ReactiveAdapterRegistry.java | 21 +++++++------------ 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/spring-core/src/main/java/org/springframework/core/ReactiveAdapterRegistry.java b/spring-core/src/main/java/org/springframework/core/ReactiveAdapterRegistry.java index 8c36fa9dd5f..35d66bae871 100644 --- a/spring-core/src/main/java/org/springframework/core/ReactiveAdapterRegistry.java +++ b/spring-core/src/main/java/org/springframework/core/ReactiveAdapterRegistry.java @@ -264,14 +264,12 @@ public class ReactiveAdapterRegistry { registry.registerReactiveType( ReactiveTypeDescriptor.multiValue(io.reactivex.Observable.class, io.reactivex.Observable::empty), source -> ((io.reactivex.Observable) source).toFlowable(io.reactivex.BackpressureStrategy.BUFFER), - source -> io.reactivex.Flowable.fromPublisher(source) - .toObservable() + io.reactivex.Observable::fromPublisher ); registry.registerReactiveType( ReactiveTypeDescriptor.singleRequiredValue(io.reactivex.Single.class), source -> ((io.reactivex.Single) source).toFlowable(), - source -> io.reactivex.Flowable.fromPublisher(source) - .toObservable().singleElement().toSingle() + io.reactivex.Single::fromPublisher ); registry.registerReactiveType( ReactiveTypeDescriptor.singleOptionalValue(io.reactivex.Maybe.class, io.reactivex.Maybe::empty), @@ -282,8 +280,7 @@ public class ReactiveAdapterRegistry { registry.registerReactiveType( ReactiveTypeDescriptor.noValue(io.reactivex.Completable.class, io.reactivex.Completable::complete), source -> ((io.reactivex.Completable) source).toFlowable(), - source -> io.reactivex.Flowable.fromPublisher(source) - .toObservable().ignoreElements() + io.reactivex.Completable::fromPublisher ); } } @@ -304,30 +301,26 @@ public class ReactiveAdapterRegistry { io.reactivex.rxjava3.core.Observable::empty), source -> ((io.reactivex.rxjava3.core.Observable) source).toFlowable( io.reactivex.rxjava3.core.BackpressureStrategy.BUFFER), - source -> io.reactivex.rxjava3.core.Flowable.fromPublisher(source) - .toObservable() + io.reactivex.rxjava3.core.Observable::fromPublisher ); registry.registerReactiveType( ReactiveTypeDescriptor.singleRequiredValue(io.reactivex.rxjava3.core.Single.class), source -> ((io.reactivex.rxjava3.core.Single) source).toFlowable(), - source -> io.reactivex.rxjava3.core.Flowable.fromPublisher(source) - .toObservable().singleElement().toSingle() + io.reactivex.rxjava3.core.Single::fromPublisher ); registry.registerReactiveType( ReactiveTypeDescriptor.singleOptionalValue( io.reactivex.rxjava3.core.Maybe.class, io.reactivex.rxjava3.core.Maybe::empty), source -> ((io.reactivex.rxjava3.core.Maybe) source).toFlowable(), - source -> io.reactivex.rxjava3.core.Flowable.fromPublisher(source) - .toObservable().singleElement() + io.reactivex.rxjava3.core.Maybe::fromPublisher ); registry.registerReactiveType( ReactiveTypeDescriptor.noValue( io.reactivex.rxjava3.core.Completable.class, io.reactivex.rxjava3.core.Completable::complete), source -> ((io.reactivex.rxjava3.core.Completable) source).toFlowable(), - source -> io.reactivex.rxjava3.core.Flowable.fromPublisher(source) - .toObservable().ignoreElements() + io.reactivex.rxjava3.core.Completable::fromPublisher ); } }