From 491bcf7cb191314f083b76312a05f23ee7722eda Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Tue, 29 Apr 2008 12:25:45 +0000 Subject: [PATCH] MailTargetAdapter is now MailTarget. MailTargetParser (f.k.a. MailTargetAdapterParser) no longer creates the endpoint (just the target). --- .../java/META-INF/spring-integration.parsers | 2 +- .../spring-integration-adapters-1.0.xsd | 3 +- ...apterParser.java => MailTargetParser.java} | 23 +++-------- ...Tests.java => MailTargetContextTests.java} | 4 +- ...AdapterTests.java => MailTargetTests.java} | 2 +- ...rTests.java => MailTargetParserTests.java} | 39 ++++++++----------- ...serTests.xml => mailTargetParserTests.xml} | 15 +++---- .../{mailTargetAdapter.xml => mailTarget.xml} | 0 8 files changed, 33 insertions(+), 55 deletions(-) rename spring-integration-adapters/src/main/java/org/springframework/integration/adapter/mail/config/{MailTargetAdapterParser.java => MailTargetParser.java} (67%) rename spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/{MailTargetAdapterContextTests.java => MailTargetContextTests.java} (97%) rename spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/{MailTargetAdapterTests.java => MailTargetTests.java} (99%) rename spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/config/{MailTargetAdapterParserTests.java => MailTargetParserTests.java} (62%) rename spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/config/{mailTargetAdapterParserTests.xml => mailTargetParserTests.xml} (67%) rename spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/{mailTargetAdapter.xml => mailTarget.xml} (100%) diff --git a/spring-integration-adapters/src/main/java/META-INF/spring-integration.parsers b/spring-integration-adapters/src/main/java/META-INF/spring-integration.parsers index e422853a7f..737428df65 100644 --- a/spring-integration-adapters/src/main/java/META-INF/spring-integration.parsers +++ b/spring-integration-adapters/src/main/java/META-INF/spring-integration.parsers @@ -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 \ No newline at end of file diff --git a/spring-integration-adapters/src/main/java/org/springframework/integration/adapter/config/spring-integration-adapters-1.0.xsd b/spring-integration-adapters/src/main/java/org/springframework/integration/adapter/config/spring-integration-adapters-1.0.xsd index 52d5ac6035..e7a040d2c7 100644 --- a/spring-integration-adapters/src/main/java/org/springframework/integration/adapter/config/spring-integration-adapters-1.0.xsd +++ b/spring-integration-adapters/src/main/java/org/springframework/integration/adapter/config/spring-integration-adapters-1.0.xsd @@ -164,7 +164,7 @@ - Defines a mail-sending target channel adapter. + Defines a mail-sending target. @@ -173,7 +173,6 @@ - diff --git a/spring-integration-adapters/src/main/java/org/springframework/integration/adapter/mail/config/MailTargetAdapterParser.java b/spring-integration-adapters/src/main/java/org/springframework/integration/adapter/mail/config/MailTargetParser.java similarity index 67% rename from spring-integration-adapters/src/main/java/org/springframework/integration/adapter/mail/config/MailTargetAdapterParser.java rename to spring-integration-adapters/src/main/java/org/springframework/integration/adapter/mail/config/MailTargetParser.java index 30bf3a7c32..13e93fe4ba 100644 --- a/spring-integration-adapters/src/main/java/org/springframework/integration/adapter/mail/config/MailTargetAdapterParser.java +++ b/spring-integration-adapters/src/main/java/org/springframework/integration/adapter/mail/config/MailTargetParser.java @@ -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); } } diff --git a/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/MailTargetAdapterContextTests.java b/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/MailTargetContextTests.java similarity index 97% rename from spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/MailTargetAdapterContextTests.java rename to spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/MailTargetContextTests.java index 2953f485dd..a7fcfaa1d3 100644 --- a/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/MailTargetAdapterContextTests.java +++ b/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/MailTargetContextTests.java @@ -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; diff --git a/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/MailTargetAdapterTests.java b/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/MailTargetTests.java similarity index 99% rename from spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/MailTargetAdapterTests.java rename to spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/MailTargetTests.java index f462f347a5..dfa995a070 100644 --- a/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/MailTargetAdapterTests.java +++ b/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/MailTargetTests.java @@ -38,7 +38,7 @@ import org.springframework.mail.SimpleMailMessage; /** * @author Marius Bogoevici */ -public class MailTargetAdapterTests { +public class MailTargetTests { private MailTarget mailTarget; diff --git a/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/config/MailTargetAdapterParserTests.java b/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/config/MailTargetParserTests.java similarity index 62% rename from spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/config/MailTargetAdapterParserTests.java rename to spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/config/MailTargetParserTests.java index baf73cfaed..5207715eed 100644 --- a/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/config/MailTargetAdapterParserTests.java +++ b/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/config/MailTargetParserTests.java @@ -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"); diff --git a/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/config/mailTargetAdapterParserTests.xml b/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/config/mailTargetParserTests.xml similarity index 67% rename from spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/config/mailTargetAdapterParserTests.xml rename to spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/config/mailTargetParserTests.xml index 53d1bd0200..2e705234da 100644 --- a/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/config/mailTargetAdapterParserTests.xml +++ b/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/config/mailTargetParserTests.xml @@ -7,14 +7,10 @@ http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-1.0.xsd"> - + - - - - - + @@ -24,10 +20,11 @@ - + class="org.springframework.integration.adapter.mail.config.MailTargetParserTests$TestHeaderGenerator"/> \ No newline at end of file diff --git a/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/mailTargetAdapter.xml b/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/mailTarget.xml similarity index 100% rename from spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/mailTargetAdapter.xml rename to spring-integration-adapters/src/test/java/org/springframework/integration/adapter/mail/mailTarget.xml