@Override
		protected void handleMessageInternal(Message<?> message) throws Exception {
			MessageValues messageToSend = serializePayloadIfNecessary(message);

			if (replyTo != null) {
				messageToSend.put(AmqpHeaders.REPLY_TO, this.replyTo);
			}
			if (this.partitioningMetadata.isPartitionedModule()) {
				messageToSend.put(PARTITION_HEADER, determinePartition(message, this.partitioningMetadata));
			}

			this.delegate.handleMessage(messageToSend.toMessage(getMessageBuilderFactory()));
		}
If so requested, declare the DLX/DLQ and bind it. The DLQ is bound to the DLX with a routing key of the original
queue name because we use default exchange routing by queue name for the original message.
@param queueName The base queue name.
@param routingKey the routing key.
@param properties The properties accessor.
spring-xd-messagebus-rabbit/src/main/java/org/springframework/xd/dirt/integration/rabbit/RabbitMessageBus.java