registerBeanDefinitionParser("inbound", new ChildDefinitionParser("messageSource", ServiceCompositeMessageSource.class, true));
registerBeanDefinitionParser("outbound", new ChildDefinitionParser("outboundMessageProcessor", DefaultOutboundRouterCollection.class, true));
registerBeanDefinitionParser("async-reply", new ChildDefinitionParser("asyncReplyMessageSource", ServiceAsyncReplyCompositeMessageSource.class, true));
//Inbound Routers
registerBeanDefinitionParser("forwarding-router", new InboundRouterDefinitionParser(ForwardingConsumer.class));
registerBeanDefinitionParser("idempotent-receiver-router", new InboundRouterDefinitionParser(IdempotentMessageFilter.class));
registerBeanDefinitionParser("idempotent-secure-hash-receiver-router", new InboundRouterDefinitionParser(IdempotentSecureHashMessageFilter.class));
registerBeanDefinitionParser("selective-consumer-router", new InboundRouterDefinitionParser(MessageFilter.class));
registerBeanDefinitionParser("wire-tap-router", new InboundRouterDefinitionParser(WireTap.class));
registerBeanDefinitionParser("custom-correlation-aggregator-router", new InboundRouterDefinitionParser());
registerBeanDefinitionParser("collection-aggregator-router", new InboundRouterDefinitionParser(SimpleCollectionAggregator.class));
registerBeanDefinitionParser("message-chunking-aggregator-router", new InboundRouterDefinitionParser(MessageChunkAggregator.class));
registerBeanDefinitionParser("correlation-resequencer-router", new InboundRouterDefinitionParser(Resequencer.class));
registerBeanDefinitionParser("custom-inbound-router", new InboundRouterDefinitionParser(null));
//Outbound Routers
registerBeanDefinitionParser("pass-through-router", new RouterDefinitionParser(OutboundPassThroughRouter.class));
registerBeanDefinitionParser("filtering-router", new RouterDefinitionParser(FilteringOutboundRouter.class));
registerBeanDefinitionParser("chaining-router", new RouterDefinitionParser(ChainingRouter.class));
registerBeanDefinitionParser("endpoint-selector-router", new RouterDefinitionParser(EndpointSelector.class));
registerBeanDefinitionParser("exception-based-router", new RouterDefinitionParser(ExceptionBasedRouter.class));
registerBeanDefinitionParser("recipient-list-exception-based-router", new RouterDefinitionParser(ExceptionBasedRouter.class));
registerBeanDefinitionParser("list-message-splitter-router", new RouterDefinitionParser(ListMessageSplitter.class));
registerBeanDefinitionParser("expression-splitter-router", new RouterDefinitionParser(ExpressionMessageSplitter.class));
registerBeanDefinitionParser("message-chunking-router", new RouterDefinitionParser(MessageChunkingRouter.class));
registerBeanDefinitionParser("multicasting-router", new RouterDefinitionParser(MulticastingRouter.class));
registerBeanDefinitionParser("static-recipient-list-router", new RouterDefinitionParser(StaticRecipientList.class));
registerBeanDefinitionParser("expression-recipient-list-router", new RouterDefinitionParser(ExpressionRecipientList.class));
registerBeanDefinitionParser("recipients", new ChildListDefinitionParser("recipients"));
registerBeanDefinitionParser("custom-outbound-router", new RouterDefinitionParser(null));
registerBeanDefinitionParser("reply-to", new EndpointRefParser("replyTo"));
registerBeanDefinitionParser("sequence-router", new RouterDefinitionParser(SequenceRouter.class));
//Response Routers
registerBeanDefinitionParser("custom-async-reply-router", new InboundRouterDefinitionParser(null));
registerBeanDefinitionParser("single-async-reply-router", new InboundRouterDefinitionParser(NullMessageProcessor.class));
registerBeanDefinitionParser("collection-async-reply-router", new InboundRouterDefinitionParser(SimpleCollectionAggregator.class));
// Routing: Intercepting Message Processors
registerBeanDefinitionParser("idempotent-message-filter", new InboundRouterDefinitionParser(IdempotentMessageFilter.class));
registerBeanDefinitionParser("idempotent-secure-hash-message-filter", new InboundRouterDefinitionParser(IdempotentSecureHashMessageFilter.class));
registerBeanDefinitionParser("wire-tap", new InboundRouterDefinitionParser(WireTap.class));
registerBeanDefinitionParser("custom-aggregator", new AggregatorDefinitionParser());
registerBeanDefinitionParser("collection-aggregator", new AggregatorDefinitionParser(SimpleCollectionAggregator.class));
registerBeanDefinitionParser("message-chunk-aggregator", new AggregatorDefinitionParser(MessageChunkAggregator.class));
registerBeanDefinitionParser("resequencer", new InboundRouterDefinitionParser(Resequencer.class));
registerBeanDefinitionParser("splitter", new SplitterDefinitionParser(ExpressionSplitter.class));
registerBeanDefinitionParser("collection-splitter", new SplitterDefinitionParser(CollectionSplitter.class));
registerBeanDefinitionParser("map-splitter", new SplitterDefinitionParser(MapSplitter.class));
registerBeanDefinitionParser("message-chunk-splitter", new SplitterDefinitionParser(MessageChunkSplitter.class));
registerBeanDefinitionParser("custom-splitter", new SplitterDefinitionParser());