diff --git a/src/main/java/org/springframework/data/elasticsearch/core/AbstractElasticsearchTemplate.java b/src/main/java/org/springframework/data/elasticsearch/core/AbstractElasticsearchTemplate.java index 20ed1b86f..38c48c26b 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/AbstractElasticsearchTemplate.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/AbstractElasticsearchTemplate.java @@ -70,6 +70,7 @@ * @author Roman Puchkovskiy * @author Subhobrata Dey * @author Steven Pearce + * @author Anton Naydenov */ public abstract class AbstractElasticsearchTemplate implements ElasticsearchOperations, ApplicationContextAware { @@ -110,6 +111,7 @@ private AbstractElasticsearchTemplate copy() { } copy.setRoutingResolver(routingResolver); + copy.setRefreshPolicy(refreshPolicy); return copy; } diff --git a/src/test/java/org/springframework/data/elasticsearch/core/routing/ElasticsearchOperationsRoutingTests.java b/src/test/java/org/springframework/data/elasticsearch/core/routing/ElasticsearchOperationsRoutingTests.java index 74f4b8c4c..c60ef594d 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/routing/ElasticsearchOperationsRoutingTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/routing/ElasticsearchOperationsRoutingTests.java @@ -33,11 +33,9 @@ import org.springframework.data.elasticsearch.annotations.Document; import org.springframework.data.elasticsearch.annotations.Routing; import org.springframework.data.elasticsearch.annotations.Setting; -import org.springframework.data.elasticsearch.core.ElasticsearchOperations; -import org.springframework.data.elasticsearch.core.IndexOperations; -import org.springframework.data.elasticsearch.core.MultiGetItem; -import org.springframework.data.elasticsearch.core.SearchHits; +import org.springframework.data.elasticsearch.core.*; import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates; +import org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchMappingContext; import org.springframework.data.elasticsearch.core.query.BaseQuery; import org.springframework.data.elasticsearch.core.query.Query; import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration; @@ -47,6 +45,7 @@ /** * @author Peter-Josef Meisch + * @author Anton Naydenov */ @SuppressWarnings("ConstantConditions") @SpringIntegrationTest @@ -159,6 +158,21 @@ void shouldUseRoutingValuesInMultiget() { softly.assertAll(); } + @Test + void shouldCreateACopyOfTheClientWithRefreshPolicy() { + //given + AbstractElasticsearchTemplate sourceTemplate = (AbstractElasticsearchTemplate) operations; + SimpleElasticsearchMappingContext mappingContext = new SimpleElasticsearchMappingContext(); + DefaultRoutingResolver defaultRoutingResolver = new DefaultRoutingResolver(mappingContext); + + //when + ElasticsearchOperations operationsCopy = this.operations.withRouting(defaultRoutingResolver); + AbstractElasticsearchTemplate copyTemplate = (AbstractElasticsearchTemplate) operationsCopy; + + //then + assertThat(sourceTemplate.getRefreshPolicy()).isEqualTo(copyTemplate.getRefreshPolicy()); + } + @Document(indexName = INDEX) @Setting(shards = 7) @Routing("routing")