parent
517998a829
commit
c04d640452
|
|
@ -24,8 +24,11 @@ import org.elasticsearch.client.RestHighLevelClient;
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.domain.EntityScanner;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.elasticsearch.annotations.Document;
|
||||
import org.springframework.data.elasticsearch.client.reactive.ReactiveElasticsearchClient;
|
||||
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
|
||||
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
|
||||
|
|
@ -61,9 +64,10 @@ abstract class ElasticsearchDataConfiguration {
|
|||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
SimpleElasticsearchMappingContext mappingContext(
|
||||
ElasticsearchCustomConversions elasticsearchCustomConversions) {
|
||||
SimpleElasticsearchMappingContext mappingContext(ApplicationContext applicationContext,
|
||||
ElasticsearchCustomConversions elasticsearchCustomConversions) throws ClassNotFoundException {
|
||||
SimpleElasticsearchMappingContext mappingContext = new SimpleElasticsearchMappingContext();
|
||||
mappingContext.setInitialEntitySet(new EntityScanner(applicationContext).scan(Document.class));
|
||||
mappingContext.setSimpleTypeHolder(elasticsearchCustomConversions.getSimpleTypeHolder());
|
||||
return mappingContext;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@ import org.junit.jupiter.api.BeforeEach;
|
|||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.autoconfigure.TestAutoConfigurationPackage;
|
||||
import org.springframework.boot.autoconfigure.data.elasticsearch.city.City;
|
||||
import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchRestClientAutoConfiguration;
|
||||
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
|
|
@ -105,6 +107,14 @@ class ElasticsearchDataAutoConfigurationTests {
|
|||
.contains("reactiveElasticsearchTemplate"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldFilterInitialEntityScanWithDocumentAnnotation() {
|
||||
this.contextRunner.withUserConfiguration(EntityScanConfig.class).run((context) -> {
|
||||
SimpleElasticsearchMappingContext mappingContext = context.getBean(SimpleElasticsearchMappingContext.class);
|
||||
assertThat(mappingContext.hasPersistentEntityFor(City.class)).isTrue();
|
||||
});
|
||||
}
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
static class CustomElasticsearchCustomConversions {
|
||||
|
||||
|
|
@ -135,6 +145,12 @@ class ElasticsearchDataAutoConfigurationTests {
|
|||
|
||||
}
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
@TestAutoConfigurationPackage(City.class)
|
||||
static class EntityScanConfig {
|
||||
|
||||
}
|
||||
|
||||
static class MyConverter implements Converter<ElasticsearchRestTemplate, Boolean> {
|
||||
|
||||
@Override
|
||||
|
|
|
|||
Loading…
Reference in New Issue