<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/integration/webflux"
			 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
			 xmlns:beans="http://www.springframework.org/schema/beans"
			 xmlns:si="http://www.springframework.org/schema/integration"
			 xsi:schemaLocation="http://www.springframework.org/schema/beans
			https://www.springframework.org/schema/beans/spring-beans.xsd
			http://www.springframework.org/schema/integration
			https://www.springframework.org/schema/integration/spring-integration.xsd
			http://www.springframework.org/schema/integration/webflux
			https://www.springframework.org/schema/integration/webflux/spring-integration-webflux.xsd">

	<si:channel id="requests"/>

	<beans:bean id="webClient" class="org.springframework.web.reactive.function.client.WebClient"
				factory-method="create"/>

	<si:channel id="replies">
		<si:queue/>
	</si:channel>

	<outbound-gateway id="reactiveMinimalConfig" url="http://localhost/test1" request-channel="requests"
					  web-client="webClient"/>

	<outbound-gateway id="reactiveFullConfig"
					  url="http://localhost/test2"
					  http-method="PUT"
					  encoding-mode="NONE"
					  request-channel="requests"
					  reply-timeout="1234"
					  extract-request-payload="false"
					  expected-response-type="java.lang.String"
					  mapped-request-headers="requestHeader1, requestHeader2"
					  mapped-response-headers="responseHeader"
					  reply-channel="replies"
					  charset="UTF-8"
					  order="77"
					  auto-startup="false"
					  transfer-cookies="true"
					  reply-payload-to-flux="true"
					  body-extractor="bodyExtractor"
					  publisher-element-type-expression="headers.elementType"
					  extract-response-body="false"
					  attribute-variables-expression="{name:{first:'Nikola',last:'Tesla'},dob:{day:10,month:'July',year:1856}}">
		<uri-variable name="foo" expression="headers.bar"/>
	</outbound-gateway>

	<beans:bean id="bodyExtractor"
				class="org.springframework.integration.webflux.support.ClientHttpResponseBodyExtractor"/>

</beans:beans>
