Merge pull request #203 from markfisher/INT-2259
added wrapper for ConversionServiceFactoryBean
This commit is contained in:
@@ -26,6 +26,8 @@ import org.springframework.beans.factory.support.BeanDefinitionBuilder;
|
||||
import org.springframework.beans.factory.support.BeanDefinitionReaderUtils;
|
||||
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
||||
import org.springframework.context.support.ConversionServiceFactoryBean;
|
||||
import org.springframework.core.convert.ConversionService;
|
||||
import org.springframework.core.convert.support.GenericConversionService;
|
||||
|
||||
/**
|
||||
* @author Oleg Zhurakousky
|
||||
@@ -39,7 +41,7 @@ class ConversionServiceCreator implements BeanFactoryPostProcessor {
|
||||
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) {
|
||||
if (!beanFactory.containsBean(IntegrationContextUtils.INTEGRATION_CONVERSION_SERVICE_BEAN_NAME)) {
|
||||
if (beanFactory instanceof BeanDefinitionRegistry) {
|
||||
BeanDefinitionBuilder conversionServiceBuilder = BeanDefinitionBuilder.rootBeanDefinition(ConversionServiceFactoryBean.class);
|
||||
BeanDefinitionBuilder conversionServiceBuilder = BeanDefinitionBuilder.rootBeanDefinition(CustomConversionServiceFactoryBean.class);
|
||||
BeanDefinitionHolder beanDefinitionHolder = new BeanDefinitionHolder(
|
||||
conversionServiceBuilder.getBeanDefinition(), IntegrationContextUtils.INTEGRATION_CONVERSION_SERVICE_BEAN_NAME);
|
||||
BeanDefinitionReaderUtils.registerBeanDefinition(beanDefinitionHolder, (BeanDefinitionRegistry) beanFactory);
|
||||
@@ -50,4 +52,21 @@ class ConversionServiceCreator implements BeanFactoryPostProcessor {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This is a workaround until we depend on Spring 3.1 and specifically when SPR-8818 is resolved.
|
||||
* See INT-2259 and INT-1893 for more detail.
|
||||
*/
|
||||
static class CustomConversionServiceFactoryBean extends ConversionServiceFactoryBean {
|
||||
|
||||
@Override
|
||||
public ConversionService getObject() {
|
||||
ConversionService service = super.getObject();
|
||||
if (service instanceof GenericConversionService) {
|
||||
((GenericConversionService) service).removeConvertible(Object.class, Object.class);
|
||||
}
|
||||
return service;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user