protected final MessageValues deserializePayloadIfNecessary(MessageValues message) {
		MessageValues messageToSend = message;
		Object originalPayload = message.getPayload();
		MimeType contentType = contentTypeResolver.resolve(messageToSend);
		Object payload = deserializePayload(originalPayload, contentType);
		if (payload != null) {
			messageToSend.setPayload(payload);

			Object originalContentType = messageToSend.get(XdHeaders.XD_ORIGINAL_CONTENT_TYPE);
			messageToSend.put(MessageHeaders.CONTENT_TYPE, originalContentType);
			messageToSend.put(XdHeaders.XD_ORIGINAL_CONTENT_TYPE, null);
		}
		return messageToSend;
	}
Create a producer for the named channel and bind it to the bus. Synchronized to avoid creating multiple
instances.
@param name The name.
@param channelName The name of the channel to be created, and registered as bean.
@param properties The properties.
@return The channel.
spring-xd-messagebus-spi/src/main/java/org/springframework/xd/dirt/integration/bus/MessageBusSupport.java