Add shared instance of ReactiveAdapterRegistry
Issue: SPR-16218
This commit is contained in:
parent
6f24c0de17
commit
bc8e525e60
|
|
@ -59,7 +59,7 @@ public abstract class Conventions {
|
|||
}
|
||||
|
||||
private static final ReactiveAdapterRegistry reactiveAdapterRegistry =
|
||||
new ReactiveAdapterRegistry();
|
||||
ReactiveAdapterRegistry.getSharedInstance();
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -33,7 +33,10 @@ import org.springframework.lang.Nullable;
|
|||
import org.springframework.util.ClassUtils;
|
||||
import org.springframework.util.ReflectionUtils;
|
||||
|
||||
import static org.springframework.core.ReactiveTypeDescriptor.*;
|
||||
import static org.springframework.core.ReactiveTypeDescriptor.multiValue;
|
||||
import static org.springframework.core.ReactiveTypeDescriptor.noValue;
|
||||
import static org.springframework.core.ReactiveTypeDescriptor.singleOptionalValue;
|
||||
import static org.springframework.core.ReactiveTypeDescriptor.singleRequiredValue;
|
||||
|
||||
/**
|
||||
* A registry of adapters to adapt a Reactive Streams {@link Publisher} to/from
|
||||
|
|
@ -50,6 +53,9 @@ import static org.springframework.core.ReactiveTypeDescriptor.*;
|
|||
*/
|
||||
public class ReactiveAdapterRegistry {
|
||||
|
||||
@Nullable
|
||||
private static volatile ReactiveAdapterRegistry sharedInstance;
|
||||
|
||||
private final boolean reactorPresent;
|
||||
|
||||
private final List<ReactiveAdapter> adapters = new ArrayList<>(32);
|
||||
|
|
@ -98,6 +104,31 @@ public class ReactiveAdapterRegistry {
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return a shared default {@code ReactiveAdapterRegistry} instance, lazily
|
||||
* building it once needed.
|
||||
* <p><b>NOTE:</b> We highly recommend passing a long-lived, pre-configured
|
||||
* {@code 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.
|
||||
* @return the shared {@code ReactiveAdapterRegistry} instance (never {@code null})
|
||||
* @since 5.0.2
|
||||
*/
|
||||
public static ReactiveAdapterRegistry getSharedInstance() {
|
||||
ReactiveAdapterRegistry ar = sharedInstance;
|
||||
if (ar == null) {
|
||||
synchronized (ReactiveAdapterRegistry.class) {
|
||||
ar = sharedInstance;
|
||||
if (ar == null) {
|
||||
ar = new ReactiveAdapterRegistry();
|
||||
sharedInstance = ar;
|
||||
}
|
||||
}
|
||||
}
|
||||
return ar;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 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
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ import static org.junit.Assert.assertTrue;
|
|||
@SuppressWarnings("unchecked")
|
||||
public class ReactiveAdapterRegistryTests {
|
||||
|
||||
private final ReactiveAdapterRegistry registry = new ReactiveAdapterRegistry();
|
||||
private final ReactiveAdapterRegistry registry = ReactiveAdapterRegistry.getSharedInstance();
|
||||
|
||||
|
||||
@Test
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ public class InvocableHandlerMethod extends HandlerMethod {
|
|||
|
||||
private ParameterNameDiscoverer parameterNameDiscoverer = new DefaultParameterNameDiscoverer();
|
||||
|
||||
private ReactiveAdapterRegistry reactiveAdapterRegistry = new ReactiveAdapterRegistry();
|
||||
private ReactiveAdapterRegistry reactiveAdapterRegistry = ReactiveAdapterRegistry.getSharedInstance();
|
||||
|
||||
|
||||
public InvocableHandlerMethod(HandlerMethod handlerMethod) {
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ public abstract class AbstractMessageReaderArgumentResolver extends HandlerMetho
|
|||
* @param readers readers to convert from the request body
|
||||
*/
|
||||
protected AbstractMessageReaderArgumentResolver(List<HttpMessageReader<?>> readers) {
|
||||
this(readers, new ReactiveAdapterRegistry());
|
||||
this(readers, ReactiveAdapterRegistry.getSharedInstance());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ public abstract class AbstractMessageWriterResultHandler extends HandlerResultHa
|
|||
protected AbstractMessageWriterResultHandler(List<HttpMessageWriter<?>> messageWriters,
|
||||
RequestedContentTypeResolver contentTypeResolver) {
|
||||
|
||||
this(messageWriters, contentTypeResolver, new ReactiveAdapterRegistry());
|
||||
this(messageWriters, contentTypeResolver, ReactiveAdapterRegistry.getSharedInstance());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -163,7 +163,7 @@ public class RequestMappingHandlerAdapter implements HandlerAdapter, Application
|
|||
this.argumentResolverConfigurer = new ArgumentResolverConfigurer();
|
||||
}
|
||||
if (this.reactiveAdapterRegistry == null) {
|
||||
this.reactiveAdapterRegistry = new ReactiveAdapterRegistry();
|
||||
this.reactiveAdapterRegistry = ReactiveAdapterRegistry.getSharedInstance();
|
||||
}
|
||||
|
||||
this.methodResolver = new ControllerMethodResolver(this.argumentResolverConfigurer,
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ public class ResponseBodyResultHandler extends AbstractMessageWriterResultHandle
|
|||
public ResponseBodyResultHandler(List<HttpMessageWriter<?>> writers,
|
||||
RequestedContentTypeResolver resolver) {
|
||||
|
||||
this(writers, resolver, new ReactiveAdapterRegistry());
|
||||
this(writers, resolver, ReactiveAdapterRegistry.getSharedInstance());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ public class ResponseEntityResultHandler extends AbstractMessageWriterResultHand
|
|||
public ResponseEntityResultHandler(List<HttpMessageWriter<?>> writers,
|
||||
RequestedContentTypeResolver resolver) {
|
||||
|
||||
this(writers, resolver, new ReactiveAdapterRegistry());
|
||||
this(writers, resolver, ReactiveAdapterRegistry.getSharedInstance());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ public abstract class AbstractView implements View, ApplicationContextAware {
|
|||
|
||||
|
||||
public AbstractView() {
|
||||
this(new ReactiveAdapterRegistry());
|
||||
this(ReactiveAdapterRegistry.getSharedInstance());
|
||||
}
|
||||
|
||||
public AbstractView(ReactiveAdapterRegistry registry) {
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ public class ViewResolutionResultHandler extends HandlerResultHandlerSupport
|
|||
public ViewResolutionResultHandler(List<ViewResolver> viewResolvers,
|
||||
RequestedContentTypeResolver contentTypeResolver) {
|
||||
|
||||
this(viewResolvers, contentTypeResolver, new ReactiveAdapterRegistry());
|
||||
this(viewResolvers, contentTypeResolver, ReactiveAdapterRegistry.getSharedInstance());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ public class HandlerResultHandlerTests {
|
|||
}
|
||||
|
||||
public TestResultHandler(RequestedContentTypeResolver contentTypeResolver) {
|
||||
super(contentTypeResolver, new ReactiveAdapterRegistry());
|
||||
super(contentTypeResolver, ReactiveAdapterRegistry.getSharedInstance());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ public class ControllerMethodResolverTests {
|
|||
applicationContext.refresh();
|
||||
|
||||
this.methodResolver = new ControllerMethodResolver(
|
||||
resolvers, codecs.getReaders(), new ReactiveAdapterRegistry(), applicationContext);
|
||||
resolvers, codecs.getReaders(), ReactiveAdapterRegistry.getSharedInstance(), applicationContext);
|
||||
|
||||
Method method = ResolvableMethod.on(TestController.class).mockCall(TestController::handle).method();
|
||||
this.handlerMethod = new HandlerMethod(new TestController(), method);
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ public class CookieValueMethodArgumentResolverTests {
|
|||
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
|
||||
context.refresh();
|
||||
|
||||
ReactiveAdapterRegistry adapterRegistry = new ReactiveAdapterRegistry();
|
||||
ReactiveAdapterRegistry adapterRegistry = ReactiveAdapterRegistry.getSharedInstance();
|
||||
this.resolver = new CookieValueMethodArgumentResolver(context.getBeanFactory(), adapterRegistry);
|
||||
this.bindingContext = new BindingContext();
|
||||
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ import static org.junit.Assert.assertTrue;
|
|||
public class ErrorsMethodArgumentResolverTests {
|
||||
|
||||
private final ErrorsMethodArgumentResolver resolver =
|
||||
new ErrorsMethodArgumentResolver(new ReactiveAdapterRegistry());
|
||||
new ErrorsMethodArgumentResolver(ReactiveAdapterRegistry.getSharedInstance());
|
||||
|
||||
private final BindingContext bindingContext = new BindingContext();
|
||||
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ public class ExpressionValueMethodArgumentResolverTests {
|
|||
public void setup() throws Exception {
|
||||
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
|
||||
context.refresh();
|
||||
ReactiveAdapterRegistry adapterRegistry = new ReactiveAdapterRegistry();
|
||||
ReactiveAdapterRegistry adapterRegistry = ReactiveAdapterRegistry.getSharedInstance();
|
||||
this.resolver = new ExpressionValueMethodArgumentResolver(context.getBeanFactory(), adapterRegistry);
|
||||
|
||||
Method method = ReflectionUtils.findMethod(getClass(), "params", (Class<?>[]) null);
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ public class HttpEntityArgumentResolverTests {
|
|||
private HttpEntityArgumentResolver createResolver() {
|
||||
List<HttpMessageReader<?>> readers = new ArrayList<>();
|
||||
readers.add(new DecoderHttpMessageReader<>(StringDecoder.allMimeTypes(true)));
|
||||
return new HttpEntityArgumentResolver(readers, new ReactiveAdapterRegistry());
|
||||
return new HttpEntityArgumentResolver(readers, ReactiveAdapterRegistry.getSharedInstance());
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ public class InitBinderBindingContextTests {
|
|||
public void createBinderTypeConversion() throws Exception {
|
||||
MockServerHttpRequest request = MockServerHttpRequest.get("/path?requestParam=22").build();
|
||||
MockServerWebExchange exchange = MockServerWebExchange.from(request);
|
||||
ReactiveAdapterRegistry adapterRegistry = new ReactiveAdapterRegistry();
|
||||
ReactiveAdapterRegistry adapterRegistry = ReactiveAdapterRegistry.getSharedInstance();
|
||||
this.argumentResolvers.add(new RequestParamMethodArgumentResolver(null, adapterRegistry, false));
|
||||
|
||||
BindingContext context = createBindingContext("initBinderTypeConversion", WebDataBinder.class, int.class);
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ import static org.springframework.web.method.MvcAnnotationPredicates.matrixAttri
|
|||
public class MatrixVariablesMapMethodArgumentResolverTests {
|
||||
|
||||
private final MatrixVariableMapMethodArgumentResolver resolver =
|
||||
new MatrixVariableMapMethodArgumentResolver(new ReactiveAdapterRegistry());
|
||||
new MatrixVariableMapMethodArgumentResolver(ReactiveAdapterRegistry.getSharedInstance());
|
||||
|
||||
private final MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/"));
|
||||
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ import static org.springframework.web.method.MvcAnnotationPredicates.matrixAttri
|
|||
public class MatrixVariablesMethodArgumentResolverTests {
|
||||
|
||||
private MatrixVariableMethodArgumentResolver resolver =
|
||||
new MatrixVariableMethodArgumentResolver(null, new ReactiveAdapterRegistry());
|
||||
new MatrixVariableMethodArgumentResolver(null, ReactiveAdapterRegistry.getSharedInstance());
|
||||
|
||||
private final MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/"));
|
||||
|
||||
|
|
|
|||
|
|
@ -40,7 +40,8 @@ import static org.springframework.mock.http.server.reactive.test.MockServerHttpR
|
|||
*/
|
||||
public class ModelArgumentResolverTests {
|
||||
|
||||
private final ModelArgumentResolver resolver = new ModelArgumentResolver(new ReactiveAdapterRegistry());
|
||||
private final ModelArgumentResolver resolver =
|
||||
new ModelArgumentResolver(ReactiveAdapterRegistry.getSharedInstance());
|
||||
|
||||
private final ServerWebExchange exchange = MockServerWebExchange.from(get("/"));
|
||||
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ public class ModelAttributeMethodArgumentResolverTests {
|
|||
@Test
|
||||
public void supports() throws Exception {
|
||||
ModelAttributeMethodArgumentResolver resolver =
|
||||
new ModelAttributeMethodArgumentResolver(new ReactiveAdapterRegistry(), false);
|
||||
new ModelAttributeMethodArgumentResolver(ReactiveAdapterRegistry.getSharedInstance(), false);
|
||||
|
||||
MethodParameter param = this.testMethod.annotPresent(ModelAttribute.class).arg(Foo.class);
|
||||
assertTrue(resolver.supportsParameter(param));
|
||||
|
|
@ -93,7 +93,7 @@ public class ModelAttributeMethodArgumentResolverTests {
|
|||
@Test
|
||||
public void supportsWithDefaultResolution() throws Exception {
|
||||
ModelAttributeMethodArgumentResolver resolver =
|
||||
new ModelAttributeMethodArgumentResolver(new ReactiveAdapterRegistry(), true);
|
||||
new ModelAttributeMethodArgumentResolver(ReactiveAdapterRegistry.getSharedInstance(), true);
|
||||
|
||||
MethodParameter param = this.testMethod.annotNotPresent(ModelAttribute.class).arg(Foo.class);
|
||||
assertTrue(resolver.supportsParameter(param));
|
||||
|
|
@ -306,7 +306,7 @@ public class ModelAttributeMethodArgumentResolverTests {
|
|||
|
||||
|
||||
private ModelAttributeMethodArgumentResolver createResolver() {
|
||||
return new ModelAttributeMethodArgumentResolver(new ReactiveAdapterRegistry(), false);
|
||||
return new ModelAttributeMethodArgumentResolver(ReactiveAdapterRegistry.getSharedInstance(), false);
|
||||
}
|
||||
|
||||
private ServerWebExchange postForm(String formData) throws URISyntaxException {
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ public class ModelInitializerTests {
|
|||
@Before
|
||||
public void setUp() throws Exception {
|
||||
|
||||
ReactiveAdapterRegistry adapterRegistry = new ReactiveAdapterRegistry();
|
||||
ReactiveAdapterRegistry adapterRegistry = ReactiveAdapterRegistry.getSharedInstance();
|
||||
|
||||
ArgumentResolverConfigurer resolverConfigurer = new ArgumentResolverConfigurer();
|
||||
resolverConfigurer.addCustomResolver(new ModelArgumentResolver(adapterRegistry));
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ public class PathVariableMapMethodArgumentResolverTests {
|
|||
|
||||
@Before
|
||||
public void setup() throws Exception {
|
||||
this.resolver = new PathVariableMapMethodArgumentResolver(new ReactiveAdapterRegistry());
|
||||
this.resolver = new PathVariableMapMethodArgumentResolver(ReactiveAdapterRegistry.getSharedInstance());
|
||||
|
||||
Method method = ReflectionUtils.findMethod(getClass(), "handle", (Class<?>[]) null);
|
||||
this.paramMap = new MethodParameter(method, 0);
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ public class PathVariableMethodArgumentResolverTests {
|
|||
|
||||
@Before
|
||||
public void setup() throws Exception {
|
||||
this.resolver = new PathVariableMethodArgumentResolver(null, new ReactiveAdapterRegistry());
|
||||
this.resolver = new PathVariableMethodArgumentResolver(null, ReactiveAdapterRegistry.getSharedInstance());
|
||||
|
||||
Method method = ReflectionUtils.findMethod(getClass(), "handle", (Class<?>[]) null);
|
||||
paramNamedString = new SynthesizingMethodParameter(method, 0);
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ import static org.junit.Assert.assertTrue;
|
|||
public class PrincipalArgumentResolverTests {
|
||||
|
||||
private final PrincipalArgumentResolver resolver =
|
||||
new PrincipalArgumentResolver(new ReactiveAdapterRegistry());
|
||||
new PrincipalArgumentResolver(ReactiveAdapterRegistry.getSharedInstance());
|
||||
|
||||
private ResolvableMethod testMethod = ResolvableMethod.on(getClass()).named("handle").build();
|
||||
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ public class RequestAttributeMethodArgumentResolverTests {
|
|||
public void setup() throws Exception {
|
||||
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
|
||||
context.refresh();
|
||||
ReactiveAdapterRegistry registry = new ReactiveAdapterRegistry();
|
||||
ReactiveAdapterRegistry registry = ReactiveAdapterRegistry.getSharedInstance();
|
||||
this.resolver = new RequestAttributeMethodArgumentResolver(context.getBeanFactory(), registry);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ public class RequestBodyArgumentResolverTests {
|
|||
public void setup() {
|
||||
List<HttpMessageReader<?>> readers = new ArrayList<>();
|
||||
readers.add(new DecoderHttpMessageReader<>(StringDecoder.allMimeTypes(true)));
|
||||
this.resolver = new RequestBodyArgumentResolver(readers, new ReactiveAdapterRegistry());
|
||||
this.resolver = new RequestBodyArgumentResolver(readers, ReactiveAdapterRegistry.getSharedInstance());
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ public class RequestHeaderMapMethodArgumentResolverTests {
|
|||
|
||||
@Before
|
||||
public void setup() throws Exception {
|
||||
resolver = new RequestHeaderMapMethodArgumentResolver(new ReactiveAdapterRegistry());
|
||||
resolver = new RequestHeaderMapMethodArgumentResolver(ReactiveAdapterRegistry.getSharedInstance());
|
||||
|
||||
Method method = ReflectionUtils.findMethod(getClass(), "params", (Class<?>[]) null);
|
||||
paramMap = new SynthesizingMethodParameter(method, 0);
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ public class RequestHeaderMethodArgumentResolverTests {
|
|||
public void setup() throws Exception {
|
||||
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
|
||||
context.refresh();
|
||||
ReactiveAdapterRegistry adapterRegistry = new ReactiveAdapterRegistry();
|
||||
ReactiveAdapterRegistry adapterRegistry = ReactiveAdapterRegistry.getSharedInstance();
|
||||
this.resolver = new RequestHeaderMethodArgumentResolver(context.getBeanFactory(), adapterRegistry);
|
||||
|
||||
ConfigurableWebBindingInitializer initializer = new ConfigurableWebBindingInitializer();
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ import static org.springframework.web.method.MvcAnnotationPredicates.requestPara
|
|||
public class RequestParamMapMethodArgumentResolverTests {
|
||||
|
||||
private final RequestParamMapMethodArgumentResolver resolver =
|
||||
new RequestParamMapMethodArgumentResolver(new ReactiveAdapterRegistry());
|
||||
new RequestParamMapMethodArgumentResolver(ReactiveAdapterRegistry.getSharedInstance());
|
||||
|
||||
private ResolvableMethod testMethod = ResolvableMethod.on(getClass()).named("handle").build();
|
||||
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ public class RequestParamMethodArgumentResolverTests {
|
|||
@Before
|
||||
public void setup() throws Exception {
|
||||
|
||||
ReactiveAdapterRegistry adapterRegistry = new ReactiveAdapterRegistry();
|
||||
ReactiveAdapterRegistry adapterRegistry = ReactiveAdapterRegistry.getSharedInstance();
|
||||
this.resolver = new RequestParamMethodArgumentResolver(null, adapterRegistry, true);
|
||||
|
||||
ConfigurableWebBindingInitializer initializer = new ConfigurableWebBindingInitializer();
|
||||
|
|
@ -100,7 +100,7 @@ public class RequestParamMethodArgumentResolverTests {
|
|||
|
||||
@Test
|
||||
public void doesNotSupportParameterWithDefaultResolutionTurnedOff() {
|
||||
ReactiveAdapterRegistry adapterRegistry = new ReactiveAdapterRegistry();
|
||||
ReactiveAdapterRegistry adapterRegistry = ReactiveAdapterRegistry.getSharedInstance();
|
||||
this.resolver = new RequestParamMethodArgumentResolver(null, adapterRegistry, false);
|
||||
|
||||
MethodParameter param = this.testMethod.annotNotPresent(RequestParam.class).arg(String.class);
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ import static org.junit.Assert.fail;
|
|||
public class ServerWebExchangeArgumentResolverTests {
|
||||
|
||||
private final ServerWebExchangeArgumentResolver resolver =
|
||||
new ServerWebExchangeArgumentResolver(new ReactiveAdapterRegistry());
|
||||
new ServerWebExchangeArgumentResolver(ReactiveAdapterRegistry.getSharedInstance());
|
||||
|
||||
private final MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/path"));
|
||||
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ public class SessionAttributeMethodArgumentResolverTests {
|
|||
public void setup() throws Exception {
|
||||
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
|
||||
context.refresh();
|
||||
ReactiveAdapterRegistry adapterRegistry = new ReactiveAdapterRegistry();
|
||||
ReactiveAdapterRegistry adapterRegistry = ReactiveAdapterRegistry.getSharedInstance();
|
||||
this.resolver = new SessionAttributeMethodArgumentResolver(context.getBeanFactory(), adapterRegistry);
|
||||
|
||||
this.session = mock(WebSession.class);
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ import static org.mockito.Mockito.mock;
|
|||
public class WebSessionArgumentResolverTests {
|
||||
|
||||
private final WebSessionArgumentResolver resolver =
|
||||
new WebSessionArgumentResolver(new ReactiveAdapterRegistry());
|
||||
new WebSessionArgumentResolver(ReactiveAdapterRegistry.getSharedInstance());
|
||||
|
||||
private ResolvableMethod testMethod = ResolvableMethod.on(getClass()).named("handle").build();
|
||||
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ class RequestParamMethodArgumentResolverKotlinTests {
|
|||
|
||||
@Before
|
||||
fun setup() {
|
||||
this.resolver = RequestParamMethodArgumentResolver(null, ReactiveAdapterRegistry(), true)
|
||||
this.resolver = RequestParamMethodArgumentResolver(null, ReactiveAdapterRegistry.getSharedInstance(), true)
|
||||
val initializer = ConfigurableWebBindingInitializer()
|
||||
initializer.conversionService = DefaultFormattingConversionService()
|
||||
bindingContext = BindingContext(initializer)
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ class ReactiveTypeHandler {
|
|||
|
||||
|
||||
public ReactiveTypeHandler() {
|
||||
this(new ReactiveAdapterRegistry(), new SyncTaskExecutor(), new ContentNegotiationManager());
|
||||
this(ReactiveAdapterRegistry.getSharedInstance(), new SyncTaskExecutor(), new ContentNegotiationManager());
|
||||
}
|
||||
|
||||
ReactiveTypeHandler(ReactiveAdapterRegistry registry, TaskExecutor executor,
|
||||
|
|
|
|||
|
|
@ -152,7 +152,7 @@ public class RequestMappingHandlerAdapter extends AbstractHandlerMethodAdapter
|
|||
|
||||
private DeferredResultProcessingInterceptor[] deferredResultInterceptors = new DeferredResultProcessingInterceptor[0];
|
||||
|
||||
private ReactiveAdapterRegistry reactiveRegistry = new ReactiveAdapterRegistry();
|
||||
private ReactiveAdapterRegistry reactiveRegistry = ReactiveAdapterRegistry.getSharedInstance();
|
||||
|
||||
private boolean ignoreDefaultModelOnRedirect = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ public class ReactiveTypeHandlerTests {
|
|||
ContentNegotiationManagerFactoryBean factoryBean = new ContentNegotiationManagerFactoryBean();
|
||||
factoryBean.afterPropertiesSet();
|
||||
ContentNegotiationManager manager = factoryBean.getObject();
|
||||
this.handler = new ReactiveTypeHandler(new ReactiveAdapterRegistry(), new SyncTaskExecutor(), manager);
|
||||
this.handler = new ReactiveTypeHandler(ReactiveAdapterRegistry.getSharedInstance(), new SyncTaskExecutor(), manager);
|
||||
resetRequest();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue