Skip to content

Commit 4c29c35

Browse files
committed
Polish Kafka transaction support property
Closes gh-11076
1 parent 6d396b9 commit 4c29c35

File tree

4 files changed

+12
-11
lines changed

4 files changed

+12
-11
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/kafka/KafkaAutoConfiguration.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -96,19 +96,21 @@ public ProducerListener<Object, Object> kafkaProducerListener() {
9696
@Bean
9797
@ConditionalOnMissingBean(ProducerFactory.class)
9898
public ProducerFactory<?, ?> kafkaProducerFactory() {
99-
DefaultKafkaProducerFactory<Object, Object> factory = new DefaultKafkaProducerFactory<>(
99+
DefaultKafkaProducerFactory<?, ?> factory = new DefaultKafkaProducerFactory<>(
100100
this.properties.buildProducerProperties());
101-
KafkaProperties.Producer producer = this.properties.getProducer();
102-
if (producer.getTransactionIdPrefix() != null) {
103-
factory.setTransactionIdPrefix(producer.getTransactionIdPrefix());
101+
String transactionIdPrefix = this.properties.getProducer()
102+
.getTransactionIdPrefix();
103+
if (transactionIdPrefix != null) {
104+
factory.setTransactionIdPrefix(transactionIdPrefix);
104105
}
105106
return factory;
106107
}
107108

108109
@Bean
109110
@ConditionalOnProperty(name = "spring.kafka.producer.transaction-id-prefix")
110111
@ConditionalOnMissingBean
111-
public KafkaTransactionManager<?, ?> kafkaTransactionManager(ProducerFactory<?, ?> producerFactory) {
112+
public KafkaTransactionManager<?, ?> kafkaTransactionManager(
113+
ProducerFactory<?, ?> producerFactory) {
112114
return new KafkaTransactionManager<>(producerFactory);
113115
}
114116

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/kafka/KafkaProperties.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -521,7 +521,7 @@ public static class Producer {
521521
private Integer retries;
522522

523523
/**
524-
* When non empty, enables transactional support for producer.
524+
* When non empty, enables transaction support for producer.
525525
*/
526526
private String transactionIdPrefix;
527527

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/kafka/KafkaAutoConfigurationTests.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -200,9 +200,8 @@ public void producerProperties() {
200200
assertThat(
201201
context.getBeansOfType(KafkaJaasLoginModuleInitializer.class))
202202
.isEmpty();
203-
assertThat(
204-
context.getBeansOfType(KafkaTransactionManager.class))
205-
.isEmpty();
203+
assertThat(context.getBeansOfType(KafkaTransactionManager.class))
204+
.isEmpty();
206205
assertThat(configs.get("foo.bar.baz")).isEqualTo("qux.fiz.buz");
207206
assertThat(configs.get("fiz.buz")).isEqualTo("fix.fox");
208207
});
@@ -303,8 +302,7 @@ public void listenerProperties() {
303302
assertThat(dfa.getPropertyValue("loginModule")).isEqualTo("foo");
304303
assertThat(dfa.getPropertyValue("controlFlag")).isEqualTo(
305304
AppConfigurationEntry.LoginModuleControlFlag.REQUISITE);
306-
assertThat(
307-
context.getBeansOfType(KafkaTransactionManager.class))
305+
assertThat(context.getBeansOfType(KafkaTransactionManager.class))
308306
.hasSize(1);
309307
assertThat(((Map<String, String>) dfa.getPropertyValue("options")))
310308
.containsExactly(entry("useKeyTab", "true"));

spring-boot-project/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -998,6 +998,7 @@ content into your application; rather pick only the properties that you need.
998998
spring.kafka.producer.ssl.keystore-password= # Store password for the key store file.
999999
spring.kafka.producer.ssl.truststore-location= # Location of the trust store file.
10001000
spring.kafka.producer.ssl.truststore-password= # Store password for the trust store file.
1001+
spring.kafka.producer.transaction-id-prefix= # When non empty, enables transaction support for producer.
10011002
spring.kafka.producer.value-serializer= # Serializer class for values.
10021003
spring.kafka.properties.*= # Additional properties, common to producers and consumers, used to configure the client.
10031004
spring.kafka.ssl.key-password= # Password of the private key in the key store file.

0 commit comments

Comments
 (0)