Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
305bcb10
Commit
305bcb10
authored
Apr 12, 2021
by
Stephane Nicoll
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '2.3.x' into 2.4.x
Closes gh-26029
parents
fd6ad5b8
d96fcf32
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
70 additions
and
7 deletions
+70
-7
ElasticsearchDataConfiguration.java
...re/data/elasticsearch/ElasticsearchDataConfiguration.java
+21
-5
ElasticsearchDataAutoConfigurationTests.java
...lasticsearch/ElasticsearchDataAutoConfigurationTests.java
+49
-2
No files found.
spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/elasticsearch/ElasticsearchDataConfiguration.java
View file @
305bcb10
/*
/*
* Copyright 2012-202
0
the original author or authors.
* Copyright 2012-202
1
the original author or authors.
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* you may not use this file except in compliance with the License.
...
@@ -16,6 +16,8 @@
...
@@ -16,6 +16,8 @@
package
org
.
springframework
.
boot
.
autoconfigure
.
data
.
elasticsearch
;
package
org
.
springframework
.
boot
.
autoconfigure
.
data
.
elasticsearch
;
import
java.util.Collections
;
import
org.elasticsearch.action.support.IndicesOptions
;
import
org.elasticsearch.action.support.IndicesOptions
;
import
org.elasticsearch.action.support.WriteRequest
;
import
org.elasticsearch.action.support.WriteRequest
;
import
org.elasticsearch.client.RestHighLevelClient
;
import
org.elasticsearch.client.RestHighLevelClient
;
...
@@ -31,6 +33,7 @@ import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
...
@@ -31,6 +33,7 @@ import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
import
org.springframework.data.elasticsearch.core.ReactiveElasticsearchOperations
;
import
org.springframework.data.elasticsearch.core.ReactiveElasticsearchOperations
;
import
org.springframework.data.elasticsearch.core.ReactiveElasticsearchTemplate
;
import
org.springframework.data.elasticsearch.core.ReactiveElasticsearchTemplate
;
import
org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter
;
import
org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter
;
import
org.springframework.data.elasticsearch.core.convert.ElasticsearchCustomConversions
;
import
org.springframework.data.elasticsearch.core.convert.MappingElasticsearchConverter
;
import
org.springframework.data.elasticsearch.core.convert.MappingElasticsearchConverter
;
import
org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchMappingContext
;
import
org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchMappingContext
;
import
org.springframework.web.reactive.function.client.WebClient
;
import
org.springframework.web.reactive.function.client.WebClient
;
...
@@ -43,6 +46,7 @@ import org.springframework.web.reactive.function.client.WebClient;
...
@@ -43,6 +46,7 @@ import org.springframework.web.reactive.function.client.WebClient;
*
*
* @author Brian Clozel
* @author Brian Clozel
* @author Scott Frederick
* @author Scott Frederick
* @author Stephane Nicoll
*/
*/
abstract
class
ElasticsearchDataConfiguration
{
abstract
class
ElasticsearchDataConfiguration
{
...
@@ -51,14 +55,26 @@ abstract class ElasticsearchDataConfiguration {
...
@@ -51,14 +55,26 @@ abstract class ElasticsearchDataConfiguration {
@Bean
@Bean
@ConditionalOnMissingBean
@ConditionalOnMissingBean
ElasticsearchConverter
elasticsearchConverter
(
SimpleElasticsearchMappingContext
mappingContext
)
{
ElasticsearchCustomConversions
elasticsearchCustomConversions
()
{
return
new
MappingElasticsearchConverter
(
mappingContext
);
return
new
ElasticsearchCustomConversions
(
Collections
.
emptyList
());
}
@Bean
@ConditionalOnMissingBean
SimpleElasticsearchMappingContext
mappingContext
(
ElasticsearchCustomConversions
elasticsearchCustomConversions
)
{
SimpleElasticsearchMappingContext
mappingContext
=
new
SimpleElasticsearchMappingContext
();
mappingContext
.
setSimpleTypeHolder
(
elasticsearchCustomConversions
.
getSimpleTypeHolder
());
return
mappingContext
;
}
}
@Bean
@Bean
@ConditionalOnMissingBean
@ConditionalOnMissingBean
SimpleElasticsearchMappingContext
mappingContext
()
{
ElasticsearchConverter
elasticsearchConverter
(
SimpleElasticsearchMappingContext
mappingContext
,
return
new
SimpleElasticsearchMappingContext
();
ElasticsearchCustomConversions
elasticsearchCustomConversions
)
{
MappingElasticsearchConverter
converter
=
new
MappingElasticsearchConverter
(
mappingContext
);
converter
.
setConversions
(
elasticsearchCustomConversions
);
return
converter
;
}
}
}
}
...
...
spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/elasticsearch/ElasticsearchDataAutoConfigurationTests.java
View file @
305bcb10
/*
/*
* Copyright 2012-202
0
the original author or authors.
* Copyright 2012-202
1
the original author or authors.
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* you may not use this file except in compliance with the License.
...
@@ -16,6 +16,10 @@
...
@@ -16,6 +16,10 @@
package
org
.
springframework
.
boot
.
autoconfigure
.
data
.
elasticsearch
;
package
org
.
springframework
.
boot
.
autoconfigure
.
data
.
elasticsearch
;
import
java.math.BigDecimal
;
import
java.util.Collections
;
import
org.assertj.core.api.InstanceOfAssertFactories
;
import
org.junit.jupiter.api.AfterEach
;
import
org.junit.jupiter.api.AfterEach
;
import
org.junit.jupiter.api.BeforeEach
;
import
org.junit.jupiter.api.BeforeEach
;
import
org.junit.jupiter.api.Test
;
import
org.junit.jupiter.api.Test
;
...
@@ -25,9 +29,13 @@ import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchRestCli
...
@@ -25,9 +29,13 @@ import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchRestCli
import
org.springframework.boot.test.context.runner.ApplicationContextRunner
;
import
org.springframework.boot.test.context.runner.ApplicationContextRunner
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.core.convert.converter.Converter
;
import
org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate
;
import
org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate
;
import
org.springframework.data.elasticsearch.core.ReactiveElasticsearchTemplate
;
import
org.springframework.data.elasticsearch.core.ReactiveElasticsearchTemplate
;
import
org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter
;
import
org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter
;
import
org.springframework.data.elasticsearch.core.convert.ElasticsearchCustomConversions
;
import
org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchMappingContext
;
import
org.springframework.data.mapping.model.SimpleTypeHolder
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
import
static
org
.
mockito
.
Mockito
.
mock
;
import
static
org
.
mockito
.
Mockito
.
mock
;
...
@@ -40,6 +48,7 @@ import static org.mockito.Mockito.mock;
...
@@ -40,6 +48,7 @@ import static org.mockito.Mockito.mock;
* @author Brian Clozel
* @author Brian Clozel
* @author Peter-Josef Meisch
* @author Peter-Josef Meisch
* @author Scott Frederick
* @author Scott Frederick
* @author Stephane Nicoll
*/
*/
class
ElasticsearchDataAutoConfigurationTests
{
class
ElasticsearchDataAutoConfigurationTests
{
...
@@ -61,7 +70,26 @@ class ElasticsearchDataAutoConfigurationTests {
...
@@ -61,7 +70,26 @@ class ElasticsearchDataAutoConfigurationTests {
void
defaultRestBeansRegistered
()
{
void
defaultRestBeansRegistered
()
{
this
.
contextRunner
.
run
((
context
)
->
assertThat
(
context
).
hasSingleBean
(
ElasticsearchRestTemplate
.
class
)
this
.
contextRunner
.
run
((
context
)
->
assertThat
(
context
).
hasSingleBean
(
ElasticsearchRestTemplate
.
class
)
.
hasSingleBean
(
ReactiveElasticsearchTemplate
.
class
).
hasSingleBean
(
ElasticsearchConverter
.
class
)
.
hasSingleBean
(
ReactiveElasticsearchTemplate
.
class
).
hasSingleBean
(
ElasticsearchConverter
.
class
)
.
hasSingleBean
(
ElasticsearchConverter
.
class
));
.
hasSingleBean
(
ElasticsearchConverter
.
class
).
hasSingleBean
(
ElasticsearchCustomConversions
.
class
));
}
@Test
void
defaultConversionsRegisterBigDecimalAsSimpleType
()
{
this
.
contextRunner
.
run
((
context
)
->
{
SimpleElasticsearchMappingContext
mappingContext
=
context
.
getBean
(
SimpleElasticsearchMappingContext
.
class
);
assertThat
(
mappingContext
)
.
extracting
(
"simpleTypeHolder"
,
InstanceOfAssertFactories
.
type
(
SimpleTypeHolder
.
class
)).
satisfies
(
(
simpleTypeHolder
)
->
assertThat
(
simpleTypeHolder
.
isSimpleType
(
BigDecimal
.
class
)).
isTrue
());
});
}
@Test
void
customConversionsShouldBeUsed
()
{
this
.
contextRunner
.
withUserConfiguration
(
CustomElasticsearchCustomConversions
.
class
).
run
((
context
)
->
{
assertThat
(
context
).
hasSingleBean
(
ElasticsearchCustomConversions
.
class
).
hasBean
(
"testCustomConversions"
);
assertThat
(
context
.
getBean
(
ElasticsearchConverter
.
class
).
getConversionService
()
.
canConvert
(
ElasticsearchRestTemplate
.
class
,
Boolean
.
class
)).
isTrue
();
});
}
}
@Test
@Test
...
@@ -77,6 +105,16 @@ class ElasticsearchDataAutoConfigurationTests {
...
@@ -77,6 +105,16 @@ class ElasticsearchDataAutoConfigurationTests {
.
contains
(
"reactiveElasticsearchTemplate"
));
.
contains
(
"reactiveElasticsearchTemplate"
));
}
}
@Configuration
(
proxyBeanMethods
=
false
)
static
class
CustomElasticsearchCustomConversions
{
@Bean
ElasticsearchCustomConversions
testCustomConversions
()
{
return
new
ElasticsearchCustomConversions
(
Collections
.
singletonList
(
new
MyConverter
()));
}
}
@Configuration
(
proxyBeanMethods
=
false
)
@Configuration
(
proxyBeanMethods
=
false
)
static
class
CustomRestTemplate
{
static
class
CustomRestTemplate
{
...
@@ -97,4 +135,13 @@ class ElasticsearchDataAutoConfigurationTests {
...
@@ -97,4 +135,13 @@ class ElasticsearchDataAutoConfigurationTests {
}
}
static
class
MyConverter
implements
Converter
<
ElasticsearchRestTemplate
,
Boolean
>
{
@Override
public
Boolean
convert
(
ElasticsearchRestTemplate
source
)
{
return
null
;
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment