@Test public final void testRoutingWithGroovy() throws InterruptedException { assertEquals(0, streamRepository.count()); final StreamDefinition routerDefinition = new StreamDefinition( "routerDefinition", "queue:routeit > router --script='org/springframework/xd/dirt/stream/router.groovy'"); streamDefinitionRepository.save(routerDefinition); streamDeployer.deploy("routerDefinition"); Thread.sleep(1000); assertEquals(1, streamRepository.count()); assertModuleRequest("router", false); final Module module = getModule("router", 0, moduleDeployer); final MessageChannel inputChannel = module.getComponent("routeit", MessageChannel.class); module.getComponent(MessageBus.class); assertNotNull(inputChannel); final MessageChannel outputChannelFoo = module.getComponent("queue:foo", MessageChannel.class); final MessageChannel outputChannelBar = module.getComponent("queue:bar", MessageChannel.class); assertNull(outputChannelFoo); assertNull(outputChannelBar); inputChannel.send(MessageBuilder.withPayload("a").build()); Thread.sleep(2000); final MessageChannel outputChannelFoo2 = module.getComponent("queue:foo", MessageChannel.class); final MessageChannel outputChannelBar2 = module.getComponent("queue:bar", MessageChannel.class); assertNotNull(outputChannelFoo2); assertNull(outputChannelBar2); inputChannel.send(MessageBuilder.withPayload("b").build()); Thread.sleep(1000); final QueueChannel outputChannelFoo3 = module.getComponent("queue:foo", QueueChannel.class); final QueueChannel outputChannelBar3 = module.getComponent("queue:bar", QueueChannel.class); assertNotNull(outputChannelFoo3); assertNotNull(outputChannelBar3); assertTrue(outputChannelFoo3.getQueueSize() == 1); assertTrue(outputChannelBar3.getQueueSize() == 1); final Message<?> fooMessage = outputChannelFoo3.receive(2000); final Message<?> barMessage = outputChannelBar3.receive(2000); assertEquals("a", fooMessage.getPayload()); assertEquals("b", barMessage.getPayload()); }