Skip to content

Commit 4f7a679

Browse files
committed
Use IndexCoordinates instead of String indexName
1 parent 269a227 commit 4f7a679

File tree

7 files changed

+33
-44
lines changed

7 files changed

+33
-44
lines changed

src/main/java/org/springframework/data/elasticsearch/core/RequestFactory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ public ReindexRequest reindexRequest(PostReindexRequest postReindexRequest){
404404
}
405405
// region source build
406406
final Source source = postReindexRequest.getSource();
407-
reindexRequest.setSourceIndices(source.getIndexes().toArray(new String[]{}));
407+
reindexRequest.setSourceIndices(source.getIndexes().getIndexNames());
408408
if(source.getQuery() != null && source.getRemote() != null){
409409
reindexRequest.setSourceQuery(source.getQuery());
410410
}
@@ -448,7 +448,7 @@ public ReindexRequest reindexRequest(PostReindexRequest postReindexRequest){
448448

449449
// region dest build
450450
final Dest dest = postReindexRequest.getDest();
451-
reindexRequest.setDestIndex(dest.getIndex())
451+
reindexRequest.setDestIndex(dest.getIndex().getIndexName())
452452
.setDestRouting(dest.getRouting())
453453
.setDestPipeline(dest.getPipeline());
454454

src/main/java/org/springframework/data/elasticsearch/core/index/reindex/PostReindexRequest.java

Lines changed: 12 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,13 @@
22

33
import org.elasticsearch.index.query.QueryBuilder;
44
import org.springframework.data.elasticsearch.annotations.Document;
5+
import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
56
import org.springframework.data.elasticsearch.core.query.IndexQuery;
67
import org.springframework.data.elasticsearch.core.query.SourceFilter;
78
import org.springframework.lang.Nullable;
89
import org.springframework.util.Assert;
910

1011
import java.time.Duration;
11-
import java.util.ArrayList;
12-
import java.util.List;
13-
14-
import static org.springframework.util.CollectionUtils.*;
1512

1613
/**
1714
* Request to reindex some documents from one index to another.
@@ -110,19 +107,22 @@ public Integer getSlices() {
110107
return slices;
111108
}
112109

113-
public static PostReindexRequestBuilder builder(String sourceIndex, String destIndex) {
110+
public static PostReindexRequestBuilder builder(IndexCoordinates sourceIndex, IndexCoordinates destIndex) {
114111
return new PostReindexRequestBuilder(sourceIndex, destIndex);
115112
}
116113

117114
public static class Source {
118-
private final List<String> indexes = new ArrayList<>();
115+
private final IndexCoordinates indexes;
119116
@Nullable private QueryBuilder query;
120117
@Nullable private Remote remote;
121118
@Nullable private Slice slice;
122119
@Nullable private Integer size;
123120
@Nullable private SourceFilter sourceFilter;
124121

125-
public List<String> getIndexes() {
122+
Source(IndexCoordinates indexes){
123+
this.indexes = indexes;
124+
}
125+
public IndexCoordinates getIndexes() {
126126
return indexes;
127127
}
128128

@@ -172,18 +172,18 @@ public Integer getMax() {
172172

173173
public static class Dest {
174174

175-
private final String index;
175+
private final IndexCoordinates index;
176176
@Nullable private String pipeline;
177177
@Nullable private String routing;
178178
@Nullable private Document.VersionType versionType;
179179
@Nullable private IndexQuery.OpType opType;
180180

181-
Dest(String index) {
181+
Dest(IndexCoordinates index) {
182182
Assert.notNull(index, "dest index must not be null");
183183
this.index = index;
184184
}
185185

186-
public String getIndex() {
186+
public IndexCoordinates getIndex() {
187187
return index;
188188
}
189189

@@ -241,9 +241,8 @@ public static final class PostReindexRequestBuilder {
241241
@Nullable private Duration scroll;
242242
@Nullable private Integer slices;
243243

244-
public PostReindexRequestBuilder(String sourceIndex, String destIndex) {
245-
this.source = new Source();
246-
this.source.indexes.add(sourceIndex);
244+
public PostReindexRequestBuilder(IndexCoordinates sourceIndex, IndexCoordinates destIndex) {
245+
this.source = new Source(sourceIndex);
247246
this.dest = new Dest(destIndex);
248247
}
249248

@@ -258,25 +257,6 @@ public PostReindexRequestBuilder withConflicts(String conflicts) {
258257
return this;
259258
}
260259

261-
public PostReindexRequestBuilder addSourceIndex(String sourceIndex) {
262-
Assert.notNull(sourceIndex, "source index must not be null");
263-
this.source.indexes.add(sourceIndex);
264-
return this;
265-
}
266-
267-
public PostReindexRequestBuilder withSourceIndexes(List<String> sourceIndexes) {
268-
if (!isEmpty(sourceIndexes)) {
269-
clearSourceIndexes();
270-
this.source.indexes.addAll(sourceIndexes);
271-
}
272-
return this;
273-
}
274-
275-
public PostReindexRequestBuilder clearSourceIndexes() {
276-
this.source.indexes.clear();
277-
return this;
278-
}
279-
280260
public PostReindexRequestBuilder withSourceQuery(QueryBuilder query) {
281261
this.source.query = query;
282262
return this;

src/main/java/org/springframework/data/elasticsearch/core/index/reindex/PostReindexResponse.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
* Response of reindex request.
1010
* (@see https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-reindex.html#docs-reindex-api-response-body)
1111
*
12-
* @author Onizuka
12+
* @author Sijia Liu
1313
*/
1414
public class PostReindexResponse {
1515

src/main/java/org/springframework/data/elasticsearch/core/index/reindex/Remote.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
/**
1010
* Remote info {@link RemoteInfo}
1111
*
12-
* @author Onizuka
12+
* @author Sijia Liu
1313
*/
1414
public class Remote {
1515
private final String scheme;

src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3660,7 +3660,9 @@ void shouldWorkReindexForExistingIndex() {
36603660
String destIndexName = indexNameProvider.indexName();
36613661
operations.indexOps(IndexCoordinates.of(destIndexName)).create();
36623662

3663-
final PostReindexResponse reindex = operations.reindex(PostReindexRequest.builder(sourceIndexName, destIndexName).withRefresh(true).build());
3663+
final PostReindexRequest postReindexRequest = PostReindexRequest.builder(IndexCoordinates.of(sourceIndexName), IndexCoordinates.of(destIndexName))
3664+
.withRefresh(true).build();
3665+
final PostReindexResponse reindex = operations.reindex(postReindexRequest);
36643666
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
36653667
assertThat(reindex.getTotal()).isEqualTo(1);
36663668
assertThat(operations.count(searchQuery, IndexCoordinates.of(destIndexName))).isEqualTo(1);
@@ -3672,7 +3674,9 @@ void shouldWorkSubmitReindexTask(){
36723674
indexNameProvider.increment();
36733675
String destIndexName = indexNameProvider.indexName();
36743676
operations.indexOps(IndexCoordinates.of(destIndexName)).create();
3675-
String task = operations.submitReindexTask(PostReindexRequest.builder(sourceIndexName, destIndexName).build());
3677+
final PostReindexRequest postReindexRequest = PostReindexRequest
3678+
.builder(IndexCoordinates.of(sourceIndexName), IndexCoordinates.of(destIndexName)).build();
3679+
String task = operations.submitReindexTask(postReindexRequest);
36763680
// Maybe there should be a task api to detect whether the task exists
36773681
assertThat(task).isNotBlank();
36783682
}

src/test/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchTemplateIntegrationTests.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,7 @@
2121
import static org.springframework.data.elasticsearch.annotations.FieldType.*;
2222
import static org.springframework.data.elasticsearch.utils.IdGenerator.*;
2323

24-
import org.elasticsearch.common.Strings;
2524
import org.springframework.data.elasticsearch.core.index.reindex.PostReindexRequest;
26-
import org.springframework.data.elasticsearch.core.index.reindex.PostReindexResponse;
2725
import reactor.core.publisher.Mono;
2826
import reactor.test.StepVerifier;
2927

@@ -1202,7 +1200,11 @@ void shouldWorkReindexForExistingIndex() {
12021200
indexNameProvider.increment();
12031201
String destIndexName = indexNameProvider.indexName();
12041202
operations.indexOps(IndexCoordinates.of(destIndexName)).create();
1205-
operations.reindex(PostReindexRequest.builder(sourceIndexName, destIndexName).withRefresh(true).build())
1203+
final PostReindexRequest postReindexRequest = PostReindexRequest
1204+
.builder(IndexCoordinates.of(sourceIndexName), IndexCoordinates.of(destIndexName))
1205+
.withRefresh(true)
1206+
.build();
1207+
operations.reindex(postReindexRequest)
12061208
.as(StepVerifier::create)
12071209
.consumeNextWith(postReindexResponse -> assertThat(postReindexResponse.getTotal()).isEqualTo(1L))
12081210
.verifyComplete();
@@ -1219,7 +1221,10 @@ void shouldWorkSubmitReindexTask(){
12191221
indexNameProvider.increment();
12201222
String destIndexName = indexNameProvider.indexName();
12211223
operations.indexOps(IndexCoordinates.of(destIndexName)).create();
1222-
operations.submitReindexTask(PostReindexRequest.builder(sourceIndexName, destIndexName).build())
1224+
final PostReindexRequest postReindexRequest = PostReindexRequest
1225+
.builder(IndexCoordinates.of(sourceIndexName), IndexCoordinates.of(destIndexName))
1226+
.build();
1227+
operations.submitReindexTask(postReindexRequest)
12231228
.as(StepVerifier::create)
12241229
.consumeNextWith(task -> assertThat(task).isNotBlank())
12251230
.verifyComplete();

src/test/java/org/springframework/data/elasticsearch/core/RequestFactoryTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -595,8 +595,8 @@ void shouldCreatePostReindexRequest() throws IOException, JSONException {
595595
.withConnectTimeout(Duration.ofSeconds(30))
596596
.withSocketTimeout(Duration.ofSeconds(30)).build();
597597

598-
PostReindexRequest postReindexRequest = PostReindexRequest.builder("source_1", "destination")
599-
.addSourceIndex("source_2")
598+
PostReindexRequest postReindexRequest = PostReindexRequest.builder(IndexCoordinates.of("source_1", "source_2"),
599+
IndexCoordinates.of("destination"))
600600
.withConflicts("proceed")
601601
.withMaxDocs(10)
602602
.withSourceQuery(QueryBuilders.matchAllQuery())

0 commit comments

Comments
 (0)