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, and Java 9+
Flow.Publisher.
| 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