Streamlined output conversion logic

This commit is contained in:
Oleg Zhurakousky
2020-02-03 13:22:34 +01:00
parent 313f10946d
commit 912dc31568

View File

@@ -616,6 +616,9 @@ public class BeanFactoryAwareFunctionRegistry
convertedValue = messageConverter.toMessage(message.getPayload(), message.getHeaders()); convertedValue = messageConverter.toMessage(message.getPayload(), message.getHeaders());
} }
} }
else if (value instanceof byte[]) {
convertedValue = MessageBuilder.withPayload(value).setHeader(MessageHeaders.CONTENT_TYPE, acceptedContentType).build();
}
else if (value instanceof Iterable || ObjectUtils.isArray(value)) { else if (value instanceof Iterable || ObjectUtils.isArray(value)) {
boolean isArray = ObjectUtils.isArray(value); boolean isArray = ObjectUtils.isArray(value);
if (isArray) { if (isArray) {
@@ -626,17 +629,12 @@ public class BeanFactoryAwareFunctionRegistry
messages.get().add((Message) convertOutputValueIfNecessary(element, acceptedContentType.toString()))); messages.get().add((Message) convertOutputValueIfNecessary(element, acceptedContentType.toString())));
convertedValue = messages.get(); convertedValue = messages.get();
} }
else {
if (value instanceof byte[]) {
convertedValue = MessageBuilder.withPayload(value).setHeader(MessageHeaders.CONTENT_TYPE, acceptedContentType).build();
}
else { else {
convertedValue = messageConverter convertedValue = messageConverter
.toMessage(value, new MessageHeaders(Collections.singletonMap(MessageHeaders.CONTENT_TYPE, acceptedContentType))); .toMessage(value, new MessageHeaders(Collections.singletonMap(MessageHeaders.CONTENT_TYPE, acceptedContentType)));
} }
} }
} }
}
return convertedValue != null ? convertedValue : value; return convertedValue != null ? convertedValue : value;
} }