File tree Expand file tree Collapse file tree 2 files changed +22
-2
lines changed
spring-boot-project/spring-boot-autoconfigure/src
main/java/org/springframework/boot/autoconfigure/data/elasticsearch
test/java/org/springframework/boot/autoconfigure/data/elasticsearch Expand file tree Collapse file tree 2 files changed +22
-2
lines changed Original file line number Diff line number Diff line change 24
24
import org .springframework .boot .autoconfigure .condition .ConditionalOnBean ;
25
25
import org .springframework .boot .autoconfigure .condition .ConditionalOnClass ;
26
26
import org .springframework .boot .autoconfigure .condition .ConditionalOnMissingBean ;
27
+ import org .springframework .boot .autoconfigure .domain .EntityScanner ;
28
+ import org .springframework .context .ApplicationContext ;
27
29
import org .springframework .context .annotation .Bean ;
28
30
import org .springframework .context .annotation .Configuration ;
31
+ import org .springframework .data .elasticsearch .annotations .Document ;
29
32
import org .springframework .data .elasticsearch .client .reactive .ReactiveElasticsearchClient ;
30
33
import org .springframework .data .elasticsearch .core .ElasticsearchOperations ;
31
34
import org .springframework .data .elasticsearch .core .ElasticsearchRestTemplate ;
@@ -61,9 +64,10 @@ ElasticsearchCustomConversions elasticsearchCustomConversions() {
61
64
62
65
@ Bean
63
66
@ ConditionalOnMissingBean
64
- SimpleElasticsearchMappingContext mappingContext (
65
- ElasticsearchCustomConversions elasticsearchCustomConversions ) {
67
+ SimpleElasticsearchMappingContext mappingContext (ApplicationContext applicationContext ,
68
+ ElasticsearchCustomConversions elasticsearchCustomConversions ) throws ClassNotFoundException {
66
69
SimpleElasticsearchMappingContext mappingContext = new SimpleElasticsearchMappingContext ();
70
+ mappingContext .setInitialEntitySet (new EntityScanner (applicationContext ).scan (Document .class ));
67
71
mappingContext .setSimpleTypeHolder (elasticsearchCustomConversions .getSimpleTypeHolder ());
68
72
return mappingContext ;
69
73
}
Original file line number Diff line number Diff line change 25
25
import org .junit .jupiter .api .Test ;
26
26
27
27
import org .springframework .boot .autoconfigure .AutoConfigurations ;
28
+ import org .springframework .boot .autoconfigure .TestAutoConfigurationPackage ;
29
+ import org .springframework .boot .autoconfigure .data .elasticsearch .city .City ;
28
30
import org .springframework .boot .autoconfigure .elasticsearch .ElasticsearchRestClientAutoConfiguration ;
29
31
import org .springframework .boot .test .context .runner .ApplicationContextRunner ;
30
32
import org .springframework .context .annotation .Bean ;
@@ -105,6 +107,14 @@ void customReactiveRestTemplateShouldBeUsed() {
105
107
.contains ("reactiveElasticsearchTemplate" ));
106
108
}
107
109
110
+ @ Test
111
+ void shouldFilterInitialEntityScanWithDocumentAnnotation () {
112
+ this .contextRunner .withUserConfiguration (EntityScanConfig .class ).run ((context ) -> {
113
+ SimpleElasticsearchMappingContext mappingContext = context .getBean (SimpleElasticsearchMappingContext .class );
114
+ assertThat (mappingContext .hasPersistentEntityFor (City .class )).isTrue ();
115
+ });
116
+ }
117
+
108
118
@ Configuration (proxyBeanMethods = false )
109
119
static class CustomElasticsearchCustomConversions {
110
120
@@ -135,6 +145,12 @@ ReactiveElasticsearchTemplate reactiveElasticsearchTemplate() {
135
145
136
146
}
137
147
148
+ @ Configuration (proxyBeanMethods = false )
149
+ @ TestAutoConfigurationPackage (City .class )
150
+ static class EntityScanConfig {
151
+
152
+ }
153
+
138
154
static class MyConverter implements Converter <ElasticsearchRestTemplate , Boolean > {
139
155
140
156
@ Override
You can’t perform that action at this time.
0 commit comments