@Override
	public MessageChannel resolveDestination(String name) {
		MessageChannel channel = null;
		try {
			return super.resolveDestination(name);
		}
		catch (DestinationResolutionException e) {
		}
		if (name.indexOf(":") != -1) {
			if (messageBus != null) {
				String[] tokens = name.split(":", 2);
				String type = tokens[0];
				if ("queue".equals(type)) {
					channel = this.messageBus.bindDynamicProducer(name, this.producerProperties);
				}
				else if ("topic".equals(type)) {
					channel = this.messageBus.bindDynamicPubSubProducer(name, this.producerProperties);
				}
				else {
					throw new IllegalArgumentException("unrecognized channel type: " + type);
				}
			}
		}
		if (channel == null) {
			channel = super.resolveDestination(name);
		}
		return channel;
	}
A {@link org.springframework.messaging.core.DestinationResolver} implementation that first checks for any channel
whose name begins with a colon in the {@link MessageBus}.

@author Mark Fisher
@author Gary Russell
spring-xd-dirt/src/main/java/org/springframework/xd/dirt/integration/bus/MessageBusAwareChannelResolver.java