public class ReactiveAdapterRegistry extends Object
Publisher
to/from
various async/reactive types such as CompletableFuture
, RxJava
Observable
, and others.
By default, depending on classpath availability, adapters are registered
for Reactor, RxJava 1, RxJava 2 types, CompletableFuture
, Java 9+
Flow.Publisher
and Kotlin Coroutines Deferred
and Flow
.
Constructor and Description |
---|
ReactiveAdapterRegistry()
Create a registry and auto-register default adapters.
|
Modifier and Type | Method and Description |
---|---|
ReactiveAdapter |
getAdapter(Class<?> reactiveType)
Get the adapter for the given reactive type.
|
ReactiveAdapter |
getAdapter(Class<?> reactiveType,
Object source)
Get the adapter for the given reactive type.
|
static ReactiveAdapterRegistry |
getSharedInstance()
Return a shared default
ReactiveAdapterRegistry instance,
lazily building it once needed. |
boolean |
hasAdapters()
Whether the registry has any adapters which would be the case if any of
Reactor, RxJava 2, or RxJava 1 (+ RxJava Reactive Streams bridge) are
present on the classpath.
|
void |
registerReactiveType(ReactiveTypeDescriptor descriptor,
Function<Object,org.reactivestreams.Publisher<?>> toAdapter,
Function<org.reactivestreams.Publisher<?>,Object> fromAdapter)
Register a reactive type along with functions to adapt to and from a
Reactive Streams
Publisher . |
public ReactiveAdapterRegistry()
getSharedInstance()
public boolean hasAdapters()
public void registerReactiveType(ReactiveTypeDescriptor descriptor, Function<Object,org.reactivestreams.Publisher<?>> toAdapter, Function<org.reactivestreams.Publisher<?>,Object> fromAdapter)
Publisher
. The function arguments assume that
their input is neither null
nor Optional
.@Nullable public ReactiveAdapter getAdapter(Class<?> reactiveType)
null
if none available@Nullable public ReactiveAdapter getAdapter(@Nullable Class<?> reactiveType, @Nullable Object source)
reactiveType
- the reactive type
(may be null
if a concrete source object is given)source
- an instance of the reactive type
(i.e. to adapt from; may be null
if the reactive type is specified)null
if none availablepublic static ReactiveAdapterRegistry getSharedInstance()
ReactiveAdapterRegistry
instance,
lazily building it once needed.
NOTE: We highly recommend passing a long-lived, pre-configured
ReactiveAdapterRegistry
instance for customization purposes.
This accessor is only meant as a fallback for code paths that want to
fall back on a default instance if one isn't provided.
ReactiveAdapterRegistry
instance