From b7b6704c7e4368e9b3ed68d0f241ec1e325ef851 Mon Sep 17 00:00:00 2001 From: Sebastien Deleuze Date: Mon, 4 Jul 2016 11:05:49 +0200 Subject: [PATCH] Support rx.Completable --- .../convert/support/ReactorToRxJava1Converter.java | 10 ++++++++++ .../support/ReactorToRxJava1ConverterTests.java | 7 +++++++ 2 files changed, 17 insertions(+) diff --git a/spring-web-reactive/src/main/java/org/springframework/core/convert/support/ReactorToRxJava1Converter.java b/spring-web-reactive/src/main/java/org/springframework/core/convert/support/ReactorToRxJava1Converter.java index 9b7a661e21..67c66bae9d 100644 --- a/spring-web-reactive/src/main/java/org/springframework/core/convert/support/ReactorToRxJava1Converter.java +++ b/spring-web-reactive/src/main/java/org/springframework/core/convert/support/ReactorToRxJava1Converter.java @@ -20,10 +20,12 @@ import java.util.LinkedHashSet; import java.util.Set; import org.reactivestreams.Publisher; +import reactor.core.converter.RxJava1CompletableConverter; import reactor.core.converter.RxJava1ObservableConverter; import reactor.core.converter.RxJava1SingleConverter; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import rx.Completable; import rx.Observable; import rx.Single; @@ -43,6 +45,8 @@ public final class ReactorToRxJava1Converter implements GenericConverter { pairs.add(new GenericConverter.ConvertiblePair(Observable.class, Flux.class)); pairs.add(new GenericConverter.ConvertiblePair(Mono.class, Single.class)); pairs.add(new GenericConverter.ConvertiblePair(Single.class, Mono.class)); + pairs.add(new GenericConverter.ConvertiblePair(Mono.class, Completable.class)); + pairs.add(new GenericConverter.ConvertiblePair(Completable.class, Mono.class)); return pairs; } @@ -63,6 +67,12 @@ public final class ReactorToRxJava1Converter implements GenericConverter { else if (Single.class.isAssignableFrom(targetType.getType())) { return RxJava1SingleConverter.from((Publisher) source); } + else if (Completable.class.isAssignableFrom(sourceType.getType())) { + return RxJava1CompletableConverter.from((Completable) source); + } + else if (Completable.class.isAssignableFrom(targetType.getType())) { + return RxJava1CompletableConverter.from((Publisher) source); + } return null; } diff --git a/spring-web-reactive/src/test/java/org/springframework/core/convert/support/ReactorToRxJava1ConverterTests.java b/spring-web-reactive/src/test/java/org/springframework/core/convert/support/ReactorToRxJava1ConverterTests.java index bc6d2ac29a..427e9be4ef 100644 --- a/spring-web-reactive/src/test/java/org/springframework/core/convert/support/ReactorToRxJava1ConverterTests.java +++ b/spring-web-reactive/src/test/java/org/springframework/core/convert/support/ReactorToRxJava1ConverterTests.java @@ -20,6 +20,7 @@ import org.junit.Test; import org.reactivestreams.Publisher; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import rx.Completable; import rx.Observable; import rx.Single; @@ -49,9 +50,15 @@ public class ReactorToRxJava1ConverterTests { assertTrue(this.conversionService.canConvert(Mono.class, Single.class)); assertTrue(this.conversionService.canConvert(Single.class, Mono.class)); + assertTrue(this.conversionService.canConvert(Mono.class, Completable.class)); + assertTrue(this.conversionService.canConvert(Completable.class, Mono.class)); + assertFalse(this.conversionService.canConvert(Flux.class, Single.class)); assertFalse(this.conversionService.canConvert(Single.class, Flux.class)); + assertFalse(this.conversionService.canConvert(Flux.class, Completable.class)); + assertFalse(this.conversionService.canConvert(Completable.class, Flux.class)); + assertFalse(this.conversionService.canConvert(Mono.class, Observable.class)); assertFalse(this.conversionService.canConvert(Observable.class, Mono.class));