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