Skip to content

Commit 8697d9d

Browse files
Pengfei-Luwilkinsona
authored andcommitted
Correct conditions on auto-configured JacksonJsonpMapper
See gh-36109 Signed-off-by: Pengfei-Lu <[email protected]>
1 parent b3244d1 commit 8697d9d

File tree

3 files changed

+8
-6
lines changed

3 files changed

+8
-6
lines changed

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2424
import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchClientConfigurations.ElasticsearchClientConfiguration;
2525
import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchClientConfigurations.ElasticsearchTransportConfiguration;
26-
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
2726
import org.springframework.boot.autoconfigure.jsonb.JsonbAutoConfiguration;
2827
import org.springframework.context.annotation.Import;
2928

@@ -33,8 +32,7 @@
3332
* @author Andy Wilkinson
3433
* @since 3.0.0
3534
*/
36-
@AutoConfiguration(after = { JacksonAutoConfiguration.class, JsonbAutoConfiguration.class,
37-
ElasticsearchRestClientAutoConfiguration.class })
35+
@AutoConfiguration(after = { JsonbAutoConfiguration.class, ElasticsearchRestClientAutoConfiguration.class })
3836
@ConditionalOnClass(ElasticsearchClient.class)
3937
@Import({ ElasticsearchTransportConfiguration.class, ElasticsearchClientConfiguration.class })
4038
public class ElasticsearchClientAutoConfiguration {

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131

3232
import org.springframework.beans.factory.ObjectProvider;
3333
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
34+
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
3435
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
3536
import org.springframework.context.annotation.Bean;
3637
import org.springframework.context.annotation.Configuration;
@@ -44,7 +45,7 @@
4445
class ElasticsearchClientConfigurations {
4546

4647
@ConditionalOnMissingBean(JsonpMapper.class)
47-
@ConditionalOnBean(ObjectMapper.class)
48+
@ConditionalOnClass(ObjectMapper.class)
4849
@Configuration(proxyBeanMethods = false)
4950
static class JacksonJsonpMapperConfiguration {
5051

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import org.springframework.boot.autoconfigure.AutoConfigurations;
3131
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
3232
import org.springframework.boot.autoconfigure.jsonb.JsonbAutoConfiguration;
33+
import org.springframework.boot.test.context.FilteredClassLoader;
3334
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
3435
import org.springframework.context.annotation.Bean;
3536
import org.springframework.context.annotation.Configuration;
@@ -64,14 +65,16 @@ void withRestClientAutoConfigurationShouldDefineClientAndSupportingBeans() {
6465

6566
@Test
6667
void withoutJsonbOrJacksonShouldDefineSimpleMapper() {
67-
this.contextRunner.withUserConfiguration(RestClientConfiguration.class)
68+
this.contextRunner.withClassLoader(new FilteredClassLoader(ObjectMapper.class))
69+
.withUserConfiguration(RestClientConfiguration.class)
6870
.run((context) -> assertThat(context).hasSingleBean(JsonpMapper.class)
6971
.hasSingleBean(SimpleJsonpMapper.class));
7072
}
7173

7274
@Test
7375
void withJsonbShouldDefineJsonbMapper() {
74-
this.contextRunner.withConfiguration(AutoConfigurations.of(JsonbAutoConfiguration.class))
76+
this.contextRunner.withClassLoader(new FilteredClassLoader(ObjectMapper.class))
77+
.withConfiguration(AutoConfigurations.of(JsonbAutoConfiguration.class))
7578
.withUserConfiguration(RestClientConfiguration.class)
7679
.run((context) -> assertThat(context).hasSingleBean(JsonpMapper.class)
7780
.hasSingleBean(JsonbJsonpMapper.class));

0 commit comments

Comments
 (0)