Merge pull request #3847 from akonczak/master
* pr/3847: Auto-configure Elasticsearch converter and context
This commit is contained in:
commit
8c15905040
|
|
@ -25,6 +25,9 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
|
||||||
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.data.elasticsearch.core.ElasticsearchTemplate;
|
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
|
||||||
|
import org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter;
|
||||||
|
import org.springframework.data.elasticsearch.core.convert.MappingElasticsearchConverter;
|
||||||
|
import org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchMappingContext;
|
||||||
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
|
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -46,8 +49,27 @@ public class ElasticsearchDataAutoConfiguration {
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnMissingBean
|
@ConditionalOnMissingBean
|
||||||
public ElasticsearchTemplate elasticsearchTemplate(Client client) {
|
public ElasticsearchTemplate elasticsearchTemplate(Client client,
|
||||||
return new ElasticsearchTemplate(client);
|
ElasticsearchConverter converter) {
|
||||||
|
try {
|
||||||
|
return new ElasticsearchTemplate(client, converter);
|
||||||
|
}
|
||||||
|
catch (Exception ex) {
|
||||||
|
throw new IllegalStateException(ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@ConditionalOnMissingBean
|
||||||
|
public ElasticsearchConverter elasticsearchConverter(
|
||||||
|
SimpleElasticsearchMappingContext mappingContext) {
|
||||||
|
return new MappingElasticsearchConverter(mappingContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@ConditionalOnMissingBean
|
||||||
|
public SimpleElasticsearchMappingContext mappingContext() {
|
||||||
|
return new SimpleElasticsearchMappingContext();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,8 @@ import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfigurati
|
||||||
import org.springframework.boot.test.EnvironmentTestUtils;
|
import org.springframework.boot.test.EnvironmentTestUtils;
|
||||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
||||||
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
|
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
|
||||||
|
import org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter;
|
||||||
|
import org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchMappingContext;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
|
@ -30,6 +32,7 @@ import static org.junit.Assert.assertEquals;
|
||||||
* Tests for {@link ElasticsearchDataAutoConfiguration}.
|
* Tests for {@link ElasticsearchDataAutoConfiguration}.
|
||||||
*
|
*
|
||||||
* @author Phillip Webb
|
* @author Phillip Webb
|
||||||
|
* @author Artur Konczak
|
||||||
*/
|
*/
|
||||||
public class ElasticsearchDataAutoConfigurationTests {
|
public class ElasticsearchDataAutoConfigurationTests {
|
||||||
|
|
||||||
|
|
@ -56,4 +59,32 @@ public class ElasticsearchDataAutoConfigurationTests {
|
||||||
this.context.getBeanNamesForType(ElasticsearchTemplate.class).length);
|
this.context.getBeanNamesForType(ElasticsearchTemplate.class).length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void mappingContextExists() {
|
||||||
|
this.context = new AnnotationConfigApplicationContext();
|
||||||
|
EnvironmentTestUtils.addEnvironment(this.context,
|
||||||
|
"spring.data.elasticsearch.properties.path.data:target/data",
|
||||||
|
"spring.data.elasticsearch.properties.path.logs:target/logs");
|
||||||
|
this.context.register(PropertyPlaceholderAutoConfiguration.class,
|
||||||
|
ElasticsearchAutoConfiguration.class,
|
||||||
|
ElasticsearchDataAutoConfiguration.class);
|
||||||
|
this.context.refresh();
|
||||||
|
assertEquals(1, this.context
|
||||||
|
.getBeanNamesForType(SimpleElasticsearchMappingContext.class).length);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void converterExists() {
|
||||||
|
this.context = new AnnotationConfigApplicationContext();
|
||||||
|
EnvironmentTestUtils.addEnvironment(this.context,
|
||||||
|
"spring.data.elasticsearch.properties.path.data:target/data",
|
||||||
|
"spring.data.elasticsearch.properties.path.logs:target/logs");
|
||||||
|
this.context.register(PropertyPlaceholderAutoConfiguration.class,
|
||||||
|
ElasticsearchAutoConfiguration.class,
|
||||||
|
ElasticsearchDataAutoConfiguration.class);
|
||||||
|
this.context.refresh();
|
||||||
|
assertEquals(1,
|
||||||
|
this.context.getBeanNamesForType(ElasticsearchConverter.class).length);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue