Refactored RouterMessageHandlerAdapter (now RouterMessageHandler). Router endpoints are now SimpleEndpoint instances.
This commit is contained in:
@@ -32,6 +32,7 @@ import org.springframework.integration.channel.DefaultChannelRegistry;
|
||||
import org.springframework.integration.channel.MessageChannel;
|
||||
import org.springframework.integration.channel.QueueChannel;
|
||||
import org.springframework.integration.handler.annotation.Header;
|
||||
import org.springframework.integration.message.CompositeMessage;
|
||||
import org.springframework.integration.message.GenericMessage;
|
||||
import org.springframework.integration.message.Message;
|
||||
import org.springframework.integration.message.MessageBuilder;
|
||||
@@ -41,168 +42,147 @@ import org.springframework.integration.message.StringMessage;
|
||||
/**
|
||||
* @author Mark Fisher
|
||||
*/
|
||||
public class RouterMessageHandlerAdapterTests {
|
||||
public class RouterMessageHandlerTests {
|
||||
|
||||
@Test
|
||||
public void testChannelNameResolutionByPayloadConfiguredByMethodReference() throws Exception {
|
||||
public void channelNameResolutionByPayloadConfiguredByMethodReference() throws Exception {
|
||||
SingleChannelNameRoutingTestBean testBean = new SingleChannelNameRoutingTestBean();
|
||||
Method routingMethod = testBean.getClass().getMethod("routePayload", String.class);
|
||||
RouterMessageHandlerAdapter adapter = new RouterMessageHandlerAdapter(testBean, routingMethod);
|
||||
this.doTestChannelNameResolutionByPayload(adapter);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testChannelNameResolutionByPayloadConfiguredByMethodName() {
|
||||
SingleChannelNameRoutingTestBean testBean = new SingleChannelNameRoutingTestBean();
|
||||
RouterMessageHandlerAdapter adapter = new RouterMessageHandlerAdapter(testBean, "routePayload");
|
||||
this.doTestChannelNameResolutionByPayload(adapter);
|
||||
}
|
||||
|
||||
private void doTestChannelNameResolutionByPayload(RouterMessageHandlerAdapter adapter) {
|
||||
RouterMessageHandler handler = new RouterMessageHandler(testBean, routingMethod);
|
||||
Message<String> message = new GenericMessage<String>("bar");
|
||||
QueueChannel barChannel = new QueueChannel();
|
||||
ChannelRegistry channelRegistry = new DefaultChannelRegistry();
|
||||
channelRegistry.registerChannel("bar-channel", barChannel);
|
||||
adapter.setChannelRegistry(channelRegistry);
|
||||
adapter.afterPropertiesSet();
|
||||
adapter.handle(message);
|
||||
Message<?> result = barChannel.receive(0);
|
||||
assertNotNull(result);
|
||||
assertEquals("bar", result.getPayload());
|
||||
Message<?> reply = handler.handle(message);
|
||||
assertNotNull(reply);
|
||||
assertEquals(CompositeMessage.class, reply.getClass());
|
||||
List<Message<?>> replyMessages = ((CompositeMessage) reply).getPayload();
|
||||
assertEquals(1, replyMessages.size());
|
||||
Message<?> replyMessage = replyMessages.get(0);
|
||||
assertEquals("bar", replyMessage.getPayload());
|
||||
assertEquals("bar-channel", replyMessage.getHeaders().getNextTarget());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testChannelNameResolutionByHeader() throws Exception {
|
||||
public void channelNameResolutionByPayloadConfiguredByMethodName() {
|
||||
SingleChannelNameRoutingTestBean testBean = new SingleChannelNameRoutingTestBean();
|
||||
RouterMessageHandler handler = new RouterMessageHandler(testBean, "routePayload");
|
||||
Message<String> message = new GenericMessage<String>("bar");
|
||||
Message<?> reply = handler.handle(message);
|
||||
assertNotNull(reply);
|
||||
assertNotNull(reply);
|
||||
assertEquals(CompositeMessage.class, reply.getClass());
|
||||
List<Message<?>> replyMessages = ((CompositeMessage) reply).getPayload();
|
||||
assertEquals(1, replyMessages.size());
|
||||
Message<?> replyMessage = replyMessages.get(0);
|
||||
assertEquals("bar", replyMessage.getPayload());
|
||||
assertEquals("bar-channel", replyMessage.getHeaders().getNextTarget());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void channelNameResolutionByHeader() throws Exception {
|
||||
SingleChannelNameRoutingTestBean testBean = new SingleChannelNameRoutingTestBean();
|
||||
Method routingMethod = testBean.getClass().getMethod("routeByHeader", String.class);
|
||||
RouterMessageHandlerAdapter adapter = new RouterMessageHandlerAdapter(testBean, routingMethod);
|
||||
RouterMessageHandler handler = new RouterMessageHandler(testBean, routingMethod);
|
||||
Message<String> message = MessageBuilder.fromPayload("bar")
|
||||
.setHeader("returnAddress", "baz").build();
|
||||
QueueChannel barChannel = new QueueChannel();
|
||||
QueueChannel bazChannel = new QueueChannel();
|
||||
ChannelRegistry channelRegistry = new DefaultChannelRegistry();
|
||||
channelRegistry.registerChannel("bar-channel", barChannel);
|
||||
channelRegistry.registerChannel("baz-channel", bazChannel);
|
||||
adapter.setChannelRegistry(channelRegistry);
|
||||
adapter.afterPropertiesSet();
|
||||
adapter.handle(message);
|
||||
Message<?> message1 = barChannel.receive(0);
|
||||
assertNull(message1);
|
||||
Message<?> message2 = bazChannel.receive(0);
|
||||
assertNotNull(message2);
|
||||
assertEquals("bar", message2.getPayload());
|
||||
.setHeader("targetChannel", "foo").build();
|
||||
Message<?> reply = handler.handle(message);
|
||||
assertNotNull(reply);
|
||||
assertEquals(CompositeMessage.class, reply.getClass());
|
||||
List<Message<?>> replyMessages = ((CompositeMessage) reply).getPayload();
|
||||
assertEquals(1, replyMessages.size());
|
||||
Message<?> replyMessage = replyMessages.get(0);
|
||||
assertEquals("bar", replyMessage.getPayload());
|
||||
assertEquals("foo-channel", replyMessage.getHeaders().getNextTarget());
|
||||
}
|
||||
|
||||
@Test(expected=MessageHandlingException.class)
|
||||
public void testFailsWhenRequireddHeaderIsNotProvided() throws Exception {
|
||||
public void failsWhenRequireddHeaderIsNotProvided() throws Exception {
|
||||
SingleChannelNameRoutingTestBean testBean = new SingleChannelNameRoutingTestBean();
|
||||
Method routingMethod = testBean.getClass().getMethod("routeByHeader", String.class);
|
||||
RouterMessageHandlerAdapter adapter = new RouterMessageHandlerAdapter(testBean, routingMethod);
|
||||
adapter.afterPropertiesSet();
|
||||
adapter.handle(new GenericMessage<String>("testing"));
|
||||
RouterMessageHandler handler = new RouterMessageHandler(testBean, routingMethod);
|
||||
handler.handle(new GenericMessage<String>("testing"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testChannelNameResolutionByMessageConfiguredByMethodReference() throws Exception {
|
||||
public void channelNameResolutionByMessageConfiguredByMethodReference() throws Exception {
|
||||
SingleChannelNameRoutingTestBean testBean = new SingleChannelNameRoutingTestBean();
|
||||
Method routingMethod = testBean.getClass().getMethod("routeMessage", Message.class);
|
||||
RouterMessageHandlerAdapter adapter = new RouterMessageHandlerAdapter(testBean, routingMethod);
|
||||
this.doTestChannelNameResolutionByMessage(adapter);
|
||||
RouterMessageHandler handler = new RouterMessageHandler(testBean, routingMethod);
|
||||
this.doTestChannelNameResolutionByMessage(handler);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testChannelNameResolutionByMessageConfiguredByMethodName() {
|
||||
public void channelNameResolutionByMessageConfiguredByMethodName() {
|
||||
SingleChannelNameRoutingTestBean testBean = new SingleChannelNameRoutingTestBean();
|
||||
RouterMessageHandlerAdapter adapter = new RouterMessageHandlerAdapter(testBean, "routeMessage");
|
||||
this.doTestChannelNameResolutionByMessage(adapter);
|
||||
RouterMessageHandler handler = new RouterMessageHandler(testBean, "routeMessage");
|
||||
this.doTestChannelNameResolutionByMessage(handler);
|
||||
}
|
||||
|
||||
private void doTestChannelNameResolutionByMessage(RouterMessageHandlerAdapter adapter) {
|
||||
private void doTestChannelNameResolutionByMessage(RouterMessageHandler handler) {
|
||||
Message<String> fooMessage = new StringMessage("foo");
|
||||
Message<String> barMessage = new StringMessage("bar");
|
||||
Message<String> badMessage = new StringMessage("bad");
|
||||
QueueChannel fooChannel = new QueueChannel();
|
||||
QueueChannel barChannel = new QueueChannel();
|
||||
ChannelRegistry channelRegistry = new DefaultChannelRegistry();
|
||||
channelRegistry.registerChannel("foo-channel", fooChannel);
|
||||
channelRegistry.registerChannel("bar-channel", barChannel);
|
||||
adapter.setChannelRegistry(channelRegistry);
|
||||
adapter.afterPropertiesSet();
|
||||
adapter.handle(fooMessage);
|
||||
Message<?> result1 = fooChannel.receive(0);
|
||||
Message<?> result1 = ((CompositeMessage) handler.handle(fooMessage)).getPayload().get(0);
|
||||
assertNotNull(result1);
|
||||
assertEquals("foo", result1.getPayload());
|
||||
adapter.handle(barMessage);
|
||||
Message<?> result2 = barChannel.receive(0);
|
||||
Message<?> result2 = ((CompositeMessage) handler.handle(barMessage)).getPayload().get(0);
|
||||
assertNotNull(result2);
|
||||
assertEquals("bar", result2.getPayload());
|
||||
adapter.handle(badMessage);
|
||||
Message<?> result4 = fooChannel.receive(0);
|
||||
assertNull(result4);
|
||||
Message<?> result5 = barChannel.receive(0);
|
||||
assertNull(result5);
|
||||
assertNull(handler.handle(badMessage));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testChannelInstanceResolutionByPayloadConfiguredByMethodReference() throws Exception {
|
||||
public void channelInstanceResolutionByPayloadConfiguredByMethodReference() throws Exception {
|
||||
ChannelRegistry channelRegistry = new DefaultChannelRegistry();
|
||||
SingleChannelInstanceRoutingTestBean testBean = new SingleChannelInstanceRoutingTestBean(channelRegistry);
|
||||
Method routingMethod = testBean.getClass().getMethod("routePayload", String.class);
|
||||
RouterMessageHandlerAdapter adapter = new RouterMessageHandlerAdapter(testBean, routingMethod);
|
||||
this.doTestChannelInstanceResolutionByPayload(adapter, channelRegistry);
|
||||
RouterMessageHandler handler = new RouterMessageHandler(testBean, routingMethod);
|
||||
this.doTestChannelInstanceResolutionByPayload(handler, channelRegistry);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testChannelInstanceResolutionByPayloadConfiguredByMethodName() {
|
||||
public void channelInstanceResolutionByPayloadConfiguredByMethodName() {
|
||||
ChannelRegistry channelRegistry = new DefaultChannelRegistry();
|
||||
SingleChannelInstanceRoutingTestBean testBean = new SingleChannelInstanceRoutingTestBean(channelRegistry);
|
||||
RouterMessageHandlerAdapter adapter = new RouterMessageHandlerAdapter(testBean, "routePayload");
|
||||
this.doTestChannelInstanceResolutionByPayload(adapter, channelRegistry);
|
||||
RouterMessageHandler handler = new RouterMessageHandler(testBean, "routePayload");
|
||||
this.doTestChannelInstanceResolutionByPayload(handler, channelRegistry);
|
||||
}
|
||||
|
||||
private void doTestChannelInstanceResolutionByPayload(RouterMessageHandlerAdapter adapter, ChannelRegistry channelRegistry) {
|
||||
QueueChannel fooChannel = new QueueChannel();
|
||||
QueueChannel barChannel = new QueueChannel();
|
||||
channelRegistry.registerChannel("foo-channel", fooChannel);
|
||||
channelRegistry.registerChannel("bar-channel", barChannel);
|
||||
private void doTestChannelInstanceResolutionByPayload(RouterMessageHandler handler, ChannelRegistry channelRegistry) {
|
||||
Message<String> fooMessage = new StringMessage("foo");
|
||||
Message<String> barMessage = new StringMessage("bar");
|
||||
Message<String> badMessage = new StringMessage("bad");
|
||||
adapter.setChannelRegistry(channelRegistry);
|
||||
adapter.afterPropertiesSet();
|
||||
adapter.handle(fooMessage);
|
||||
Message<?> result1 = fooChannel.receive(0);
|
||||
MessageChannel fooChannel = new QueueChannel();
|
||||
MessageChannel barChannel = new QueueChannel();
|
||||
channelRegistry.registerChannel("foo-channel", fooChannel);
|
||||
channelRegistry.registerChannel("bar-channel", barChannel);
|
||||
Message<?> result1 = ((CompositeMessage) handler.handle(fooMessage)).getPayload().get(0);
|
||||
assertNotNull(result1);
|
||||
assertEquals("foo", result1.getPayload());
|
||||
adapter.handle(barMessage);
|
||||
Message<?> result2 = barChannel.receive(0);
|
||||
assertEquals(fooChannel, result1.getHeaders().getNextTarget());
|
||||
Message<?> result2 = ((CompositeMessage) handler.handle(barMessage)).getPayload().get(0);
|
||||
assertNotNull(result2);
|
||||
assertEquals("bar", result2.getPayload());
|
||||
adapter.handle(badMessage);
|
||||
Message<?> result3 = fooChannel.receive(0);
|
||||
assertNull(result3);
|
||||
Message<?> result4 = barChannel.receive(0);
|
||||
assertNull(result4);
|
||||
assertEquals(barChannel, result2.getHeaders().getNextTarget());
|
||||
assertNull(handler.handle(badMessage));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testChannelInstanceResolutionByMessageConfiguredByMethodReference() throws Exception {
|
||||
public void channelInstanceResolutionByMessageConfiguredByMethodReference() throws Exception {
|
||||
ChannelRegistry channelRegistry = new DefaultChannelRegistry();
|
||||
SingleChannelInstanceRoutingTestBean testBean = new SingleChannelInstanceRoutingTestBean(channelRegistry);
|
||||
Method routingMethod = testBean.getClass().getMethod("routeMessage", Message.class);
|
||||
RouterMessageHandlerAdapter adapter = new RouterMessageHandlerAdapter(testBean, routingMethod);
|
||||
this.doTestChannelInstanceResolutionByMessage(adapter, channelRegistry);
|
||||
RouterMessageHandler handler = new RouterMessageHandler(testBean, routingMethod);
|
||||
this.doTestChannelInstanceResolutionByMessage(handler, channelRegistry);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testChannelInstanceResolutionByMessageConfiguredByMethodName() {
|
||||
public void channelInstanceResolutionByMessageConfiguredByMethodName() {
|
||||
ChannelRegistry channelRegistry = new DefaultChannelRegistry();
|
||||
SingleChannelInstanceRoutingTestBean testBean = new SingleChannelInstanceRoutingTestBean(channelRegistry);
|
||||
RouterMessageHandlerAdapter adapter = new RouterMessageHandlerAdapter(testBean, "routeMessage");
|
||||
this.doTestChannelInstanceResolutionByMessage(adapter, channelRegistry);
|
||||
RouterMessageHandler handler = new RouterMessageHandler(testBean, "routeMessage");
|
||||
this.doTestChannelInstanceResolutionByMessage(handler, channelRegistry);
|
||||
}
|
||||
|
||||
private void doTestChannelInstanceResolutionByMessage(RouterMessageHandlerAdapter adapter, ChannelRegistry channelRegistry) {
|
||||
private void doTestChannelInstanceResolutionByMessage(RouterMessageHandler handler, ChannelRegistry channelRegistry) {
|
||||
QueueChannel fooChannel = new QueueChannel();
|
||||
QueueChannel barChannel = new QueueChannel();
|
||||
channelRegistry.registerChannel("foo-channel", fooChannel);
|
||||
@@ -210,41 +190,35 @@ public class RouterMessageHandlerAdapterTests {
|
||||
Message<String> fooMessage = new StringMessage("foo");
|
||||
Message<String> barMessage = new StringMessage("bar");
|
||||
Message<String> badMessage = new StringMessage("bad");
|
||||
adapter.setChannelRegistry(channelRegistry);
|
||||
adapter.afterPropertiesSet();
|
||||
adapter.handle(fooMessage);
|
||||
Message<?> result1 = fooChannel.receive(0);
|
||||
Message<?> result1 = ((CompositeMessage) handler.handle(fooMessage)).getPayload().get(0);
|
||||
assertNotNull(result1);
|
||||
assertEquals("foo", result1.getPayload());
|
||||
adapter.handle(barMessage);
|
||||
Message<?> result2 = barChannel.receive(0);
|
||||
assertEquals(fooChannel, result1.getHeaders().getNextTarget());
|
||||
Message<?> result2 = ((CompositeMessage) handler.handle(barMessage)).getPayload().get(0);
|
||||
assertNotNull(result2);
|
||||
assertEquals("bar", result2.getPayload());
|
||||
adapter.handle(badMessage);
|
||||
Message<?> result3 = fooChannel.receive(0);
|
||||
assertNull(result3);
|
||||
Message<?> result4 = barChannel.receive(0);
|
||||
assertNull(result4);
|
||||
assertEquals(barChannel, result2.getHeaders().getNextTarget());
|
||||
assertNull(handler.handle(badMessage));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMultiChannelNameResolutionByPayloadConfiguredByMethodReference() throws Exception {
|
||||
public void multiChannelNameResolutionByPayloadConfiguredByMethodReference() throws Exception {
|
||||
ChannelRegistry channelRegistry = new DefaultChannelRegistry();
|
||||
MultiChannelNameRoutingTestBean testBean = new MultiChannelNameRoutingTestBean();
|
||||
Method routingMethod = testBean.getClass().getMethod("routePayload", String.class);
|
||||
RouterMessageHandlerAdapter adapter = new RouterMessageHandlerAdapter(testBean, routingMethod);
|
||||
this.doTestMultiChannelNameResolutionByPayload(adapter, channelRegistry);
|
||||
RouterMessageHandler handler = new RouterMessageHandler(testBean, routingMethod);
|
||||
this.doTestMultiChannelNameResolutionByPayload(handler, channelRegistry);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMultiChannelNameResolutionByPayloadConfiguredByMethodName() {
|
||||
public void multiChannelNameResolutionByPayloadConfiguredByMethodName() {
|
||||
ChannelRegistry channelRegistry = new DefaultChannelRegistry();
|
||||
MultiChannelNameRoutingTestBean testBean = new MultiChannelNameRoutingTestBean();
|
||||
RouterMessageHandlerAdapter adapter = new RouterMessageHandlerAdapter(testBean, "routePayload");
|
||||
this.doTestMultiChannelNameResolutionByPayload(adapter, channelRegistry);
|
||||
RouterMessageHandler handler = new RouterMessageHandler(testBean, "routePayload");
|
||||
this.doTestMultiChannelNameResolutionByPayload(handler, channelRegistry);
|
||||
}
|
||||
|
||||
private void doTestMultiChannelNameResolutionByPayload(RouterMessageHandlerAdapter adapter, ChannelRegistry channelRegistry) {
|
||||
private void doTestMultiChannelNameResolutionByPayload(RouterMessageHandler handler, ChannelRegistry channelRegistry) {
|
||||
QueueChannel fooChannel = new QueueChannel();
|
||||
QueueChannel barChannel = new QueueChannel();
|
||||
channelRegistry.registerChannel("foo-channel", fooChannel);
|
||||
@@ -252,47 +226,45 @@ public class RouterMessageHandlerAdapterTests {
|
||||
Message<String> fooMessage = new StringMessage("foo");
|
||||
Message<String> barMessage = new StringMessage("bar");
|
||||
Message<String> badMessage = new StringMessage("bad");
|
||||
adapter.setChannelRegistry(channelRegistry);
|
||||
adapter.afterPropertiesSet();
|
||||
adapter.handle(fooMessage);
|
||||
Message<?> result1 = fooChannel.receive(0);
|
||||
assertNotNull(result1);
|
||||
assertEquals("foo", result1.getPayload());
|
||||
Message<?> result2 = barChannel.receive(0);
|
||||
assertNotNull(result2);
|
||||
assertEquals("foo", result2.getPayload());
|
||||
adapter.handle(barMessage);
|
||||
Message<?> result3 = fooChannel.receive(0);
|
||||
assertNotNull(result3);
|
||||
assertEquals("bar", result3.getPayload());
|
||||
Message<?> result4 = barChannel.receive(0);
|
||||
assertNotNull(result4);
|
||||
assertEquals("bar", result4.getPayload());
|
||||
adapter.handle(badMessage);
|
||||
Message<?> result5 = fooChannel.receive(0);
|
||||
assertNull(result5);
|
||||
Message<?> result6 = barChannel.receive(0);
|
||||
assertNull(result6);
|
||||
CompositeMessage reply1 = (CompositeMessage) handler.handle(fooMessage);
|
||||
Message<?> result1a = reply1.getPayload().get(0);
|
||||
Message<?> result1b = reply1.getPayload().get(1);
|
||||
assertNotNull(result1a);
|
||||
assertEquals("foo", result1a.getPayload());
|
||||
assertEquals("foo-channel", result1a.getHeaders().getNextTarget());
|
||||
assertNotNull(result1b);
|
||||
assertEquals("foo", result1b.getPayload());
|
||||
assertEquals("bar-channel", result1b.getHeaders().getNextTarget());
|
||||
CompositeMessage reply2 = (CompositeMessage) handler.handle(barMessage);
|
||||
Message<?> result2a = reply2.getPayload().get(0);
|
||||
Message<?> result2b = reply2.getPayload().get(1);
|
||||
assertNotNull(result2a);
|
||||
assertEquals("bar", result2a.getPayload());
|
||||
assertEquals("foo-channel", result2a.getHeaders().getNextTarget());
|
||||
assertNotNull(result2b);
|
||||
assertEquals("bar", result2b.getPayload());
|
||||
assertEquals("bar-channel", result2b.getHeaders().getNextTarget());
|
||||
assertNull(handler.handle(badMessage));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMultiChannelNameResolutionByMessageConfiguredByMethodReference() throws Exception {
|
||||
public void multiChannelNameResolutionByMessageConfiguredByMethodReference() throws Exception {
|
||||
ChannelRegistry channelRegistry = new DefaultChannelRegistry();
|
||||
MultiChannelNameRoutingTestBean testBean = new MultiChannelNameRoutingTestBean();
|
||||
Method routingMethod = testBean.getClass().getMethod("routeMessage", Message.class);
|
||||
RouterMessageHandlerAdapter adapter = new RouterMessageHandlerAdapter(testBean, routingMethod);
|
||||
this.doTestMultiChannelNameResolutionByMessage(adapter, channelRegistry);
|
||||
RouterMessageHandler handler = new RouterMessageHandler(testBean, routingMethod);
|
||||
this.doTestMultiChannelNameResolutionByMessage(handler, channelRegistry);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMultiChannelNameResolutionByMessageConfiguredByMethodName() throws Exception {
|
||||
public void multiChannelNameResolutionByMessageConfiguredByMethodName() throws Exception {
|
||||
ChannelRegistry channelRegistry = new DefaultChannelRegistry();
|
||||
MultiChannelNameRoutingTestBean testBean = new MultiChannelNameRoutingTestBean();
|
||||
RouterMessageHandlerAdapter adapter = new RouterMessageHandlerAdapter(testBean, "routeMessage");
|
||||
this.doTestMultiChannelNameResolutionByMessage(adapter, channelRegistry);
|
||||
RouterMessageHandler handler = new RouterMessageHandler(testBean, "routeMessage");
|
||||
this.doTestMultiChannelNameResolutionByMessage(handler, channelRegistry);
|
||||
}
|
||||
|
||||
private void doTestMultiChannelNameResolutionByMessage(RouterMessageHandlerAdapter adapter, ChannelRegistry channelRegistry) {
|
||||
private void doTestMultiChannelNameResolutionByMessage(RouterMessageHandler handler, ChannelRegistry channelRegistry) {
|
||||
QueueChannel fooChannel = new QueueChannel();
|
||||
QueueChannel barChannel = new QueueChannel();
|
||||
channelRegistry.registerChannel("foo-channel", fooChannel);
|
||||
@@ -300,27 +272,25 @@ public class RouterMessageHandlerAdapterTests {
|
||||
Message<String> fooMessage = new StringMessage("foo");
|
||||
Message<String> barMessage = new StringMessage("bar");
|
||||
Message<String> badMessage = new StringMessage("bad");
|
||||
adapter.setChannelRegistry(channelRegistry);
|
||||
adapter.afterPropertiesSet();
|
||||
adapter.handle(fooMessage);
|
||||
Message<?> result1 = fooChannel.receive(0);
|
||||
assertNotNull(result1);
|
||||
assertEquals("foo", result1.getPayload());
|
||||
Message<?> result2 = barChannel.receive(0);
|
||||
assertNotNull(result2);
|
||||
assertEquals("foo", result2.getPayload());
|
||||
adapter.handle(barMessage);
|
||||
Message<?> result3 = fooChannel.receive(0);
|
||||
assertNotNull(result3);
|
||||
assertEquals("bar", result3.getPayload());
|
||||
Message<?> result4 = barChannel.receive(0);
|
||||
assertNotNull(result4);
|
||||
assertEquals("bar", result4.getPayload());
|
||||
adapter.handle(badMessage);
|
||||
Message<?> result5 = fooChannel.receive(0);
|
||||
assertNull(result5);
|
||||
Message<?> result6 = barChannel.receive(0);
|
||||
assertNull(result6);
|
||||
CompositeMessage reply1 = (CompositeMessage) handler.handle(fooMessage);
|
||||
Message<?> result1a = reply1.getPayload().get(0);
|
||||
assertNotNull(result1a);
|
||||
assertEquals("foo", result1a.getPayload());
|
||||
assertEquals("foo-channel", result1a.getHeaders().getNextTarget());
|
||||
Message<?> result1b = reply1.getPayload().get(1);
|
||||
assertNotNull(result1b);
|
||||
assertEquals("foo", result1b.getPayload());
|
||||
assertEquals("bar-channel", result1b.getHeaders().getNextTarget());
|
||||
CompositeMessage reply2 = (CompositeMessage) handler.handle(barMessage);
|
||||
Message<?> result2a = reply2.getPayload().get(0);
|
||||
assertNotNull(result2a);
|
||||
assertEquals("bar", result2a.getPayload());
|
||||
assertEquals("foo-channel", result2a.getHeaders().getNextTarget());
|
||||
Message<?> result2b = reply2.getPayload().get(1);
|
||||
assertNotNull(result2b);
|
||||
assertEquals("bar", result2b.getPayload());
|
||||
assertEquals("bar-channel", result2b.getHeaders().getNextTarget());
|
||||
assertNull(handler.handle(badMessage));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -328,19 +298,19 @@ public class RouterMessageHandlerAdapterTests {
|
||||
ChannelRegistry channelRegistry = new DefaultChannelRegistry();
|
||||
MultiChannelNameRoutingTestBean testBean = new MultiChannelNameRoutingTestBean();
|
||||
Method routingMethod = testBean.getClass().getMethod("routeMessageToArray", Message.class);
|
||||
RouterMessageHandlerAdapter adapter = new RouterMessageHandlerAdapter(testBean, routingMethod);
|
||||
this.doTestMultiChannelNameArrayResolutionByMessage(adapter, channelRegistry);
|
||||
RouterMessageHandler handler = new RouterMessageHandler(testBean, routingMethod);
|
||||
this.doTestMultiChannelNameArrayResolutionByMessage(handler, channelRegistry);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMultiChannelNameArrayResolutionByMessageConfiguredByMethodName() {
|
||||
ChannelRegistry channelRegistry = new DefaultChannelRegistry();
|
||||
MultiChannelNameRoutingTestBean testBean = new MultiChannelNameRoutingTestBean();
|
||||
RouterMessageHandlerAdapter adapter = new RouterMessageHandlerAdapter(testBean, "routeMessageToArray");
|
||||
this.doTestMultiChannelNameArrayResolutionByMessage(adapter, channelRegistry);
|
||||
RouterMessageHandler handler = new RouterMessageHandler(testBean, "routeMessageToArray");
|
||||
this.doTestMultiChannelNameArrayResolutionByMessage(handler, channelRegistry);
|
||||
}
|
||||
|
||||
private void doTestMultiChannelNameArrayResolutionByMessage(RouterMessageHandlerAdapter adapter, ChannelRegistry channelRegistry) {
|
||||
private void doTestMultiChannelNameArrayResolutionByMessage(RouterMessageHandler handler, ChannelRegistry channelRegistry) {
|
||||
QueueChannel fooChannel = new QueueChannel();
|
||||
QueueChannel barChannel = new QueueChannel();
|
||||
channelRegistry.registerChannel("foo-channel", fooChannel);
|
||||
@@ -348,27 +318,25 @@ public class RouterMessageHandlerAdapterTests {
|
||||
Message<String> fooMessage = new StringMessage("foo");
|
||||
Message<String> barMessage = new StringMessage("bar");
|
||||
Message<String> badMessage = new StringMessage("bad");
|
||||
adapter.setChannelRegistry(channelRegistry);
|
||||
adapter.afterPropertiesSet();
|
||||
adapter.handle(fooMessage);
|
||||
Message<?> result1 = fooChannel.receive(0);
|
||||
assertNotNull(result1);
|
||||
assertEquals("foo", result1.getPayload());
|
||||
Message<?> result2 = barChannel.receive(0);
|
||||
assertNotNull(result2);
|
||||
assertEquals("foo", result2.getPayload());
|
||||
adapter.handle(barMessage);
|
||||
Message<?> result3 = fooChannel.receive(0);
|
||||
assertNotNull(result3);
|
||||
assertEquals("bar", result3.getPayload());
|
||||
Message<?> result4 = barChannel.receive(0);
|
||||
assertNotNull(result4);
|
||||
assertEquals("bar", result4.getPayload());
|
||||
adapter.handle(badMessage);
|
||||
Message<?> result5 = fooChannel.receive(0);
|
||||
assertNull(result5);
|
||||
Message<?> result6 = barChannel.receive(0);
|
||||
assertNull(result6);
|
||||
CompositeMessage reply1 = (CompositeMessage) handler.handle(fooMessage);
|
||||
Message<?> result1a = reply1.getPayload().get(0);
|
||||
assertNotNull(result1a);
|
||||
assertEquals("foo", result1a.getPayload());
|
||||
assertEquals("foo-channel", result1a.getHeaders().getNextTarget());
|
||||
Message<?> result1b = reply1.getPayload().get(1);
|
||||
assertNotNull(result1b);
|
||||
assertEquals("foo", result1b.getPayload());
|
||||
assertEquals("bar-channel", result1b.getHeaders().getNextTarget());
|
||||
CompositeMessage reply2 = (CompositeMessage) handler.handle(barMessage);
|
||||
Message<?> result2a = reply2.getPayload().get(0);
|
||||
assertNotNull(result2a);
|
||||
assertEquals("bar", result2a.getPayload());
|
||||
assertEquals("foo-channel", result2a.getHeaders().getNextTarget());
|
||||
Message<?> result2b = reply2.getPayload().get(1);
|
||||
assertNotNull(result2b);
|
||||
assertEquals("bar", result2b.getPayload());
|
||||
assertEquals("bar-channel", result2b.getHeaders().getNextTarget());
|
||||
assertNull(handler.handle(badMessage));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -376,19 +344,19 @@ public class RouterMessageHandlerAdapterTests {
|
||||
ChannelRegistry channelRegistry = new DefaultChannelRegistry();
|
||||
MultiChannelInstanceRoutingTestBean testBean = new MultiChannelInstanceRoutingTestBean(channelRegistry);
|
||||
Method routingMethod = testBean.getClass().getMethod("routePayload", String.class);
|
||||
RouterMessageHandlerAdapter adapter = new RouterMessageHandlerAdapter(testBean, routingMethod);
|
||||
this.doTestMultiChannelListResolutionByPayload(adapter, channelRegistry);
|
||||
RouterMessageHandler handler = new RouterMessageHandler(testBean, routingMethod);
|
||||
this.doTestMultiChannelListResolutionByPayload(handler, channelRegistry);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMultiChannelListResolutionByPayloadConfiguredByMethodName() {
|
||||
ChannelRegistry channelRegistry = new DefaultChannelRegistry();
|
||||
MultiChannelInstanceRoutingTestBean testBean = new MultiChannelInstanceRoutingTestBean(channelRegistry);
|
||||
RouterMessageHandlerAdapter adapter = new RouterMessageHandlerAdapter(testBean, "routePayload");
|
||||
this.doTestMultiChannelListResolutionByPayload(adapter, channelRegistry);
|
||||
RouterMessageHandler handler = new RouterMessageHandler(testBean, "routePayload");
|
||||
this.doTestMultiChannelListResolutionByPayload(handler, channelRegistry);
|
||||
}
|
||||
|
||||
private void doTestMultiChannelListResolutionByPayload(RouterMessageHandlerAdapter adapter, ChannelRegistry channelRegistry) {
|
||||
private void doTestMultiChannelListResolutionByPayload(RouterMessageHandler handler, ChannelRegistry channelRegistry) {
|
||||
QueueChannel fooChannel = new QueueChannel();
|
||||
QueueChannel barChannel = new QueueChannel();
|
||||
channelRegistry.registerChannel("foo-channel", fooChannel);
|
||||
@@ -396,27 +364,25 @@ public class RouterMessageHandlerAdapterTests {
|
||||
Message<String> fooMessage = new StringMessage("foo");
|
||||
Message<String> barMessage = new StringMessage("bar");
|
||||
Message<String> badMessage = new StringMessage("bad");
|
||||
adapter.setChannelRegistry(channelRegistry);
|
||||
adapter.afterPropertiesSet();
|
||||
adapter.handle(fooMessage);
|
||||
Message<?> result1 = fooChannel.receive(0);
|
||||
assertNotNull(result1);
|
||||
assertEquals("foo", result1.getPayload());
|
||||
Message<?> result2 = barChannel.receive(0);
|
||||
assertNotNull(result2);
|
||||
assertEquals("foo", result2.getPayload());
|
||||
adapter.handle(barMessage);
|
||||
Message<?> result3 = fooChannel.receive(0);
|
||||
assertNotNull(result3);
|
||||
assertEquals("bar", result3.getPayload());
|
||||
Message<?> result4 = barChannel.receive(0);
|
||||
assertNotNull(result4);
|
||||
assertEquals("bar", result4.getPayload());
|
||||
adapter.handle(badMessage);
|
||||
Message<?> result5 = fooChannel.receive(0);
|
||||
assertNull(result5);
|
||||
Message<?> result6 = barChannel.receive(0);
|
||||
assertNull(result6);
|
||||
CompositeMessage reply1 = (CompositeMessage) handler.handle(fooMessage);
|
||||
Message<?> result1a = reply1.getPayload().get(0);
|
||||
Message<?> result1b = reply1.getPayload().get(1);
|
||||
assertNotNull(result1a);
|
||||
assertEquals("foo", result1a.getPayload());
|
||||
assertEquals(fooChannel, result1a.getHeaders().getNextTarget());
|
||||
assertNotNull(result1b);
|
||||
assertEquals("foo", result1b.getPayload());
|
||||
assertEquals(barChannel, result1b.getHeaders().getNextTarget());
|
||||
CompositeMessage reply2 = (CompositeMessage) handler.handle(barMessage);
|
||||
Message<?> result2a = reply2.getPayload().get(0);
|
||||
Message<?> result2b = reply2.getPayload().get(1);
|
||||
assertNotNull(result2a);
|
||||
assertEquals("bar", result2a.getPayload());
|
||||
assertEquals(fooChannel, result2a.getHeaders().getNextTarget());
|
||||
assertNotNull(result2b);
|
||||
assertEquals("bar", result2b.getPayload());
|
||||
assertEquals(barChannel, result2b.getHeaders().getNextTarget());
|
||||
assertNull(handler.handle(badMessage));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -424,19 +390,19 @@ public class RouterMessageHandlerAdapterTests {
|
||||
ChannelRegistry channelRegistry = new DefaultChannelRegistry();
|
||||
MultiChannelInstanceRoutingTestBean testBean = new MultiChannelInstanceRoutingTestBean(channelRegistry);
|
||||
Method routingMethod = testBean.getClass().getMethod("routeMessage", Message.class);
|
||||
RouterMessageHandlerAdapter adapter = new RouterMessageHandlerAdapter(testBean, routingMethod);
|
||||
this.doTestMultiChannelListResolutionByMessage(adapter, channelRegistry);
|
||||
RouterMessageHandler handler = new RouterMessageHandler(testBean, routingMethod);
|
||||
this.doTestMultiChannelListResolutionByMessage(handler, channelRegistry);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMultiChannelListResolutionByMessageConfiguredByMethodName() {
|
||||
ChannelRegistry channelRegistry = new DefaultChannelRegistry();
|
||||
MultiChannelInstanceRoutingTestBean testBean = new MultiChannelInstanceRoutingTestBean(channelRegistry);
|
||||
RouterMessageHandlerAdapter adapter = new RouterMessageHandlerAdapter(testBean, "routeMessage");
|
||||
this.doTestMultiChannelListResolutionByMessage(adapter, channelRegistry);
|
||||
RouterMessageHandler handler = new RouterMessageHandler(testBean, "routeMessage");
|
||||
this.doTestMultiChannelListResolutionByMessage(handler, channelRegistry);
|
||||
}
|
||||
|
||||
private void doTestMultiChannelListResolutionByMessage(RouterMessageHandlerAdapter adapter, ChannelRegistry channelRegistry) {
|
||||
private void doTestMultiChannelListResolutionByMessage(RouterMessageHandler handler, ChannelRegistry channelRegistry) {
|
||||
QueueChannel fooChannel = new QueueChannel();
|
||||
QueueChannel barChannel = new QueueChannel();
|
||||
channelRegistry.registerChannel("foo-channel", fooChannel);
|
||||
@@ -444,27 +410,25 @@ public class RouterMessageHandlerAdapterTests {
|
||||
Message<String> fooMessage = new StringMessage("foo");
|
||||
Message<String> barMessage = new StringMessage("bar");
|
||||
Message<String> badMessage = new StringMessage("bad");
|
||||
adapter.setChannelRegistry(channelRegistry);
|
||||
adapter.afterPropertiesSet();
|
||||
adapter.handle(fooMessage);
|
||||
Message<?> result1 = fooChannel.receive(0);
|
||||
assertNotNull(result1);
|
||||
assertEquals("foo", result1.getPayload());
|
||||
Message<?> result2 = barChannel.receive(0);
|
||||
assertNotNull(result2);
|
||||
assertEquals("foo", result2.getPayload());
|
||||
adapter.handle(barMessage);
|
||||
Message<?> result3 = fooChannel.receive(0);
|
||||
assertNotNull(result3);
|
||||
assertEquals("bar", result3.getPayload());
|
||||
Message<?> result4 = barChannel.receive(0);
|
||||
assertNotNull(result4);
|
||||
assertEquals("bar", result4.getPayload());
|
||||
adapter.handle(badMessage);
|
||||
Message<?> result5 = fooChannel.receive(0);
|
||||
assertNull(result5);
|
||||
Message<?> result6 = barChannel.receive(0);
|
||||
assertNull(result6);
|
||||
CompositeMessage reply1 = (CompositeMessage) handler.handle(fooMessage);
|
||||
Message<?> result1a = reply1.getPayload().get(0);
|
||||
Message<?> result1b = reply1.getPayload().get(1);
|
||||
assertNotNull(result1a);
|
||||
assertEquals("foo", result1a.getPayload());
|
||||
assertEquals(fooChannel, result1a.getHeaders().getNextTarget());
|
||||
assertNotNull(result1b);
|
||||
assertEquals("foo", result1b.getPayload());
|
||||
assertEquals(barChannel, result1b.getHeaders().getNextTarget());
|
||||
CompositeMessage reply2 = (CompositeMessage) handler.handle(barMessage);
|
||||
Message<?> result2a = reply2.getPayload().get(0);
|
||||
Message<?> result2b = reply2.getPayload().get(1);
|
||||
assertNotNull(result2a);
|
||||
assertEquals("bar", result2a.getPayload());
|
||||
assertEquals(fooChannel, result2a.getHeaders().getNextTarget());
|
||||
assertNotNull(result2b);
|
||||
assertEquals("bar", result2b.getPayload());
|
||||
assertEquals(barChannel, result2b.getHeaders().getNextTarget());
|
||||
assertNull(handler.handle(badMessage));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -472,19 +436,19 @@ public class RouterMessageHandlerAdapterTests {
|
||||
ChannelRegistry channelRegistry = new DefaultChannelRegistry();
|
||||
MultiChannelInstanceRoutingTestBean testBean = new MultiChannelInstanceRoutingTestBean(channelRegistry);
|
||||
Method routingMethod = testBean.getClass().getMethod("routeMessageToArray", Message.class);
|
||||
RouterMessageHandlerAdapter adapter = new RouterMessageHandlerAdapter(testBean, routingMethod);
|
||||
this.doTestMultiChannelArrayResolutionByMessage(adapter, channelRegistry);
|
||||
RouterMessageHandler handler = new RouterMessageHandler(testBean, routingMethod);
|
||||
this.doTestMultiChannelArrayResolutionByMessage(handler, channelRegistry);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMultiChannelArrayResolutionByMessageConfiguredByMethodName() {
|
||||
ChannelRegistry channelRegistry = new DefaultChannelRegistry();
|
||||
MultiChannelInstanceRoutingTestBean testBean = new MultiChannelInstanceRoutingTestBean(channelRegistry);
|
||||
RouterMessageHandlerAdapter adapter = new RouterMessageHandlerAdapter(testBean, "routeMessageToArray");
|
||||
this.doTestMultiChannelArrayResolutionByMessage(adapter, channelRegistry);
|
||||
RouterMessageHandler handler = new RouterMessageHandler(testBean, "routeMessageToArray");
|
||||
this.doTestMultiChannelArrayResolutionByMessage(handler, channelRegistry);
|
||||
}
|
||||
|
||||
private void doTestMultiChannelArrayResolutionByMessage(RouterMessageHandlerAdapter adapter, ChannelRegistry channelRegistry) {
|
||||
private void doTestMultiChannelArrayResolutionByMessage(RouterMessageHandler handler, ChannelRegistry channelRegistry) {
|
||||
QueueChannel fooChannel = new QueueChannel();
|
||||
QueueChannel barChannel = new QueueChannel();
|
||||
channelRegistry.registerChannel("foo-channel", fooChannel);
|
||||
@@ -492,46 +456,25 @@ public class RouterMessageHandlerAdapterTests {
|
||||
Message<String> fooMessage = new StringMessage("foo");
|
||||
Message<String> barMessage = new StringMessage("bar");
|
||||
Message<String> badMessage = new StringMessage("bad");
|
||||
adapter.setChannelRegistry(channelRegistry);
|
||||
adapter.afterPropertiesSet();
|
||||
adapter.handle(fooMessage);
|
||||
Message<?> result1 = fooChannel.receive(0);
|
||||
assertNotNull(result1);
|
||||
assertEquals("foo", result1.getPayload());
|
||||
Message<?> result2 = barChannel.receive(0);
|
||||
assertNotNull(result2);
|
||||
assertEquals("foo", result2.getPayload());
|
||||
adapter.handle(barMessage);
|
||||
Message<?> result3 = fooChannel.receive(0);
|
||||
assertNotNull(result3);
|
||||
assertEquals("bar", result3.getPayload());
|
||||
Message<?> result4 = barChannel.receive(0);
|
||||
assertNotNull(result4);
|
||||
assertEquals("bar", result4.getPayload());
|
||||
adapter.handle(badMessage);
|
||||
Message<?> result5 = fooChannel.receive(0);
|
||||
assertNull(result5);
|
||||
Message<?> result6 = barChannel.receive(0);
|
||||
assertNull(result6);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testChannelRegistryAwareTarget() throws Exception {
|
||||
QueueChannel fooChannel = new QueueChannel();
|
||||
ChannelRegistry channelRegistry = new DefaultChannelRegistry();
|
||||
channelRegistry.registerChannel("foo-channel", fooChannel);
|
||||
ChannelRegistryAwareTestBean testBean = new ChannelRegistryAwareTestBean();
|
||||
Method routingMethod = testBean.getClass().getMethod("route", String.class);
|
||||
RouterMessageHandlerAdapter adapter = new RouterMessageHandlerAdapter(testBean, routingMethod);
|
||||
adapter.setChannelRegistry(channelRegistry);
|
||||
assertNull(testBean.getChannelRegistry());
|
||||
adapter.afterPropertiesSet();
|
||||
assertNotNull(testBean.getChannelRegistry());
|
||||
Message<String> message = new StringMessage("foo-channel");
|
||||
adapter.handle(message);
|
||||
Message<?> result = fooChannel.receive(0);
|
||||
assertNotNull(result);
|
||||
assertEquals("foo-channel", result.getPayload());
|
||||
CompositeMessage reply1 = (CompositeMessage) handler.handle(fooMessage);
|
||||
Message<?> result1a = reply1.getPayload().get(0);
|
||||
Message<?> result1b = reply1.getPayload().get(1);
|
||||
assertNotNull(result1a);
|
||||
assertEquals("foo", result1a.getPayload());
|
||||
assertEquals(fooChannel, result1a.getHeaders().getNextTarget());
|
||||
assertNotNull(result1b);
|
||||
assertEquals("foo", result1b.getPayload());
|
||||
assertEquals(barChannel, result1b.getHeaders().getNextTarget());
|
||||
CompositeMessage reply2 = (CompositeMessage) handler.handle(barMessage);
|
||||
Message<?> result2a = reply2.getPayload().get(0);
|
||||
Message<?> result2b = reply2.getPayload().get(1);
|
||||
assertNotNull(result2a);
|
||||
assertEquals("bar", result2a.getPayload());
|
||||
assertEquals(fooChannel, result2a.getHeaders().getNextTarget());
|
||||
assertNotNull(result2b);
|
||||
assertEquals("bar", result2b.getPayload());
|
||||
assertEquals(barChannel, result2b.getHeaders().getNextTarget());
|
||||
assertNull(handler.handle(badMessage));
|
||||
}
|
||||
|
||||
|
||||
@@ -541,7 +484,7 @@ public class RouterMessageHandlerAdapterTests {
|
||||
return name + "-channel";
|
||||
}
|
||||
|
||||
public String routeByHeader(@Header("returnAddress") String name) {
|
||||
public String routeByHeader(@Header("targetChannel") String name) {
|
||||
return name + "-channel";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user