@Override public Message<?> transform(Message<?> message) { AbstractIntegrationMessageBuilder<?> builder = this.getMessageBuilderFactory().fromMessage(message); if (this.patternMatch) { builder.removeHeaders(this.headersToRemove); } else { for (String headerToRemove : this.headersToRemove) { builder.removeHeader(headerToRemove); } } return builder.build(); }
public AbstractIntegrationMessageBuilder<T> popSequenceDetails() { List<List<Object>> incomingSequenceDetails = getSequenceDetails(); if (incomingSequenceDetails == null) { return this; } else { incomingSequenceDetails = new ArrayList<>(incomingSequenceDetails); } List<Object> sequenceDetails = incomingSequenceDetails.remove(incomingSequenceDetails.size() - 1); Assert.state(sequenceDetails.size() == 3, "Wrong sequence details (not created by MessageBuilder?): " + sequenceDetails); setCorrelationId(sequenceDetails.get(0)); Integer sequenceNumber = (Integer) sequenceDetails.get(1); Integer sequenceSize = (Integer) sequenceDetails.get(2); if (sequenceNumber != null) { setSequenceNumber(sequenceNumber); } if (sequenceSize != null) { setSequenceSize(sequenceSize); } if (!incomingSequenceDetails.isEmpty()) { setHeader(IntegrationMessageHeaderAccessor.SEQUENCE_DETAILS, incomingSequenceDetails); } else { removeHeader(IntegrationMessageHeaderAccessor.SEQUENCE_DETAILS); } return this; }
@Override public Message<?> transform(Message<?> message) { AbstractIntegrationMessageBuilder<?> builder = this.getMessageBuilderFactory().fromMessage(message); if (this.patternMatch) { builder.removeHeaders(this.headersToRemove); } else { for (String headerToRemove : this.headersToRemove) { builder.removeHeader(headerToRemove); } } return builder.build(); }
@Override protected Object handleRequestMessage(Message<?> requestMessage) { PollableChannel gatherResultChannel = new QueueChannel(); Object gatherResultChannelName = this.replyChannelRegistry.channelToChannelName(gatherResultChannel); Message<?> scatterMessage = getMessageBuilderFactory() .fromMessage(requestMessage) .setHeader(GATHER_RESULT_CHANNEL, gatherResultChannelName) .setReplyChannel(this.gatherChannel) .build(); this.messagingTemplate.send(this.scatterChannel, scatterMessage); Message<?> gatherResult = gatherResultChannel.receive(this.gatherTimeout); if (gatherResult != null) { return getMessageBuilderFactory() .fromMessage(gatherResult) .removeHeader(GATHER_RESULT_CHANNEL) .setHeader(MessageHeaders.REPLY_CHANNEL, requestMessage.getHeaders().getReplyChannel()) .build(); } return null; }
public AbstractIntegrationMessageBuilder<T> popSequenceDetails() { List<List<Object>> incomingSequenceDetails = getSequenceDetails(); if (incomingSequenceDetails == null) { return this; } else { incomingSequenceDetails = new ArrayList<>(incomingSequenceDetails); } List<Object> sequenceDetails = incomingSequenceDetails.remove(incomingSequenceDetails.size() - 1); Assert.state(sequenceDetails.size() == 3, "Wrong sequence details (not created by MessageBuilder?): " + sequenceDetails); setCorrelationId(sequenceDetails.get(0)); Integer sequenceNumber = (Integer) sequenceDetails.get(1); Integer sequenceSize = (Integer) sequenceDetails.get(2); if (sequenceNumber != null) { setSequenceNumber(sequenceNumber); } if (sequenceSize != null) { setSequenceSize(sequenceSize); } if (!incomingSequenceDetails.isEmpty()) { setHeader(IntegrationMessageHeaderAccessor.SEQUENCE_DETAILS, incomingSequenceDetails); } else { removeHeader(IntegrationMessageHeaderAccessor.SEQUENCE_DETAILS); } return this; }
@Override public Message<?> preSend(Message<?> message, MessageChannel channel) { if (!message.getHeaders().containsKey(BinderHeaders.PARTITION_OVERRIDE)) { int partition = this.partitionHandler.determinePartition(message); return MessageConverterConfigurer.this.messageBuilderFactory .fromMessage(message) .setHeader(BinderHeaders.PARTITION_HEADER, partition).build(); } else { return MessageConverterConfigurer.this.messageBuilderFactory .fromMessage(message) .setHeader(BinderHeaders.PARTITION_HEADER, message.getHeaders() .get(BinderHeaders.PARTITION_OVERRIDE)) .removeHeader(BinderHeaders.PARTITION_OVERRIDE).build(); } } }
@Override protected Object handleRequestMessage(Message<?> requestMessage) { PollableChannel gatherResultChannel = new QueueChannel(); Object gatherResultChannelName = this.replyChannelRegistry.channelToChannelName(gatherResultChannel); Message<?> scatterMessage = getMessageBuilderFactory() .fromMessage(requestMessage) .setHeader(GATHER_RESULT_CHANNEL, gatherResultChannelName) .setReplyChannel(this.gatherChannel) .build(); this.messagingTemplate.send(this.scatterChannel, scatterMessage); Message<?> gatherResult = gatherResultChannel.receive(this.gatherTimeout); if (gatherResult != null) { return getMessageBuilderFactory() .fromMessage(gatherResult) .removeHeader(GATHER_RESULT_CHANNEL) .setHeader(MessageHeaders.REPLY_CHANNEL, requestMessage.getHeaders().getReplyChannel()) .build(); } return null; }