Add shared instance of ReactiveAdapterRegistry

Issue: SPR-16218
master
Rossen Stoyanchev 7 years ago
parent 6f24c0de17
commit bc8e525e60
  1. 2
      spring-core/src/main/java/org/springframework/core/Conventions.java
  2. 33
      spring-core/src/main/java/org/springframework/core/ReactiveAdapterRegistry.java
  3. 2
      spring-core/src/test/java/org/springframework/core/convert/support/ReactiveAdapterRegistryTests.java
  4. 2
      spring-webflux/src/main/java/org/springframework/web/reactive/result/method/InvocableHandlerMethod.java
  5. 2
      spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/AbstractMessageReaderArgumentResolver.java
  6. 2
      spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/AbstractMessageWriterResultHandler.java
  7. 2
      spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerAdapter.java
  8. 2
      spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/ResponseBodyResultHandler.java
  9. 2
      spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/ResponseEntityResultHandler.java
  10. 2
      spring-webflux/src/main/java/org/springframework/web/reactive/result/view/AbstractView.java
  11. 2
      spring-webflux/src/main/java/org/springframework/web/reactive/result/view/ViewResolutionResultHandler.java
  12. 2
      spring-webflux/src/test/java/org/springframework/web/reactive/result/HandlerResultHandlerTests.java
  13. 2
      spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ControllerMethodResolverTests.java
  14. 2
      spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/CookieValueMethodArgumentResolverTests.java
  15. 2
      spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ErrorsMethodArgumentResolverTests.java
  16. 2
      spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ExpressionValueMethodArgumentResolverTests.java
  17. 2
      spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/HttpEntityArgumentResolverTests.java
  18. 2
      spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/InitBinderBindingContextTests.java
  19. 2
      spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/MatrixVariablesMapMethodArgumentResolverTests.java
  20. 2
      spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/MatrixVariablesMethodArgumentResolverTests.java
  21. 3
      spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ModelArgumentResolverTests.java
  22. 6
      spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ModelAttributeMethodArgumentResolverTests.java
  23. 2
      spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ModelInitializerTests.java
  24. 2
      spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/PathVariableMapMethodArgumentResolverTests.java
  25. 2
      spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/PathVariableMethodArgumentResolverTests.java
  26. 2
      spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/PrincipalArgumentResolverTests.java
  27. 2
      spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestAttributeMethodArgumentResolverTests.java
  28. 2
      spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestBodyArgumentResolverTests.java
  29. 2
      spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestHeaderMapMethodArgumentResolverTests.java
  30. 2
      spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestHeaderMethodArgumentResolverTests.java
  31. 2
      spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestParamMapMethodArgumentResolverTests.java
  32. 4
      spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestParamMethodArgumentResolverTests.java
  33. 2
      spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ServerWebExchangeArgumentResolverTests.java
  34. 2
      spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/SessionAttributeMethodArgumentResolverTests.java
  35. 2
      spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/WebSessionArgumentResolverTests.java
  36. 2
      spring-webflux/src/test/kotlin/org/springframework/web/reactive/result/method/annotation/RequestParamMethodArgumentResolverKotlinTests.kt
  37. 2
      spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ReactiveTypeHandler.java
  38. 2
      spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerAdapter.java
  39. 2
      spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/ReactiveTypeHandlerTests.java

@ -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…
Cancel
Save