MailTargetAdapter is now MailTarget. MailTargetParser (f.k.a. MailTargetAdapterParser) no longer creates the endpoint (just the target).
This commit is contained in:
@@ -7,6 +7,6 @@ httpinvoker-source=org.springframework.integration.adapter.httpinvoker.config.Ht
|
||||
httpinvoker-target=org.springframework.integration.adapter.httpinvoker.config.HttpInvokerTargetAdapterParser
|
||||
jms-source=org.springframework.integration.adapter.jms.config.JmsSourceAdapterParser
|
||||
jms-target=org.springframework.integration.adapter.jms.config.JmsTargetAdapterParser
|
||||
mail-target=org.springframework.integration.adapter.mail.config.MailTargetAdapterParser
|
||||
mail-target=org.springframework.integration.adapter.mail.config.MailTargetParser
|
||||
rmi-source=org.springframework.integration.adapter.rmi.config.RmiSourceAdapterParser
|
||||
rmi-target=org.springframework.integration.adapter.rmi.config.RmiTargetAdapterParser
|
||||
@@ -164,7 +164,7 @@
|
||||
<xsd:complexType>
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>
|
||||
Defines a mail-sending target channel adapter.
|
||||
Defines a mail-sending target.
|
||||
</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:attribute name="id" type="xsd:string"/>
|
||||
@@ -173,7 +173,6 @@
|
||||
<xsd:attribute name="host" type="xsd:string"/>
|
||||
<xsd:attribute name="username" type="xsd:string"/>
|
||||
<xsd:attribute name="password" type="xsd:string"/>
|
||||
<xsd:attribute name="channel" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
|
||||
@@ -18,16 +18,11 @@ package org.springframework.integration.adapter.mail.config;
|
||||
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
import org.springframework.beans.factory.config.RuntimeBeanReference;
|
||||
import org.springframework.beans.factory.parsing.BeanComponentDefinition;
|
||||
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
|
||||
import org.springframework.beans.factory.support.RootBeanDefinition;
|
||||
import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
|
||||
import org.springframework.beans.factory.xml.ParserContext;
|
||||
import org.springframework.integration.ConfigurationException;
|
||||
import org.springframework.integration.adapter.mail.MailTarget;
|
||||
import org.springframework.integration.endpoint.TargetEndpoint;
|
||||
import org.springframework.integration.scheduling.Subscription;
|
||||
import org.springframework.mail.javamail.JavaMailSenderImpl;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
@@ -36,10 +31,10 @@ import org.springframework.util.StringUtils;
|
||||
*
|
||||
* @author Mark Fisher
|
||||
*/
|
||||
public class MailTargetAdapterParser extends AbstractSingleBeanDefinitionParser {
|
||||
public class MailTargetParser extends AbstractSingleBeanDefinitionParser {
|
||||
|
||||
protected Class<?> getBeanClass(Element element) {
|
||||
return TargetEndpoint.class;
|
||||
return MailTarget.class;
|
||||
}
|
||||
|
||||
protected boolean shouldGenerateId() {
|
||||
@@ -51,7 +46,6 @@ public class MailTargetAdapterParser extends AbstractSingleBeanDefinitionParser
|
||||
}
|
||||
|
||||
protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {
|
||||
RootBeanDefinition adapterDef = new RootBeanDefinition(MailTarget.class);
|
||||
String mailSenderRef = element.getAttribute("mail-sender");
|
||||
String host = element.getAttribute("host");
|
||||
String username = element.getAttribute("username");
|
||||
@@ -62,7 +56,7 @@ public class MailTargetAdapterParser extends AbstractSingleBeanDefinitionParser
|
||||
throw new ConfigurationException("The 'host', 'username', and 'password' properties " +
|
||||
"should not be provided when using a 'mail-sender' reference.");
|
||||
}
|
||||
adapterDef.getConstructorArgumentValues().addGenericArgumentValue(new RuntimeBeanReference(mailSenderRef));
|
||||
builder.addConstructorArgReference(mailSenderRef);
|
||||
}
|
||||
else if (StringUtils.hasText(host)) {
|
||||
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
|
||||
@@ -73,21 +67,14 @@ public class MailTargetAdapterParser extends AbstractSingleBeanDefinitionParser
|
||||
if (StringUtils.hasText(password)) {
|
||||
mailSender.setPassword(password);
|
||||
}
|
||||
adapterDef.getConstructorArgumentValues().addGenericArgumentValue(mailSender);
|
||||
builder.addConstructorArgValue(mailSender);
|
||||
}
|
||||
else {
|
||||
throw new ConfigurationException("Either a 'mail-sender' reference or 'host' property is required.");
|
||||
}
|
||||
if (StringUtils.hasText(headerGeneratorRef)) {
|
||||
adapterDef.getPropertyValues().addPropertyValue(
|
||||
"headerGenerator", new RuntimeBeanReference(headerGeneratorRef));
|
||||
builder.addPropertyReference("headerGenerator", headerGeneratorRef);
|
||||
}
|
||||
String adapterBeanName = parserContext.getReaderContext().generateBeanName(adapterDef);
|
||||
parserContext.registerBeanComponent(new BeanComponentDefinition(adapterDef, adapterBeanName));
|
||||
builder.addConstructorArgReference(adapterBeanName);
|
||||
String channel = element.getAttribute("channel");
|
||||
Subscription subscription = new Subscription(channel);
|
||||
builder.addPropertyValue("subscription", subscription);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -42,8 +42,8 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
* @author Marius Bogoevici
|
||||
*/
|
||||
@RunWith(value = SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(locations = {"classpath:/org/springframework/integration/adapter/mail/mailTargetAdapter.xml"})
|
||||
public class MailTargetAdapterContextTests {
|
||||
@ContextConfiguration(locations = {"classpath:/org/springframework/integration/adapter/mail/mailTarget.xml"})
|
||||
public class MailTargetContextTests {
|
||||
|
||||
@Autowired
|
||||
private MailTarget mailTarget;
|
||||
@@ -38,7 +38,7 @@ import org.springframework.mail.SimpleMailMessage;
|
||||
/**
|
||||
* @author Marius Bogoevici
|
||||
*/
|
||||
public class MailTargetAdapterTests {
|
||||
public class MailTargetTests {
|
||||
|
||||
private MailTarget mailTarget;
|
||||
|
||||
@@ -18,7 +18,6 @@ package org.springframework.integration.adapter.mail.config;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -27,44 +26,40 @@ import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||
import org.springframework.integration.adapter.mail.MailHeaderGenerator;
|
||||
import org.springframework.integration.adapter.mail.MailTarget;
|
||||
import org.springframework.integration.endpoint.TargetEndpoint;
|
||||
import org.springframework.integration.message.Message;
|
||||
import org.springframework.integration.message.Target;
|
||||
import org.springframework.mail.MailMessage;
|
||||
import org.springframework.mail.MailSender;
|
||||
|
||||
/**
|
||||
* @author Mark Fisher
|
||||
*/
|
||||
public class MailTargetAdapterParserTests {
|
||||
public class MailTargetParserTests {
|
||||
|
||||
@Test
|
||||
public void testAdapterWithMailSenderReference() {
|
||||
public void testTargetWithMailSenderReference() {
|
||||
ApplicationContext context = new ClassPathXmlApplicationContext(
|
||||
"mailTargetAdapterParserTests.xml", this.getClass());
|
||||
TargetEndpoint endpoint = (TargetEndpoint) context.getBean("adapterWithMailSenderReference");
|
||||
Target target = endpoint.getTarget();
|
||||
assertNotNull(target);
|
||||
assertTrue(target instanceof MailTarget);
|
||||
"mailTargetParserTests.xml", this.getClass());
|
||||
MailTarget target = (MailTarget) context.getBean("targetWithMailSenderReference");
|
||||
DirectFieldAccessor fieldAccessor = new DirectFieldAccessor(target);
|
||||
MailSender mailSender = (MailSender) fieldAccessor.getPropertyValue("mailSender");
|
||||
assertNotNull(mailSender);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAdapterWithHostProperty() {
|
||||
public void testTargetWithHostProperty() {
|
||||
ApplicationContext context = new ClassPathXmlApplicationContext(
|
||||
"mailTargetAdapterParserTests.xml", this.getClass());
|
||||
TargetEndpoint endpoint = (TargetEndpoint) context.getBean("adapterWithHostProperty");
|
||||
Target target = endpoint.getTarget();
|
||||
assertNotNull(target);
|
||||
assertTrue(target instanceof MailTarget);
|
||||
"mailTargetParserTests.xml", this.getClass());
|
||||
MailTarget target = (MailTarget) context.getBean("targetWithHostProperty");
|
||||
DirectFieldAccessor fieldAccessor = new DirectFieldAccessor(target);
|
||||
MailSender mailSender = (MailSender) fieldAccessor.getPropertyValue("mailSender");
|
||||
assertNotNull(mailSender);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAdapterWithHeaderGeneratorReference() {
|
||||
public void testTargetWithHeaderGeneratorReference() {
|
||||
ApplicationContext context = new ClassPathXmlApplicationContext(
|
||||
"mailTargetAdapterParserTests.xml", this.getClass());
|
||||
TargetEndpoint endpoint = (TargetEndpoint) context.getBean("adapterWithHeaderGeneratorReference");
|
||||
Target target = endpoint.getTarget();
|
||||
assertNotNull(target);
|
||||
assertTrue(target instanceof MailTarget);
|
||||
"mailTargetParserTests.xml", this.getClass());
|
||||
MailTarget target = (MailTarget) context.getBean("targetWithHeaderGeneratorReference");
|
||||
DirectFieldAccessor fieldAccessor = new DirectFieldAccessor(target);
|
||||
MailHeaderGenerator headerGenerator =
|
||||
(MailHeaderGenerator) fieldAccessor.getPropertyValue("mailHeaderGenerator");
|
||||
@@ -7,14 +7,10 @@
|
||||
http://www.springframework.org/schema/integration
|
||||
http://www.springframework.org/schema/integration/spring-integration-1.0.xsd">
|
||||
|
||||
<si:message-bus/>
|
||||
<si:mail-target id="targetWithMailSenderReference" mail-sender="mailSender"/>
|
||||
|
||||
<si:channel id="testChannel"/>
|
||||
|
||||
<si:mail-target id="adapterWithMailSenderReference" mail-sender="mailSender" channel="testChannel"/>
|
||||
|
||||
<si:mail-target id="adapterWithHostProperty" host="somehost" username="someuser" password="somepassword"
|
||||
channel="testChannel"/>
|
||||
<si:mail-target id="targetWithHostProperty"
|
||||
host="somehost" username="someuser" password="somepassword"/>
|
||||
|
||||
<bean id="mailSender" class="org.springframework.integration.adapter.mail.StubJavaMailSender">
|
||||
<constructor-arg>
|
||||
@@ -24,10 +20,11 @@
|
||||
</constructor-arg>
|
||||
</bean>
|
||||
|
||||
<si:mail-target id="adapterWithHeaderGeneratorReference" mail-sender="mailSender" channel="testChannel"
|
||||
<si:mail-target id="targetWithHeaderGeneratorReference"
|
||||
mail-sender="mailSender"
|
||||
header-generator="testHeaderGenerator"/>
|
||||
|
||||
<bean id="testHeaderGenerator"
|
||||
class="org.springframework.integration.adapter.mail.config.MailTargetAdapterParserTests$TestHeaderGenerator"/>
|
||||
class="org.springframework.integration.adapter.mail.config.MailTargetParserTests$TestHeaderGenerator"/>
|
||||
|
||||
</beans>
|
||||
Reference in New Issue
Block a user