Skip to content

Commit 3c46b9e

Browse files
committed
Polish "Add configuration property for Spring Kafka's missingTopicsFatal"
Closes gh-16740
1 parent 1583ce8 commit 3c46b9e

File tree

3 files changed

+20
-5
lines changed

3 files changed

+20
-5
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,8 +158,8 @@ private void configureContainer(ContainerProperties container) {
158158
map.from(properties::getMonitorInterval).as(Duration::getSeconds)
159159
.as(Number::intValue).to(container::setMonitorInterval);
160160
map.from(properties::getLogContainerConfig).to(container::setLogContainerConfig);
161+
map.from(properties::isMissingTopicsFatal).to(container::setMissingTopicsFatal);
161162
map.from(this.transactionManager).to(container::setTransactionManager);
162-
map.from(properties::getMissingTopicsFatal).to(container::setMissingTopicsFatal);
163163
}
164164

165165
}

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -874,9 +874,10 @@ public enum Type {
874874
private Boolean logContainerConfig;
875875

876876
/**
877-
* Set to false to disable checking that topic(s) exist.
877+
* Whether the container should fail to start if at least one of the configured
878+
* topics are not present on the broker.
878879
*/
879-
private Boolean missingTopicsFatal;
880+
private boolean missingTopicsFatal = true;
880881

881882
public Type getType() {
882883
return this.type;
@@ -966,11 +967,11 @@ public void setLogContainerConfig(Boolean logContainerConfig) {
966967
this.logContainerConfig = logContainerConfig;
967968
}
968969

969-
public Boolean getMissingTopicsFatal() {
970+
public boolean isMissingTopicsFatal() {
970971
return this.missingTopicsFatal;
971972
}
972973

973-
public void setMissingTopicsFatal(Boolean missingTopicsFatal) {
974+
public void setMissingTopicsFatal(boolean missingTopicsFatal) {
974975
this.missingTopicsFatal = missingTopicsFatal;
975976
}
976977

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import org.junit.jupiter.api.Test;
3939

4040
import org.springframework.boot.autoconfigure.AutoConfigurations;
41+
import org.springframework.boot.autoconfigure.kafka.KafkaProperties.Listener;
4142
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
4243
import org.springframework.context.annotation.Bean;
4344
import org.springframework.context.annotation.Configuration;
@@ -511,6 +512,19 @@ public void listenerProperties() {
511512
});
512513
}
513514

515+
@Test
516+
public void listenerPropertiesMatchDefaults() {
517+
this.contextRunner.run((context) -> {
518+
Listener listenerProperties = new KafkaProperties().getListener();
519+
AbstractKafkaListenerContainerFactory<?, ?, ?> kafkaListenerContainerFactory = (AbstractKafkaListenerContainerFactory<?, ?, ?>) context
520+
.getBean(KafkaListenerContainerFactory.class);
521+
ContainerProperties containerProperties = kafkaListenerContainerFactory
522+
.getContainerProperties();
523+
assertThat(containerProperties.isMissingTopicsFatal())
524+
.isEqualTo(listenerProperties.isMissingTopicsFatal());
525+
});
526+
}
527+
514528
@Test
515529
public void testKafkaTemplateRecordMessageConverters() {
516530
this.contextRunner.withUserConfiguration(MessageConverterConfiguration.class)

0 commit comments

Comments
 (0)