SCST-GH-2355 Add support for batch processing of collections with different types
Specifically KafkaNull. But this commit effectively paves a path for any type
This commit is contained in:
@@ -92,14 +92,16 @@ public class SmartCompositeMessageConverter extends CompositeMessageConverter {
|
|||||||
isConverted = true;
|
isConverted = true;
|
||||||
}
|
}
|
||||||
for (Iterator<MessageConverter> iterator = getConverters().iterator(); iterator.hasNext() && !isConverted;) {
|
for (Iterator<MessageConverter> iterator = getConverters().iterator(); iterator.hasNext() && !isConverted;) {
|
||||||
Message<?> m = MessageBuilder.withPayload(item).copyHeaders(message.getHeaders()).build(); // TODO Message creating may be expensive
|
|
||||||
MessageConverter converter = (MessageConverter) iterator.next();
|
MessageConverter converter = (MessageConverter) iterator.next();
|
||||||
Object conversionResult = (converter instanceof SmartMessageConverter & genericItemRawType != genericItemType ?
|
if (!converter.getClass().getName().endsWith("ApplicationJsonMessageMarshallingConverter")) { // TODO Stream stuff, needs to be removed
|
||||||
((SmartMessageConverter) converter).fromMessage(m, genericItemRawType, genericItemType) :
|
Message<?> m = MessageBuilder.withPayload(item).copyHeaders(message.getHeaders()).build(); // TODO Message creating may be expensive
|
||||||
converter.fromMessage(m, genericItemRawType));
|
Object conversionResult = (converter instanceof SmartMessageConverter & genericItemRawType != genericItemType ?
|
||||||
if (conversionResult != null) {
|
((SmartMessageConverter) converter).fromMessage(m, genericItemRawType, genericItemType) :
|
||||||
resultList.add(conversionResult);
|
converter.fromMessage(m, genericItemRawType));
|
||||||
isConverted = true;
|
if (conversionResult != null) {
|
||||||
|
resultList.add(conversionResult);
|
||||||
|
isConverted = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -107,11 +109,13 @@ public class SmartCompositeMessageConverter extends CompositeMessageConverter {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
for (MessageConverter converter : getConverters()) {
|
for (MessageConverter converter : getConverters()) {
|
||||||
result = (converter instanceof SmartMessageConverter ?
|
if (!converter.getClass().getName().endsWith("ApplicationJsonMessageMarshallingConverter")) {// TODO Stream stuff, needs to be removed
|
||||||
((SmartMessageConverter) converter).fromMessage(message, targetClass, conversionHint) :
|
result = (converter instanceof SmartMessageConverter ?
|
||||||
converter.fromMessage(message, targetClass));
|
((SmartMessageConverter) converter).fromMessage(message, targetClass, conversionHint) :
|
||||||
if (result != null) {
|
converter.fromMessage(message, targetClass));
|
||||||
return result;
|
if (result != null) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user