diff --git a/src/main/antora/modules/ROOT/pages/elasticsearch/elasticsearch-new.adoc b/src/main/antora/modules/ROOT/pages/elasticsearch/elasticsearch-new.adoc index fe0d86575..57d29dd54 100644 --- a/src/main/antora/modules/ROOT/pages/elasticsearch/elasticsearch-new.adoc +++ b/src/main/antora/modules/ROOT/pages/elasticsearch/elasticsearch-new.adoc @@ -5,7 +5,8 @@ == New in Spring Data Elasticsearch 5.4 * Upgrade to Elasticsearch 8.14.3. -* Allow to customize the mapped type name for @InnerField and @Field annotations. +* Allow to customize the mapped type name for `@InnerField` and `@Field` annotations. +* Support for Elasticsearch SQL. [[new-features.5-3-0]] == New in Spring Data Elasticsearch 5.3 diff --git a/src/main/java/org/springframework/data/elasticsearch/client/elc/ReactiveElasticsearchSqlClient.java b/src/main/java/org/springframework/data/elasticsearch/client/elc/ReactiveElasticsearchSqlClient.java index 442c5c5a9..0f661d594 100644 --- a/src/main/java/org/springframework/data/elasticsearch/client/elc/ReactiveElasticsearchSqlClient.java +++ b/src/main/java/org/springframework/data/elasticsearch/client/elc/ReactiveElasticsearchSqlClient.java @@ -15,11 +15,6 @@ */ package org.springframework.data.elasticsearch.client.elc; -import java.io.IOException; -import java.util.function.Function; - -import org.jetbrains.annotations.Nullable; - import co.elastic.clients.ApiClient; import co.elastic.clients.elasticsearch._types.ElasticsearchException; import co.elastic.clients.elasticsearch.sql.QueryRequest; @@ -29,6 +24,11 @@ import co.elastic.clients.transport.TransportOptions; import co.elastic.clients.util.ObjectBuilder; import reactor.core.publisher.Mono; +import java.io.IOException; +import java.util.function.Function; + +import org.jetbrains.annotations.Nullable; + /** * Reactive version of {@link co.elastic.clients.elasticsearch.sql.ElasticsearchSqlClient}. * diff --git a/src/main/java/org/springframework/data/elasticsearch/client/elc/ReactiveElasticsearchTemplate.java b/src/main/java/org/springframework/data/elasticsearch/client/elc/ReactiveElasticsearchTemplate.java index aa18c0f74..38252231f 100644 --- a/src/main/java/org/springframework/data/elasticsearch/client/elc/ReactiveElasticsearchTemplate.java +++ b/src/main/java/org/springframework/data/elasticsearch/client/elc/ReactiveElasticsearchTemplate.java @@ -25,8 +25,6 @@ import co.elastic.clients.elasticsearch.core.search.ResponseBody; import co.elastic.clients.json.JsonpMapper; import co.elastic.clients.transport.Version; import co.elastic.clients.transport.endpoints.BooleanResponse; -import org.springframework.data.elasticsearch.core.query.SqlQuery; -import org.springframework.data.elasticsearch.core.sql.SqlResponse; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import reactor.util.function.Tuple2; @@ -59,18 +57,12 @@ import org.springframework.data.elasticsearch.core.document.Document; import org.springframework.data.elasticsearch.core.document.SearchDocument; import org.springframework.data.elasticsearch.core.document.SearchDocumentResponse; import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates; -import org.springframework.data.elasticsearch.core.query.BaseQuery; -import org.springframework.data.elasticsearch.core.query.BaseQueryBuilder; -import org.springframework.data.elasticsearch.core.query.BulkOptions; -import org.springframework.data.elasticsearch.core.query.ByQueryResponse; -import org.springframework.data.elasticsearch.core.query.DeleteQuery; -import org.springframework.data.elasticsearch.core.query.Query; -import org.springframework.data.elasticsearch.core.query.SearchTemplateQuery; -import org.springframework.data.elasticsearch.core.query.UpdateQuery; +import org.springframework.data.elasticsearch.core.query.*; import org.springframework.data.elasticsearch.core.query.UpdateResponse; import org.springframework.data.elasticsearch.core.reindex.ReindexRequest; import org.springframework.data.elasticsearch.core.reindex.ReindexResponse; import org.springframework.data.elasticsearch.core.script.Script; +import org.springframework.data.elasticsearch.core.sql.SqlResponse; import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; diff --git a/src/main/java/org/springframework/data/elasticsearch/client/elc/ResponseConverter.java b/src/main/java/org/springframework/data/elasticsearch/client/elc/ResponseConverter.java index 232de0151..be5e7f636 100644 --- a/src/main/java/org/springframework/data/elasticsearch/client/elc/ResponseConverter.java +++ b/src/main/java/org/springframework/data/elasticsearch/client/elc/ResponseConverter.java @@ -15,9 +15,27 @@ */ package org.springframework.data.elasticsearch.client.elc; -import static org.springframework.data.elasticsearch.client.elc.JsonUtils.toJson; -import static org.springframework.data.elasticsearch.client.elc.TypeUtils.removePrefixFromJson; -import static org.springframework.data.elasticsearch.client.elc.TypeUtils.typeMapping; +import static org.springframework.data.elasticsearch.client.elc.JsonUtils.*; +import static org.springframework.data.elasticsearch.client.elc.TypeUtils.*; + +import co.elastic.clients.elasticsearch._types.BulkIndexByScrollFailure; +import co.elastic.clients.elasticsearch._types.ErrorCause; +import co.elastic.clients.elasticsearch._types.Time; +import co.elastic.clients.elasticsearch._types.query_dsl.Query; +import co.elastic.clients.elasticsearch.cluster.ComponentTemplateSummary; +import co.elastic.clients.elasticsearch.cluster.GetComponentTemplateResponse; +import co.elastic.clients.elasticsearch.cluster.HealthResponse; +import co.elastic.clients.elasticsearch.core.DeleteByQueryResponse; +import co.elastic.clients.elasticsearch.core.GetScriptResponse; +import co.elastic.clients.elasticsearch.core.UpdateByQueryResponse; +import co.elastic.clients.elasticsearch.core.mget.MultiGetError; +import co.elastic.clients.elasticsearch.core.mget.MultiGetResponseItem; +import co.elastic.clients.elasticsearch.indices.*; +import co.elastic.clients.elasticsearch.indices.get_index_template.IndexTemplateItem; +import co.elastic.clients.elasticsearch.indices.get_mapping.IndexMappingRecord; +import co.elastic.clients.elasticsearch.sql.QueryResponse; +import co.elastic.clients.json.JsonData; +import co.elastic.clients.json.JsonpMapper; import java.util.ArrayList; import java.util.HashMap; @@ -50,36 +68,6 @@ import org.springframework.data.elasticsearch.support.DefaultStringObjectMap; import org.springframework.lang.Nullable; import org.springframework.util.Assert; -import co.elastic.clients.elasticsearch._types.BulkIndexByScrollFailure; -import co.elastic.clients.elasticsearch._types.ErrorCause; -import co.elastic.clients.elasticsearch._types.Time; -import co.elastic.clients.elasticsearch._types.query_dsl.Query; -import co.elastic.clients.elasticsearch.cluster.ComponentTemplateSummary; -import co.elastic.clients.elasticsearch.cluster.GetComponentTemplateResponse; -import co.elastic.clients.elasticsearch.cluster.HealthResponse; -import co.elastic.clients.elasticsearch.core.DeleteByQueryResponse; -import co.elastic.clients.elasticsearch.core.GetScriptResponse; -import co.elastic.clients.elasticsearch.core.UpdateByQueryResponse; -import co.elastic.clients.elasticsearch.core.mget.MultiGetError; -import co.elastic.clients.elasticsearch.core.mget.MultiGetResponseItem; -import co.elastic.clients.elasticsearch.indices.Alias; -import co.elastic.clients.elasticsearch.indices.AliasDefinition; -import co.elastic.clients.elasticsearch.indices.GetAliasResponse; -import co.elastic.clients.elasticsearch.indices.GetIndexResponse; -import co.elastic.clients.elasticsearch.indices.GetIndexTemplateResponse; -import co.elastic.clients.elasticsearch.indices.GetIndicesSettingsResponse; -import co.elastic.clients.elasticsearch.indices.GetMappingResponse; -import co.elastic.clients.elasticsearch.indices.GetTemplateResponse; -import co.elastic.clients.elasticsearch.indices.IndexSettings; -import co.elastic.clients.elasticsearch.indices.IndexState; -import co.elastic.clients.elasticsearch.indices.IndexTemplateSummary; -import co.elastic.clients.elasticsearch.indices.TemplateMapping; -import co.elastic.clients.elasticsearch.indices.get_index_template.IndexTemplateItem; -import co.elastic.clients.elasticsearch.indices.get_mapping.IndexMappingRecord; -import co.elastic.clients.elasticsearch.sql.QueryResponse; -import co.elastic.clients.json.JsonData; -import co.elastic.clients.json.JsonpMapper; - /** * Class to convert Elasticsearch responses into Spring Data Elasticsearch classes. * diff --git a/src/main/java/org/springframework/data/elasticsearch/core/sql/SqlResponse.java b/src/main/java/org/springframework/data/elasticsearch/core/sql/SqlResponse.java index 4436c419a..e0a91c437 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/sql/SqlResponse.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/sql/SqlResponse.java @@ -15,7 +15,9 @@ */ package org.springframework.data.elasticsearch.core.sql; -import static java.util.Collections.unmodifiableList; +import static java.util.Collections.*; + +import jakarta.json.JsonValue; import java.util.ArrayList; import java.util.HashMap; @@ -26,8 +28,6 @@ import java.util.Map; import org.springframework.lang.NonNull; import org.springframework.lang.Nullable; -import jakarta.json.JsonValue; - /** * Defines an SQL response. * diff --git a/src/test/java/org/springframework/data/elasticsearch/core/sql/ReactiveSqlOperationsIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/sql/ReactiveSqlOperationsIntegrationTests.java index 8836894d5..62a872ac8 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/sql/ReactiveSqlOperationsIntegrationTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/sql/ReactiveSqlOperationsIntegrationTests.java @@ -15,7 +15,9 @@ */ package org.springframework.data.elasticsearch.core.sql; -import static org.springframework.data.elasticsearch.core.IndexOperationsAdapter.blocking; +import static org.springframework.data.elasticsearch.core.IndexOperationsAdapter.*; + +import reactor.test.StepVerifier; import java.util.List; @@ -35,8 +37,6 @@ import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTes import org.springframework.lang.Nullable; import org.springframework.test.context.ContextConfiguration; -import reactor.test.StepVerifier; - /** * Testing the reactive querying using SQL syntax. * diff --git a/src/test/java/org/springframework/data/elasticsearch/core/sql/SqlOperationsIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/sql/SqlOperationsIntegrationTests.java index 5367d00c0..2451b1f43 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/sql/SqlOperationsIntegrationTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/sql/SqlOperationsIntegrationTests.java @@ -15,10 +15,8 @@ */ package org.springframework.data.elasticsearch.core.sql; -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.assertj.core.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach;