Kafka GH-21: Don't Override User Partition

See spring-cloud/spring-cloud-stream-binder-kafka#109

If the user app sets the `BinderHeader.PARTITION_HEADER`, don't override it in the binder.
This commit is contained in:
Gary Russell
2017-03-09 18:00:55 -05:00
committed by Ilayaperumal Gopinathan
parent 21cc1e9b58
commit 34acc2d190

View File

@@ -275,12 +275,16 @@ public class MessageConverterConfigurer implements MessageChannelConfigurer, Bea
@Override
public Message<?> preSend(Message<?> message, MessageChannel channel) {
int partition = this.partitionHandler.determinePartition(message);
return MessageConverterConfigurer.this.messageBuilderFactory
.fromMessage(message)
.setHeader(BinderHeaders.PARTITION_HEADER, partition)
.build();
if (!message.getHeaders().containsKey(BinderHeaders.PARTITION_HEADER)) {
int partition = this.partitionHandler.determinePartition(message);
return MessageConverterConfigurer.this.messageBuilderFactory
.fromMessage(message)
.setHeader(BinderHeaders.PARTITION_HEADER, partition)
.build();
}
else {
return message;
}
}
}