INT-891 The Mail header-enricher now supports SpEL expressions within the "expression" attribute.

This commit is contained in:
Mark Fisher
2009-11-25 21:14:26 +00:00
parent 554779bfa8
commit ad3e0b8428
3 changed files with 32 additions and 7 deletions

View File

@@ -210,8 +210,8 @@
<xsd:complexType name="headerType">
<xsd:attribute name="value" type="xsd:string" />
<xsd:attribute name="ref" type="xsd:string" />
<!-- TODO add 'overwrite' and the expression below -->
<!-- xsd:attribute name="expression" type="xsd:string" / -->
<!-- TODO add 'overwrite' -->
<xsd:attribute name="expression" type="xsd:string" />
</xsd:complexType>
<xsd:complexType name="transformerType">

View File

@@ -7,7 +7,7 @@
http://www.springframework.org/schema/integration/mail
http://www.springframework.org/schema/integration/mail/spring-integration-mail.xsd">
<header-enricher input-channel="input">
<header-enricher input-channel="literalValuesInput">
<to value="test.to"/>
<cc value="test.cc"/>
<bcc value="test.bcc"/>
@@ -16,4 +16,13 @@
<subject value="test.subject"/>
</header-enricher>
<header-enricher input-channel="expressionsInput">
<to expression="payload + '.to'"/>
<cc expression="payload + '.cc'"/>
<bcc expression="payload + '.bcc'"/>
<from expression="payload + '.from'"/>
<reply-to expression="payload + '.reply-to'"/>
<subject expression="payload + '.subject'"/>
</header-enricher>
</beans:beans>

View File

@@ -40,12 +40,15 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
public class MailHeaderEnricherTests {
@Autowired @Qualifier("input")
private MessageChannel channel;
@Autowired @Qualifier("literalValuesInput")
private MessageChannel literalValuesInput;
@Autowired @Qualifier("expressionsInput")
private MessageChannel expressionsInput;
@Test
public void test() {
MessageChannelTemplate template = new MessageChannelTemplate(channel);
public void literalValues() {
MessageChannelTemplate template = new MessageChannelTemplate(literalValuesInput);
Message<?> result = template.sendAndReceive(new StringMessage("test"));
Map<String, Object> headers = result.getHeaders();
assertEquals("test.to", headers.get(MailHeaders.TO));
@@ -56,4 +59,17 @@ public class MailHeaderEnricherTests {
assertEquals("test.subject", headers.get(MailHeaders.SUBJECT));
}
@Test
public void expressions() {
MessageChannelTemplate template = new MessageChannelTemplate(expressionsInput);
Message<?> result = template.sendAndReceive(new StringMessage("foo"));
Map<String, Object> headers = result.getHeaders();
assertEquals("foo.to", headers.get(MailHeaders.TO));
assertEquals("foo.cc", headers.get(MailHeaders.CC));
assertEquals("foo.bcc", headers.get(MailHeaders.BCC));
assertEquals("foo.from", headers.get(MailHeaders.FROM));
assertEquals("foo.reply-to", headers.get(MailHeaders.REPLY_TO));
assertEquals("foo.subject", headers.get(MailHeaders.SUBJECT));
}
}