57
57
* <li>{@code java.util.concurrent.Future}</li>
58
58
* <li>{@code java.util.concurrent.CompletableFuture}</li>
59
59
* <li>{@code org.springframework.util.concurrent.ListenableFuture<}</li>
60
- * <li>{@code rx.Single}</li>
61
- * <li>{@code rx.Observable}</li>
62
- * <li>{@code rx.Completable}</li>
63
- * <li>{@code reactor.core.publisher.Mono}</li>
64
- * <li>{@code reactor.core.publisher.Flux}</li>
65
- * <li>{@code org.reactivestreams.Publisher}</li>
60
+ * <li>Reactive wrappers supported by {@link ReactiveWrappers}</li>
66
61
* </ul>
67
62
*
68
63
* @author Oliver Gierke
69
64
* @author Mark Paluch
70
65
* @since 1.8
66
+ * @see ReactiveWrappers
71
67
*/
72
68
public abstract class QueryExecutionConverters {
73
69
@@ -85,13 +81,6 @@ public abstract class QueryExecutionConverters {
85
81
private static final boolean SCALA_PRESENT = ClassUtils .isPresent ("scala.Option" ,
86
82
QueryExecutionConverters .class .getClassLoader ());
87
83
88
- private static final boolean PROJECT_REACTOR_PRESENT = ClassUtils .isPresent ("reactor.core.publisher.Mono" ,
89
- QueryExecutionConverters .class .getClassLoader ());
90
- private static final boolean RXJAVA1_PRESENT = ClassUtils .isPresent ("rx.Completable" ,
91
- QueryExecutionConverters .class .getClassLoader ());
92
- private static final boolean RXJAVA2_PRESENT = ClassUtils .isPresent ("io.reactivex.Flowable" ,
93
- QueryExecutionConverters .class .getClassLoader ());
94
-
95
84
private static final Set <Class <?>> WRAPPER_TYPES = new HashSet <Class <?>>();
96
85
private static final Set <Class <?>> UNWRAPPER_TYPES = new HashSet <Class <?>>();
97
86
private static final Set <Converter <Object , Object >> UNWRAPPERS = new HashSet <Converter <Object , Object >>();
@@ -127,25 +116,9 @@ public abstract class QueryExecutionConverters {
127
116
UNWRAPPERS .add (ScalOptionUnwrapper .INSTANCE );
128
117
}
129
118
130
- if (PROJECT_REACTOR_PRESENT ) {
131
- WRAPPER_TYPES .add (Publisher .class );
132
- WRAPPER_TYPES .add (Mono .class );
133
- WRAPPER_TYPES .add (Flux .class );
134
- }
135
-
136
- if (RXJAVA1_PRESENT ) {
137
- WRAPPER_TYPES .add (Single .class );
138
- WRAPPER_TYPES .add (Completable .class );
139
- WRAPPER_TYPES .add (Observable .class );
140
- }
141
-
142
- if (RXJAVA2_PRESENT ) {
143
- WRAPPER_TYPES .add (io .reactivex .Single .class );
144
- WRAPPER_TYPES .add (io .reactivex .Maybe .class );
145
- WRAPPER_TYPES .add (io .reactivex .Completable .class );
146
- WRAPPER_TYPES .add (io .reactivex .Observable .class );
147
- WRAPPER_TYPES .add (io .reactivex .Flowable .class );
148
- }
119
+ WRAPPER_TYPES .addAll (ReactiveWrappers .getNoValueTypes ());
120
+ WRAPPER_TYPES .addAll (ReactiveWrappers .getSingleValueTypes ());
121
+ WRAPPER_TYPES .addAll (ReactiveWrappers .getMultiValueTypes ());
149
122
}
150
123
151
124
private QueryExecutionConverters () {}
@@ -214,9 +187,9 @@ public static void registerConvertersIn(ConfigurableConversionService conversion
214
187
conversionService .addConverter (new NullableWrapperToFutureConverter (conversionService ));
215
188
}
216
189
217
- if (PROJECT_REACTOR_PRESENT ) {
190
+ if (ReactiveWrappers . isAvailable () ) {
218
191
219
- if (RXJAVA1_PRESENT ) {
192
+ if (ReactiveWrappers . RXJAVA1_PRESENT ) {
220
193
221
194
conversionService .addConverter (PublisherToRxJava1CompletableConverter .INSTANCE );
222
195
conversionService .addConverter (RxJava1CompletableToPublisherConverter .INSTANCE );
@@ -233,7 +206,7 @@ public static void registerConvertersIn(ConfigurableConversionService conversion
233
206
conversionService .addConverter (RxJava1ObservableToFluxConverter .INSTANCE );
234
207
}
235
208
236
- if (RXJAVA2_PRESENT ) {
209
+ if (ReactiveWrappers . RXJAVA2_PRESENT ) {
237
210
238
211
conversionService .addConverter (PublisherToRxJava2CompletableConverter .INSTANCE );
239
212
conversionService .addConverter (RxJava2CompletableToPublisherConverter .INSTANCE );
@@ -258,18 +231,20 @@ public static void registerConvertersIn(ConfigurableConversionService conversion
258
231
conversionService .addConverter (RxJava2MaybeToFluxConverter .INSTANCE );
259
232
}
260
233
261
- conversionService .addConverter (PublisherToMonoConverter .INSTANCE );
262
- conversionService .addConverter (PublisherToFluxConverter .INSTANCE );
263
- }
234
+ if (ReactiveWrappers .PROJECT_REACTOR_PRESENT ) {
235
+ conversionService .addConverter (PublisherToMonoConverter .INSTANCE );
236
+ conversionService .addConverter (PublisherToFluxConverter .INSTANCE );
237
+ }
264
238
265
- if (RXJAVA1_PRESENT ) {
266
- conversionService .addConverter (RxJava1SingleToObservableConverter .INSTANCE );
267
- conversionService .addConverter (RxJava1ObservableToSingleConverter .INSTANCE );
268
- }
239
+ if (ReactiveWrappers . RXJAVA1_PRESENT ) {
240
+ conversionService .addConverter (RxJava1SingleToObservableConverter .INSTANCE );
241
+ conversionService .addConverter (RxJava1ObservableToSingleConverter .INSTANCE );
242
+ }
269
243
270
- if (RXJAVA2_PRESENT ) {
271
- conversionService .addConverter (RxJava2SingleToObservableConverter .INSTANCE );
272
- conversionService .addConverter (RxJava2ObservableToSingleConverter .INSTANCE );
244
+ if (ReactiveWrappers .RXJAVA2_PRESENT ) {
245
+ conversionService .addConverter (RxJava2SingleToObservableConverter .INSTANCE );
246
+ conversionService .addConverter (RxJava2ObservableToSingleConverter .INSTANCE );
247
+ }
273
248
}
274
249
}
275
250
0 commit comments