mirror of
https://github.com/spring-projects/spring-data-elasticsearch.git
synced 2025-05-30 08:42:10 +00:00
DATAES-543 - Adjust configuration support classes so they do not require proxying.
Original PR: #557
This commit is contained in:
parent
04ceed2905
commit
54727229e1
@ -31,11 +31,10 @@ public abstract class AbstractElasticsearchConfiguration extends ElasticsearchCo
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the {@link RestHighLevelClient} instance used to connect to the cluster. <br />
|
* Return the {@link RestHighLevelClient} instance used to connect to the cluster. <br />
|
||||||
* Annotate with {@link Bean} in case you want to expose a {@link RestHighLevelClient} instance to the
|
|
||||||
* {@link org.springframework.context.ApplicationContext}.
|
|
||||||
*
|
*
|
||||||
* @return never {@literal null}.
|
* @return never {@literal null}.
|
||||||
*/
|
*/
|
||||||
|
@Bean
|
||||||
public abstract RestHighLevelClient elasticsearchClient();
|
public abstract RestHighLevelClient elasticsearchClient();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -44,7 +43,8 @@ public abstract class AbstractElasticsearchConfiguration extends ElasticsearchCo
|
|||||||
* @return never {@literal null}.
|
* @return never {@literal null}.
|
||||||
*/
|
*/
|
||||||
@Bean(name = { "elasticsearchOperations", "elasticsearchTemplate" })
|
@Bean(name = { "elasticsearchOperations", "elasticsearchTemplate" })
|
||||||
public ElasticsearchOperations elasticsearchOperations(ElasticsearchConverter elasticsearchConverter) {
|
public ElasticsearchOperations elasticsearchOperations(ElasticsearchConverter elasticsearchConverter,
|
||||||
return new ElasticsearchRestTemplate(elasticsearchClient(), elasticsearchConverter);
|
RestHighLevelClient elasticsearchClient) {
|
||||||
|
return new ElasticsearchRestTemplate(elasticsearchClient, elasticsearchConverter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,6 @@ package org.springframework.data.elasticsearch.config;
|
|||||||
import org.elasticsearch.action.support.IndicesOptions;
|
import org.elasticsearch.action.support.IndicesOptions;
|
||||||
import org.elasticsearch.action.support.WriteRequest.RefreshPolicy;
|
import org.elasticsearch.action.support.WriteRequest.RefreshPolicy;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
import org.springframework.data.elasticsearch.client.reactive.ReactiveElasticsearchClient;
|
import org.springframework.data.elasticsearch.client.reactive.ReactiveElasticsearchClient;
|
||||||
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;
|
||||||
@ -31,16 +30,14 @@ import org.springframework.lang.Nullable;
|
|||||||
* @since 3.2
|
* @since 3.2
|
||||||
* @see ElasticsearchConfigurationSupport
|
* @see ElasticsearchConfigurationSupport
|
||||||
*/
|
*/
|
||||||
@Configuration
|
|
||||||
public abstract class AbstractReactiveElasticsearchConfiguration extends ElasticsearchConfigurationSupport {
|
public abstract class AbstractReactiveElasticsearchConfiguration extends ElasticsearchConfigurationSupport {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the {@link ReactiveElasticsearchClient} instance used to connect to the cluster. <br />
|
* Return the {@link ReactiveElasticsearchClient} instance used to connect to the cluster. <br />
|
||||||
* Annotate with {@link Bean} in case you want to expose a {@link ReactiveElasticsearchClient} instance to the
|
|
||||||
* {@link org.springframework.context.ApplicationContext}.
|
|
||||||
*
|
*
|
||||||
* @return never {@literal null}.
|
* @return never {@literal null}.
|
||||||
*/
|
*/
|
||||||
|
@Bean
|
||||||
public abstract ReactiveElasticsearchClient reactiveElasticsearchClient();
|
public abstract ReactiveElasticsearchClient reactiveElasticsearchClient();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -49,9 +46,10 @@ public abstract class AbstractReactiveElasticsearchConfiguration extends Elastic
|
|||||||
* @return never {@literal null}.
|
* @return never {@literal null}.
|
||||||
*/
|
*/
|
||||||
@Bean
|
@Bean
|
||||||
public ReactiveElasticsearchOperations reactiveElasticsearchTemplate(ElasticsearchConverter elasticsearchConverter) {
|
public ReactiveElasticsearchOperations reactiveElasticsearchTemplate(ElasticsearchConverter elasticsearchConverter,
|
||||||
|
ReactiveElasticsearchClient reactiveElasticsearchClient) {
|
||||||
|
|
||||||
ReactiveElasticsearchTemplate template = new ReactiveElasticsearchTemplate(reactiveElasticsearchClient(),
|
ReactiveElasticsearchTemplate template = new ReactiveElasticsearchTemplate(reactiveElasticsearchClient,
|
||||||
elasticsearchConverter);
|
elasticsearchConverter);
|
||||||
template.setIndicesOptions(indicesOptions());
|
template.setIndicesOptions(indicesOptions());
|
||||||
template.setRefreshPolicy(refreshPolicy());
|
template.setRefreshPolicy(refreshPolicy());
|
||||||
|
@ -40,15 +40,16 @@ import org.springframework.util.StringUtils;
|
|||||||
* @author Peter-Josef Meisch
|
* @author Peter-Josef Meisch
|
||||||
* @since 3.2
|
* @since 3.2
|
||||||
*/
|
*/
|
||||||
@Configuration
|
@Configuration(proxyBeanMethods = false)
|
||||||
public class ElasticsearchConfigurationSupport {
|
public class ElasticsearchConfigurationSupport {
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public ElasticsearchConverter elasticsearchEntityMapper(
|
public ElasticsearchConverter elasticsearchEntityMapper(
|
||||||
SimpleElasticsearchMappingContext elasticsearchMappingContext) {
|
SimpleElasticsearchMappingContext elasticsearchMappingContext, ElasticsearchCustomConversions elasticsearchCustomConversions) {
|
||||||
|
|
||||||
MappingElasticsearchConverter elasticsearchConverter = new MappingElasticsearchConverter(
|
MappingElasticsearchConverter elasticsearchConverter = new MappingElasticsearchConverter(
|
||||||
elasticsearchMappingContext);
|
elasticsearchMappingContext);
|
||||||
elasticsearchConverter.setConversions(elasticsearchCustomConversions());
|
elasticsearchConverter.setConversions(elasticsearchCustomConversions);
|
||||||
return elasticsearchConverter;
|
return elasticsearchConverter;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -60,11 +61,11 @@ public class ElasticsearchConfigurationSupport {
|
|||||||
* @return never {@literal null}.
|
* @return never {@literal null}.
|
||||||
*/
|
*/
|
||||||
@Bean
|
@Bean
|
||||||
public SimpleElasticsearchMappingContext elasticsearchMappingContext() {
|
public SimpleElasticsearchMappingContext elasticsearchMappingContext(ElasticsearchCustomConversions elasticsearchCustomConversions) {
|
||||||
|
|
||||||
SimpleElasticsearchMappingContext mappingContext = new SimpleElasticsearchMappingContext();
|
SimpleElasticsearchMappingContext mappingContext = new SimpleElasticsearchMappingContext();
|
||||||
mappingContext.setInitialEntitySet(getInitialEntitySet());
|
mappingContext.setInitialEntitySet(getInitialEntitySet());
|
||||||
mappingContext.setSimpleTypeHolder(elasticsearchCustomConversions().getSimpleTypeHolder());
|
mappingContext.setSimpleTypeHolder(elasticsearchCustomConversions.getSimpleTypeHolder());
|
||||||
|
|
||||||
return mappingContext;
|
return mappingContext;
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,7 @@ package org.springframework.data.elasticsearch.config;
|
|||||||
import static org.assertj.core.api.Assertions.*;
|
import static org.assertj.core.api.Assertions.*;
|
||||||
import static org.mockito.Mockito.*;
|
import static org.mockito.Mockito.*;
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
import reactor.core.publisher.Mono;
|
import reactor.core.publisher.Mono;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@ -114,6 +115,7 @@ public class ElasticsearchConfigurationSupportUnitTests {
|
|||||||
static class ReactiveRestConfig extends AbstractReactiveElasticsearchConfiguration {
|
static class ReactiveRestConfig extends AbstractReactiveElasticsearchConfiguration {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Bean
|
||||||
public ReactiveElasticsearchClient reactiveElasticsearchClient() {
|
public ReactiveElasticsearchClient reactiveElasticsearchClient() {
|
||||||
ReactiveElasticsearchClient client = mock(ReactiveElasticsearchClient.class);
|
ReactiveElasticsearchClient client = mock(ReactiveElasticsearchClient.class);
|
||||||
when(client.info()).thenReturn(Mono
|
when(client.info()).thenReturn(Mono
|
||||||
|
@ -34,8 +34,9 @@ abstract class MappingContextBaseTests {
|
|||||||
|
|
||||||
private SimpleElasticsearchMappingContext setupMappingContext() {
|
private SimpleElasticsearchMappingContext setupMappingContext() {
|
||||||
|
|
||||||
SimpleElasticsearchMappingContext mappingContext = new ElasticsearchConfigurationSupport()
|
ElasticsearchConfigurationSupport configurationSupport = new ElasticsearchConfigurationSupport();
|
||||||
.elasticsearchMappingContext();
|
SimpleElasticsearchMappingContext mappingContext = configurationSupport
|
||||||
|
.elasticsearchMappingContext(configurationSupport.elasticsearchCustomConversions());
|
||||||
mappingContext.initialize();
|
mappingContext.initialize();
|
||||||
return mappingContext;
|
return mappingContext;
|
||||||
}
|
}
|
||||||
|
@ -68,9 +68,9 @@ public class ElasticsearchRestTemplateConfiguration extends AbstractElasticsearc
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ElasticsearchOperations elasticsearchOperations(ElasticsearchConverter elasticsearchConverter) {
|
public ElasticsearchOperations elasticsearchOperations(ElasticsearchConverter elasticsearchConverter,
|
||||||
RestHighLevelClient client = elasticsearchClient();
|
RestHighLevelClient elasticsearchClient) {
|
||||||
return new ElasticsearchRestTemplate(client, elasticsearchConverter) {
|
return new ElasticsearchRestTemplate(elasticsearchClient, elasticsearchConverter) {
|
||||||
@Override
|
@Override
|
||||||
public <T> T execute(ClientCallback<T> callback) {
|
public <T> T execute(ClientCallback<T> callback) {
|
||||||
try {
|
try {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user