Skip to content

Commit f6334ca

Browse files
committed
Make reactive Elastic repositories back off without Reactor
Fixes gh-41672
1 parent 4d66084 commit f6334ca

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

spring-boot-project/spring-boot-autoconfigure/src/dockerTest/java/org/springframework/boot/autoconfigure/data/elasticsearch/ReactiveElasticsearchRepositoriesAutoConfigurationTests.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.testcontainers.elasticsearch.ElasticsearchContainer;
2121
import org.testcontainers.junit.jupiter.Container;
2222
import org.testcontainers.junit.jupiter.Testcontainers;
23+
import reactor.core.publisher.Mono;
2324

2425
import org.springframework.boot.autoconfigure.AutoConfigurations;
2526
import org.springframework.boot.autoconfigure.TestAutoConfigurationPackage;
@@ -30,8 +31,7 @@
3031
import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchClientAutoConfiguration;
3132
import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchRestClientAutoConfiguration;
3233
import org.springframework.boot.autoconfigure.elasticsearch.ReactiveElasticsearchClientAutoConfiguration;
33-
import org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener;
34-
import org.springframework.boot.logging.LogLevel;
34+
import org.springframework.boot.test.context.FilteredClassLoader;
3535
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
3636
import org.springframework.boot.testsupport.container.TestImage;
3737
import org.springframework.context.annotation.Configuration;
@@ -62,8 +62,15 @@ class ReactiveElasticsearchRepositoriesAutoConfigurationTests {
6262
ReactiveElasticsearchClientAutoConfiguration.class))
6363
.withPropertyValues(
6464
"spring.elasticsearch.uris=" + elasticsearch.getHost() + ":" + elasticsearch.getFirstMappedPort(),
65-
"spring.elasticsearch.socket-timeout=30s")
66-
.withInitializer(ConditionEvaluationReportLoggingListener.forLogLevel(LogLevel.INFO));
65+
"spring.elasticsearch.socket-timeout=30s");
66+
67+
@Test
68+
void backsOffWithoutReactor() {
69+
this.contextRunner.withUserConfiguration(TestConfiguration.class)
70+
.withClassLoader(new FilteredClassLoader(Mono.class))
71+
.run((context) -> assertThat(context)
72+
.doesNotHaveBean(ReactiveElasticsearchRepositoriesAutoConfiguration.class));
73+
}
6774

6875
@Test
6976
void testDefaultRepositoryConfiguration() {

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2022 the original author or authors.
2+
* Copyright 2012-2024 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -16,6 +16,8 @@
1616

1717
package org.springframework.boot.autoconfigure.data.elasticsearch;
1818

19+
import reactor.core.publisher.Mono;
20+
1921
import org.springframework.boot.autoconfigure.AutoConfiguration;
2022
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
2123
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
@@ -36,7 +38,7 @@
3638
* @see EnableReactiveElasticsearchRepositories
3739
*/
3840
@AutoConfiguration
39-
@ConditionalOnClass({ ReactiveElasticsearchClient.class, ReactiveElasticsearchRepository.class })
41+
@ConditionalOnClass({ ReactiveElasticsearchClient.class, ReactiveElasticsearchRepository.class, Mono.class })
4042
@ConditionalOnProperty(prefix = "spring.data.elasticsearch.repositories", name = "enabled", havingValue = "true",
4143
matchIfMissing = true)
4244
@ConditionalOnMissingBean(ReactiveElasticsearchRepositoryFactoryBean.class)

0 commit comments

Comments
 (0)