From b4d56160ecdb38a977e6bc914912cd2d38b700bc Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Wed, 22 Dec 2010 15:42:14 -0500 Subject: [PATCH] INT-1712 fixed the way MailOutboundChannelAdapterParser sets the javaMailProperties --- spring-integration-mail/.springBeans | 1 + .../MailOutboundChannelAdapterParser.java | 3 ++- ...MailOutboundChannelAdapterParserTests.java | 12 ++++++++++ ...OutboundWithJavamailProperties-context.xml | 23 +++++++++++++++++++ 4 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 spring-integration-mail/src/test/java/org/springframework/integration/mail/config/MailOutboundWithJavamailProperties-context.xml diff --git a/spring-integration-mail/.springBeans b/spring-integration-mail/.springBeans index 6f4c287497..a5e8c77289 100644 --- a/spring-integration-mail/.springBeans +++ b/spring-integration-mail/.springBeans @@ -7,6 +7,7 @@ + src/test/java/org/springframework/integration/mail/config/MailOutboundWithJavamailProperties-context.xml diff --git a/spring-integration-mail/src/main/java/org/springframework/integration/mail/config/MailOutboundChannelAdapterParser.java b/spring-integration-mail/src/main/java/org/springframework/integration/mail/config/MailOutboundChannelAdapterParser.java index bbde0ddc9c..a6892af3eb 100644 --- a/spring-integration-mail/src/main/java/org/springframework/integration/mail/config/MailOutboundChannelAdapterParser.java +++ b/spring-integration-mail/src/main/java/org/springframework/integration/mail/config/MailOutboundChannelAdapterParser.java @@ -64,8 +64,9 @@ public class MailOutboundChannelAdapterParser extends AbstractOutboundChannelAda if (StringUtils.hasText(port)) { mailSenderBuilder.addPropertyValue("port", port); } - IntegrationNamespaceUtils.setValueIfAttributeDefined( + IntegrationNamespaceUtils.setReferenceIfAttributeDefined( mailSenderBuilder, element, "java-mail-properties", "javaMailProperties"); + String mailSenderBeanName = BeanDefinitionReaderUtils.registerWithGeneratedName( mailSenderBuilder.getBeanDefinition(), parserContext.getRegistry()); builder.addConstructorArgReference(mailSenderBeanName); diff --git a/spring-integration-mail/src/test/java/org/springframework/integration/mail/config/MailOutboundChannelAdapterParserTests.java b/spring-integration-mail/src/test/java/org/springframework/integration/mail/config/MailOutboundChannelAdapterParserTests.java index 69b07d38b1..9c9ffef1e3 100644 --- a/spring-integration-mail/src/test/java/org/springframework/integration/mail/config/MailOutboundChannelAdapterParserTests.java +++ b/spring-integration-mail/src/test/java/org/springframework/integration/mail/config/MailOutboundChannelAdapterParserTests.java @@ -54,5 +54,17 @@ public class MailOutboundChannelAdapterParserTests { MailSender mailSender = (MailSender) fieldAccessor.getPropertyValue("mailSender"); assertNotNull(mailSender); } + + @Test + public void adapterWithJavaMailProperties() { + ApplicationContext context = new ClassPathXmlApplicationContext( + "MailOutboundWithJavamailProperties-context.xml", this.getClass()); + Object adapter = context.getBean("adapterWithHostProperty.adapter"); + MailSendingMessageHandler handler = (MailSendingMessageHandler) + new DirectFieldAccessor(adapter).getPropertyValue("handler"); + DirectFieldAccessor fieldAccessor = new DirectFieldAccessor(handler); + MailSender mailSender = (MailSender) fieldAccessor.getPropertyValue("mailSender"); + assertNotNull(mailSender); + } } diff --git a/spring-integration-mail/src/test/java/org/springframework/integration/mail/config/MailOutboundWithJavamailProperties-context.xml b/spring-integration-mail/src/test/java/org/springframework/integration/mail/config/MailOutboundWithJavamailProperties-context.xml new file mode 100644 index 0000000000..ce667e7218 --- /dev/null +++ b/spring-integration-mail/src/test/java/org/springframework/integration/mail/config/MailOutboundWithJavamailProperties-context.xml @@ -0,0 +1,23 @@ + + + + + + + javax.net.ssl.SSLSocketFactory + false + imaps + smtps + true + true + false + +