Skip to content

Commit 153b352

Browse files
committed
Spring Boot 3.5 / Spring Data Elasticsearch 6.0 baseline
Signed-off-by: Andriy Redko <[email protected]> Signed-off-by: Andriy Redko <[email protected]>
1 parent fc9fd94 commit 153b352

File tree

10 files changed

+42
-37
lines changed

10 files changed

+42
-37
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ The Spring Data OpenSearch follows the release model of the Spring Data Elastics
2424

2525
| Spring Data Release Train | Spring Data OpenSearch | Spring Data Elasticsearch | OpenSearch Server | OpenSearch Client | Spring Framework | Spring Boot |
2626
|---------------------------|------------------------|---------------------------|-------------------|-------------------|------------------|---------------|
27+
| 2025.1 | 2.0.x | 6.0.x | 1.x / 2.x | 2.10.x and above | 7.0.x | 3.5.x |
2728
| 2024.1 | 1.6.x | 5.4.x | 1.x / 2.x | 2.10.x and above | 6.2.x | 3.4.x |
2829
| 2024.0 | 1.5.x | 5.3.x | 1.x / 2.x | 2.10.x and above | 6.1.x | 3.2.x / 3.3.x |
2930
| 2023.1 (Vaughan) | 1.4.x | 5.2.x | 1.x / 2.x | 2.10.x and above | 6.1.x | 3.2.x |

settings.gradle.kts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ dependencyResolutionManagement {
1616
}
1717

1818
create("springLibs") {
19-
version("spring", "6.2.6")
20-
version("spring-boot", "3.4.4")
21-
library("data-commons", "org.springframework.data:spring-data-commons:3.4.5")
22-
library("data-elasticsearch", "org.springframework.data:spring-data-elasticsearch:5.4.5")
19+
version("spring", "7.0.0-M4")
20+
version("spring-boot", "3.5.0-M3")
21+
library("data-commons", "org.springframework.data:spring-data-commons:4.0.0-M2")
22+
library("data-elasticsearch", "org.springframework.data:spring-data-elasticsearch:6.0.0-M2")
2323
library("web", "org.springframework", "spring-web").versionRef("spring")
2424
library("context", "org.springframework", "spring-context").versionRef("spring")
2525
library("tx", "org.springframework", "spring-tx").versionRef("spring")
@@ -74,12 +74,18 @@ pluginManagement {
7474
maven {
7575
url = uri("https://repo.spring.io/release/")
7676
}
77+
maven {
78+
url = uri("https://repo.spring.io/milestone/")
79+
}
7780
}
7881
}
7982

8083
dependencyResolutionManagement {
8184
repositories {
8285
mavenCentral()
86+
maven {
87+
url = uri("https://repo.spring.io/milestone/")
88+
}
8389
}
8490
}
8591

spring-data-opensearch/src/main/java/org/opensearch/data/client/orhlc/OpenSearchRestTemplate.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -227,14 +227,6 @@ protected String doDelete(String id, @Nullable String routing, IndexCoordinates
227227
return execute(client -> client.delete(request, RequestOptions.DEFAULT).getId());
228228
}
229229

