INT-1206 the "url" attribute is now required on http:outbound-gateway

This commit is contained in:
Mark Fisher
2010-06-24 22:21:33 +00:00
parent 4f991b613f
commit 1363b2699e
7 changed files with 31 additions and 162 deletions

View File

@@ -7,6 +7,6 @@
http://www.springframework.org/schema/integration/http
http://www.springframework.org/schema/integration/http/spring-integration-http.xsd">
<http:outbound-gateway request-channel="testChannel" auto-startup="false"/>
<http:outbound-gateway url="http://localhost/test1" request-channel="testChannel" auto-startup="false"/>
</beans>

View File

@@ -68,7 +68,7 @@ public class HttpOutboundChannelAdapterParserTests {
assertTrue(mapper instanceof DefaultOutboundRequestMapper);
assertTrue(requestFactory instanceof SimpleClientHttpRequestFactory);
DirectFieldAccessor mapperAccessor = new DirectFieldAccessor(mapper);
assertEquals("http://localhost/test1", handlerAccessor.getPropertyValue("defaultUri"));
assertEquals("http://localhost/test1", handlerAccessor.getPropertyValue("uri"));
assertEquals("UTF-8", mapperAccessor.getPropertyValue("charset"));
assertEquals(true, mapperAccessor.getPropertyValue("extractPayload"));
}
@@ -92,7 +92,7 @@ public class HttpOutboundChannelAdapterParserTests {
Object requestFactoryBean = this.applicationContext.getBean("testRequestFactory");
assertEquals(requestFactoryBean, requestFactory);
DirectFieldAccessor mapperAccessor = new DirectFieldAccessor(mapper);
assertEquals("http://localhost/test2", handlerAccessor.getPropertyValue("defaultUri"));
assertEquals("http://localhost/test2", handlerAccessor.getPropertyValue("uri"));
assertEquals("UTF-8", mapperAccessor.getPropertyValue("charset"));
assertEquals(false, mapperAccessor.getPropertyValue("extractPayload"));
}

View File

@@ -12,36 +12,23 @@
<si:channel id="requests"/>
<outbound-gateway id="minimalConfig" request-channel="requests"/>
<outbound-gateway id="minimalConfig" url="http://localhost/test1" request-channel="requests"/>
<si:channel id="replies">
<si:queue/>
</si:channel>
<outbound-gateway id="fullConfigWithMapper"
<outbound-gateway id="fullConfig"
url="http://localhost/test2"
request-channel="requests"
default-url="http://localhost/test1"
request-mapper="testMapper"
request-factory="testRequestFactory"
request-timeout="1234"
extract-request-payload="false"
reply-channel="replies"
charset="UTF-8"
order="77"
auto-startup="false"/>
<outbound-gateway id="fullConfigWithoutMapper"
request-channel="requests"
default-url="http://localhost/test2"
extract-request-payload="false"
charset="UTF-8"
request-factory="testRequestFactory"
request-timeout="1234"
reply-channel="replies"/>
<beans:bean id="testMapper" class="org.springframework.integration.http.DefaultOutboundRequestMapper">
<beans:property name="charset" value="UTF-8"/>
<beans:property name="extractPayload" value="false"/>
</beans:bean>
<beans:bean id="testRequestFactory" class="org.springframework.http.client.SimpleClientHttpRequestFactory"/>
</beans:beans>

View File

