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,8 +92,9 @@ 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();
|
||||||
|
if (!converter.getClass().getName().endsWith("ApplicationJsonMessageMarshallingConverter")) { // TODO Stream stuff, needs to be removed
|
||||||
|
Message<?> m = MessageBuilder.withPayload(item).copyHeaders(message.getHeaders()).build(); // TODO Message creating may be expensive
|
||||||
Object conversionResult = (converter instanceof SmartMessageConverter & genericItemRawType != genericItemType ?
|
Object conversionResult = (converter instanceof SmartMessageConverter & genericItemRawType != genericItemType ?
|
||||||
((SmartMessageConverter) converter).fromMessage(m, genericItemRawType, genericItemType) :
|
((SmartMessageConverter) converter).fromMessage(m, genericItemRawType, genericItemType) :
|
||||||
converter.fromMessage(m, genericItemRawType));
|
converter.fromMessage(m, genericItemRawType));
|
||||||
@@ -103,10 +104,12 @@ public class SmartCompositeMessageConverter extends CompositeMessageConverter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
result = resultList;
|
result = resultList;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
for (MessageConverter converter : getConverters()) {
|
for (MessageConverter converter : getConverters()) {
|
||||||
|
if (!converter.getClass().getName().endsWith("ApplicationJsonMessageMarshallingConverter")) {// TODO Stream stuff, needs to be removed
|
||||||
result = (converter instanceof SmartMessageConverter ?
|
result = (converter instanceof SmartMessageConverter ?
|
||||||
((SmartMessageConverter) converter).fromMessage(message, targetClass, conversionHint) :
|
((SmartMessageConverter) converter).fromMessage(message, targetClass, conversionHint) :
|
||||||
converter.fromMessage(message, targetClass));
|
converter.fromMessage(message, targetClass));
|
||||||
@@ -115,6 +118,7 @@ public class SmartCompositeMessageConverter extends CompositeMessageConverter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user