Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save diogodanielsoaresferreira/718f4cd50a4d534f9cb165d00fae44d1 to your computer and use it in GitHub Desktop.
Save diogodanielsoaresferreira/718f4cd50a4d534f9cb165d00fae44d1 to your computer and use it in GitHub Desktop.
CombinedUserMessagesAggregationStrategy
public class CombinedUserMessagesAggregationStrategy implements AggregationStrategy {
@Override
public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
if (oldExchange == null) {
final UserMessage body = newExchange.getIn().getBody(UserMessage.class);
final CombinedUserMessage newEventBody = CombinedUserMessage.builder()
.emitter(body.getEmitter())
.text(List.of(body.getText()))
.build();
newExchange.getIn().setBody(newEventBody);
return newExchange;
}
final UserMessage newUserMessage = newExchange.getIn().getBody(UserMessage.class);
final CombinedUserMessage oldCombinedUserMessage = oldExchange.getIn().getBody(CombinedUserMessage.class);
final List<String> newTest = new ArrayList<>(oldCombinedUserMessage.getText());
newTest.add(newUserMessage.getText());
final CombinedUserMessage newCombinedUserMessage = CombinedUserMessage.builder()
.emitter(newUserMessage.getEmitter())
.text(newTest)
.build();
oldExchange.getIn().setBody(newCombinedUserMessage);
return oldExchange;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment