Skip to content

Commit 0d91b24

Browse files
committed
Add possibility to disable the Elasticsearch Sniffer functionality
1 parent 566a642 commit 0d91b24

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/elasticsearch/ElasticsearchRestClientConfigurations.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import org.springframework.beans.factory.ObjectProvider;
3737
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
3838
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
39+
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
3940
import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate;
4041
import org.springframework.boot.context.properties.PropertyMapper;
4142
import org.springframework.context.annotation.Bean;
@@ -113,6 +114,7 @@ RestHighLevelClient elasticsearchRestHighLevelClient(RestClientBuilder restClien
113114
@Configuration(proxyBeanMethods = false)
114115
@ConditionalOnClass(Sniffer.class)
115116
@ConditionalOnSingleCandidate(RestHighLevelClient.class)
117+
@ConditionalOnProperty(prefix = "spring.elasticsearch.rest.sniffer", name = "enabled", havingValue = "true", matchIfMissing = true)
116118
static class RestClientSnifferConfiguration {
117119

118120
@Bean

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/elasticsearch/ElasticsearchRestClientProperties.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,11 @@ public static class Sniffer {
115115
*/
116116
private Duration delayAfterFailure = Duration.ofMinutes(1);
117117

118+
/**
119+
* Whether to enable Sniffer support.
120+
*/
121+
private boolean enabled = true;
122+
118123
public Duration getInterval() {
119124
return this.interval;
120125
}
@@ -131,6 +136,13 @@ public void setDelayAfterFailure(Duration delayAfterFailure) {
131136
this.delayAfterFailure = delayAfterFailure;
132137
}
133138

139+
public boolean isEnabled() {
140+
return enabled;
141+
}
142+
143+
public void setEnabled(boolean enabled) {
144+
this.enabled = enabled;
145+
}
134146
}
135147

136148
}

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/elasticsearch/ElasticsearchRestClientAutoConfigurationTests.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,13 @@ void configureWithoutSnifferLibraryShouldNotCreateSniffer() {
220220
.doesNotHaveBean(Sniffer.class));
221221
}
222222

223+
@Test
224+
void configureWithDisabledSnifferShouldNotCreateSniffer() {
225+
this.contextRunner.withPropertyValues("spring.elasticsearch.rest.sniffer.enabled=false")
226+
.run((context) -> assertThat(context).hasSingleBean(RestHighLevelClient.class)
227+
.doesNotHaveBean(Sniffer.class));
228+
}
229+
223230
@Test
224231
void configureShouldCreateSnifferUsingRestHighLevelClient() {
225232
this.contextRunner.run((context) -> {

0 commit comments

Comments
 (0)