diff --git a/org.springframework.integration/src/main/resources/org/springframework/integration/config/xml/spring-integration-1.0.xsd b/org.springframework.integration/src/main/resources/org/springframework/integration/config/xml/spring-integration-1.0.xsd index 710a724a2d..1c66979a44 100644 --- a/org.springframework.integration/src/main/resources/org/springframework/integration/config/xml/spring-integration-1.0.xsd +++ b/org.springframework.integration/src/main/resources/org/springframework/integration/config/xml/spring-integration-1.0.xsd @@ -688,12 +688,20 @@ + + + - + + + + + + diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/config/ChainParserTests-context.xml b/org.springframework.integration/src/test/java/org/springframework/integration/config/ChainParserTests-context.xml index 8f076136e2..23935bc934 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/config/ChainParserTests-context.xml +++ b/org.springframework.integration/src/test/java/org/springframework/integration/config/ChainParserTests-context.xml @@ -66,6 +66,21 @@ + + + + + + + + + + + + + + + diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/config/ChainParserTests.java b/org.springframework.integration/src/test/java/org/springframework/integration/config/ChainParserTests.java index 16e4ca00c4..53a33ec41e 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/config/ChainParserTests.java +++ b/org.springframework.integration/src/test/java/org/springframework/integration/config/ChainParserTests.java @@ -69,6 +69,18 @@ public class ChainParserTests { @Qualifier("replyOutput") private PollableChannel replyOutput; + @Autowired + @Qualifier("payloadTypeRouterInput") + private MessageChannel payloadTypeRouterInput; + + @Autowired + @Qualifier("strings") + private PollableChannel strings; + + @Autowired + @Qualifier("numbers") + private PollableChannel numbers; + @Autowired @Qualifier("beanInput") private MessageChannel beanInput; @@ -145,7 +157,21 @@ public class ChainParserTests { assertNotNull(reply); assertEquals("foo", reply.getPayload()); } - + + @Test + public void chainWithPayloadTypeRouter() throws Exception { + Message message1 = MessageBuilder.withPayload("test").build(); + Message message2 = MessageBuilder.withPayload(123).build(); + this.payloadTypeRouterInput.send(message1); + this.payloadTypeRouterInput.send(message2); + Message reply1 = this.strings.receive(0); + Message reply2 = this.numbers.receive(0); + assertNotNull(reply1); + assertNotNull(reply2); + assertEquals("test", reply1.getPayload()); + assertEquals(123, reply2.getPayload()); + } + public static class StubHandler extends AbstractReplyProducingMessageHandler { @Override