Includes refactoring of router hierarchy to avoid duplication of channel resolution logic Subclasses of AbstractChannelNameResolvingMessageRouter can return MessageChannel , MessageChannel[], collection ... in addition to String MethodInvokingRouter now extends AbstractChannelNameResolvingMessageRouter and is simplified as a result