diff --git a/build.gradle b/build.gradle index 61b6211e13..608c513edb 100644 --- a/build.gradle +++ b/build.gradle @@ -125,7 +125,7 @@ subprojects { subproject -> pahoMqttClientVersion = '1.1.1' postgresVersion = '42.0.0' reactorNettyVersion = '0.6.4.RELEASE' - reactorVersion = '3.1.0.M1' + reactorVersion = '3.1.0.M2' romeToolsVersion = '1.7.2' servletApiVersion = '3.1.0' slf4jVersion = "1.7.25" @@ -310,7 +310,7 @@ project('spring-integration-core') { compile("com.esotericsoftware:kryo-shaded:$kryoShadedVersion", optional) testCompile ("org.aspectj:aspectjweaver:$aspectjVersion") - compile "io.projectreactor.addons:reactor-test:$reactorVersion" + compile "io.projectreactor:reactor-test:$reactorVersion" } } diff --git a/spring-integration-http/src/main/java/org/springframework/integration/http/outbound/ReactiveHttpRequestExecutingMessageHandler.java b/spring-integration-http/src/main/java/org/springframework/integration/http/outbound/ReactiveHttpRequestExecutingMessageHandler.java index 91f816b5c8..ced72726d1 100644 --- a/spring-integration-http/src/main/java/org/springframework/integration/http/outbound/ReactiveHttpRequestExecutingMessageHandler.java +++ b/spring-integration-http/src/main/java/org/springframework/integration/http/outbound/ReactiveHttpRequestExecutingMessageHandler.java @@ -21,17 +21,18 @@ import java.util.function.Supplier; import org.springframework.beans.factory.BeanFactory; import org.springframework.core.ParameterizedTypeReference; -import org.springframework.core.ResolvableType; import org.springframework.expression.Expression; import org.springframework.expression.common.LiteralExpression; import org.springframework.http.HttpEntity; import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; +import org.springframework.http.ReactiveHttpInputMessage; import org.springframework.http.ResponseEntity; import org.springframework.integration.expression.ValueExpression; import org.springframework.messaging.Message; import org.springframework.messaging.MessageHandler; import org.springframework.util.Assert; +import org.springframework.web.reactive.function.BodyExtractor; import org.springframework.web.reactive.function.BodyExtractors; import org.springframework.web.reactive.function.BodyInserters; import org.springframework.web.reactive.function.client.ClientResponse; @@ -135,22 +136,22 @@ public class ReactiveHttpRequestExecutingMessageHandler extends AbstractHttpRequ }); if (isExpectReply()) { - ResolvableType responseType; + BodyExtractor, ReactiveHttpInputMessage> bodyExtractor; if (expectedResponseType instanceof ParameterizedTypeReference) { - responseType = ResolvableType.forType(((ParameterizedTypeReference) expectedResponseType).getType()); + bodyExtractor = BodyExtractors.toMono((ParameterizedTypeReference) expectedResponseType); } else if (expectedResponseType != null) { - responseType = ResolvableType.forClass((Class) expectedResponseType); + bodyExtractor = BodyExtractors.toMono((Class) expectedResponseType); } else { - responseType = null; + bodyExtractor = null; } return responseMono .map(response -> - new ResponseEntity<>(responseType != null - ? response.body(BodyExtractors.toMono(responseType)).block() + new ResponseEntity<>(bodyExtractor != null + ? response.body(bodyExtractor).block() : null, response.headers().asHttpHeaders(), response.statusCode()))