Skip to content

Commit c6dc505

Browse files
committed
Auto-configure JsonpMapper even with user-defined transport
Closes gh-36698
1 parent 803c155 commit c6dc505

File tree

4 files changed

+18
-7
lines changed

4 files changed

+18
-7
lines changed

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

Lines changed: 7 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-2023 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.
@@ -17,12 +17,15 @@
1717
package org.springframework.boot.autoconfigure.elasticsearch;
1818

1919
import co.elastic.clients.elasticsearch.ElasticsearchClient;
20+
import org.elasticsearch.client.RestClient;
2021

2122
import org.springframework.boot.autoconfigure.AutoConfiguration;
2223
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
24+
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
2325
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2426
import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchClientConfigurations.ElasticsearchClientConfiguration;
2527
import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchClientConfigurations.ElasticsearchTransportConfiguration;
28+
import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchClientConfigurations.JsonpMapperConfiguration;
2629
import org.springframework.boot.autoconfigure.jsonb.JsonbAutoConfiguration;
2730
import org.springframework.context.annotation.Import;
2831

@@ -33,8 +36,10 @@
3336
* @since 3.0.0
3437
*/
3538
@AutoConfiguration(after = { JsonbAutoConfiguration.class, ElasticsearchRestClientAutoConfiguration.class })
39+
@ConditionalOnBean(RestClient.class)
3640
@ConditionalOnClass(ElasticsearchClient.class)
37-
@Import({ ElasticsearchTransportConfiguration.class, ElasticsearchClientConfiguration.class })
41+
@Import({ JsonpMapperConfiguration.class, ElasticsearchTransportConfiguration.class,
42+
ElasticsearchClientConfiguration.class })
3843
public class ElasticsearchClientAutoConfiguration {
3944

4045
}

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

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,12 @@
4444
*/
4545
class ElasticsearchClientConfigurations {
4646

47+
@Import({ JacksonJsonpMapperConfiguration.class, JsonbJsonpMapperConfiguration.class,
48+
SimpleJsonpMapperConfiguration.class })
49+
static class JsonpMapperConfiguration {
50+
51+
}
52+
4753
@ConditionalOnMissingBean(JsonpMapper.class)
4854
@ConditionalOnClass(ObjectMapper.class)
4955
@Configuration(proxyBeanMethods = false)
@@ -79,9 +85,6 @@ SimpleJsonpMapper simpleJsonpMapper() {
7985

8086
}
8187

82-
@Import({ JacksonJsonpMapperConfiguration.class, JsonbJsonpMapperConfiguration.class,
83-
SimpleJsonpMapperConfiguration.class })
84-
@ConditionalOnBean(RestClient.class)
8588
@ConditionalOnMissingBean(ElasticsearchTransport.class)
8689
static class ElasticsearchTransportConfiguration {
8790

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package org.springframework.boot.autoconfigure.elasticsearch;
1818

1919
import co.elastic.clients.transport.ElasticsearchTransport;
20+
import org.elasticsearch.client.RestClient;
2021
import reactor.core.publisher.Mono;
2122

2223
import org.springframework.boot.autoconfigure.AutoConfiguration;
@@ -37,9 +38,11 @@
3738
* @since 3.0.0
3839
*/
3940
@AutoConfiguration(after = ElasticsearchClientAutoConfiguration.class)
41+
@ConditionalOnBean(RestClient.class)
4042
@ConditionalOnClass({ ReactiveElasticsearchClient.class, ElasticsearchTransport.class, Mono.class })
4143
@EnableConfigurationProperties(ElasticsearchProperties.class)
42-
@Import(ElasticsearchClientConfigurations.ElasticsearchTransportConfiguration.class)
44+
@Import({ ElasticsearchClientConfigurations.JsonpMapperConfiguration.class,
45+
ElasticsearchClientConfigurations.ElasticsearchTransportConfiguration.class })
4346
public class ReactiveElasticsearchClientAutoConfiguration {
4447

4548
@Bean

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ JsonpMapper customJsonpMapper() {
154154
static class TransportConfiguration {
155155

156156
@Bean
157-
ElasticsearchTransport customElasticsearchTransport() {
157+
ElasticsearchTransport customElasticsearchTransport(JsonpMapper mapper) {
158158
return mock(ElasticsearchTransport.class);
159159
}
160160

0 commit comments

Comments
 (0)