From cdd48ddd7f18f4cebd2586e34e10dea1629d1eed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Deleuze?= Date: Fri, 9 Oct 2020 12:51:08 +0200 Subject: [PATCH] Improve Coroutines support consistency --- spring-messaging/spring-messaging.gradle | 1 - spring-webflux/spring-webflux.gradle | 1 - .../method/annotation/ControllerMethodResolver.java | 6 +++--- .../method/annotation/ControllerMethodResolverTests.java | 8 ++++---- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/spring-messaging/spring-messaging.gradle b/spring-messaging/spring-messaging.gradle index a619cd3384b..c1ed06cb23d 100644 --- a/spring-messaging/spring-messaging.gradle +++ b/spring-messaging/spring-messaging.gradle @@ -16,7 +16,6 @@ dependencies { optional("javax.json.bind:javax.json.bind-api") optional("javax.xml.bind:jaxb-api") optional("com.google.protobuf:protobuf-java-util") - optional("org.jetbrains.kotlinx:kotlinx-coroutines-core") optional("org.jetbrains.kotlinx:kotlinx-coroutines-reactor") testCompile(project(":kotlin-coroutines")) testCompile(testFixtures(project(":spring-core"))) diff --git a/spring-webflux/spring-webflux.gradle b/spring-webflux/spring-webflux.gradle index b8488d24413..f7ef1aa64cd 100644 --- a/spring-webflux/spring-webflux.gradle +++ b/spring-webflux/spring-webflux.gradle @@ -26,7 +26,6 @@ dependencies { optional("org.jetbrains.kotlin:kotlin-reflect") optional("org.jetbrains.kotlin:kotlin-stdlib") optional("com.google.protobuf:protobuf-java-util") - optional("org.jetbrains.kotlinx:kotlinx-coroutines-core") optional("org.jetbrains.kotlinx:kotlinx-coroutines-reactor") testCompile(project(":kotlin-coroutines")) testCompile(testFixtures(project(":spring-beans"))) diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/ControllerMethodResolver.java b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/ControllerMethodResolver.java index f35b8c9897b..b4da595d4f7 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/ControllerMethodResolver.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/ControllerMethodResolver.java @@ -189,9 +189,6 @@ class ControllerMethodResolver { result.add(new RequestAttributeMethodArgumentResolver(beanFactory, adapterRegistry)); // Type-based... - if (KotlinDetector.isKotlinPresent()) { - result.add(new ContinuationHandlerMethodArgumentResolver()); - } if (!readers.isEmpty()) { result.add(new HttpEntityMethodArgumentResolver(readers, adapterRegistry)); } @@ -205,6 +202,9 @@ class ControllerMethodResolver { result.add(new SessionStatusMethodArgumentResolver()); } result.add(new WebSessionMethodArgumentResolver(adapterRegistry)); + if (KotlinDetector.isKotlinPresent()) { + result.add(new ContinuationHandlerMethodArgumentResolver()); + } // Custom... result.addAll(customResolvers.getCustomResolvers()); diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ControllerMethodResolverTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ControllerMethodResolverTests.java index 0ae2ff24281..6bfc2d849ca 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ControllerMethodResolverTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ControllerMethodResolverTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2019 the original author or authors. + * Copyright 2002-2020 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -105,7 +105,6 @@ public class ControllerMethodResolverTests { assertThat(next(resolvers, index).getClass()).isEqualTo(SessionAttributeMethodArgumentResolver.class); assertThat(next(resolvers, index).getClass()).isEqualTo(RequestAttributeMethodArgumentResolver.class); - assertThat(next(resolvers, index).getClass()).isEqualTo(ContinuationHandlerMethodArgumentResolver.class); assertThat(next(resolvers, index).getClass()).isEqualTo(HttpEntityMethodArgumentResolver.class); assertThat(next(resolvers, index).getClass()).isEqualTo(ModelMethodArgumentResolver.class); assertThat(next(resolvers, index).getClass()).isEqualTo(ErrorsMethodArgumentResolver.class); @@ -113,6 +112,7 @@ public class ControllerMethodResolverTests { assertThat(next(resolvers, index).getClass()).isEqualTo(PrincipalMethodArgumentResolver.class); assertThat(next(resolvers, index).getClass()).isEqualTo(SessionStatusMethodArgumentResolver.class); assertThat(next(resolvers, index).getClass()).isEqualTo(WebSessionMethodArgumentResolver.class); + assertThat(next(resolvers, index).getClass()).isEqualTo(ContinuationHandlerMethodArgumentResolver.class); assertThat(next(resolvers, index).getClass()).isEqualTo(CustomArgumentResolver.class); assertThat(next(resolvers, index).getClass()).isEqualTo(CustomSyncArgumentResolver.class); @@ -144,12 +144,12 @@ public class ControllerMethodResolverTests { assertThat(next(resolvers, index).getClass()).isEqualTo(SessionAttributeMethodArgumentResolver.class); assertThat(next(resolvers, index).getClass()).isEqualTo(RequestAttributeMethodArgumentResolver.class); - assertThat(next(resolvers, index).getClass()).isEqualTo(ContinuationHandlerMethodArgumentResolver.class); assertThat(next(resolvers, index).getClass()).isEqualTo(ModelMethodArgumentResolver.class); assertThat(next(resolvers, index).getClass()).isEqualTo(ErrorsMethodArgumentResolver.class); assertThat(next(resolvers, index).getClass()).isEqualTo(ServerWebExchangeMethodArgumentResolver.class); assertThat(next(resolvers, index).getClass()).isEqualTo(PrincipalMethodArgumentResolver.class); assertThat(next(resolvers, index).getClass()).isEqualTo(WebSessionMethodArgumentResolver.class); + assertThat(next(resolvers, index).getClass()).isEqualTo(ContinuationHandlerMethodArgumentResolver.class); assertThat(next(resolvers, index).getClass()).isEqualTo(CustomArgumentResolver.class); assertThat(next(resolvers, index).getClass()).isEqualTo(CustomSyncArgumentResolver.class); @@ -211,11 +211,11 @@ public class ControllerMethodResolverTests { assertThat(next(resolvers, index).getClass()).isEqualTo(SessionAttributeMethodArgumentResolver.class); assertThat(next(resolvers, index).getClass()).isEqualTo(RequestAttributeMethodArgumentResolver.class); - assertThat(next(resolvers, index).getClass()).isEqualTo(ContinuationHandlerMethodArgumentResolver.class); assertThat(next(resolvers, index).getClass()).isEqualTo(ModelMethodArgumentResolver.class); assertThat(next(resolvers, index).getClass()).isEqualTo(ServerWebExchangeMethodArgumentResolver.class); assertThat(next(resolvers, index).getClass()).isEqualTo(PrincipalMethodArgumentResolver.class); assertThat(next(resolvers, index).getClass()).isEqualTo(WebSessionMethodArgumentResolver.class); + assertThat(next(resolvers, index).getClass()).isEqualTo(ContinuationHandlerMethodArgumentResolver.class); assertThat(next(resolvers, index).getClass()).isEqualTo(CustomArgumentResolver.class); assertThat(next(resolvers, index).getClass()).isEqualTo(CustomSyncArgumentResolver.class);