From b68f7ca17a1725441f339a5a360d6f05aa229a86 Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Fri, 10 Oct 2008 00:57:05 +0000 Subject: [PATCH] Removing dependencies on ConfigurationException. --- .../mail/DefaultFolderConnection.java | 7 +--- .../MailOutboundChannelAdapterParser.java | 15 +++----- .../mail/config/PollingMailSourceParser.java | 38 ++++++++----------- .../stream/CharacterStreamSource.java | 3 +- ...CharacterStreamWritingMessageConsumer.java | 3 +- ...nsoleInboundChannelAdapterParserTests.java | 7 ++-- ...soleOutboundChannelAdapterParserTests.java | 7 ++-- .../message/MethodInvokingSource.java | 8 ++-- .../router/MethodInvokingChannelResolver.java | 3 +- 9 files changed, 35 insertions(+), 56 deletions(-) diff --git a/org.springframework.integration.mail/src/main/java/org/springframework/integration/mail/DefaultFolderConnection.java b/org.springframework.integration.mail/src/main/java/org/springframework/integration/mail/DefaultFolderConnection.java index 8e3df7930d..8f420a7f67 100644 --- a/org.springframework.integration.mail/src/main/java/org/springframework/integration/mail/DefaultFolderConnection.java +++ b/org.springframework.integration.mail/src/main/java/org/springframework/integration/mail/DefaultFolderConnection.java @@ -30,7 +30,6 @@ import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.DisposableBean; import org.springframework.context.Lifecycle; -import org.springframework.integration.ConfigurationException; import org.springframework.integration.mail.monitor.AsyncMonitoringStrategy; import org.springframework.integration.mail.monitor.MailTransportUtils; import org.springframework.integration.mail.monitor.MonitoringStrategy; @@ -71,10 +70,8 @@ public class DefaultFolderConnection implements Lifecycle, DisposableBean, Folde this.storeUri = new URLName(storeUri); this.monitoringStrategy = monitoringStrategy; this.polling = polling; - if (!polling && monitoringStrategy.getClass().isAssignableFrom(AsyncMonitoringStrategy.class)) { - throw new ConfigurationException( - "Folder connection requires an AsyncMonitoringStrategy if polling is disabled."); - } + Assert.isTrue(polling || AsyncMonitoringStrategy.class.isAssignableFrom(monitoringStrategy.getClass()), + "Folder connection requires an AsyncMonitoringStrategy if polling is disabled."); } diff --git a/org.springframework.integration.mail/src/main/java/org/springframework/integration/mail/config/MailOutboundChannelAdapterParser.java b/org.springframework.integration.mail/src/main/java/org/springframework/integration/mail/config/MailOutboundChannelAdapterParser.java index f14d75604e..bb7720e925 100644 --- a/org.springframework.integration.mail/src/main/java/org/springframework/integration/mail/config/MailOutboundChannelAdapterParser.java +++ b/org.springframework.integration.mail/src/main/java/org/springframework/integration/mail/config/MailOutboundChannelAdapterParser.java @@ -22,11 +22,11 @@ import org.springframework.beans.factory.support.AbstractBeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.BeanDefinitionReaderUtils; import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.integration.ConfigurationException; import org.springframework.integration.config.AbstractOutboundChannelAdapterParser; import org.springframework.integration.config.IntegrationNamespaceUtils; import org.springframework.integration.mail.MailSendingMessageConsumer; import org.springframework.mail.javamail.JavaMailSenderImpl; +import org.springframework.util.Assert; import org.springframework.util.StringUtils; /** @@ -49,13 +49,13 @@ public class MailOutboundChannelAdapterParser extends AbstractOutboundChannelAda String username = element.getAttribute("username"); String password = element.getAttribute("password"); if (StringUtils.hasText(mailSenderRef)) { - if (StringUtils.hasText(host) || StringUtils.hasText(username) || StringUtils.hasText(password)) { - throw new ConfigurationException("The 'host', 'username', and 'password' properties " + - "should not be provided when using a 'mail-sender' reference."); - } + Assert.isTrue(!StringUtils.hasText(host) && !StringUtils.hasText(username) && !StringUtils.hasText(password), + "The 'host', 'username', and 'password' properties " + + "should not be provided when using a 'mail-sender' reference."); builder.addConstructorArgReference(mailSenderRef); } - else if (StringUtils.hasText(host)) { + else { + Assert.hasText(host, "Either a 'mail-sender' reference or 'host' property is required."); BeanDefinitionBuilder mailSenderBuilder = BeanDefinitionBuilder.genericBeanDefinition(JavaMailSenderImpl.class); mailSenderBuilder.addPropertyValue("host", host); @@ -74,9 +74,6 @@ public class MailOutboundChannelAdapterParser extends AbstractOutboundChannelAda mailSenderBuilder.getBeanDefinition(), parserContext.getRegistry()); builder.addConstructorArgReference(mailSenderBeanName); } - else { - throw new ConfigurationException("Either a 'mail-sender' reference or 'host' property is required."); - } return builder.getBeanDefinition(); } diff --git a/org.springframework.integration.mail/src/main/java/org/springframework/integration/mail/config/PollingMailSourceParser.java b/org.springframework.integration.mail/src/main/java/org/springframework/integration/mail/config/PollingMailSourceParser.java index 209ea087a9..191a9f9dd1 100644 --- a/org.springframework.integration.mail/src/main/java/org/springframework/integration/mail/config/PollingMailSourceParser.java +++ b/org.springframework.integration.mail/src/main/java/org/springframework/integration/mail/config/PollingMailSourceParser.java @@ -21,12 +21,12 @@ import org.w3c.dom.Element; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser; import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.integration.ConfigurationException; import org.springframework.integration.mail.DefaultFolderConnection; import org.springframework.integration.mail.PollingMailSource; import org.springframework.integration.mail.monitor.MonitoringStrategy; import org.springframework.integration.mail.monitor.PollingMonitoringStrategy; import org.springframework.integration.mail.monitor.Pop3PollingMonitoringStrategy; +import org.springframework.util.Assert; import org.springframework.util.StringUtils; /** @@ -46,28 +46,24 @@ public class PollingMailSourceParser extends AbstractSingleBeanDefinitionParser return true; } - protected void doParse(Element element, ParserContext parserContext, - BeanDefinitionBuilder builder) { + protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { String mailConvertorRef = element.getAttribute("convertor"); String uri = element.getAttribute("store-uri"); String propertiesRef = element.getAttribute("javaMailProperties"); - if (!StringUtils.hasLength(uri)) { - throw new ConfigurationException("A store-uri is required"); - } + Assert.hasText(uri, "the 'store-uri' attribute is required"); BeanDefinitionBuilder folderConnectionBuilder = BeanDefinitionBuilder .genericBeanDefinition(DefaultFolderConnection.class); - String storeType = uri.substring(0, 4).toLowerCase(); MonitoringStrategy monitoringStrategy = null; - - if (storeType.equals("pop3")) { + if (uri.toLowerCase().startsWith("pop3")) { monitoringStrategy = new Pop3PollingMonitoringStrategy(); - } else if (storeType.equals("imap")) { - monitoringStrategy = new PollingMonitoringStrategy(); - } else { - throw new ConfigurationException( - "No monitoring strategy for store-uri " + uri); } - + else if (uri.toLowerCase().startsWith("imap")) { + monitoringStrategy = new PollingMonitoringStrategy(); + } + else { + throw new IllegalArgumentException( + "unable to determine monitoring strategy for store-uri [" + uri + "]"); + } folderConnectionBuilder.addConstructorArgValue(uri); folderConnectionBuilder.addConstructorArgValue(monitoringStrategy); // set polling true @@ -78,16 +74,12 @@ public class PollingMailSourceParser extends AbstractSingleBeanDefinitionParser propertiesRef); } String folderConnectionName = parserContext.getReaderContext() - .registerWithGeneratedName( - folderConnectionBuilder.getBeanDefinition()); - + .registerWithGeneratedName(folderConnectionBuilder.getBeanDefinition()); builder.addDependsOn(folderConnectionName); - builder.addConstructorArgValue(folderConnectionBuilder - .getBeanDefinition()); - + builder.addConstructorArgValue(folderConnectionBuilder.getBeanDefinition()); if (StringUtils.hasText(mailConvertorRef)) { builder.addPropertyReference("convertor", mailConvertorRef); } - } -} \ No newline at end of file + +} diff --git a/org.springframework.integration.stream/src/main/java/org/springframework/integration/stream/CharacterStreamSource.java b/org.springframework.integration.stream/src/main/java/org/springframework/integration/stream/CharacterStreamSource.java index 15f3e33440..1389c53275 100644 --- a/org.springframework.integration.stream/src/main/java/org/springframework/integration/stream/CharacterStreamSource.java +++ b/org.springframework.integration.stream/src/main/java/org/springframework/integration/stream/CharacterStreamSource.java @@ -22,7 +22,6 @@ import java.io.InputStreamReader; import java.io.Reader; import java.io.UnsupportedEncodingException; -import org.springframework.integration.ConfigurationException; import org.springframework.integration.message.MessageSource; import org.springframework.integration.message.MessagingException; import org.springframework.integration.message.StringMessage; @@ -84,7 +83,7 @@ public class CharacterStreamSource implements MessageSource { return new CharacterStreamSource(new InputStreamReader(System.in, charsetName)); } catch (UnsupportedEncodingException e) { - throw new ConfigurationException("unsupported encoding: " + charsetName, e); + throw new IllegalArgumentException("unsupported encoding: " + charsetName, e); } } diff --git a/org.springframework.integration.stream/src/main/java/org/springframework/integration/stream/CharacterStreamWritingMessageConsumer.java b/org.springframework.integration.stream/src/main/java/org/springframework/integration/stream/CharacterStreamWritingMessageConsumer.java index 6568237436..7f13d60f19 100644 --- a/org.springframework.integration.stream/src/main/java/org/springframework/integration/stream/CharacterStreamWritingMessageConsumer.java +++ b/org.springframework.integration.stream/src/main/java/org/springframework/integration/stream/CharacterStreamWritingMessageConsumer.java @@ -26,7 +26,6 @@ import java.io.Writer; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.springframework.integration.ConfigurationException; import org.springframework.integration.message.Message; import org.springframework.integration.message.MessageConsumer; import org.springframework.integration.message.MessagingException; @@ -108,7 +107,7 @@ public class CharacterStreamWritingMessageConsumer implements MessageConsumer { return new CharacterStreamWritingMessageConsumer(new OutputStreamWriter(stream, charsetName)); } catch (UnsupportedEncodingException e) { - throw new ConfigurationException("unsupported encoding: " + charsetName, e); + throw new IllegalArgumentException("unsupported encoding: " + charsetName, e); } } diff --git a/org.springframework.integration.stream/src/test/java/org/springframework/integration/stream/config/ConsoleInboundChannelAdapterParserTests.java b/org.springframework.integration.stream/src/test/java/org/springframework/integration/stream/config/ConsoleInboundChannelAdapterParserTests.java index 93d215badd..e438962ff8 100644 --- a/org.springframework.integration.stream/src/test/java/org/springframework/integration/stream/config/ConsoleInboundChannelAdapterParserTests.java +++ b/org.springframework.integration.stream/src/test/java/org/springframework/integration/stream/config/ConsoleInboundChannelAdapterParserTests.java @@ -32,7 +32,6 @@ import org.junit.Test; import org.springframework.beans.DirectFieldAccessor; import org.springframework.beans.factory.BeanCreationException; import org.springframework.context.support.ClassPathXmlApplicationContext; -import org.springframework.integration.ConfigurationException; import org.springframework.integration.endpoint.SourcePollingChannelAdapter; import org.springframework.integration.message.Message; import org.springframework.integration.message.MessageSource; @@ -99,9 +98,9 @@ public class ConsoleInboundChannelAdapterParserTests { beanCreationException = e; } Throwable parentCause = beanCreationException.getCause().getCause(); - assertEquals(ConfigurationException.class, parentCause.getClass()); - Throwable configurationExceptionCause = ((ConfigurationException) parentCause).getCause(); - assertEquals(UnsupportedEncodingException.class, configurationExceptionCause.getClass()); + assertEquals(IllegalArgumentException.class, parentCause.getClass()); + Throwable rootCause = ((IllegalArgumentException) parentCause).getCause(); + assertEquals(UnsupportedEncodingException.class, rootCause.getClass()); } } diff --git a/org.springframework.integration.stream/src/test/java/org/springframework/integration/stream/config/ConsoleOutboundChannelAdapterParserTests.java b/org.springframework.integration.stream/src/test/java/org/springframework/integration/stream/config/ConsoleOutboundChannelAdapterParserTests.java index f27bff18b0..a6abed36df 100644 --- a/org.springframework.integration.stream/src/test/java/org/springframework/integration/stream/config/ConsoleOutboundChannelAdapterParserTests.java +++ b/org.springframework.integration.stream/src/test/java/org/springframework/integration/stream/config/ConsoleOutboundChannelAdapterParserTests.java @@ -32,7 +32,6 @@ import org.junit.Test; import org.springframework.beans.DirectFieldAccessor; import org.springframework.beans.factory.BeanCreationException; import org.springframework.context.support.ClassPathXmlApplicationContext; -import org.springframework.integration.ConfigurationException; import org.springframework.integration.message.StringMessage; import org.springframework.integration.stream.CharacterStreamWritingMessageConsumer; @@ -110,9 +109,9 @@ public class ConsoleOutboundChannelAdapterParserTests { beanCreationException = e; } Throwable parentCause = beanCreationException.getCause().getCause(); - assertEquals(ConfigurationException.class, parentCause.getClass()); - Throwable configurationExceptionCause = ((ConfigurationException) parentCause).getCause(); - assertEquals(UnsupportedEncodingException.class, configurationExceptionCause.getClass()); + assertEquals(IllegalArgumentException.class, parentCause.getClass()); + Throwable rootCause = ((IllegalArgumentException) parentCause).getCause(); + assertEquals(UnsupportedEncodingException.class, rootCause.getClass()); } @Test diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/message/MethodInvokingSource.java b/org.springframework.integration/src/main/java/org/springframework/integration/message/MethodInvokingSource.java index f734d53e1f..db1e0d2c70 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/message/MethodInvokingSource.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/message/MethodInvokingSource.java @@ -20,7 +20,6 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import org.springframework.beans.factory.InitializingBean; -import org.springframework.integration.ConfigurationException; import org.springframework.integration.util.DefaultMethodInvoker; import org.springframework.integration.util.MethodInvoker; import org.springframework.integration.util.MethodValidator; @@ -70,7 +69,7 @@ public class MethodInvokingSource implements MessageSource, Initializing this.invoker = nrmi; } else { - throw new ConfigurationException("either 'method' or 'methodName' is required"); + throw new IllegalArgumentException("either 'method' or 'methodName' is required"); } } @@ -101,9 +100,8 @@ public class MethodInvokingSource implements MessageSource, Initializing private static class MessageReceivingMethodValidator implements MethodValidator { public void validate(Method method) { - if (method.getReturnType().equals(void.class)) { - throw new ConfigurationException("MethodInvokingSource requires a non-void returning method."); - } + Assert.isTrue(!method.getReturnType().equals(void.class), + "MethodInvokingSource requires a non-void returning method."); } } diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/router/MethodInvokingChannelResolver.java b/org.springframework.integration/src/main/java/org/springframework/integration/router/MethodInvokingChannelResolver.java index f4cb018840..e876fa2e79 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/router/MethodInvokingChannelResolver.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/router/MethodInvokingChannelResolver.java @@ -23,7 +23,6 @@ import java.util.Collection; import java.util.List; import org.springframework.beans.factory.InitializingBean; -import org.springframework.integration.ConfigurationException; import org.springframework.integration.channel.ChannelRegistry; import org.springframework.integration.channel.ChannelRegistryAware; import org.springframework.integration.channel.MessageChannel; @@ -90,7 +89,7 @@ public class MethodInvokingChannelResolver implements ChannelResolver, ChannelRe this.addChannel((String) result, channels); } else { - throw new ConfigurationException( + throw new IllegalStateException( "router method must return type 'MessageChannel' or 'String'"); } return channels;