private void addReply(ReplyMessageHolder replyHolder, Object item, Object correlationId, int sequenceNumber, int sequenceSize) { replyHolder.add(item).setCorrelationId(correlationId) .setSequenceNumber(sequenceNumber) .setSequenceSize(sequenceSize) .setHeader(MessageHeaders.ID, UUID.randomUUID()); }
public boolean dispatch(Message<?> message) { boolean dispatched = false; int sequenceNumber = 1; List<MessageHandler> handlers = this.getHandlers(); int sequenceSize = handlers.size(); for (final MessageHandler handler : handlers) { final Message<?> messageToSend = (!this.applySequence) ? message : MessageBuilder.fromMessage(message) .setSequenceNumber(sequenceNumber++) .setSequenceSize(sequenceSize) .setCorrelationId(message.getHeaders().getId()) .setHeader(MessageHeaders.ID, UUID.randomUUID()) .build(); if (this.taskExecutor != null) { this.taskExecutor.execute(new Runnable() { public void run() { invokeHandler(handler, messageToSend); } }); dispatched = true; } else { boolean success = this.invokeHandler(handler, messageToSend); dispatched = (success || dispatched); } } return dispatched; }
.setSequenceNumber(sequenceNumber++) .setSequenceSize(sequenceSize) .setCorrelationId(message.getHeaders().getId()) .setHeader(MessageHeaders.ID, UUID.randomUUID()) .build();
@Override protected void processBarrier(MessageBarrier<List<Message<?>>> barrier) { if (!barrier.isComplete() && !CollectionUtils.isEmpty(barrier.getMessages())) { if (this.completionStrategy.isComplete(barrier.getMessages())) { barrier.setComplete(); } } if (barrier.isComplete()) { this.removeBarrier(barrier.getCorrelationKey()); Message<?> result = this.aggregateMessages(barrier.getMessages()); if (result != null) { if (result.getHeaders().getCorrelationId() == null) { result = MessageBuilder.fromMessage(result) .setCorrelationId(barrier.getCorrelationKey()) .build(); } this.sendReply(result, this.resolveReplyChannelFromMessage(barrier.getMessages().get(0))); } } }