@@ -18,7 +18,6 @@ package org.springframework.integration.http.config;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNotSame;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
@@ -49,11 +48,8 @@ public class HttpOutboundGatewayParserTests {
@Autowired @Qualifier("minimalConfig")
private AbstractEndpoint minimalConfigEndpoint;
@Autowired @Qualifier("fullConfigWithMapper")
private AbstractEndpoint fullConfigWithMapperEndpoint;
@Autowired @Qualifier("fullConfigWithoutMapper")
private AbstractEndpoint fullConfigWithoutMapperEndpoint;
@Autowired @Qualifier("fullConfig")
private AbstractEndpoint fullConfigEndpoint;
@Autowired
private ApplicationContext applicationContext;
@@ -75,20 +71,18 @@ public class HttpOutboundGatewayParserTests {
templateAccessor.getPropertyValue("requestFactory");
assertTrue(mapper instanceof DefaultOutboundRequestMapper);
assertTrue(requestFactory instanceof SimpleClientHttpRequestFactory);
Object mapperBean = this.applicationContext.getBean("testMapper");
assertNotSame(mapperBean, mapper);
DirectFieldAccessor mapperAccessor = new DirectFieldAccessor(mapper);
assertNull(handlerAccessor.getPropertyValue("defaultUri"));
assertEquals("http://localhost/test1", handlerAccessor.getPropertyValue("uri"));
assertEquals("UTF-8", mapperAccessor.getPropertyValue("charset"));
assertEquals(true, mapperAccessor.getPropertyValue("extractPayload"));
}
@Test
public void fullConfigWithMapper() throws Exception {
DirectFieldAccessor endpointAccessor = new DirectFieldAccessor(this.fullConfigWithMapperEndpoint);
public void fullConfig() throws Exception {
DirectFieldAccessor endpointAccessor = new DirectFieldAccessor(this.fullConfigEndpoint);
HttpRequestExecutingMessageHandler handler = (HttpRequestExecutingMessageHandler) endpointAccessor.getPropertyValue("handler");
MessageChannel requestChannel = (MessageChannel) new DirectFieldAccessor(
this.fullConfigWithMapperEndpoint).getPropertyValue("inputChannel");
this.fullConfigEndpoint).getPropertyValue("inputChannel");
assertEquals(this.applicationContext.getBean("requests"), requestChannel);
DirectFieldAccessor handlerAccessor = new DirectFieldAccessor(handler);
assertEquals(77, handlerAccessor.getPropertyValue("order"));
@@ -102,40 +96,8 @@ public class HttpOutboundGatewayParserTests {
templateAccessor.getPropertyValue("requestFactory");
assertTrue(mapper instanceof DefaultOutboundRequestMapper);
assertTrue(requestFactory instanceof SimpleClientHttpRequestFactory);
Object mapperBean = this.applicationContext.getBean("testMapper");
assertEquals(mapperBean, mapper);
DirectFieldAccessor mapperAccessor = new DirectFieldAccessor(mapper);
assertEquals("http://localhost/test1", handlerAccessor.getPropertyValue("defaultUri"));
assertEquals("UTF-8", mapperAccessor.getPropertyValue("charset"));
assertEquals(false, mapperAccessor.getPropertyValue("extractPayload"));
Object requestFactoryBean = this.applicationContext.getBean("testRequestFactory");
assertEquals(requestFactoryBean, requestFactory);
Object sendTimeout = new DirectFieldAccessor(
handlerAccessor.getPropertyValue("channelTemplate")).getPropertyValue("sendTimeout");
assertEquals(new Long("1234"), sendTimeout);
}
@Test
public void fullConfigWithoutMapper() throws Exception {
HttpRequestExecutingMessageHandler handler = (HttpRequestExecutingMessageHandler) new DirectFieldAccessor(
this.fullConfigWithoutMapperEndpoint).getPropertyValue("handler");
MessageChannel requestChannel = (MessageChannel) new DirectFieldAccessor(
this.fullConfigWithoutMapperEndpoint).getPropertyValue("inputChannel");
assertEquals(this.applicationContext.getBean("requests"), requestChannel);
DirectFieldAccessor handlerAccessor = new DirectFieldAccessor(handler);
Object replyChannel = handlerAccessor.getPropertyValue("outputChannel");
assertNotNull(replyChannel);
assertEquals(this.applicationContext.getBean("replies"), replyChannel);
OutboundRequestMapper mapper = (OutboundRequestMapper) handlerAccessor.getPropertyValue("requestMapper");
DirectFieldAccessor templateAccessor = new DirectFieldAccessor(handlerAccessor.getPropertyValue("restTemplate"));
ClientHttpRequestFactory requestFactory = (ClientHttpRequestFactory)
templateAccessor.getPropertyValue("requestFactory");
assertTrue(mapper instanceof DefaultOutboundRequestMapper);
assertTrue(requestFactory instanceof SimpleClientHttpRequestFactory);
Object mapperBean = this.applicationContext.getBean("testMapper");
assertNotSame(mapperBean, mapper);
DirectFieldAccessor mapperAccessor = new DirectFieldAccessor(mapper);
assertEquals("http://localhost/test2", handlerAccessor.getPropertyValue("defaultUri"));
assertEquals("http://localhost/test2", handlerAccessor.getPropertyValue("uri"));
assertEquals("UTF-8", mapperAccessor.getPropertyValue("charset"));
assertEquals(false, mapperAccessor.getPropertyValue("extractPayload"));
Object requestFactoryBean = this.applicationContext.getBean("testRequestFactory");