From 55283444da7745231dbd44c75c34e89bc30638e9 Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Tue, 22 Jan 2008 00:52:07 +0000 Subject: [PATCH] The 'channel' element now requires an 'id'. --- .../integration/config/ChannelParser.java | 3 --- .../integration/config/spring-integration-1.0.xsd | 15 ++++++--------- .../scheduling/MessagePublishingErrorHandler.java | 4 +--- .../integration/config/ChannelParserTests.java | 6 ++++++ .../integration/config/channelWithoutId.xml | 12 ++++++++++++ 5 files changed, 25 insertions(+), 15 deletions(-) create mode 100644 spring-integration-core/src/test/java/org/springframework/integration/config/channelWithoutId.xml diff --git a/spring-integration-core/src/main/java/org/springframework/integration/config/ChannelParser.java b/spring-integration-core/src/main/java/org/springframework/integration/config/ChannelParser.java index 7c84487bcc..c393e667dc 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/config/ChannelParser.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/config/ChannelParser.java @@ -66,9 +66,6 @@ public class ChannelParser implements BeanDefinitionParser { } channelDef.getConstructorArgumentValues().addGenericArgumentValue(dispatcherPolicy); String beanName = element.getAttribute(ID_ATTRIBUTE); - if (!StringUtils.hasText(beanName)) { - beanName = parserContext.getReaderContext().generateBeanName(channelDef); - } parserContext.registerBeanComponent(new BeanComponentDefinition(channelDef, beanName)); return channelDef; } diff --git a/spring-integration-core/src/main/java/org/springframework/integration/config/spring-integration-1.0.xsd b/spring-integration-core/src/main/java/org/springframework/integration/config/spring-integration-1.0.xsd index e6979063b1..ba5783bd99 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/config/spring-integration-1.0.xsd +++ b/spring-integration-core/src/main/java/org/springframework/integration/config/spring-integration-1.0.xsd @@ -47,15 +47,12 @@ Defines a message channel. - - - - - - - - - + + + + + + diff --git a/spring-integration-core/src/main/java/org/springframework/integration/scheduling/MessagePublishingErrorHandler.java b/spring-integration-core/src/main/java/org/springframework/integration/scheduling/MessagePublishingErrorHandler.java index ab54183a0a..c76387e102 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/scheduling/MessagePublishingErrorHandler.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/scheduling/MessagePublishingErrorHandler.java @@ -53,9 +53,7 @@ public class MessagePublishingErrorHandler implements ErrorHandler { public void handle(Throwable t) { if (this.errorChannel != null) { try { - if(this.errorChannel.send(new ErrorMessage(t), this.sendTimeout)) { - return; - } + this.errorChannel.send(new ErrorMessage(t), this.sendTimeout); } catch (Throwable ignore) { // message will be logged only } diff --git a/spring-integration-core/src/test/java/org/springframework/integration/config/ChannelParserTests.java b/spring-integration-core/src/test/java/org/springframework/integration/config/ChannelParserTests.java index 6ea86e0dcb..197f8cbc11 100644 --- a/spring-integration-core/src/test/java/org/springframework/integration/config/ChannelParserTests.java +++ b/spring-integration-core/src/test/java/org/springframework/integration/config/ChannelParserTests.java @@ -26,6 +26,7 @@ import java.util.concurrent.atomic.AtomicInteger; import org.junit.Test; +import org.springframework.beans.FatalBeanException; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.integration.channel.MessageChannel; import org.springframework.integration.dispatcher.DefaultMessageDispatcher; @@ -40,6 +41,11 @@ import org.springframework.integration.message.StringMessage; */ public class ChannelParserTests { + @Test(expected=FatalBeanException.class) + public void testChannelWithoutId() { + new ClassPathXmlApplicationContext("channelWithoutId.xml", this.getClass()); + } + @Test public void testChannelWithCapacity() { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( diff --git a/spring-integration-core/src/test/java/org/springframework/integration/config/channelWithoutId.xml b/spring-integration-core/src/test/java/org/springframework/integration/config/channelWithoutId.xml new file mode 100644 index 0000000000..8214cfb79d --- /dev/null +++ b/spring-integration-core/src/test/java/org/springframework/integration/config/channelWithoutId.xml @@ -0,0 +1,12 @@ + + + + + +