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 + +