230-
@Override
231-
public ByQueryResponse delete(Query query, Class<?> clazz, IndexCoordinates index) {
232-
DeleteByQueryRequest deleteByQueryRequest =
233-
requestFactory.deleteByQueryRequest(query, routingResolver.getRouting(), clazz, index, this.refreshPolicy);
234-
return ResponseConverter.byQueryResponseOf(
235-
execute(client -> client.deleteByQuery(deleteByQueryRequest, RequestOptions.DEFAULT)));
236-
}
237-
238230
@Override
239231
public ByQueryResponse delete(DeleteQuery query, Class<?> clazz) {
240232
return delete(query, clazz, getIndexCoordinatesFor(clazz));

spring-data-opensearch/src/main/java/org/opensearch/data/client/osc/OpenSearchTemplate.java

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -197,19 +197,6 @@ public ByQueryResponse delete(DeleteQuery query, Class<?> clazz, IndexCoordinate
197197
return responseConverter.byQueryResponse(response);
198198
}
199199

200-
@Override
201-
public ByQueryResponse delete(Query query, Class<?> clazz, IndexCoordinates index) {
202-
203-
Assert.notNull(query, "query must not be null");
204-
205-
DeleteByQueryRequest request = requestConverter.documentDeleteByQueryRequest(query, routingResolver.getRouting(),
206-
clazz, index, getRefreshPolicy());
207-
208-
DeleteByQueryResponse response = execute(client -> client.deleteByQuery(request));
209-
210-
return responseConverter.byQueryResponse(response);
211-
}
212-
213200
@Override
214201
public UpdateResponse update(UpdateQuery updateQuery, IndexCoordinates index) {
215202

spring-data-opensearch/src/main/java/org/opensearch/data/client/osc/ResponseConverter.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,6 @@ public ReindexResponse reindexResponse(org.opensearch.client.opensearch.core.Rei
388388
private ReindexResponse.Failure reindexResponseFailureOf(BulkIndexByScrollFailure failure) {
389389
return ReindexResponse.Failure.builder() //
390390
.withIndex(failure.index()) //
391-
.withType(failure.type()) //
392391
.withId(failure.id()) //
393392
.withStatus(failure.status())//
394393
.withErrorCause(toErrorCause(failure.cause())) //
@@ -399,7 +398,6 @@ private ReindexResponse.Failure reindexResponseFailureOf(BulkIndexByScrollFailur
399398
private ByQueryResponse.Failure byQueryResponseFailureOf(BulkIndexByScrollFailure failure) {
400399
return ByQueryResponse.Failure.builder() //
401400
.withIndex(failure.index()) //
402-
.withType(failure.type()) //
403401
.withId(failure.id()) //
404402
.withStatus(failure.status())//
405403
.withErrorCause(toErrorCause(failure.cause())).build();

spring-data-opensearch/src/test/java/org/opensearch/data/client/orhlc/OpenSearchORHLCIntegrationTests.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
import java.time.Duration;
1717
import java.util.Collections;
18+
import java.util.EnumSet;
1819
import java.util.HashMap;
1920
import java.util.Map;
2021
import org.json.JSONException;
@@ -44,6 +45,7 @@
4445
import org.springframework.data.elasticsearch.core.RefreshPolicy;
4546
import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
4647
import org.springframework.data.elasticsearch.core.query.BaseQueryBuilder;
48+
import org.springframework.data.elasticsearch.core.query.DeleteQuery;
4749
import org.springframework.data.elasticsearch.core.query.FetchSourceFilterBuilder;
4850
import org.springframework.data.elasticsearch.core.query.IndicesOptions;
4951
import org.springframework.data.elasticsearch.core.query.Query;
@@ -77,6 +79,11 @@ protected Query getTermQuery(String field, String value) {
7779
return new NativeSearchQueryBuilder().withQuery(termQuery(field, value)).build();
7880
}
7981

82+
@Override
83+
protected DeleteQuery getDeleteQuery(Query query) {
84+
return DeleteQuery.builder(query).setExpandWildcards(EnumSet.of(IndicesOptions.WildcardStates.OPEN)).build();
85+
}
86+
8087
@Override
8188
protected BaseQueryBuilder<?, ?> getBuilderWithTermQuery(String field, String value) {
8289
return new NativeSearchQueryBuilder().withQuery(termQuery(field, value));

spring-data-opensearch/src/test/java/org/opensearch/data/client/osc/OpenSearchOSCIntegrationTests.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import org.springframework.data.elasticsearch.core.SearchHits;
3939
import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
4040
import org.springframework.data.elasticsearch.core.query.BaseQueryBuilder;
41+
import org.springframework.data.elasticsearch.core.query.DeleteQuery;
4142
import org.springframework.data.elasticsearch.core.query.FetchSourceFilterBuilder;
4243
import org.springframework.data.elasticsearch.core.query.IndexQuery;
4344
import org.springframework.data.elasticsearch.core.query.Query;
@@ -104,6 +105,11 @@ protected Query getTermQuery(String field, String value) {
104105
return Queries.getBuilderWithMatchAllQuery();
105106
}
106107

108+
@Override
109+
protected DeleteQuery getDeleteQuery(Query query) {
110+
return DeleteQuery.builder(query).build();
111+
}
112+
107113
@Override
108114
protected BaseQueryBuilder<?, ?> getBuilderWithMatchQuery(String field, String value) {
109115
return NativeQuery.builder().withQuery(matchQueryAsQuery(field, value, null, null));

spring-data-opensearch/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchIntegrationTests.java

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -576,7 +576,8 @@ public void shouldDeleteDocumentForGivenQuery() {
576576

577577
// when
578578
Query query = getTermQuery("id", documentId);
579-
operations.delete(query, SampleEntity.class, IndexCoordinates.of(indexNameProvider.indexName()));
579+
operations.delete(DeleteQuery.builder(query).build(), SampleEntity.class,
580+
IndexCoordinates.of(indexNameProvider.indexName()));
580581

581582
// then
582583
Query searchQuery = getTermQuery("id", documentId);
@@ -607,7 +608,8 @@ public void shouldDeleteAcrossIndex() {
607608

608609
// when
609610
Query query = getTermQuery("message", "foo");
610-
operations.delete(query, SampleEntity.class, IndexCoordinates.of(MULTI_INDEX_ALL));
611+
operations.delete(getDeleteQuery(query), SampleEntity.class,
612+
IndexCoordinates.of(MULTI_INDEX_ALL));
611613

612614
// then
613615
assertThat(operations.count(query, IndexCoordinates.of(MULTI_INDEX_1_NAME, MULTI_INDEX_2_NAME))).isEqualTo(0);
@@ -616,6 +618,8 @@ public void shouldDeleteAcrossIndex() {
616618

617619
protected abstract Query getTermQuery(String field, String value);
618620

621+
protected abstract DeleteQuery getDeleteQuery(Query query);
622+
619623
@Test // DATAES-547
620624
public void shouldDeleteAcrossIndexWhenNoMatchingDataPresent() {
621625

@@ -638,7 +642,8 @@ public void shouldDeleteAcrossIndexWhenNoMatchingDataPresent() {
638642
// when
639643
Query query = getTermQuery("message", "negative");
640644

641-
operations.delete(query, SampleEntity.class, IndexCoordinates.of("test-index-*"));
645+
operations.delete(getDeleteQuery(query), SampleEntity.class,
646+
IndexCoordinates.of("test-index-*"));
642647

643648
operations.indexOps(IndexCoordinates.of(MULTI_INDEX_1_NAME)).refresh();
644649
operations.indexOps(IndexCoordinates.of(MULTI_INDEX_2_NAME)).refresh();
@@ -1001,7 +1006,8 @@ public void shouldDeleteGivenCriteriaQuery() {
10011006
CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria("message").contains("test"));
10021007

10031008
// when
1004-
operations.delete(criteriaQuery, SampleEntity.class, IndexCoordinates.of(indexNameProvider.indexName()));
1009+
operations.delete(getDeleteQuery(criteriaQuery), SampleEntity.class,
1010+
IndexCoordinates.of(indexNameProvider.indexName()));
10051011

10061012
// then
10071013
StringQuery stringQuery = new StringQuery(matchAllQuery().toString());
@@ -2433,7 +2439,8 @@ public void shouldDeleteOnlyDocumentsMatchedByDeleteQuery() {
24332439

24342440
// when
24352441
Query query = operations.idsQuery(Arrays.asList(documentIdToDelete));
2436-
operations.delete(query, SampleEntity.class, IndexCoordinates.of(indexNameProvider.indexName()));
2442+
operations.delete(getDeleteQuery(query), SampleEntity.class,
2443+
IndexCoordinates.of(indexNameProvider.indexName()));
24372444

24382445
// then
24392446
// document with id "remainingDocumentId" should still be indexed
@@ -2463,7 +2470,8 @@ public void shouldDeleteOnlyDocumentsMatchedByCriteriaQuery() {
24632470

24642471
// when
24652472
CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria("id").is(documentIdToDelete));
2466-
operations.delete(criteriaQuery, SampleEntity.class, IndexCoordinates.of(indexNameProvider.indexName()));
2473+
operations.delete(DeleteQuery.builder(criteriaQuery).build(), SampleEntity.class,
2474+
IndexCoordinates.of(indexNameProvider.indexName()));
24672475

24682476
// then
24692477
// document with id "remainingDocumentId" should still be indexed
@@ -3374,7 +3382,7 @@ private void shouldUpdateEntityWithJoinFields(String qId1, String qId2, String a
33743382

33753383
private void shouldDeleteEntityWithJoinFields(String qId2, String aId2) throws Exception {
33763384

3377-
operations.delete(getQueryForParentId("answer", qId2, qId2), SampleJoinEntity.class,
3385+
operations.delete(DeleteQuery.builder(getQueryForParentId("answer", qId2, qId2)).build(), SampleJoinEntity.class,
33783386
IndexCoordinates.of(indexNameProvider.indexName()));
33793387

33803388
SearchHits<SampleJoinEntity> deletedHits = operations.search(getQueryForParentId("answer", qId2, null),

spring-data-opensearch/src/test/java/org/springframework/data/elasticsearch/core/query/ElasticsearchPartQueryIntegrationTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
import org.springframework.data.elasticsearch.repository.query.ElasticsearchQueryMethod;
3737
import org.springframework.data.projection.SpelAwareProxyProjectionFactory;
3838
import org.springframework.data.repository.core.support.DefaultRepositoryMetadata;
39-
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
39+
import org.springframework.data.repository.query.ValueExpressionDelegate;
4040
import org.springframework.lang.Nullable;
4141

4242
/**
@@ -648,7 +648,7 @@ private String getQueryString(String methodName, Class<?>[] parameterClasses, Ob
648648
ElasticsearchQueryMethod queryMethod = new ElasticsearchQueryMethod(method,
649649
new DefaultRepositoryMetadata(SampleRepository.class), new SpelAwareProxyProjectionFactory(),
650650
operations.getElasticsearchConverter().getMappingContext());
651-
ElasticsearchPartQuery partQuery = new ElasticsearchPartQuery(queryMethod, operations, QueryMethodEvaluationContextProvider.DEFAULT);
651+
ElasticsearchPartQuery partQuery = new ElasticsearchPartQuery(queryMethod, operations, ValueExpressionDelegate.create());
652652
Query query = partQuery.createQuery(parameters);
653653
return buildQueryString(query, Book.class);
654654
}

version.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version=1.6.4
1+
version=2.0.0

0 commit comments

Comments
 (0)