MailTarget is now MailSendingMessageConsumer, and the "integration/mail" namespace now defines an "outbound-channel-adapter" element.
This commit is contained in:
@@ -18,8 +18,8 @@ package org.springframework.integration.mail;
|
||||
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.integration.message.Message;
|
||||
import org.springframework.integration.message.MessageConsumer;
|
||||
import org.springframework.integration.message.MessageMapper;
|
||||
import org.springframework.integration.message.MessageTarget;
|
||||
import org.springframework.mail.MailMessage;
|
||||
import org.springframework.mail.SimpleMailMessage;
|
||||
import org.springframework.mail.javamail.JavaMailSender;
|
||||
@@ -27,12 +27,12 @@ import org.springframework.mail.javamail.MimeMailMessage;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
* A target adapter for sending mail.
|
||||
* A {@link MessageConsumer} implementation for sending mail.
|
||||
*
|
||||
* @author Marius Bogoevici
|
||||
* @author Mark Fisher
|
||||
*/
|
||||
public class MailTarget implements MessageTarget, InitializingBean {
|
||||
public class MailSendingMessageConsumer implements MessageConsumer, InitializingBean {
|
||||
|
||||
private final JavaMailSender mailSender;
|
||||
|
||||
@@ -46,12 +46,12 @@ public class MailTarget implements MessageTarget, InitializingBean {
|
||||
|
||||
|
||||
/**
|
||||
* Create a MailTargetAdapter.
|
||||
* Create a MailSendingMessageConsumer.
|
||||
*
|
||||
* @param mailSender the {@link JavaMailSender} instance to which this
|
||||
* adapter will delegate.
|
||||
*/
|
||||
public MailTarget(JavaMailSender mailSender) {
|
||||
public MailSendingMessageConsumer(JavaMailSender mailSender) {
|
||||
Assert.notNull(mailSender, "'mailSender' must not be null");
|
||||
this.mailSender = mailSender;
|
||||
}
|
||||
@@ -83,11 +83,10 @@ public class MailTarget implements MessageTarget, InitializingBean {
|
||||
this.objectMessageMapper = objectMessageMapper;
|
||||
}
|
||||
|
||||
public final boolean send(Message<?> message) {
|
||||
public final void onMessage(Message<?> message) {
|
||||
MailMessage mailMessage = this.convertMessageToMailMessage(message);
|
||||
this.mailHeaderGenerator.populateMailMessageHeader(mailMessage, message);
|
||||
this.sendMailMessage(mailMessage);
|
||||
return true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@@ -26,7 +26,7 @@ import org.springframework.beans.factory.xml.NamespaceHandlerSupport;
|
||||
public class MailNamespaceHandler extends NamespaceHandlerSupport {
|
||||
|
||||
public void init() {
|
||||
this.registerBeanDefinitionParser("mail-target", new MailTargetParser());
|
||||
this.registerBeanDefinitionParser("outbound-channel-adapter", new MailOutboundChannelAdapterParser());
|
||||
this.registerBeanDefinitionParser("polling-mail-source", new PollingMailSourceParser());
|
||||
this.registerBeanDefinitionParser("imap-idle-mail-source", new SubscribableImapIdleMailSourceParser());
|
||||
}
|
||||
|
||||
@@ -19,33 +19,28 @@ package org.springframework.integration.mail.config;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
|
||||
import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
|
||||
import org.springframework.beans.factory.support.BeanDefinitionReaderUtils;
|
||||
import org.springframework.beans.factory.xml.ParserContext;
|
||||
import org.springframework.integration.ConfigurationException;
|
||||
import org.springframework.integration.mail.MailTarget;
|
||||
import org.springframework.integration.config.AbstractOutboundChannelAdapterParser;
|
||||
import org.springframework.integration.mail.MailSendingMessageConsumer;
|
||||
import org.springframework.mail.javamail.JavaMailSenderImpl;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
* Parser for the <mail-target/> element.
|
||||
* Parser for the <outbound-channel-adapter/> element of the 'mail' namespace.
|
||||
*
|
||||
* @author Mark Fisher
|
||||
*/
|
||||
public class MailTargetParser extends AbstractSingleBeanDefinitionParser {
|
||||
public class MailOutboundChannelAdapterParser extends AbstractOutboundChannelAdapterParser {
|
||||
|
||||
protected Class<?> getBeanClass(Element element) {
|
||||
return MailTarget.class;
|
||||
return MailSendingMessageConsumer.class;
|
||||
}
|
||||
|
||||
protected boolean shouldGenerateId() {
|
||||
return false;
|
||||
}
|
||||
|
||||
protected boolean shouldGenerateIdAsFallback() {
|
||||
return true;
|
||||
}
|
||||
|
||||
protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {
|
||||
@Override
|
||||
protected String parseConsumer(Element element, ParserContext parserContext) {
|
||||
BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(MailSendingMessageConsumer.class);
|
||||
String mailSenderRef = element.getAttribute("mail-sender");
|
||||
String host = element.getAttribute("host");
|
||||
String username = element.getAttribute("username");
|
||||
@@ -75,6 +70,8 @@ public class MailTargetParser extends AbstractSingleBeanDefinitionParser {
|
||||
if (StringUtils.hasText(headerGeneratorRef)) {
|
||||
builder.addPropertyReference("headerGenerator", headerGeneratorRef);
|
||||
}
|
||||
return BeanDefinitionReaderUtils.registerWithGeneratedName(
|
||||
builder.getBeanDefinition(), parserContext.getRegistry());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -16,11 +16,11 @@
|
||||
]]></xsd:documentation>
|
||||
</xsd:annotation>
|
||||
|
||||
<xsd:element name="mail-target">
|
||||
<xsd:element name="outbound-channel-adapter">
|
||||
<xsd:complexType>
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Defines a mail-sending target.
|
||||
Defines an outbound mail-sending Channel Adapter.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:attribute name="id" type="xsd:string"/>
|
||||
@@ -31,7 +31,7 @@
|
||||
<xsd:attribute name="password" type="xsd:string"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
|
||||
<xsd:element name="polling-mail-source">
|
||||
<xsd:complexType>
|
||||
<xsd:annotation>
|
||||
@@ -44,12 +44,12 @@
|
||||
<xsd:attribute name="mail-convertor" type="xsd:string" use="optional"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
|
||||
<xsd:element name="imap-idle-mail-source">
|
||||
<xsd:complexType>
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Defines a polling mail source.
|
||||
Defines an IMAP mail source.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:attribute name="id" type="xsd:string" use="required"/>
|
||||
|
||||
Reference in New Issue
Block a user