From 2e53ec3b1a791313ac33587e5c054c1f300f6b38 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Thu, 24 Dec 2009 13:30:58 +0000 Subject: [PATCH] INT-875 --- ...ltConfiguringBeanFactoryPostProcessor.java | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/DefaultConfiguringBeanFactoryPostProcessor.java b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/DefaultConfiguringBeanFactoryPostProcessor.java index ec4573c279..3df5c15c90 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/DefaultConfiguringBeanFactoryPostProcessor.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/DefaultConfiguringBeanFactoryPostProcessor.java @@ -20,6 +20,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.config.BeanDefinitionHolder; import org.springframework.beans.factory.config.BeanFactoryPostProcessor; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; @@ -28,6 +29,8 @@ import org.springframework.beans.factory.support.BeanDefinitionReaderUtils; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.core.task.TaskExecutor; +import org.springframework.integration.channel.NullChannel; +import org.springframework.integration.config.xml.IntegrationNamespaceUtils; import org.springframework.integration.context.IntegrationContextUtils; /** @@ -37,6 +40,7 @@ import org.springframework.integration.context.IntegrationContextUtils; * single null channel with the bean name "nullChannel". * * @author Mark Fisher + * @author Oleg Zhurakousky */ class DefaultConfiguringBeanFactoryPostProcessor implements BeanFactoryPostProcessor { @@ -63,14 +67,20 @@ class DefaultConfiguringBeanFactoryPostProcessor implements BeanFactoryPostProce */ private void registerNullChannel(BeanDefinitionRegistry registry) { if (registry.isBeanNameInUse(IntegrationContextUtils.NULL_CHANNEL_BEAN_NAME)) { - throw new IllegalStateException("The bean name '" + - IntegrationContextUtils.NULL_CHANNEL_BEAN_NAME + "' is reserved."); + BeanDefinition bDef = registry.getBeanDefinition(IntegrationContextUtils.NULL_CHANNEL_BEAN_NAME); + if (bDef.getBeanClassName().equals(NullChannel.class.getName())){ + return; + } else { + throw new IllegalStateException("The bean name '" + + IntegrationContextUtils.NULL_CHANNEL_BEAN_NAME + "' is reserved."); + } + } else { + RootBeanDefinition nullChannelDef = new RootBeanDefinition(); + nullChannelDef.setBeanClassName(IntegrationNamespaceUtils.BASE_PACKAGE + ".channel.NullChannel"); + BeanDefinitionHolder nullChannelHolder = new BeanDefinitionHolder( + nullChannelDef, IntegrationContextUtils.NULL_CHANNEL_BEAN_NAME); + BeanDefinitionReaderUtils.registerBeanDefinition(nullChannelHolder, registry); } - RootBeanDefinition nullChannelDef = new RootBeanDefinition(); - nullChannelDef.setBeanClassName(IntegrationNamespaceUtils.BASE_PACKAGE + ".channel.NullChannel"); - BeanDefinitionHolder nullChannelHolder = new BeanDefinitionHolder( - nullChannelDef, IntegrationContextUtils.NULL_CHANNEL_BEAN_NAME); - BeanDefinitionReaderUtils.registerBeanDefinition(nullChannelHolder, registry); } /**