INT-1866 moved HeaderMapper building logic to parsers (part 2)
This commit is contained in:
@@ -33,6 +33,7 @@ import org.w3c.dom.Element;
|
||||
* 'inbound-channel-adapter' and 'true' for the 'inbound-gateway'.
|
||||
*
|
||||
* @author Mark Fisher
|
||||
* @author Oleg Zhurakousky
|
||||
*/
|
||||
public class HttpInboundEndpointParser extends AbstractSingleBeanDefinitionParser {
|
||||
|
||||
|
||||
@@ -72,9 +72,7 @@ public class HttpOutboundChannelAdapterParser extends AbstractOutboundChannelAda
|
||||
else if (StringUtils.hasText(mappedRequestHeaders)) {
|
||||
BeanDefinitionBuilder headerMapperBuilder = BeanDefinitionBuilder.genericBeanDefinition(
|
||||
"org.springframework.integration.http.support.DefaultHttpHeaderMapper");
|
||||
if (StringUtils.hasText(mappedRequestHeaders)) {
|
||||
IntegrationNamespaceUtils.setValueIfAttributeDefined(headerMapperBuilder, element, "mapped-request-headers", "outboundHeaderNames");
|
||||
}
|
||||
IntegrationNamespaceUtils.setValueIfAttributeDefined(headerMapperBuilder, element, "mapped-request-headers", "outboundHeaderNames");
|
||||
builder.addPropertyValue("headerMapper", headerMapperBuilder.getBeanDefinition());
|
||||
}
|
||||
IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "charset");
|
||||
|
||||
@@ -34,6 +34,7 @@ import org.springframework.util.xml.DomUtils;
|
||||
* Parser for the 'outbound-gateway' element of the http namespace.
|
||||
*
|
||||
* @author Mark Fisher
|
||||
* @author Oleg Zhurakousky
|
||||
*/
|
||||
public class HttpOutboundGatewayParser extends AbstractConsumerEndpointParser {
|
||||
|
||||
@@ -71,7 +72,7 @@ public class HttpOutboundGatewayParser extends AbstractConsumerEndpointParser {
|
||||
}
|
||||
builder.addPropertyReference("headerMapper", headerMapper);
|
||||
}
|
||||
else {//if (StringUtils.hasText(mappedRequestHeaders) || StringUtils.hasText(mappedResponseHeaders)) {
|
||||
else {
|
||||
BeanDefinitionBuilder headerMapperBuilder = BeanDefinitionBuilder.genericBeanDefinition(
|
||||
"org.springframework.integration.http.support.DefaultHttpHeaderMapper");
|
||||
headerMapperBuilder.setFactoryMethod("outboundMapper");
|
||||
|
||||
@@ -44,6 +44,7 @@ import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.integration.MessageHeaders;
|
||||
import org.springframework.integration.context.IntegrationContextUtils;
|
||||
import org.springframework.integration.mapping.HeaderMapper;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
@@ -344,7 +345,8 @@ public class DefaultHttpHeaderMapper implements HeaderMapper<HttpHeaders>, BeanF
|
||||
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
if (this.beanFactory != null && this.beanFactory instanceof DefaultListableBeanFactory){
|
||||
this.conversionService = ((DefaultListableBeanFactory)this.beanFactory).getConversionService();
|
||||
|
||||
this.conversionService = IntegrationContextUtils.getConversionService(this.beanFactory);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -29,15 +29,11 @@
|
||||
<inbound-gateway id="withMappedHeadersAndConverter" request-channel="requests"
|
||||
mapped-response-headers="abc, xyz, person"
|
||||
mapped-request-headers="foo,bar"/>
|
||||
|
||||
<beans:bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
|
||||
<beans:property name="converters">
|
||||
<util:set>
|
||||
<beans:bean class="org.springframework.integration.http.config.HttpInboundGatewayParserTests.PersonConverter"/>
|
||||
</util:set>
|
||||
</beans:property>
|
||||
</beans:bean>
|
||||
|
||||
|
||||
|
||||
<si:converter ref="personConverter"/>
|
||||
|
||||
<beans:bean id="personConverter" class="org.springframework.integration.http.config.HttpInboundGatewayParserTests.PersonConverter"/>
|
||||
|
||||
|
||||
</beans:beans>
|
||||
|
||||
@@ -35,12 +35,9 @@ import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.beans.DirectFieldAccessor;
|
||||
import org.springframework.beans.factory.BeanFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
|
||||
import org.springframework.core.convert.converter.Converter;
|
||||
import org.springframework.core.convert.support.GenericConversionService;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.integration.Message;
|
||||
import org.springframework.integration.MessageHeaders;
|
||||
@@ -63,9 +60,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration
|
||||
public class HttpInboundGatewayParserTests {
|
||||
@Autowired
|
||||
private DefaultListableBeanFactory beanFactory;
|
||||
|
||||
|
||||
@Autowired
|
||||
@Qualifier("inboundGateway")
|
||||
private HttpRequestHandlingMessagingGateway gateway;
|
||||
|
||||
@@ -462,7 +462,7 @@ public class DefaultHttpHeaderMapperFromMessageInboundTests {
|
||||
mapper.setOutboundHeaderNames(new String[] {"customHeader*"});
|
||||
ConversionService cs = ConversionServiceFactory.createDefaultConversionService();
|
||||
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
|
||||
beanFactory.setConversionService(cs);
|
||||
beanFactory.registerSingleton("integrationConversionService", cs);
|
||||
mapper.setBeanFactory(beanFactory);
|
||||
mapper.afterPropertiesSet();
|
||||
|
||||
@@ -484,7 +484,7 @@ public class DefaultHttpHeaderMapperFromMessageInboundTests {
|
||||
GenericConversionService cs = ConversionServiceFactory.createDefaultConversionService();
|
||||
cs.addConverter(new TestClassConverter());
|
||||
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
|
||||
beanFactory.setConversionService(cs);
|
||||
beanFactory.registerSingleton("integrationConversionService", cs);
|
||||
mapper.setBeanFactory(beanFactory);
|
||||
mapper.afterPropertiesSet();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user