|
1 | 1 | /*
|
2 |
| - * Copyright 2017-2023 the original author or authors. |
| 2 | + * Copyright 2017-2025 the original author or authors. |
3 | 3 | *
|
4 | 4 | * Licensed under the Apache License, Version 2.0 (the "License");
|
5 | 5 | * you may not use this file except in compliance with the License.
|
@@ -224,18 +224,19 @@ protected MessageHandler createProducerMessageHandler(ProducerDestination destin
|
224 | 224 | ? m.getHeaders().get(BinderHeaders.PARTITION_HEADER)
|
225 | 225 | : m.getPayload().hashCode());
|
226 | 226 | AbstractAwsMessageHandler<?> messageHandler;
|
| 227 | + KinesisProducerProperties kinesisProducerProperties = producerProperties.getExtension(); |
227 | 228 | if (this.configurationProperties.isKplKclEnabled()) {
|
228 |
| - messageHandler = createKplMessageHandler(destination, partitionKeyExpression, |
229 |
| - producerProperties.getExtension().isEmbedHeaders() && !producerProperties.isUseNativeEncoding()); |
| 229 | + messageHandler = createKplMessageHandler(destination, partitionKeyExpression, kinesisProducerProperties, |
| 230 | + kinesisProducerProperties.isEmbedHeaders() && !producerProperties.isUseNativeEncoding()); |
230 | 231 | }
|
231 | 232 | else {
|
232 | 233 | messageHandler = createKinesisMessageHandler(destination, partitionKeyExpression,
|
233 |
| - producerProperties.getExtension().isEmbedHeaders() && !producerProperties.isUseNativeEncoding()); |
| 234 | + kinesisProducerProperties.isEmbedHeaders() && !producerProperties.isUseNativeEncoding()); |
234 | 235 | }
|
235 |
| - messageHandler.setAsync(!producerProperties.getExtension().isSync()); |
236 |
| - messageHandler.setSendTimeout(producerProperties.getExtension().getSendTimeout()); |
| 236 | + messageHandler.setAsync(!kinesisProducerProperties.isSync()); |
| 237 | + messageHandler.setSendTimeout(kinesisProducerProperties.getSendTimeout()); |
237 | 238 | messageHandler.setBeanFactory(getBeanFactory());
|
238 |
| - String recordMetadataChannel = producerProperties.getExtension().getRecordMetadataChannel(); |
| 239 | + String recordMetadataChannel = kinesisProducerProperties.getRecordMetadataChannel(); |
239 | 240 | if (StringUtils.hasText(recordMetadataChannel)) {
|
240 | 241 | messageHandler.setOutputChannelName(recordMetadataChannel);
|
241 | 242 | }
|
@@ -279,11 +280,13 @@ private AbstractAwsMessageHandler<?> createKinesisMessageHandler(ProducerDestina
|
279 | 280 | }
|
280 | 281 |
|
281 | 282 | private AbstractAwsMessageHandler<?> createKplMessageHandler(ProducerDestination destination,
|
282 |
| - FunctionExpression<Message<?>> partitionKeyExpression, boolean embedHeaders) { |
| 283 | + FunctionExpression<Message<?>> partitionKeyExpression, KinesisProducerProperties kinesisProducerProperties, |
| 284 | + boolean embedHeaders) { |
283 | 285 |
|
284 | 286 | KplMessageHandler messageHandler = new KplMessageHandler(new KinesisProducer(this.kinesisProducerConfiguration));
|
285 | 287 | messageHandler.setStream(destination.getName());
|
286 | 288 | messageHandler.setPartitionKeyExpression(partitionKeyExpression);
|
| 289 | + messageHandler.setBackPressureThreshold(kinesisProducerProperties.getKplBackPressureThreshold()); |
287 | 290 | if (embedHeaders) {
|
288 | 291 | messageHandler.setEmbeddedHeadersMapper(this.embeddedHeadersMapper);
|
289 | 292 | }
|
|
0 commit comments