From 8894dd3d216da9d6e37c97375fa787c743283780 Mon Sep 17 00:00:00 2001 From: Anton Naydenov Date: Tue, 26 Oct 2021 20:12:53 +0300 Subject: [PATCH] Added RefreshPolicy setter to the AbstractElasticsearchTemplate copy method. Original Pull Request #1976 Closes #1978 --- .../core/AbstractElasticsearchTemplate.java | 2 ++ .../ElasticsearchOperationsRoutingTests.java | 22 +++++++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) 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 @@ import org.springframework.util.Assert; * @author Roman Puchkovskiy * @author Subhobrata Dey * @author Steven Pearce + * @author Anton Naydenov */ public abstract class AbstractElasticsearchTemplate implements ElasticsearchOperations, ApplicationContextAware { @@ -110,6 +111,7 @@ public abstract class AbstractElasticsearchTemplate implements ElasticsearchOper } 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.annotation.Id; 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 @@ import org.springframework.test.context.ContextConfiguration; /** * @author Peter-Josef Meisch + * @author Anton Naydenov */ @SuppressWarnings("ConstantConditions") @SpringIntegrationTest @@ -159,6 +158,21 @@ public class ElasticsearchOperationsRoutingTests { 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")