Polished backward compatibility comments in MessageConverterConfigurer

This commit is contained in:
Oleg Zhurakousky
2018-02-22 08:05:12 -05:00
parent d761e17a68
commit bb76df5258

View File

@@ -314,11 +314,13 @@ public class MessageConverterConfigurer implements MessageChannelAndSourceConfig
@Override
public Message<?> doPreSend(Message<?> message, MessageChannel channel) {
// ===== 1.3 backward compatibility code part-1 ===
String oct = message.getHeaders().containsKey(MessageHeaders.CONTENT_TYPE) ? message.getHeaders().get(MessageHeaders.CONTENT_TYPE).toString() : null;
String ct = oct;
if (message.getPayload() instanceof String) {
ct = JavaClassMimeTypeUtils.mimeTypeFromObject(message.getPayload(), ObjectUtils.nullSafeToString(oct)).toString();
}
// ===== END 1.3 backward compatibility code part-1 ===
if (!message.getHeaders().containsKey(MessageHeaders.CONTENT_TYPE)) {
@SuppressWarnings("unchecked")
@@ -333,15 +335,14 @@ public class MessageConverterConfigurer implements MessageChannelAndSourceConfig
throw new IllegalStateException("Failed to convert message: '" + message + "' to outbound message.");
}
/*
* The below code is only to support message format defined in v1.x and can/will be removed in the future
*/
/// ===== 1.3 backward compatibility code part-2 ===
if (ct != null && !ct.equals(oct) && oct != null) {
@SuppressWarnings("unchecked")
Map<String, Object> headersMap = (Map<String, Object>) ReflectionUtils.getField(MessageConverterConfigurer.this.headersField, message.getHeaders());
headersMap.put(MessageHeaders.CONTENT_TYPE, MimeType.valueOf(ct));
headersMap.put(BinderHeaders.BINDER_ORIGINAL_CONTENT_TYPE, MimeType.valueOf(oct));
}
// ===== END 1.3 backward compatibility code part-2 ===
return outboundMessage;
}
}