>.
-Deprecated as of version 4.0.
-<2> Creating the `ElasticsearchTemplate` bean, offering both names, _elasticsearchOperations_ and _elasticsearchTemplate_.
-====
-
[[elasticsearch.operations.resttemplate]]
== ElasticsearchRestTemplate
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/AbstractElasticsearchRestTransportTemplate.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/AbstractElasticsearchRestTransportTemplate.java
deleted file mode 100644
index 3e420642a..000000000
--- a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/AbstractElasticsearchRestTransportTemplate.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * Copyright 2021 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.springframework.data.elasticsearch.backend.elasticsearch7;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-import org.elasticsearch.Version;
-import org.elasticsearch.action.DocWriteResponse;
-import org.elasticsearch.action.bulk.BulkItemResponse;
-import org.elasticsearch.action.bulk.BulkResponse;
-import org.elasticsearch.action.search.MultiSearchRequest;
-import org.elasticsearch.action.search.MultiSearchResponse;
-import org.elasticsearch.action.search.SearchResponse;
-import org.elasticsearch.index.query.MoreLikeThisQueryBuilder;
-import org.elasticsearch.index.query.QueryBuilders;
-import org.elasticsearch.search.suggest.SuggestBuilder;
-import org.springframework.data.elasticsearch.BulkFailureException;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.document.SearchDocumentResponse;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
-import org.springframework.data.elasticsearch.core.AbstractElasticsearchTemplate;
-import org.springframework.data.elasticsearch.core.IndexedObjectInformation;
-import org.springframework.data.elasticsearch.core.SearchHits;
-import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
-import org.springframework.data.elasticsearch.core.query.MoreLikeThisQuery;
-import org.springframework.data.elasticsearch.core.query.Query;
-import org.springframework.util.Assert;
-
-/**
- * This class contains methods that are common the implementations derived from {@link AbstractElasticsearchTemplate}
- * using either the {@link org.elasticsearch.client.transport.TransportClient} or the
- * {@link org.elasticsearch.client.RestHighLevelClient} and that use Elasticsearch specific libraries.
- *
- * Note: Although this class is public, it is not considered to be part of the official Spring Data
- * Elasticsearch API and so might change at any time.
- *
- * @author Peter-Josef Meisch
- */
-public abstract class AbstractElasticsearchRestTransportTemplate extends AbstractElasticsearchTemplate {
-
- // region DocumentOperations
- /**
- * @param bulkResponse
- * @return the list of the item id's
- */
- protected List checkForBulkOperationFailure(BulkResponse bulkResponse) {
-
- if (bulkResponse.hasFailures()) {
- Map failedDocuments = new HashMap<>();
- for (BulkItemResponse item : bulkResponse.getItems()) {
-
- if (item.isFailed())
- failedDocuments.put(item.getId(), item.getFailureMessage());
- }
- throw new BulkFailureException(
- "Bulk operation has failures. Use ElasticsearchException.getFailedDocuments() for detailed messages ["
- + failedDocuments + ']',
- failedDocuments);
- }
-
- return Stream.of(bulkResponse.getItems()).map(bulkItemResponse -> {
- DocWriteResponse response = bulkItemResponse.getResponse();
- if (response != null) {
- return IndexedObjectInformation.of(response.getId(), response.getSeqNo(), response.getPrimaryTerm(),
- response.getVersion());
- } else {
- return IndexedObjectInformation.of(bulkItemResponse.getId(), null, null, null);
- }
-
- }).collect(Collectors.toList());
- }
-
- // endregion
-
- // region SearchOperations
- protected SearchHits doSearch(MoreLikeThisQuery query, Class clazz, IndexCoordinates index) {
- MoreLikeThisQueryBuilder moreLikeThisQueryBuilder = requestFactory.moreLikeThisQueryBuilder(query, index);
- return search(
- new NativeSearchQueryBuilder().withQuery(moreLikeThisQueryBuilder).withPageable(query.getPageable()).build(),
- clazz, index);
- }
-
- @Override
- public List> multiSearch(List extends Query> queries, Class clazz, IndexCoordinates index) {
- MultiSearchRequest request = new MultiSearchRequest();
- for (Query query : queries) {
- request.add(requestFactory.searchRequest(query, clazz, index));
- }
-
- MultiSearchResponse.Item[] items = getMultiSearchResult(request);
-
- ReadDocumentCallback documentCallback = new ReadDocumentCallback(elasticsearchConverter, clazz, index);
- SearchDocumentResponseCallback> callback = new ReadSearchDocumentResponseCallback<>(clazz, index);
- List> res = new ArrayList<>(queries.size());
- int c = 0;
- for (Query query : queries) {
- res.add(callback.doWith(SearchDocumentResponse.from(items[c++].getResponse(), documentCallback::doWith)));
- }
- return res;
- }
-
- @Override
- public List> multiSearch(List extends Query> queries, List> classes) {
-
- Assert.notNull(queries, "queries must not be null");
- Assert.notNull(classes, "classes must not be null");
- Assert.isTrue(queries.size() == classes.size(), "queries and classes must have the same size");
-
- MultiSearchRequest request = new MultiSearchRequest();
- Iterator> it = classes.iterator();
- for (Query query : queries) {
- Class> clazz = it.next();
- request.add(requestFactory.searchRequest(query, clazz, getIndexCoordinatesFor(clazz)));
- }
-
- MultiSearchResponse.Item[] items = getMultiSearchResult(request);
-
- List> res = new ArrayList<>(queries.size());
- int c = 0;
- Iterator> it1 = classes.iterator();
- for (Query query : queries) {
- Class entityClass = it1.next();
-
- IndexCoordinates index = getIndexCoordinatesFor(entityClass);
- ReadDocumentCallback> documentCallback = new ReadDocumentCallback<>(elasticsearchConverter, entityClass, index);
- SearchDocumentResponseCallback> callback = new ReadSearchDocumentResponseCallback<>(entityClass,
- index);
-
- SearchResponse response = items[c++].getResponse();
- res.add(callback.doWith(SearchDocumentResponse.from(response, documentCallback::doWith)));
- }
- return res;
- }
-
- @Override
- public List> multiSearch(List extends Query> queries, List> classes,
- IndexCoordinates index) {
-
- Assert.notNull(queries, "queries must not be null");
- Assert.notNull(classes, "classes must not be null");
- Assert.notNull(index, "index must not be null");
- Assert.isTrue(queries.size() == classes.size(), "queries and classes must have the same size");
-
- MultiSearchRequest request = new MultiSearchRequest();
- Iterator> it = classes.iterator();
- for (Query query : queries) {
- request.add(requestFactory.searchRequest(query, it.next(), index));
- }
-
- MultiSearchResponse.Item[] items = getMultiSearchResult(request);
-
- List> res = new ArrayList<>(queries.size());
- int c = 0;
- Iterator> it1 = classes.iterator();
- for (Query query : queries) {
- Class entityClass = it1.next();
-
- ReadDocumentCallback> documentCallback = new ReadDocumentCallback<>(elasticsearchConverter, entityClass, index);
- SearchDocumentResponseCallback> callback = new ReadSearchDocumentResponseCallback<>(entityClass,
- index);
-
- SearchResponse response = items[c++].getResponse();
- res.add(callback.doWith(SearchDocumentResponse.from(response, documentCallback::doWith)));
- }
- return res;
- }
-
- abstract protected MultiSearchResponse.Item[] getMultiSearchResult(MultiSearchRequest request);
-
- // endregion
-
- // region helper
- @Override
- public Query matchAllQuery() {
- return new NativeSearchQueryBuilder().withQuery(QueryBuilders.matchAllQuery()).build();
- }
-
- @Override
- public Query idsQuery(List ids) {
-
- Assert.notNull(ids, "ids must not be null");
-
- return new NativeSearchQueryBuilder().withQuery(QueryBuilders.idsQuery().addIds(ids.toArray(new String[] {})))
- .build();
- }
-
- @Override
- protected String getVendor() {
- return "Elasticsearch";
- }
-
- @Override
- protected String getRuntimeLibraryVersion() {
- return Version.CURRENT.toString();
- }
-
- @Override
- @Deprecated
- public SearchResponse suggest(SuggestBuilder suggestion, Class> clazz) {
- return suggest(suggestion, getIndexCoordinatesFor(clazz));
- }
-
- // endregion
-}
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/CriteriaFilterProcessor.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/CriteriaFilterProcessor.java
index 87cbcc143..45c8cfa98 100644
--- a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/CriteriaFilterProcessor.java
+++ b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/CriteriaFilterProcessor.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.data.elasticsearch.clients.elasticsearch7;
+package org.springframework.data.elasticsearch.backend.elasticsearch7;
import static org.springframework.data.elasticsearch.core.query.Criteria.*;
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/CriteriaQueryProcessor.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/CriteriaQueryProcessor.java
index ef364ff5b..603111e2c 100644
--- a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/CriteriaQueryProcessor.java
+++ b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/CriteriaQueryProcessor.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.data.elasticsearch.clients.elasticsearch7;
+package org.springframework.data.elasticsearch.backend.elasticsearch7;
import static org.elasticsearch.index.query.Operator.*;
import static org.elasticsearch.index.query.QueryBuilders.*;
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ElasticsearchAggregation.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ElasticsearchAggregation.java
index 8229fb510..407243c89 100644
--- a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ElasticsearchAggregation.java
+++ b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ElasticsearchAggregation.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.data.elasticsearch.clients.elasticsearch7;
+package org.springframework.data.elasticsearch.backend.elasticsearch7;
import org.elasticsearch.search.aggregations.Aggregation;
import org.springframework.data.elasticsearch.core.AggregationContainer;
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ElasticsearchAggregations.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ElasticsearchAggregations.java
index efb6bd20a..79e865985 100644
--- a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ElasticsearchAggregations.java
+++ b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ElasticsearchAggregations.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.data.elasticsearch.clients.elasticsearch7;
+package org.springframework.data.elasticsearch.backend.elasticsearch7;
import org.elasticsearch.search.aggregations.Aggregations;
import org.springframework.data.elasticsearch.core.AggregationsContainer;
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ElasticsearchRestTemplate.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ElasticsearchRestTemplate.java
index a233f431f..c135db7d1 100644
--- a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ElasticsearchRestTemplate.java
+++ b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ElasticsearchRestTemplate.java
@@ -16,10 +16,19 @@
package org.springframework.data.elasticsearch.backend.elasticsearch7;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.elasticsearch.Version;
+import org.elasticsearch.action.DocWriteResponse;
+import org.elasticsearch.action.bulk.BulkItemResponse;
import org.elasticsearch.action.bulk.BulkRequest;
+import org.elasticsearch.action.bulk.BulkResponse;
import org.elasticsearch.action.delete.DeleteRequest;
import org.elasticsearch.action.get.GetRequest;
import org.elasticsearch.action.get.GetResponse;
@@ -38,6 +47,8 @@
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.core.TimeValue;
+import org.elasticsearch.index.query.MoreLikeThisQueryBuilder;
+import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.reindex.BulkByScrollResponse;
import org.elasticsearch.index.reindex.DeleteByQueryRequest;
import org.elasticsearch.index.reindex.UpdateByQueryRequest;
@@ -45,11 +56,11 @@
import org.elasticsearch.search.suggest.SuggestBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.data.elasticsearch.BulkFailureException;
import org.springframework.data.elasticsearch.backend.elasticsearch7.cluster.ElasticsearchClusterOperations;
import org.springframework.data.elasticsearch.backend.elasticsearch7.document.DocumentAdapters;
import org.springframework.data.elasticsearch.backend.elasticsearch7.document.SearchDocumentResponse;
-import org.springframework.data.elasticsearch.clients.elasticsearch7.RequestFactory;
-import org.springframework.data.elasticsearch.clients.elasticsearch7.ResponseConverter;
+import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
import org.springframework.data.elasticsearch.core.AbstractElasticsearchTemplate;
import org.springframework.data.elasticsearch.core.IndexOperations;
import org.springframework.data.elasticsearch.core.IndexedObjectInformation;
@@ -63,6 +74,7 @@
import org.springframework.data.elasticsearch.core.query.BulkOptions;
import org.springframework.data.elasticsearch.core.query.ByQueryResponse;
import org.springframework.data.elasticsearch.core.query.IndexQuery;
+import org.springframework.data.elasticsearch.core.query.MoreLikeThisQuery;
import org.springframework.data.elasticsearch.core.query.Query;
import org.springframework.data.elasticsearch.core.query.UpdateQuery;
import org.springframework.data.elasticsearch.core.query.UpdateResponse;
@@ -102,7 +114,7 @@
* @author Massimiliano Poggi
* @author Farid Faoudi
*/
-public class ElasticsearchRestTemplate extends AbstractElasticsearchRestTransportTemplate {
+public class ElasticsearchRestTemplate extends AbstractElasticsearchTemplate {
private static final Logger LOGGER = LoggerFactory.getLogger(ElasticsearchRestTemplate.class);
@@ -115,24 +127,21 @@ public ElasticsearchRestTemplate(RestHighLevelClient client) {
Assert.notNull(client, "Client must not be null!");
this.client = client;
-
- initialize(createElasticsearchConverter());
}
public ElasticsearchRestTemplate(RestHighLevelClient client, ElasticsearchConverter elasticsearchConverter) {
+ super(elasticsearchConverter);
+
Assert.notNull(client, "Client must not be null!");
this.client = client;
-
- initialize(elasticsearchConverter);
}
@Override
protected AbstractElasticsearchTemplate doCopy() {
return new ElasticsearchRestTemplate(client, elasticsearchConverter);
}
-
// endregion
// region IndexOperations
@@ -284,11 +293,11 @@ public List doBulkOperation(List> queries, BulkOptio
}
/**
- * Pre process the write request before it is sent to the server, eg. by setting the
+ * Preprocess the write request before it is sent to the server, e.g. by setting the
* {@link WriteRequest#setRefreshPolicy(String) refresh policy} if applicable.
*
* @param request must not be {@literal null}.
- * @param
+ * @param the request type
* @return the processed {@link WriteRequest}.
*/
protected > R prepareWriteRequest(R request) {
@@ -300,6 +309,39 @@ protected > R prepareWriteRequest(R request) {
return request.setRefreshPolicy(RequestFactory.toElasticsearchRefreshPolicy(refreshPolicy));
}
+ /**
+ * extract the list of {@link IndexedObjectInformation} from a {@link BulkResponse}.
+ *
+ * @param bulkResponse the response to evaluate
+ * @return the list of the {@link IndexedObjectInformation}s
+ */
+ protected List checkForBulkOperationFailure(BulkResponse bulkResponse) {
+
+ if (bulkResponse.hasFailures()) {
+ Map failedDocuments = new HashMap<>();
+ for (BulkItemResponse item : bulkResponse.getItems()) {
+
+ if (item.isFailed())
+ failedDocuments.put(item.getId(), item.getFailureMessage());
+ }
+ throw new BulkFailureException(
+ "Bulk operation has failures. Use ElasticsearchException.getFailedDocuments() for detailed messages ["
+ + failedDocuments + ']',
+ failedDocuments);
+ }
+
+ return Stream.of(bulkResponse.getItems()).map(bulkItemResponse -> {
+ DocWriteResponse response = bulkItemResponse.getResponse();
+ if (response != null) {
+ return IndexedObjectInformation.of(response.getId(), response.getSeqNo(), response.getPrimaryTerm(),
+ response.getVersion());
+ } else {
+ return IndexedObjectInformation.of(bulkItemResponse.getId(), null, null, null);
+ }
+
+ }).collect(Collectors.toList());
+ }
+
// endregion
// region SearchOperations
@@ -325,12 +367,19 @@ public SearchHits search(Query query, Class clazz, IndexCoordinates in
SearchRequest searchRequest = requestFactory.searchRequest(query, clazz, index);
SearchResponse response = execute(client -> client.search(searchRequest, RequestOptions.DEFAULT));
- ReadDocumentCallback documentCallback = new ReadDocumentCallback(elasticsearchConverter, clazz, index);
+ ReadDocumentCallback documentCallback = new ReadDocumentCallback<>(elasticsearchConverter, clazz, index);
SearchDocumentResponseCallback> callback = new ReadSearchDocumentResponseCallback<>(clazz, index);
return callback.doWith(SearchDocumentResponse.from(response, documentCallback::doWith));
}
+ protected SearchHits doSearch(MoreLikeThisQuery query, Class clazz, IndexCoordinates index) {
+ MoreLikeThisQueryBuilder moreLikeThisQueryBuilder = requestFactory.moreLikeThisQueryBuilder(query, index);
+ return search(
+ new NativeSearchQueryBuilder().withQuery(moreLikeThisQueryBuilder).withPageable(query.getPageable()).build(),
+ clazz, index);
+ }
+
@Override
public SearchScrollHits searchScrollStart(long scrollTimeInMillis, Query query, Class clazz,
IndexCoordinates index) {
@@ -342,7 +391,7 @@ public SearchScrollHits searchScrollStart(long scrollTimeInMillis, Query
SearchResponse response = execute(client -> client.search(searchRequest, RequestOptions.DEFAULT));
- ReadDocumentCallback documentCallback = new ReadDocumentCallback(elasticsearchConverter, clazz, index);
+ ReadDocumentCallback documentCallback = new ReadDocumentCallback<>(elasticsearchConverter, clazz, index);
SearchDocumentResponseCallback> callback = new ReadSearchScrollDocumentResponseCallback<>(clazz,
index);
return callback.doWith(SearchDocumentResponse.from(response, documentCallback::doWith));
@@ -357,7 +406,7 @@ public SearchScrollHits searchScrollContinue(@Nullable String scrollId, l
SearchResponse response = execute(client -> client.scroll(request, RequestOptions.DEFAULT));
- ReadDocumentCallback documentCallback = new ReadDocumentCallback(elasticsearchConverter, clazz, index);
+ ReadDocumentCallback documentCallback = new ReadDocumentCallback<>(elasticsearchConverter, clazz, index);
SearchDocumentResponseCallback> callback = new ReadSearchScrollDocumentResponseCallback<>(clazz,
index);
return callback.doWith(SearchDocumentResponse.from(response, documentCallback::doWith));
@@ -381,8 +430,91 @@ public SearchResponse suggest(SuggestBuilder suggestion, IndexCoordinates index)
}
@Override
+ public List> multiSearch(List extends Query> queries, Class clazz, IndexCoordinates index) {
+ MultiSearchRequest request = new MultiSearchRequest();
+ for (Query query : queries) {
+ request.add(requestFactory.searchRequest(query, clazz, index));
+ }
+
+ MultiSearchResponse.Item[] items = getMultiSearchResult(request);
+
+ ReadDocumentCallback documentCallback = new ReadDocumentCallback<>(elasticsearchConverter, clazz, index);
+ SearchDocumentResponseCallback> callback = new ReadSearchDocumentResponseCallback<>(clazz, index);
+ List> res = new ArrayList<>(queries.size());
+ for (int i = 0; i < queries.size(); i++) {
+ res.add(callback.doWith(SearchDocumentResponse.from(items[i].getResponse(), documentCallback::doWith)));
+ }
+ return res;
+ }
+
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ @Override
+ public List> multiSearch(List extends Query> queries, List> classes) {
+
+ Assert.notNull(queries, "queries must not be null");
+ Assert.notNull(classes, "classes must not be null");
+ Assert.isTrue(queries.size() == classes.size(), "queries and classes must have the same size");
+
+ MultiSearchRequest request = new MultiSearchRequest();
+ Iterator> it = classes.iterator();
+ for (Query query : queries) {
+ Class> clazz = it.next();
+ request.add(requestFactory.searchRequest(query, clazz, getIndexCoordinatesFor(clazz)));
+ }
+
+ MultiSearchResponse.Item[] items = getMultiSearchResult(request);
+
+ List> res = new ArrayList<>(queries.size());
+ Iterator> it1 = classes.iterator();
+ for (int i = 0; i < queries.size(); i++) {
+ Class entityClass = it1.next();
+
+ IndexCoordinates index = getIndexCoordinatesFor(entityClass);
+ ReadDocumentCallback> documentCallback = new ReadDocumentCallback<>(elasticsearchConverter, entityClass, index);
+ SearchDocumentResponseCallback> callback = new ReadSearchDocumentResponseCallback<>(entityClass,
+ index);
+
+ SearchResponse response = items[i].getResponse();
+ res.add(callback.doWith(SearchDocumentResponse.from(response, documentCallback::doWith)));
+ }
+ return res;
+ }
+
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ @Override
+ public List> multiSearch(List extends Query> queries, List> classes,
+ IndexCoordinates index) {
+
+ Assert.notNull(queries, "queries must not be null");
+ Assert.notNull(classes, "classes must not be null");
+ Assert.notNull(index, "index must not be null");
+ Assert.isTrue(queries.size() == classes.size(), "queries and classes must have the same size");
+
+ MultiSearchRequest request = new MultiSearchRequest();
+ Iterator> it = classes.iterator();
+ for (Query query : queries) {
+ request.add(requestFactory.searchRequest(query, it.next(), index));
+ }
+
+ MultiSearchResponse.Item[] items = getMultiSearchResult(request);
+
+ List> res = new ArrayList<>(queries.size());
+ Iterator> it1 = classes.iterator();
+ for (int i = 0; i < queries.size(); i++) {
+ Class entityClass = it1.next();
+
+ ReadDocumentCallback> documentCallback = new ReadDocumentCallback<>(elasticsearchConverter, entityClass, index);
+ SearchDocumentResponseCallback> callback = new ReadSearchDocumentResponseCallback<>(entityClass,
+ index);
+
+ SearchResponse response = items[i].getResponse();
+ res.add(callback.doWith(SearchDocumentResponse.from(response, documentCallback::doWith)));
+ }
+ return res;
+ }
+
protected MultiSearchResponse.Item[] getMultiSearchResult(MultiSearchRequest request) {
- MultiSearchResponse response = execute(client -> client.multiSearch(request, RequestOptions.DEFAULT));
+ MultiSearchResponse response = execute(client -> client.msearch(request, RequestOptions.DEFAULT));
MultiSearchResponse.Item[] items = response.getResponses();
Assert.isTrue(items.length == request.requests().size(), "Response should has same length with queries");
return items;
@@ -448,5 +580,36 @@ protected String getClusterVersion() {
} catch (Exception ignored) {}
return null;
}
+
+ @Override
+ public Query matchAllQuery() {
+ return new NativeSearchQueryBuilder().withQuery(QueryBuilders.matchAllQuery()).build();
+ }
+
+ @Override
+ public Query idsQuery(List ids) {
+
+ Assert.notNull(ids, "ids must not be null");
+
+ return new NativeSearchQueryBuilder().withQuery(QueryBuilders.idsQuery().addIds(ids.toArray(new String[] {})))
+ .build();
+ }
+
+ @Override
+ protected String getVendor() {
+ return "Elasticsearch";
+ }
+
+ @Override
+ protected String getRuntimeLibraryVersion() {
+ return Version.CURRENT.toString();
+ }
+
+ @Override
+ @Deprecated
+ public SearchResponse suggest(SuggestBuilder suggestion, Class> clazz) {
+ return suggest(suggestion, getIndexCoordinatesFor(clazz));
+ }
+
// endregion
}
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ElasticsearchTemplate.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ElasticsearchTemplate.java
deleted file mode 100755
index dddf57b1f..000000000
--- a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ElasticsearchTemplate.java
+++ /dev/null
@@ -1,482 +0,0 @@
-/*
- * Copyright 2013-2021 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.springframework.data.elasticsearch.backend.elasticsearch7;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.stream.Collectors;
-
-import org.elasticsearch.action.ActionFuture;
-import org.elasticsearch.action.admin.cluster.node.info.NodesInfoAction;
-import org.elasticsearch.action.admin.cluster.node.info.NodesInfoRequestBuilder;
-import org.elasticsearch.action.admin.cluster.node.info.NodesInfoResponse;
-import org.elasticsearch.action.bulk.BulkRequestBuilder;
-import org.elasticsearch.action.delete.DeleteRequestBuilder;
-import org.elasticsearch.action.get.GetRequestBuilder;
-import org.elasticsearch.action.get.GetResponse;
-import org.elasticsearch.action.get.MultiGetRequestBuilder;
-import org.elasticsearch.action.index.IndexRequestBuilder;
-import org.elasticsearch.action.index.IndexResponse;
-import org.elasticsearch.action.search.MultiSearchRequest;
-import org.elasticsearch.action.search.MultiSearchResponse;
-import org.elasticsearch.action.search.SearchRequestBuilder;
-import org.elasticsearch.action.search.SearchResponse;
-import org.elasticsearch.action.support.WriteRequest;
-import org.elasticsearch.action.support.WriteRequestBuilder;
-import org.elasticsearch.action.update.UpdateRequestBuilder;
-import org.elasticsearch.client.Client;
-import org.elasticsearch.core.TimeValue;
-import org.elasticsearch.index.reindex.BulkByScrollResponse;
-import org.elasticsearch.index.reindex.UpdateByQueryRequestBuilder;
-import org.elasticsearch.search.suggest.SuggestBuilder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.cluster.ElasticsearchClusterOperations;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.document.DocumentAdapters;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.document.SearchDocumentResponse;
-import org.springframework.data.elasticsearch.clients.elasticsearch7.RequestFactory;
-import org.springframework.data.elasticsearch.clients.elasticsearch7.ResponseConverter;
-import org.springframework.data.elasticsearch.core.AbstractElasticsearchTemplate;
-import org.springframework.data.elasticsearch.core.IndexOperations;
-import org.springframework.data.elasticsearch.core.IndexedObjectInformation;
-import org.springframework.data.elasticsearch.core.MultiGetItem;
-import org.springframework.data.elasticsearch.core.RefreshPolicy;
-import org.springframework.data.elasticsearch.core.SearchHits;
-import org.springframework.data.elasticsearch.core.SearchScrollHits;
-import org.springframework.data.elasticsearch.core.cluster.ClusterOperations;
-import org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter;
-import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
-import org.springframework.data.elasticsearch.core.query.BulkOptions;
-import org.springframework.data.elasticsearch.core.query.ByQueryResponse;
-import org.springframework.data.elasticsearch.core.query.IndexQuery;
-import org.springframework.data.elasticsearch.core.query.Query;
-import org.springframework.data.elasticsearch.core.query.UpdateQuery;
-import org.springframework.data.elasticsearch.core.query.UpdateResponse;
-import org.springframework.lang.Nullable;
-import org.springframework.util.Assert;
-
-/**
- * ElasticsearchTemplate
- *
- * @author Rizwan Idrees
- * @author Mohsin Husen
- * @author Artur Konczak
- * @author Kevin Leturc
- * @author Mason Chan
- * @author Young Gu
- * @author Oliver Gierke
- * @author Mark Janssen
- * @author Chris White
- * @author Mark Paluch
- * @author Ilkang Na
- * @author Alen Turkovic
- * @author Sascha Woo
- * @author Ted Liang
- * @author Jean-Baptiste Nizet
- * @author Zetang Zeng
- * @author Ivan Greene
- * @author Christoph Strobl
- * @author Dmitriy Yakovlev
- * @author Peter-Josef Meisch
- * @author Martin Choraine
- * @author Farid Azaza
- * @author Gyula Attila Csorogi
- * @author Roman Puchkovskiy
- * @author Farid Faoudi
- * @deprecated as of 4.0
- */
-@Deprecated
-public class ElasticsearchTemplate extends AbstractElasticsearchRestTransportTemplate {
- private static final Logger QUERY_LOGGER = LoggerFactory
- .getLogger("org.springframework.data.elasticsearch.core.QUERY");
- private static final Logger LOGGER = LoggerFactory.getLogger(ElasticsearchTemplate.class);
-
- private Client client;
- @Nullable private String searchTimeout;
-
- private final ElasticsearchExceptionTranslator exceptionTranslator = new ElasticsearchExceptionTranslator();
-
- // region Initialization
- public ElasticsearchTemplate(Client client) {
- this.client = client;
- initialize(client, createElasticsearchConverter());
- }
-
- public ElasticsearchTemplate(Client client, ElasticsearchConverter elasticsearchConverter) {
- this.client = client;
- initialize(client, elasticsearchConverter);
- }
-
- private void initialize(Client client, ElasticsearchConverter elasticsearchConverter) {
-
- Assert.notNull(client, "Client must not be null!");
-
- this.client = client;
- initialize(elasticsearchConverter);
- }
-
- @Override
- protected AbstractElasticsearchTemplate doCopy() {
- ElasticsearchTemplate elasticsearchTemplate = new ElasticsearchTemplate(client, elasticsearchConverter);
- elasticsearchTemplate.setSearchTimeout(searchTimeout);
- return elasticsearchTemplate;
- }
-
- // endregion
-
- // region IndexOperations
- @Override
- public IndexOperations indexOps(Class> clazz) {
-
- Assert.notNull(clazz, "clazz must not be null");
-
- return new TransportIndexTemplate(client, elasticsearchConverter, clazz);
- }
-
- @Override
- public IndexOperations indexOps(IndexCoordinates index) {
-
- Assert.notNull(index, "index must not be null");
-
- return new TransportIndexTemplate(client, elasticsearchConverter, index);
- }
- // endregion
-
- // region ClusterOperations
- @Override
- public ClusterOperations cluster() {
- return ElasticsearchClusterOperations.forTemplate(this);
- }
- // endregion
-
- // region getter/setter
- @Nullable
- public String getSearchTimeout() {
- return searchTimeout;
- }
-
- public void setSearchTimeout(String searchTimeout) {
- this.searchTimeout = searchTimeout;
- }
- // endregion
-
- // region DocumentOperations
- public String doIndex(IndexQuery query, IndexCoordinates index) {
-
- IndexRequestBuilder indexRequestBuilder = requestFactory.indexRequestBuilder(client, query, index);
- indexRequestBuilder = prepareWriteRequestBuilder(indexRequestBuilder);
- ActionFuture future = indexRequestBuilder.execute();
- IndexResponse response;
- try {
- response = future.actionGet();
- } catch (RuntimeException e) {
- throw translateException(e);
- }
- String documentId = response.getId();
-
- Object queryObject = query.getObject();
- if (queryObject != null) {
- query.setObject(updateIndexedObject(queryObject, IndexedObjectInformation.of(documentId, response.getSeqNo(),
- response.getPrimaryTerm(), response.getVersion())));
- }
-
- return documentId;
- }
-
- @Override
- @Nullable
- public T get(String id, Class clazz, IndexCoordinates index) {
-
- GetRequestBuilder getRequestBuilder = requestFactory.getRequestBuilder(client, id, routingResolver.getRouting(),
- index);
- GetResponse response = getRequestBuilder.execute().actionGet();
-
- DocumentCallback callback = new ReadDocumentCallback<>(elasticsearchConverter, clazz, index);
- return callback.doWith(DocumentAdapters.from(response));
- }
-
- @Override
- public List> multiGet(Query query, Class clazz, IndexCoordinates index) {
-
- Assert.notNull(index, "index must not be null");
-
- MultiGetRequestBuilder builder = requestFactory.multiGetRequestBuilder(client, query, clazz, index);
-
- DocumentCallback callback = new ReadDocumentCallback<>(elasticsearchConverter, clazz, index);
-
- return DocumentAdapters.from(builder.execute().actionGet()).stream() //
- .map(multiGetItem -> MultiGetItem.of(multiGetItem.isFailed() ? null : callback.doWith(multiGetItem.getItem()),
- multiGetItem.getFailure()))
- .collect(Collectors.toList());
- }
-
- @Override
- protected boolean doExists(String id, IndexCoordinates index) {
-
- GetRequestBuilder getRequestBuilder = requestFactory.getRequestBuilder(client, id, routingResolver.getRouting(),
- index);
- getRequestBuilder.setFetchSource(false);
- return getRequestBuilder.execute().actionGet().isExists();
- }
-
- @Override
- public void bulkUpdate(List queries, BulkOptions bulkOptions, IndexCoordinates index) {
-
- Assert.notNull(queries, "List of UpdateQuery must not be null");
- Assert.notNull(bulkOptions, "BulkOptions must not be null");
-
- doBulkOperation(queries, bulkOptions, index);
- }
-
- @Override
- protected String doDelete(String id, @Nullable String routing, IndexCoordinates index) {
-
- Assert.notNull(id, "id must not be null");
- Assert.notNull(index, "index must not be null");
-
- DeleteRequestBuilder deleteRequestBuilder = prepareWriteRequestBuilder(
- requestFactory.deleteRequestBuilder(client, elasticsearchConverter.convertId(id), routing, index));
- return deleteRequestBuilder.execute().actionGet().getId();
- }
-
- @Override
- public ByQueryResponse delete(Query query, Class> clazz, IndexCoordinates index) {
- return ResponseConverter
- .byQueryResponseOf(requestFactory.deleteByQueryRequestBuilder(client, query, clazz, index).get());
- }
-
- @Override
- public String delete(Object entity, IndexCoordinates index) {
- return super.delete(entity, index);
- }
-
- @Override
- public UpdateResponse update(UpdateQuery query, IndexCoordinates index) {
-
- UpdateRequestBuilder updateRequestBuilder = requestFactory.updateRequestBuilderFor(client, query, index);
-
- if (query.getRefreshPolicy() == null && getRefreshPolicy() != null) {
- updateRequestBuilder.setRefreshPolicy(RequestFactory.toElasticsearchRefreshPolicy(getRefreshPolicy()));
- }
-
- if (query.getRouting() == null && routingResolver.getRouting() != null) {
- updateRequestBuilder.setRouting(routingResolver.getRouting());
- }
-
- org.elasticsearch.action.update.UpdateResponse updateResponse = updateRequestBuilder.execute().actionGet();
- UpdateResponse.Result result = UpdateResponse.Result.valueOf(updateResponse.getResult().name());
- return new UpdateResponse(result);
- }
-
- @Override
- public ByQueryResponse updateByQuery(UpdateQuery query, IndexCoordinates index) {
-
- Assert.notNull(query, "query must not be null");
- Assert.notNull(index, "index must not be null");
-
- final UpdateByQueryRequestBuilder updateByQueryRequestBuilder = requestFactory.updateByQueryRequestBuilder(client,
- query, index);
-
- if (query.getRefreshPolicy() == null && getRefreshPolicy() != null) {
- updateByQueryRequestBuilder.refresh(getRefreshPolicy() == RefreshPolicy.IMMEDIATE);
- }
-
- // UpdateByQueryRequestBuilder has not parameters to set a routing value
-
- final BulkByScrollResponse bulkByScrollResponse = updateByQueryRequestBuilder.execute().actionGet();
- return ResponseConverter.byQueryResponseOf(bulkByScrollResponse);
- }
-
- public List doBulkOperation(List> queries, BulkOptions bulkOptions,
- IndexCoordinates index) {
-
- // do it in batches; test code on some machines kills the transport node when the size gets too much
- Collection extends List>> queryLists = partitionBasedOnSize(queries, 2500);
- List allIndexedObjectInformations = new ArrayList<>(queries.size());
-
- queryLists.forEach(queryList -> {
- BulkRequestBuilder bulkRequestBuilder = requestFactory.bulkRequestBuilder(client, queryList, bulkOptions, index);
- bulkRequestBuilder = prepareWriteRequestBuilder(bulkRequestBuilder);
- final List indexedObjectInformations = checkForBulkOperationFailure(
- bulkRequestBuilder.execute().actionGet());
- updateIndexedObjectsWithQueries(queryList, indexedObjectInformations);
- allIndexedObjectInformations.addAll(indexedObjectInformations);
- });
-
- return allIndexedObjectInformations;
- }
-
- /**
- * Pre process the write request before it is sent to the server, eg. by setting the
- * {@link WriteRequest#setRefreshPolicy(String) refresh policy} if applicable.
- *
- * @param requestBuilder must not be {@literal null}.
- * @param
- * @return the processed {@link WriteRequest}.
- */
- protected > R prepareWriteRequestBuilder(R requestBuilder) {
-
- if (refreshPolicy == null) {
- return requestBuilder;
- }
-
- return requestBuilder.setRefreshPolicy(RequestFactory.toElasticsearchRefreshPolicy(refreshPolicy));
- }
-
- // endregion
-
- // region SearchOperations
- @Override
- public long count(Query query, @Nullable Class> clazz, IndexCoordinates index) {
-
- Assert.notNull(query, "query must not be null");
- Assert.notNull(index, "index must not be null");
-
- final Boolean trackTotalHits = query.getTrackTotalHits();
- query.setTrackTotalHits(true);
- SearchRequestBuilder searchRequestBuilder = requestFactory.searchRequestBuilder(client, query, clazz, index);
- query.setTrackTotalHits(trackTotalHits);
- searchRequestBuilder.setSize(0);
-
- return SearchHitsUtil.getTotalCount(getSearchResponse(searchRequestBuilder).getHits());
- }
-
- @Override
- public SearchHits search(Query query, Class clazz, IndexCoordinates index) {
- SearchRequestBuilder searchRequestBuilder = requestFactory.searchRequestBuilder(client, query, clazz, index);
- SearchResponse response = getSearchResponse(searchRequestBuilder);
-
- ReadDocumentCallback documentCallback = new ReadDocumentCallback(elasticsearchConverter, clazz, index);
- SearchDocumentResponseCallback> callback = new ReadSearchDocumentResponseCallback<>(clazz, index);
- return callback.doWith(SearchDocumentResponse.from(response, documentCallback::doWith));
- }
-
- @Override
- public SearchScrollHits searchScrollStart(long scrollTimeInMillis, Query query, Class clazz,
- IndexCoordinates index) {
-
- Assert.notNull(query.getPageable(), "pageable of query must not be null.");
-
- ActionFuture action = requestFactory.searchRequestBuilder(client, query, clazz, index) //
- .setScroll(TimeValue.timeValueMillis(scrollTimeInMillis)) //
- .execute();
-
- SearchResponse response = getSearchResponseWithTimeout(action);
-
- ReadDocumentCallback documentCallback = new ReadDocumentCallback(elasticsearchConverter, clazz, index);
- SearchDocumentResponseCallback> callback = new ReadSearchScrollDocumentResponseCallback<>(clazz,
- index);
- return callback.doWith(SearchDocumentResponse.from(response, documentCallback::doWith));
- }
-
- @Override
- public SearchScrollHits searchScrollContinue(@Nullable String scrollId, long scrollTimeInMillis,
- Class clazz, IndexCoordinates index) {
-
- ActionFuture action = client //
- .prepareSearchScroll(scrollId) //
- .setScroll(TimeValue.timeValueMillis(scrollTimeInMillis)) //
- .execute();
-
- SearchResponse response = getSearchResponseWithTimeout(action);
-
- ReadDocumentCallback documentCallback = new ReadDocumentCallback(elasticsearchConverter, clazz, index);
- SearchDocumentResponseCallback> callback = new ReadSearchScrollDocumentResponseCallback<>(clazz,
- index);
- return callback.doWith(SearchDocumentResponse.from(response, documentCallback::doWith));
- }
-
- @Override
- public void searchScrollClear(List scrollIds) {
- try {
- client.prepareClearScroll().setScrollIds(scrollIds).execute().actionGet();
- } catch (Exception e) {
- LOGGER.warn("Could not clear scroll: {}", e.getMessage());
- }
- }
-
- @Override
- public SearchResponse suggest(SuggestBuilder suggestion, IndexCoordinates index) {
- SearchRequestBuilder searchRequestBuilder = requestFactory.searchRequestBuilder(client, suggestion, index);
- return searchRequestBuilder.get();
- }
-
- @Override
- protected MultiSearchResponse.Item[] getMultiSearchResult(MultiSearchRequest request) {
- ActionFuture future = client.multiSearch(request);
- MultiSearchResponse response = future.actionGet();
- MultiSearchResponse.Item[] items = response.getResponses();
- Assert.isTrue(items.length == request.requests().size(), "Response should have same length with queries");
- return items;
- }
-
- private SearchResponse getSearchResponse(SearchRequestBuilder requestBuilder) {
-
- if (QUERY_LOGGER.isDebugEnabled()) {
- QUERY_LOGGER.debug(requestBuilder.toString());
- }
- return getSearchResponseWithTimeout(requestBuilder.execute());
- }
-
- private SearchResponse getSearchResponseWithTimeout(ActionFuture response) {
- return searchTimeout == null ? response.actionGet() : response.actionGet(searchTimeout);
- }
- // endregion
-
- // region helper methods
- @Override
- protected String getClusterVersion() {
-
- try {
- NodesInfoResponse nodesInfoResponse = client.admin().cluster()
- .nodesInfo(new NodesInfoRequestBuilder(client, NodesInfoAction.INSTANCE).request()).actionGet();
- if (!nodesInfoResponse.getNodes().isEmpty()) {
- return nodesInfoResponse.getNodes().get(0).getVersion().toString();
- }
- } catch (Exception ignored) {}
- return null;
- }
-
- public Client getClient() {
- return client;
- }
-
- Collection> partitionBasedOnSize(List inputList, int size) {
- final AtomicInteger counter = new AtomicInteger(0);
- return inputList.stream().collect(Collectors.groupingBy(s -> counter.getAndIncrement() / size)).values();
- }
- // endregion
-
- /**
- * translates an Exception if possible. Exceptions that are no {@link RuntimeException}s are wrapped in a
- * RuntimeException
- *
- * @param exception the Exception to map
- * @return the potentially translated RuntimeException.
- * @since 4.0
- */
- private RuntimeException translateException(Exception exception) {
-
- RuntimeException runtimeException = exception instanceof RuntimeException ? (RuntimeException) exception
- : new RuntimeException(exception.getMessage(), exception);
- RuntimeException potentiallyTranslatedException = exceptionTranslator
- .translateExceptionIfPossible(runtimeException);
-
- return potentiallyTranslatedException != null ? potentiallyTranslatedException : runtimeException;
- }
-}
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ReactiveElasticsearchTemplate.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ReactiveElasticsearchTemplate.java
index aa395bc57..3a02d6f1b 100644
--- a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ReactiveElasticsearchTemplate.java
+++ b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ReactiveElasticsearchTemplate.java
@@ -61,9 +61,6 @@
import org.springframework.data.elasticsearch.backend.elasticsearch7.document.DocumentAdapters;
import org.springframework.data.elasticsearch.backend.elasticsearch7.document.SearchDocumentResponse;
import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
-import org.springframework.data.elasticsearch.clients.elasticsearch7.ElasticsearchAggregation;
-import org.springframework.data.elasticsearch.clients.elasticsearch7.RequestFactory;
-import org.springframework.data.elasticsearch.clients.elasticsearch7.ResponseConverter;
import org.springframework.data.elasticsearch.core.*;
import org.springframework.data.elasticsearch.core.EntityOperations.AdaptibleEntity;
import org.springframework.data.elasticsearch.core.cluster.ReactiveClusterOperations;
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ReactiveIndexTemplate.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ReactiveIndexTemplate.java
index 0b83eeb14..c70ecf658 100644
--- a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ReactiveIndexTemplate.java
+++ b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ReactiveIndexTemplate.java
@@ -42,8 +42,6 @@
import org.springframework.dao.InvalidDataAccessApiUsageException;
import org.springframework.data.elasticsearch.NoSuchIndexException;
import org.springframework.data.elasticsearch.annotations.Mapping;
-import org.springframework.data.elasticsearch.clients.elasticsearch7.RequestFactory;
-import org.springframework.data.elasticsearch.clients.elasticsearch7.ResponseConverter;
import org.springframework.data.elasticsearch.core.IndexInformation;
import org.springframework.data.elasticsearch.core.ReactiveElasticsearchOperations;
import org.springframework.data.elasticsearch.core.ReactiveIndexOperations;
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/RequestFactory.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/RequestFactory.java
index 3fc5a78bf..e3fcff5eb 100644
--- a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/RequestFactory.java
+++ b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/RequestFactory.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.data.elasticsearch.clients.elasticsearch7;
+package org.springframework.data.elasticsearch.backend.elasticsearch7;
import static org.elasticsearch.index.query.QueryBuilders.*;
import static org.springframework.util.CollectionUtils.*;
@@ -33,33 +33,23 @@
import org.elasticsearch.action.DocWriteRequest;
import org.elasticsearch.action.admin.indices.alias.Alias;
import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest;
-import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequestBuilder;
import org.elasticsearch.action.admin.indices.alias.get.GetAliasesRequest;
-import org.elasticsearch.action.admin.indices.create.CreateIndexRequestBuilder;
import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsRequest;
-import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequestBuilder;
import org.elasticsearch.action.admin.indices.refresh.RefreshRequest;
import org.elasticsearch.action.admin.indices.settings.get.GetSettingsRequest;
import org.elasticsearch.action.admin.indices.template.delete.DeleteIndexTemplateRequest;
import org.elasticsearch.action.bulk.BulkRequest;
-import org.elasticsearch.action.bulk.BulkRequestBuilder;
import org.elasticsearch.action.delete.DeleteRequest;
-import org.elasticsearch.action.delete.DeleteRequestBuilder;
import org.elasticsearch.action.get.GetRequest;
-import org.elasticsearch.action.get.GetRequestBuilder;
import org.elasticsearch.action.get.MultiGetRequest;
-import org.elasticsearch.action.get.MultiGetRequestBuilder;
import org.elasticsearch.action.index.IndexRequest;
-import org.elasticsearch.action.index.IndexRequestBuilder;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchRequestBuilder;
import org.elasticsearch.action.search.SearchType;
import org.elasticsearch.action.support.ActiveShardCount;
import org.elasticsearch.action.support.WriteRequest;
import org.elasticsearch.action.update.UpdateRequest;
-import org.elasticsearch.action.update.UpdateRequestBuilder;
-import org.elasticsearch.client.Client;
import org.elasticsearch.client.Requests;
import org.elasticsearch.client.indices.CreateIndexRequest;
import org.elasticsearch.client.indices.GetIndexRequest;
@@ -75,12 +65,8 @@
import org.elasticsearch.index.query.MoreLikeThisQueryBuilder;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
-import org.elasticsearch.index.reindex.DeleteByQueryAction;
import org.elasticsearch.index.reindex.DeleteByQueryRequest;
-import org.elasticsearch.index.reindex.DeleteByQueryRequestBuilder;
-import org.elasticsearch.index.reindex.UpdateByQueryAction;
import org.elasticsearch.index.reindex.UpdateByQueryRequest;
-import org.elasticsearch.index.reindex.UpdateByQueryRequestBuilder;
import org.elasticsearch.script.Script;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.fetch.subphase.FetchSourceContext;
@@ -221,12 +207,6 @@ public IndicesAliasesRequest indicesAliasesRequest(AliasActions aliasActions) {
return request;
}
- public IndicesAliasesRequestBuilder indicesAliasesRequestBuilder(Client client, AliasActions aliasActions) {
-
- IndicesAliasesRequestBuilder requestBuilder = client.admin().indices().prepareAliases();
- indicesAliasesRequest(aliasActions).getAliasActions().forEach(requestBuilder::addAliasAction);
- return requestBuilder;
- }
// endregion
// region bulk
@@ -264,42 +244,6 @@ public BulkRequest bulkRequest(List> queries, BulkOptions bulkOptions, IndexCo
return bulkRequest;
}
- public BulkRequestBuilder bulkRequestBuilder(Client client, List> queries, BulkOptions bulkOptions,
- IndexCoordinates index) {
- BulkRequestBuilder bulkRequestBuilder = client.prepareBulk();
-
- if (bulkOptions.getTimeout() != null) {
- bulkRequestBuilder.setTimeout(TimeValue.timeValueMillis(bulkOptions.getTimeout().toMillis()));
- }
-
- if (bulkOptions.getRefreshPolicy() != null) {
- bulkRequestBuilder.setRefreshPolicy(toElasticsearchRefreshPolicy(bulkOptions.getRefreshPolicy()));
- }
-
- if (bulkOptions.getWaitForActiveShards() != null) {
- bulkRequestBuilder.setWaitForActiveShards(ActiveShardCount.from(bulkOptions.getWaitForActiveShards().getValue()));
- }
-
- if (bulkOptions.getPipeline() != null) {
- bulkRequestBuilder.pipeline(bulkOptions.getPipeline());
- }
-
- if (bulkOptions.getRoutingId() != null) {
- bulkRequestBuilder.routing(bulkOptions.getRoutingId());
- }
-
- queries.forEach(query -> {
-
- if (query instanceof IndexQuery) {
- bulkRequestBuilder.add(indexRequestBuilder(client, (IndexQuery) query, index));
- } else if (query instanceof UpdateQuery) {
- bulkRequestBuilder.add(updateRequestBuilderFor(client, (UpdateQuery) query, index));
- }
- });
-
- return bulkRequestBuilder;
- }
-
// endregion
// region index management
@@ -323,26 +267,6 @@ public CreateIndexRequest createIndexRequest(IndexCoordinates index, Map settings, @Nullable Document mapping) {
-
- Assert.notNull(index, "index must not be null");
- Assert.notNull(settings, "settings must not be null");
-
- String indexName = index.getIndexName();
- CreateIndexRequestBuilder createIndexRequestBuilder = client.admin().indices().prepareCreate(indexName);
-
- if (!settings.isEmpty()) {
- createIndexRequestBuilder.setSettings(settings);
- }
-
- if (mapping != null && !mapping.isEmpty()) {
- createIndexRequestBuilder.addMapping(IndexCoordinates.TYPE, mapping);
- }
-
- return createIndexRequestBuilder;
- }
-
public GetIndexRequest getIndexRequest(IndexCoordinates index) {
return new GetIndexRequest(index.getIndexNames());
}
@@ -378,15 +302,6 @@ public PutMappingRequest putMappingRequest(IndexCoordinates index, Document mapp
return request;
}
- public PutMappingRequestBuilder putMappingRequestBuilder(Client client, IndexCoordinates index, Document mapping) {
-
- String[] indexNames = index.getIndexNames();
- PutMappingRequestBuilder requestBuilder = client.admin().indices().preparePutMapping(indexNames)
- .setType(IndexCoordinates.TYPE);
- requestBuilder.setSource(mapping);
- return requestBuilder;
- }
-
public GetSettingsRequest getSettingsRequest(String indexName, boolean includeDefaults) {
return new GetSettingsRequest().indices(indexName).includeDefaults(includeDefaults);
}
@@ -397,13 +312,6 @@ public GetMappingsRequest getMappingsRequest(IndexCoordinates index) {
return new GetMappingsRequest().indices(indexNames);
}
- public org.elasticsearch.action.admin.indices.mapping.get.GetMappingsRequest getMappingsRequest(
- @SuppressWarnings("unused") Client client, IndexCoordinates index) {
-
- String[] indexNames = index.getIndexNames();
- return new org.elasticsearch.action.admin.indices.mapping.get.GetMappingsRequest().indices(indexNames);
- }
-
public PutIndexTemplateRequest putIndexTemplateRequest(PutTemplateRequest putTemplateRequest) {
PutIndexTemplateRequest request = new PutIndexTemplateRequest(putTemplateRequest.getName())
@@ -472,87 +380,10 @@ public PutIndexTemplateRequest putIndexTemplateRequest(PutTemplateRequest putTem
return request;
}
- /**
- * The version for the transport client needs a different PutIndexTemplateRequest class
- */
- public org.elasticsearch.action.admin.indices.template.put.PutIndexTemplateRequest putIndexTemplateRequest(
- @SuppressWarnings("unused") Client client, PutTemplateRequest putTemplateRequest) {
- org.elasticsearch.action.admin.indices.template.put.PutIndexTemplateRequest request = new org.elasticsearch.action.admin.indices.template.put.PutIndexTemplateRequest(
- putTemplateRequest.getName()).patterns(Arrays.asList(putTemplateRequest.getIndexPatterns()));
-
- if (putTemplateRequest.getSettings() != null) {
- request.settings(putTemplateRequest.getSettings());
- }
-
- if (putTemplateRequest.getMappings() != null) {
- request.mapping("_doc", putTemplateRequest.getMappings());
- }
-
- request.order(putTemplateRequest.getOrder()).version(putTemplateRequest.getVersion());
-
- AliasActions aliasActions = putTemplateRequest.getAliasActions();
-
- if (aliasActions != null) {
- aliasActions.getActions().forEach(aliasAction -> {
- AliasActionParameters parameters = aliasAction.getParameters();
- String[] parametersAliases = parameters.getAliases();
- if (parametersAliases != null) {
-
- for (String aliasName : parametersAliases) {
- Alias alias = new Alias(aliasName);
-
- if (parameters.getRouting() != null) {
- alias.routing(parameters.getRouting());
- }
-
- if (parameters.getIndexRouting() != null) {
- alias.indexRouting(parameters.getIndexRouting());
- }
-
- if (parameters.getSearchRouting() != null) {
- alias.searchRouting(parameters.getSearchRouting());
- }
-
- if (parameters.getHidden() != null) {
- alias.isHidden(parameters.getHidden());
- }
-
- if (parameters.getWriteIndex() != null) {
- alias.writeIndex(parameters.getWriteIndex());
- }
-
- Query filterQuery = parameters.getFilterQuery();
-
- if (filterQuery != null) {
- elasticsearchConverter.updateQuery(filterQuery, parameters.getFilterQueryClass());
- QueryBuilder queryBuilder = getFilter(filterQuery);
-
- if (queryBuilder == null) {
- queryBuilder = getQuery(filterQuery);
- }
-
- alias.filter(queryBuilder);
- }
-
- request.alias(alias);
- }
- }
- });
- }
-
- return request;
- }
-
public GetIndexTemplatesRequest getIndexTemplatesRequest(GetTemplateRequest getTemplateRequest) {
return new GetIndexTemplatesRequest(getTemplateRequest.getTemplateName());
}
- public org.elasticsearch.action.admin.indices.template.get.GetIndexTemplatesRequest getIndexTemplatesRequest(
- Client client, GetTemplateRequest getTemplateRequest) {
- return new org.elasticsearch.action.admin.indices.template.get.GetIndexTemplatesRequest(
- getTemplateRequest.getTemplateName());
- }
-
public IndexTemplatesExistRequest indexTemplatesExistsRequest(ExistsTemplateRequest existsTemplateRequest) {
return new IndexTemplatesExistRequest(existsTemplateRequest.getTemplateName());
}
@@ -561,11 +392,6 @@ public DeleteIndexTemplateRequest deleteIndexTemplateRequest(DeleteTemplateReque
return new DeleteIndexTemplateRequest(deleteTemplateRequest.getTemplateName());
}
- public org.elasticsearch.action.admin.indices.template.delete.DeleteIndexTemplateRequest deleteIndexTemplateRequest(
- Client client, DeleteTemplateRequest deleteTemplateRequest) {
- return new org.elasticsearch.action.admin.indices.template.delete.DeleteIndexTemplateRequest(
- deleteTemplateRequest.getTemplateName());
- }
// endregion
// region delete
@@ -604,47 +430,6 @@ public DeleteRequest deleteRequest(String id, @Nullable String routing, IndexCoo
return deleteRequest;
}
- public DeleteRequestBuilder deleteRequestBuilder(Client client, String id, @Nullable String routing,
- IndexCoordinates index) {
- String indexName = index.getIndexName();
- DeleteRequestBuilder deleteRequestBuilder = client.prepareDelete();
- deleteRequestBuilder.setIndex(indexName);
- deleteRequestBuilder.setId(id);
-
- if (routing != null) {
- deleteRequestBuilder.setRouting(routing);
- }
-
- return deleteRequestBuilder;
- }
-
- public DeleteByQueryRequestBuilder deleteByQueryRequestBuilder(Client client, Query query, Class> clazz,
- IndexCoordinates index) {
- SearchRequest searchRequest = searchRequest(query, clazz, index);
- DeleteByQueryRequestBuilder requestBuilder = new DeleteByQueryRequestBuilder(client, DeleteByQueryAction.INSTANCE) //
- .source(index.getIndexNames()) //
- .filter(searchRequest.source().query()) //
- .abortOnVersionConflict(false) //
- .refresh(true);
-
- SearchRequestBuilder source = requestBuilder.source();
-
- if (query.isLimiting()) {
- // noinspection ConstantConditions
- source.setSize(query.getMaxResults());
- }
-
- if (query.hasScrollTime()) {
- // noinspection ConstantConditions
- source.setScroll(TimeValue.timeValueMillis(query.getScrollTime().toMillis()));
- }
-
- if (query.getRoute() != null) {
- source.setRouting(query.getRoute());
- }
-
- return requestBuilder;
- }
// endregion
// region get
@@ -654,13 +439,6 @@ public GetRequest getRequest(String id, @Nullable String routing, IndexCoordinat
return getRequest;
}
- public GetRequestBuilder getRequestBuilder(Client client, String id, @Nullable String routing,
- IndexCoordinates index) {
- GetRequestBuilder getRequestBuilder = client.prepareGet(index.getIndexName(), null, id);
- getRequestBuilder.setRouting(routing);
- return getRequestBuilder;
- }
-
public MultiGetRequest multiGetRequest(Query query, Class> clazz, IndexCoordinates index) {
MultiGetRequest multiGetRequest = new MultiGetRequest();
@@ -668,14 +446,6 @@ public MultiGetRequest multiGetRequest(Query query, Class> clazz, IndexCoordin
return multiGetRequest;
}
- public MultiGetRequestBuilder multiGetRequestBuilder(Client client, Query searchQuery, Class> clazz,
- IndexCoordinates index) {
-
- MultiGetRequestBuilder multiGetRequestBuilder = client.prepareMultiGet();
- getMultiRequestItems(searchQuery, clazz, index).forEach(multiGetRequestBuilder::add);
- return multiGetRequestBuilder;
- }
-
private List getMultiRequestItems(Query searchQuery, Class> clazz, IndexCoordinates index) {
elasticsearchConverter.updateQuery(searchQuery, clazz);
@@ -762,52 +532,6 @@ public IndexRequest indexRequest(IndexQuery query, IndexCoordinates index) {
return indexRequest;
}
- public IndexRequestBuilder indexRequestBuilder(Client client, IndexQuery query, IndexCoordinates index) {
- String indexName = index.getIndexName();
- String type = IndexCoordinates.TYPE;
-
- IndexRequestBuilder indexRequestBuilder;
-
- Object queryObject = query.getObject();
- if (queryObject != null) {
- String id = StringUtils.isEmpty(query.getId()) ? getPersistentEntityId(queryObject) : query.getId();
- // If we have a query id and a document id, do not ask ES to generate one.
- if (id != null) {
- indexRequestBuilder = client.prepareIndex(indexName, type, id);
- } else {
- indexRequestBuilder = client.prepareIndex(indexName, type);
- }
- indexRequestBuilder.setSource(elasticsearchConverter.mapObject(queryObject).toJson(),
- Requests.INDEX_CONTENT_TYPE);
- } else if (query.getSource() != null) {
- indexRequestBuilder = client.prepareIndex(indexName, type, query.getId()).setSource(query.getSource(),
- Requests.INDEX_CONTENT_TYPE);
- } else {
- throw new InvalidDataAccessApiUsageException(
- "object or source is null, failed to index the document [id: " + query.getId() + ']');
- }
-
- if (query.getVersion() != null) {
- indexRequestBuilder.setVersion(query.getVersion());
- VersionType versionType = retrieveVersionTypeFromPersistentEntity(
- queryObject != null ? queryObject.getClass() : null);
- indexRequestBuilder.setVersionType(versionType);
- }
-
- if (query.getSeqNo() != null) {
- indexRequestBuilder.setIfSeqNo(query.getSeqNo());
- }
-
- if (query.getPrimaryTerm() != null) {
- indexRequestBuilder.setIfPrimaryTerm(query.getPrimaryTerm());
- }
-
- if (query.getRouting() != null) {
- indexRequestBuilder.setRouting(query.getRouting());
- }
-
- return indexRequestBuilder;
- }
// endregion
// region search
@@ -897,11 +621,6 @@ public SearchRequest searchRequest(SuggestBuilder suggestion, IndexCoordinates i
return searchRequest;
}
- public SearchRequestBuilder searchRequestBuilder(Client client, SuggestBuilder suggestion, IndexCoordinates index) {
- String[] indexNames = index.getIndexNames();
- return client.prepareSearch(indexNames).suggest(suggestion);
- }
-
public SearchRequest searchRequest(Query query, @Nullable Class> clazz, IndexCoordinates index) {
elasticsearchConverter.updateQuery(query, clazz);
@@ -919,23 +638,6 @@ public SearchRequest searchRequest(Query query, @Nullable Class> clazz, IndexC
}
- public SearchRequestBuilder searchRequestBuilder(Client client, Query query, @Nullable Class> clazz,
- IndexCoordinates index) {
-
- elasticsearchConverter.updateQuery(query, clazz);
- SearchRequestBuilder searchRequestBuilder = prepareSearchRequestBuilder(query, client, clazz, index);
- QueryBuilder elasticsearchQuery = getQuery(query);
- QueryBuilder elasticsearchFilter = getFilter(query);
-
- searchRequestBuilder.setQuery(elasticsearchQuery);
-
- if (elasticsearchFilter != null) {
- searchRequestBuilder.setPostFilter(elasticsearchFilter);
- }
-
- return searchRequestBuilder;
- }
-
private SearchRequest prepareSearchRequest(Query query, @Nullable Class> clazz, IndexCoordinates indexCoordinates) {
String[] indexNames = indexCoordinates.getIndexNames();
@@ -1040,114 +742,9 @@ private SearchRequest prepareSearchRequest(Query query, @Nullable Class> clazz
}
request.source(sourceBuilder);
-
return request;
}
- private SearchRequestBuilder prepareSearchRequestBuilder(Query query, Client client, @Nullable Class> clazz,
- IndexCoordinates index) {
-
- String[] indexNames = index.getIndexNames();
- Assert.notNull(indexNames, "No index defined for Query");
- Assert.notEmpty(indexNames, "No index defined for Query");
-
- SearchRequestBuilder searchRequestBuilder = client.prepareSearch(indexNames) //
- .setSearchType(SearchType.fromString(query.getSearchType().name().toLowerCase())) //
- .setVersion(true) //
- .setTrackScores(query.getTrackScores());
- if (hasSeqNoPrimaryTermProperty(clazz)) {
- searchRequestBuilder.seqNoAndPrimaryTerm(true);
- }
-
- if (query.getPageable().isPaged()) {
- searchRequestBuilder.setFrom((int) query.getPageable().getOffset());
- searchRequestBuilder.setSize(query.getPageable().getPageSize());
- } else {
- searchRequestBuilder.setFrom(0);
- searchRequestBuilder.setSize(INDEX_MAX_RESULT_WINDOW);
- }
-
- if (query.getSourceFilter() != null) {
- SourceFilter sourceFilter = query.getSourceFilter();
- searchRequestBuilder.setFetchSource(sourceFilter.getIncludes(), sourceFilter.getExcludes());
- }
-
- if (!query.getFields().isEmpty()) {
- query.getFields().forEach(searchRequestBuilder::addFetchField);
- }
-
- if (query.getIndicesOptions() != null) {
- searchRequestBuilder.setIndicesOptions(toElasticsearchIndicesOptions(query.getIndicesOptions()));
- }
-
- if (query.isLimiting()) {
- // noinspection ConstantConditions
- searchRequestBuilder.setSize(query.getMaxResults());
- }
-
- if (query.getMinScore() > 0) {
- searchRequestBuilder.setMinScore(query.getMinScore());
- }
-
- if (query.getPreference() != null) {
- searchRequestBuilder.setPreference(query.getPreference());
- }
-
- prepareSort(query, searchRequestBuilder, getPersistentEntity(clazz));
-
- HighlightBuilder highlightBuilder = highlightBuilder(query);
-
- if (highlightBuilder != null) {
- searchRequestBuilder.highlighter(highlightBuilder);
- }
-
- if (query instanceof NativeSearchQuery) {
- prepareNativeSearch(searchRequestBuilder, (NativeSearchQuery) query);
- }
-
- if (query.getTrackTotalHits() != null) {
- searchRequestBuilder.setTrackTotalHits(query.getTrackTotalHits());
- } else if (query.getTrackTotalHitsUpTo() != null) {
- searchRequestBuilder.setTrackTotalHitsUpTo(query.getTrackTotalHitsUpTo());
- }
-
- if (StringUtils.hasLength(query.getRoute())) {
- searchRequestBuilder.setRouting(query.getRoute());
- }
-
- Duration timeout = query.getTimeout();
- if (timeout != null) {
- searchRequestBuilder.setTimeout(new TimeValue(timeout.toMillis()));
- }
-
- searchRequestBuilder.setExplain(query.getExplain());
-
- if (query.getSearchAfter() != null) {
- searchRequestBuilder.searchAfter(query.getSearchAfter().toArray());
- }
-
- query.getRescorerQueries().forEach(rescorer -> searchRequestBuilder.addRescorer(getQueryRescorerBuilder(rescorer)));
-
- if (query.getRequestCache() != null) {
- searchRequestBuilder.setRequestCache(query.getRequestCache());
- }
-
- if (!query.getRuntimeFields().isEmpty()) {
-
- Map runtimeMappings = new HashMap<>();
- query.getRuntimeFields().forEach(runtimeField -> {
- runtimeMappings.put(runtimeField.getName(), runtimeField.getMapping());
- });
- searchRequestBuilder.setRuntimeMappings(runtimeMappings);
- }
-
- if (query.getScrollTime() != null) {
- searchRequestBuilder.setScroll(TimeValue.timeValueMillis(query.getScrollTime().toMillis()));
- }
-
- return searchRequestBuilder;
- }
-
private void prepareNativeSearch(NativeSearchQuery query, SearchSourceBuilder sourceBuilder) {
if (!query.getScriptFields().isEmpty()) {
@@ -1179,36 +776,6 @@ private void prepareNativeSearch(NativeSearchQuery query, SearchSourceBuilder so
}
}
- private void prepareNativeSearch(SearchRequestBuilder searchRequestBuilder, NativeSearchQuery nativeSearchQuery) {
- if (!isEmpty(nativeSearchQuery.getScriptFields())) {
- for (ScriptField scriptedField : nativeSearchQuery.getScriptFields()) {
- searchRequestBuilder.addScriptField(scriptedField.fieldName(), scriptedField.script());
- }
- }
-
- if (nativeSearchQuery.getCollapseBuilder() != null) {
- searchRequestBuilder.setCollapse(nativeSearchQuery.getCollapseBuilder());
- }
-
- if (!isEmpty(nativeSearchQuery.getIndicesBoost())) {
- for (IndexBoost indexBoost : nativeSearchQuery.getIndicesBoost()) {
- searchRequestBuilder.addIndexBoost(indexBoost.getIndexName(), indexBoost.getBoost());
- }
- }
-
- if (!isEmpty(nativeSearchQuery.getAggregations())) {
- nativeSearchQuery.getAggregations().forEach(searchRequestBuilder::addAggregation);
- }
-
- if (!isEmpty(nativeSearchQuery.getPipelineAggregations())) {
- nativeSearchQuery.getPipelineAggregations().forEach(searchRequestBuilder::addAggregation);
- }
-
- if (nativeSearchQuery.getSuggestBuilder() != null) {
- searchRequestBuilder.suggest(nativeSearchQuery.getSuggestBuilder());
- }
- }
-
@SuppressWarnings("rawtypes")
private void prepareSort(Query query, SearchSourceBuilder sourceBuilder,
@Nullable ElasticsearchPersistentEntity> entity) {
@@ -1402,80 +969,6 @@ public UpdateRequest updateRequest(UpdateQuery query, IndexCoordinates index) {
return updateRequest;
}
- public UpdateRequestBuilder updateRequestBuilderFor(Client client, UpdateQuery query, IndexCoordinates index) {
-
- String indexName = index.getIndexName();
- UpdateRequestBuilder updateRequestBuilder = client.prepareUpdate(indexName, IndexCoordinates.TYPE, query.getId());
-
- if (query.getScript() != null) {
- Map params = query.getParams();
-
- if (params == null) {
- params = new HashMap<>();
- }
- Script script = new Script(getScriptType(query.getScriptType()), query.getLang(), query.getScript(), params);
- updateRequestBuilder.setScript(script);
- }
-
- if (query.getDocument() != null) {
- updateRequestBuilder.setDoc(query.getDocument());
- }
-
- if (query.getUpsert() != null) {
- updateRequestBuilder.setUpsert(query.getUpsert());
- }
-
- if (query.getRouting() != null) {
- updateRequestBuilder.setRouting(query.getRouting());
- }
-
- if (query.getScriptedUpsert() != null) {
- updateRequestBuilder.setScriptedUpsert(query.getScriptedUpsert());
- }
-
- if (query.getDocAsUpsert() != null) {
- updateRequestBuilder.setDocAsUpsert(query.getDocAsUpsert());
- }
-
- if (query.getFetchSource() != null) {
- updateRequestBuilder.setFetchSource(query.getFetchSource());
- }
-
- if (query.getFetchSourceIncludes() != null || query.getFetchSourceExcludes() != null) {
- List includes = query.getFetchSourceIncludes() != null ? query.getFetchSourceIncludes()
- : Collections.emptyList();
- List excludes = query.getFetchSourceExcludes() != null ? query.getFetchSourceExcludes()
- : Collections.emptyList();
- updateRequestBuilder.setFetchSource(includes.toArray(new String[0]), excludes.toArray(new String[0]));
- }
-
- if (query.getIfSeqNo() != null) {
- updateRequestBuilder.setIfSeqNo(query.getIfSeqNo());
- }
-
- if (query.getIfPrimaryTerm() != null) {
- updateRequestBuilder.setIfPrimaryTerm(query.getIfPrimaryTerm());
- }
-
- if (query.getRefreshPolicy() != null) {
- updateRequestBuilder.setRefreshPolicy(RequestFactory.toElasticsearchRefreshPolicy(query.getRefreshPolicy()));
- }
-
- if (query.getRetryOnConflict() != null) {
- updateRequestBuilder.setRetryOnConflict(query.getRetryOnConflict());
- }
-
- if (query.getTimeout() != null) {
- updateRequestBuilder.setTimeout(query.getTimeout());
- }
-
- if (query.getWaitForActiveShards() != null) {
- updateRequestBuilder.setWaitForActiveShards(ActiveShardCount.parseString(query.getWaitForActiveShards()));
- }
-
- return updateRequestBuilder;
- }
-
public UpdateByQueryRequest updateByQueryRequest(UpdateQuery query, IndexCoordinates index) {
String indexName = index.getIndexName();
@@ -1547,79 +1040,6 @@ public UpdateByQueryRequest updateByQueryRequest(UpdateQuery query, IndexCoordin
return updateByQueryRequest;
}
- public UpdateByQueryRequestBuilder updateByQueryRequestBuilder(Client client, UpdateQuery query,
- IndexCoordinates index) {
-
- String indexName = index.getIndexName();
-
- final UpdateByQueryRequestBuilder updateByQueryRequestBuilder = new UpdateByQueryRequestBuilder(client,
- UpdateByQueryAction.INSTANCE);
-
- updateByQueryRequestBuilder.source(indexName);
- updateByQueryRequestBuilder.script(getScript(query));
-
- if (query.getAbortOnVersionConflict() != null) {
- updateByQueryRequestBuilder.abortOnVersionConflict(query.getAbortOnVersionConflict());
- }
-
- if (query.getBatchSize() != null) {
- updateByQueryRequestBuilder.source().setSize(query.getBatchSize());
- }
-
- if (query.getQuery() != null) {
- final Query queryQuery = query.getQuery();
- updateByQueryRequestBuilder.filter(getQuery(queryQuery));
-
- if (queryQuery.getIndicesOptions() != null) {
- updateByQueryRequestBuilder.source()
- .setIndicesOptions(toElasticsearchIndicesOptions(queryQuery.getIndicesOptions()));
- }
-
- if (queryQuery.getScrollTime() != null) {
- updateByQueryRequestBuilder.source()
- .setScroll(TimeValue.timeValueMillis(queryQuery.getScrollTime().toMillis()));
- }
- }
-
- if (query.getMaxDocs() != null) {
- updateByQueryRequestBuilder.maxDocs(query.getMaxDocs());
- }
-
- if (query.getMaxRetries() != null) {
- updateByQueryRequestBuilder.setMaxRetries(query.getMaxRetries());
- }
-
- if (query.getPipeline() != null) {
- updateByQueryRequestBuilder.setPipeline(query.getPipeline());
- }
-
- if (query.getRefreshPolicy() != null) {
- updateByQueryRequestBuilder.refresh(query.getRefreshPolicy() == RefreshPolicy.IMMEDIATE);
- }
-
- if (query.getRequestsPerSecond() != null) {
- updateByQueryRequestBuilder.setRequestsPerSecond(query.getRequestsPerSecond());
- }
-
- if (query.getRouting() != null) {
- updateByQueryRequestBuilder.source().setRouting(query.getRouting());
- }
-
- if (query.getShouldStoreResult() != null) {
- updateByQueryRequestBuilder.setShouldStoreResult(query.getShouldStoreResult());
- }
-
- if (query.getSlices() != null) {
- updateByQueryRequestBuilder.setSlices(query.getSlices());
- }
-
- if (query.getTimeout() != null) {
- updateByQueryRequestBuilder.source()
- .setTimeout(TimeValue.parseTimeValue(query.getTimeout(), getClass().getSimpleName() + ".timeout"));
- }
-
- return updateByQueryRequestBuilder;
- }
// endregion
// region helper functions
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ResponseConverter.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ResponseConverter.java
index 3b442de7b..a754319b3 100644
--- a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ResponseConverter.java
+++ b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/ResponseConverter.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.data.elasticsearch.clients.elasticsearch7;
+package org.springframework.data.elasticsearch.backend.elasticsearch7;
import java.util.ArrayList;
import java.util.Collections;
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/RestIndexTemplate.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/RestIndexTemplate.java
index 5743a6cb1..ae1dadd15 100644
--- a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/RestIndexTemplate.java
+++ b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/RestIndexTemplate.java
@@ -40,7 +40,6 @@
import org.elasticsearch.cluster.metadata.MappingMetadata;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.data.elasticsearch.clients.elasticsearch7.ResponseConverter;
import org.springframework.data.elasticsearch.core.AbstractIndexTemplate;
import org.springframework.data.elasticsearch.core.IndexInformation;
import org.springframework.data.elasticsearch.core.IndexOperations;
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/TransportIndexTemplate.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/TransportIndexTemplate.java
deleted file mode 100644
index 9c61daa60..000000000
--- a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/TransportIndexTemplate.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/*
- * Copyright 2019-2021 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.springframework.data.elasticsearch.backend.elasticsearch7;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequestBuilder;
-import org.elasticsearch.action.admin.indices.alias.get.GetAliasesRequest;
-import org.elasticsearch.action.admin.indices.create.CreateIndexRequestBuilder;
-import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
-import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsRequest;
-import org.elasticsearch.action.admin.indices.get.GetIndexRequest;
-import org.elasticsearch.action.admin.indices.get.GetIndexResponse;
-import org.elasticsearch.action.admin.indices.mapping.get.GetMappingsRequest;
-import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequestBuilder;
-import org.elasticsearch.action.admin.indices.refresh.RefreshRequest;
-import org.elasticsearch.action.admin.indices.settings.get.GetSettingsRequest;
-import org.elasticsearch.action.admin.indices.settings.get.GetSettingsResponse;
-import org.elasticsearch.action.admin.indices.template.delete.DeleteIndexTemplateRequest;
-import org.elasticsearch.action.admin.indices.template.get.GetIndexTemplatesRequest;
-import org.elasticsearch.action.admin.indices.template.get.GetIndexTemplatesResponse;
-import org.elasticsearch.action.admin.indices.template.put.PutIndexTemplateRequest;
-import org.elasticsearch.client.Client;
-import org.elasticsearch.cluster.metadata.AliasMetadata;
-import org.elasticsearch.cluster.metadata.IndexTemplateMetadata;
-import org.elasticsearch.cluster.metadata.MappingMetadata;
-import org.elasticsearch.common.collect.ImmutableOpenMap;
-import org.elasticsearch.common.compress.CompressedXContent;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.data.elasticsearch.clients.elasticsearch7.ResponseConverter;
-import org.springframework.data.elasticsearch.core.AbstractIndexTemplate;
-import org.springframework.data.elasticsearch.core.IndexInformation;
-import org.springframework.data.elasticsearch.core.IndexOperations;
-import org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter;
-import org.springframework.data.elasticsearch.core.document.Document;
-import org.springframework.data.elasticsearch.core.index.AliasActions;
-import org.springframework.data.elasticsearch.core.index.AliasData;
-import org.springframework.data.elasticsearch.core.index.DeleteTemplateRequest;
-import org.springframework.data.elasticsearch.core.index.ExistsTemplateRequest;
-import org.springframework.data.elasticsearch.core.index.GetTemplateRequest;
-import org.springframework.data.elasticsearch.core.index.PutTemplateRequest;
-import org.springframework.data.elasticsearch.core.index.Settings;
-import org.springframework.data.elasticsearch.core.index.TemplateData;
-import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
-import org.springframework.lang.Nullable;
-import org.springframework.util.Assert;
-
-/**
- * {@link IndexOperations} implementation using the TransportClient.
- *
- * @author Peter-Josef Meisch
- * @author Sascha Woo
- * @author George Popides
- * @since 4.0
- */
-class TransportIndexTemplate extends AbstractIndexTemplate implements IndexOperations {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(TransportIndexTemplate.class);
-
- private final Client client;
-
- public TransportIndexTemplate(Client client, ElasticsearchConverter elasticsearchConverter, Class> boundClass) {
- super(elasticsearchConverter, boundClass);
- this.client = client;
- }
-
- public TransportIndexTemplate(Client client, ElasticsearchConverter elasticsearchConverter,
- IndexCoordinates boundIndex) {
- super(elasticsearchConverter, boundIndex);
- this.client = client;
- }
-
- @Override
- protected boolean doCreate(IndexCoordinates index, Map settings, @Nullable Document mapping) {
- CreateIndexRequestBuilder createIndexRequestBuilder = requestFactory.createIndexRequestBuilder(client, index,
- settings, mapping);
- return createIndexRequestBuilder.execute().actionGet().isAcknowledged();
- }
-
- @Override
- protected boolean doDelete(IndexCoordinates index) {
-
- Assert.notNull(index, "No index defined for delete operation");
-
- if (doExists(index)) {
- DeleteIndexRequest deleteIndexRequest = requestFactory.deleteIndexRequest(index);
- return client.admin().indices().delete(deleteIndexRequest).actionGet().isAcknowledged();
- }
- return false;
- }
-
- @Override
- protected boolean doExists(IndexCoordinates index) {
-
- IndicesExistsRequest indicesExistsRequest = requestFactory.indicesExistsRequest(index);
- return client.admin().indices().exists(indicesExistsRequest).actionGet().isExists();
- }
-
- @Override
- protected boolean doPutMapping(IndexCoordinates index, Document mapping) {
-
- Assert.notNull(index, "No index defined for putMapping()");
-
- PutMappingRequestBuilder requestBuilder = requestFactory.putMappingRequestBuilder(client, index, mapping);
- return requestBuilder.execute().actionGet().isAcknowledged();
- }
-
- @Override
- protected Map doGetMapping(IndexCoordinates index) {
-
- Assert.notNull(index, "No index defined for getMapping()");
-
- GetMappingsRequest mappingsRequest = requestFactory.getMappingsRequest(client, index);
-
- ImmutableOpenMap> mappings = client.admin().indices().getMappings( //
- mappingsRequest).actionGet() //
- .getMappings();
-
- if (mappings == null || mappings.size() == 0) {
- return Collections.emptyMap();
- }
-
- if (mappings.size() > 1) {
- LOGGER.warn("more than one mapping returned for " + index.getIndexName());
- }
- // we have at least one, take the first from the iterator
- return mappings.iterator().next().value.get(IndexCoordinates.TYPE).getSourceAsMap();
- }
-
- @Override
- protected Map> doGetAliases(@Nullable String[] aliasNames, @Nullable String[] indexNames) {
-
- GetAliasesRequest getAliasesRequest = requestFactory.getAliasesRequest(aliasNames, indexNames);
-
- ImmutableOpenMap> aliases = client.admin().indices().getAliases(getAliasesRequest)
- .actionGet().getAliases();
-
- Map> aliasesResponse = new LinkedHashMap<>();
- aliases.keysIt().forEachRemaining(index -> aliasesResponse.put(index, new HashSet<>(aliases.get(index))));
- return ResponseConverter.aliasDatas(aliasesResponse);
- }
-
- @Override
- public boolean alias(AliasActions aliasActions) {
-
- IndicesAliasesRequestBuilder indicesAliasesRequestBuilder = requestFactory.indicesAliasesRequestBuilder(client,
- aliasActions);
- return indicesAliasesRequestBuilder.execute().actionGet().isAcknowledged();
- }
-
- @Override
- protected Settings doGetSettings(IndexCoordinates index, boolean includeDefaults) {
-
- Assert.notNull(index, "index must not be null");
-
- GetSettingsRequest getSettingsRequest = requestFactory.getSettingsRequest(index, includeDefaults);
- GetSettingsResponse response = client.admin() //
- .indices() //
- .getSettings(getSettingsRequest) //
- .actionGet();
-
- return ResponseConverter.fromSettingsResponse(response, index.getIndexName());
- }
-
- @Override
- protected void doRefresh(IndexCoordinates index) {
-
- Assert.notNull(index, "index must not be null");
-
- RefreshRequest request = requestFactory.refreshRequest(index);
- client.admin().indices().refresh(request).actionGet();
- }
-
- @Override
- public boolean putTemplate(PutTemplateRequest putTemplateRequest) {
-
- Assert.notNull(putTemplateRequest, "putTemplateRequest must not be null");
-
- PutIndexTemplateRequest putIndexTemplateRequest = requestFactory.putIndexTemplateRequest(client,
- putTemplateRequest);
- return client.admin().indices().putTemplate(putIndexTemplateRequest).actionGet().isAcknowledged();
- }
-
- @Override
- public TemplateData getTemplate(GetTemplateRequest getTemplateRequest) {
-
- Assert.notNull(getTemplateRequest, "getTemplateRequest must not be null");
-
- GetIndexTemplatesRequest getIndexTemplatesRequest = requestFactory.getIndexTemplatesRequest(client,
- getTemplateRequest);
- GetIndexTemplatesResponse getIndexTemplatesResponse = client.admin().indices()
- .getTemplates(getIndexTemplatesRequest).actionGet();
- for (IndexTemplateMetadata indexTemplateMetadata : getIndexTemplatesResponse.getIndexTemplates()) {
-
- if (indexTemplateMetadata.getName().equals(getTemplateRequest.getTemplateName())) {
-
- Settings settings = new Settings();
- org.elasticsearch.common.settings.Settings templateSettings = indexTemplateMetadata.settings();
- templateSettings.keySet().forEach(key -> settings.put(key, templateSettings.get(key)));
-
- Map aliases = new LinkedHashMap<>();
- ImmutableOpenMap aliasesResponse = indexTemplateMetadata.aliases();
- Iterator keysItAliases = aliasesResponse.keysIt();
- while (keysItAliases.hasNext()) {
- String key = keysItAliases.next();
- aliases.put(key, ResponseConverter.toAliasData(aliasesResponse.get(key)));
- }
-
- Map mappingsDoc = new LinkedHashMap<>();
- ImmutableOpenMap mappingsResponse = indexTemplateMetadata.mappings();
- Iterator keysItMappings = mappingsResponse.keysIt();
- while (keysItMappings.hasNext()) {
- String key = keysItMappings.next();
- mappingsDoc.put(key, mappingsResponse.get(key).string());
- }
- String mappingsJson = mappingsDoc.get("_doc");
- Document mapping = null;
- if (mappingsJson != null) {
- try {
- mapping = Document.from((Map) Document.parse(mappingsJson).get("_doc"));
- } catch (Exception e) {
- LOGGER.warn("Got invalid mappings JSON: {}", mappingsJson);
- }
- }
-
- TemplateData templateData = TemplateData.builder()
- .withIndexPatterns(indexTemplateMetadata.patterns().toArray(new String[0])) //
- .withSettings(settings) //
- .withMapping(mapping) //
- .withAliases(aliases) //
- .withOrder(indexTemplateMetadata.order()) //
- .withVersion(indexTemplateMetadata.version()).build();
-
- return templateData;
- }
- }
-
- return null;
- }
-
- @Override
- public boolean existsTemplate(ExistsTemplateRequest existsTemplateRequest) {
-
- Assert.notNull(existsTemplateRequest, "existsTemplateRequest must not be null");
-
- // client.admin().indices() has no method for checking the existence
- return getTemplate(new GetTemplateRequest(existsTemplateRequest.getTemplateName())) != null;
- }
-
- @Override
- public boolean deleteTemplate(DeleteTemplateRequest deleteTemplateRequest) {
-
- Assert.notNull(deleteTemplateRequest, "deleteTemplateRequest must not be null");
-
- DeleteIndexTemplateRequest deleteIndexTemplateRequest = requestFactory.deleteIndexTemplateRequest(client,
- deleteTemplateRequest);
- return client.admin().indices().deleteTemplate(deleteIndexTemplateRequest).actionGet().isAcknowledged();
- }
-
- @Override
- public List getInformation(IndexCoordinates index) {
-
- Assert.notNull(index, "index must not be null");
-
- GetIndexRequest getIndexRequest = new GetIndexRequest();
- getIndexRequest.indices(index.getIndexNames());
- GetIndexResponse getIndexResponse = client.admin().indices().getIndex(getIndexRequest).actionGet();
- return ResponseConverter.getIndexInformations(getIndexResponse);
- }
-}
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/client/ClusterNodes.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/client/ClusterNodes.java
deleted file mode 100644
index 9461bd7a9..000000000
--- a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/client/ClusterNodes.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright 2018-2021 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.springframework.data.elasticsearch.backend.elasticsearch7.client;
-
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import org.elasticsearch.common.transport.TransportAddress;
-import org.springframework.data.util.Streamable;
-import org.springframework.util.Assert;
-import org.springframework.util.StringUtils;
-
-/**
- * Value object to represent a list of cluster nodes.
- *
- * @author Oliver Gierke
- * @since 3.1
- * @deprecated only used in {@link TransportClientFactoryBean}.
- */
-@SuppressWarnings("DeprecatedIsStillUsed")
-@Deprecated
-class ClusterNodes implements Streamable {
-
- public static ClusterNodes DEFAULT = ClusterNodes.of("127.0.0.1:9300");
-
- private static final String COLON = ":";
- private static final String COMMA = ",";
-
- private final List clusterNodes;
-
- /**
- * Creates a new {@link ClusterNodes} by parsing the given source.
- *
- * @param source must not be {@literal null} or empty.
- */
- private ClusterNodes(String source) {
-
- Assert.hasText(source, "Cluster nodes source must not be null or empty!");
-
- String[] nodes = StringUtils.delimitedListToStringArray(source, COMMA);
-
- this.clusterNodes = Arrays.stream(nodes).map(node -> {
-
- String[] segments = StringUtils.delimitedListToStringArray(node, COLON);
-
- Assert.isTrue(segments.length == 2,
- () -> String.format("Invalid cluster node %s in %s! Must be in the format host:port!", node, source));
-
- String host = segments[0].trim();
- String port = segments[1].trim();
-
- Assert.hasText(host, () -> String.format("No host name given cluster node %s!", node));
- Assert.hasText(port, () -> String.format("No port given in cluster node %s!", node));
-
- return new TransportAddress(toInetAddress(host), Integer.parseInt(port));
-
- }).collect(Collectors.toList());
- }
-
- /**
- * Creates a new {@link ClusterNodes} by parsing the given source. The expected format is a comma separated list of
- * host-port-combinations separated by a colon: {@code host:port,host:port,…}.
- *
- * @param source must not be {@literal null} or empty.
- */
- public static ClusterNodes of(String source) {
- return new ClusterNodes(source);
- }
-
- /*
- * (non-Javadoc)
- * @see java.lang.Iterable#iterator()
- */
- @Override
- public Iterator iterator() {
- return clusterNodes.iterator();
- }
-
- private static InetAddress toInetAddress(String host) {
-
- try {
- return InetAddress.getByName(host);
- } catch (UnknownHostException o_O) {
- throw new IllegalArgumentException(o_O);
- }
- }
-}
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/client/TransportClientFactoryBean.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/client/TransportClientFactoryBean.java
deleted file mode 100644
index 55c568bfe..000000000
--- a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/client/TransportClientFactoryBean.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright 2013-2021 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.springframework.data.elasticsearch.backend.elasticsearch7.client;
-
-import java.util.Properties;
-
-import org.elasticsearch.client.transport.TransportClient;
-import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.transport.client.PreBuiltTransportClient;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.DisposableBean;
-import org.springframework.beans.factory.FactoryBean;
-import org.springframework.beans.factory.FactoryBeanNotInitializedException;
-import org.springframework.beans.factory.InitializingBean;
-import org.springframework.lang.Nullable;
-
-/**
- * TransportClientFactoryBean
- *
- * @author Rizwan Idrees
- * @author Mohsin Husen
- * @author Jakub Vavrik
- * @author Piotr Betkier
- * @author Ilkang Na
- * @author Oliver Gierke
- * @author Peter-Josef Meisch
- * @deprecated as of 4.0
- */
-@Deprecated
-public class TransportClientFactoryBean implements FactoryBean, InitializingBean, DisposableBean {
-
- private static final Logger logger = LoggerFactory.getLogger(TransportClientFactoryBean.class);
- private ClusterNodes clusterNodes = ClusterNodes.of("127.0.0.1:9300");
- private String clusterName = "elasticsearch";
- private Boolean clientTransportSniff = true;
- private Boolean clientIgnoreClusterName = Boolean.FALSE;
- private String clientPingTimeout = "5s";
- private String clientNodesSamplerInterval = "5s";
- private @Nullable TransportClient client;
- private @Nullable Properties properties;
-
- @Override
- public void destroy() {
- try {
- logger.info("Closing elasticSearch client");
- if (client != null) {
- client.close();
- }
- } catch (final Exception e) {
- logger.error("Error closing ElasticSearch client: ", e);
- }
- }
-
- @Override
- public TransportClient getObject() {
-
- if (clientTransportSniff == null) {
- throw new FactoryBeanNotInitializedException();
- }
- return client;
- }
-
- @Override
- public Class getObjectType() {
- return TransportClient.class;
- }
-
- @Override
- public boolean isSingleton() {
- return true;
- }
-
- @Override
- public void afterPropertiesSet() throws Exception {
- buildClient();
- }
-
- protected void buildClient() {
-
- client = new PreBuiltTransportClient(settings());
-
- clusterNodes.stream() //
- .peek(it -> logger.info("Adding transport node : " + it.toString())) //
- .forEach(client::addTransportAddress);
-
- client.connectedNodes();
- }
-
- private Settings settings() {
- if (properties != null) {
- Settings.Builder builder = Settings.builder();
-
- properties.forEach((key, value) -> {
- builder.put(key.toString(), value.toString());
- });
-
- return builder.build();
- }
- return Settings.builder().put("cluster.name", clusterName).put("client.transport.sniff", clientTransportSniff)
- .put("client.transport.ignore_cluster_name", clientIgnoreClusterName)
- .put("client.transport.ping_timeout", clientPingTimeout)
- .put("client.transport.nodes_sampler_interval", clientNodesSamplerInterval).build();
- }
-
- public void setClusterNodes(String clusterNodes) {
- this.clusterNodes = ClusterNodes.of(clusterNodes);
- }
-
- public void setClusterName(String clusterName) {
- this.clusterName = clusterName;
- }
-
- public void setClientTransportSniff(Boolean clientTransportSniff) {
- this.clientTransportSniff = clientTransportSniff;
- }
-
- public String getClientNodesSamplerInterval() {
- return clientNodesSamplerInterval;
- }
-
- public void setClientNodesSamplerInterval(String clientNodesSamplerInterval) {
- this.clientNodesSamplerInterval = clientNodesSamplerInterval;
- }
-
- public String getClientPingTimeout() {
- return clientPingTimeout;
- }
-
- public void setClientPingTimeout(String clientPingTimeout) {
- this.clientPingTimeout = clientPingTimeout;
- }
-
- public Boolean getClientIgnoreClusterName() {
- return clientIgnoreClusterName;
- }
-
- public void setClientIgnoreClusterName(Boolean clientIgnoreClusterName) {
- this.clientIgnoreClusterName = clientIgnoreClusterName;
- }
-
- public void setProperties(Properties properties) {
- this.properties = properties;
- }
-}
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/client/reactive/DefaultReactiveElasticsearchClient.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/client/reactive/DefaultReactiveElasticsearchClient.java
index 2a7bfcfa2..b2ca0a3e1 100644
--- a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/client/reactive/DefaultReactiveElasticsearchClient.java
+++ b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/client/reactive/DefaultReactiveElasticsearchClient.java
@@ -103,6 +103,7 @@
import org.reactivestreams.Publisher;
import org.springframework.data.elasticsearch.RestStatusException;
import org.springframework.data.elasticsearch.UncategorizedElasticsearchException;
+import org.springframework.data.elasticsearch.backend.elasticsearch7.ResponseConverter;
import org.springframework.data.elasticsearch.backend.elasticsearch7.client.reactive.ReactiveElasticsearchClient.Cluster;
import org.springframework.data.elasticsearch.backend.elasticsearch7.client.reactive.ReactiveElasticsearchClient.Indices;
import org.springframework.data.elasticsearch.backend.elasticsearch7.client.util.NamedXContents;
@@ -116,7 +117,6 @@
import org.springframework.data.elasticsearch.client.reactive.RequestBodyEncodingException;
import org.springframework.data.elasticsearch.client.reactive.WebClientProvider;
import org.springframework.data.elasticsearch.client.util.ScrollState;
-import org.springframework.data.elasticsearch.clients.elasticsearch7.ResponseConverter;
import org.springframework.data.elasticsearch.core.query.ByQueryResponse;
import org.springframework.data.util.Lazy;
import org.springframework.http.HttpHeaders;
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/client/reactive/package-info.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/client/reactive/package-info.java
new file mode 100644
index 000000000..79232e89a
--- /dev/null
+++ b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/client/reactive/package-info.java
@@ -0,0 +1,3 @@
+@org.springframework.lang.NonNullApi
+@org.springframework.lang.NonNullFields
+package org.springframework.data.elasticsearch.backend.elasticsearch7.client.reactive;
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/client/util/package-info.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/client/util/package-info.java
new file mode 100644
index 000000000..74805f4f5
--- /dev/null
+++ b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/client/util/package-info.java
@@ -0,0 +1,3 @@
+@org.springframework.lang.NonNullApi
+@org.springframework.lang.NonNullFields
+package org.springframework.data.elasticsearch.backend.elasticsearch7.client.util;
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/cluster/DefaultClusterOperations.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/cluster/DefaultClusterOperations.java
index a50954978..ff46b18ce 100644
--- a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/cluster/DefaultClusterOperations.java
+++ b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/cluster/DefaultClusterOperations.java
@@ -19,7 +19,7 @@
import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;
import org.elasticsearch.client.RequestOptions;
import org.springframework.data.elasticsearch.backend.elasticsearch7.ElasticsearchRestTemplate;
-import org.springframework.data.elasticsearch.clients.elasticsearch7.ResponseConverter;
+import org.springframework.data.elasticsearch.backend.elasticsearch7.ResponseConverter;
import org.springframework.data.elasticsearch.core.cluster.ClusterHealth;
import org.springframework.data.elasticsearch.core.cluster.ClusterOperations;
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/cluster/DefaultReactiveClusterOperations.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/cluster/DefaultReactiveClusterOperations.java
index 241e34127..b9a62ea00 100644
--- a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/cluster/DefaultReactiveClusterOperations.java
+++ b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/cluster/DefaultReactiveClusterOperations.java
@@ -18,7 +18,7 @@
import reactor.core.publisher.Mono;
import org.elasticsearch.action.admin.cluster.health.ClusterHealthRequest;
-import org.springframework.data.elasticsearch.clients.elasticsearch7.ResponseConverter;
+import org.springframework.data.elasticsearch.backend.elasticsearch7.ResponseConverter;
import org.springframework.data.elasticsearch.core.ReactiveElasticsearchOperations;
import org.springframework.data.elasticsearch.core.cluster.ClusterHealth;
import org.springframework.data.elasticsearch.core.cluster.ReactiveClusterOperations;
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/cluster/DefaultTransportClusterOperations.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/cluster/DefaultTransportClusterOperations.java
deleted file mode 100644
index 180b71ea4..000000000
--- a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/cluster/DefaultTransportClusterOperations.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright 2021 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.springframework.data.elasticsearch.backend.elasticsearch7.cluster;
-
-import org.elasticsearch.action.admin.cluster.health.ClusterHealthRequest;
-import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.ElasticsearchTemplate;
-import org.springframework.data.elasticsearch.clients.elasticsearch7.ResponseConverter;
-import org.springframework.data.elasticsearch.core.cluster.ClusterHealth;
-import org.springframework.data.elasticsearch.core.cluster.ClusterOperations;
-
-/**
- * Default implementation of {@link ClusterOperations} using the
- * {@link org.elasticsearch.client.transport.TransportClient}.
- *
- * @author Peter-Josef Meisch
- * @since 4.2
- */
-public class DefaultTransportClusterOperations implements ClusterOperations {
-
- private final ElasticsearchTemplate template;
-
- public DefaultTransportClusterOperations(ElasticsearchTemplate template) {
- this.template = template;
- }
-
- @Override
- public ClusterHealth health() {
-
- ClusterHealthResponse clusterHealthResponse = template.getClient().admin().cluster()
- .health(new ClusterHealthRequest()).actionGet();
- return ResponseConverter.clusterHealth(clusterHealthResponse);
- }
-}
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/cluster/ElasticsearchClusterOperations.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/cluster/ElasticsearchClusterOperations.java
index 44f4d9c36..22f79d3f3 100644
--- a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/cluster/ElasticsearchClusterOperations.java
+++ b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/cluster/ElasticsearchClusterOperations.java
@@ -16,7 +16,6 @@
package org.springframework.data.elasticsearch.backend.elasticsearch7.cluster;
import org.springframework.data.elasticsearch.backend.elasticsearch7.ElasticsearchRestTemplate;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.ElasticsearchTemplate;
import org.springframework.data.elasticsearch.core.cluster.ClusterOperations;
import org.springframework.util.Assert;
@@ -38,17 +37,4 @@ public static ClusterOperations forTemplate(ElasticsearchRestTemplate template)
return new DefaultClusterOperations(template);
}
- /**
- * Creates a ClusterOperations for a {@link ElasticsearchTemplate}.
- *
- * @param template the template, must not be {@literal null}
- * @return ClusterOperations
- */
- public static ClusterOperations forTemplate(ElasticsearchTemplate template) {
-
- Assert.notNull(template, "template must not be null");
-
- return new DefaultTransportClusterOperations(template);
- }
-
}
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/config/package-info.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/config/package-info.java
new file mode 100644
index 000000000..88f2d84d1
--- /dev/null
+++ b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/config/package-info.java
@@ -0,0 +1,3 @@
+@org.springframework.lang.NonNullApi
+@org.springframework.lang.NonNullFields
+package org.springframework.data.elasticsearch.backend.elasticsearch7.config;
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/document/DocumentAdapters.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/document/DocumentAdapters.java
index eae848e62..702d6499c 100644
--- a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/document/DocumentAdapters.java
+++ b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/document/DocumentAdapters.java
@@ -39,7 +39,7 @@
import org.elasticsearch.index.get.GetResult;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.SearchHits;
-import org.springframework.data.elasticsearch.clients.elasticsearch7.ResponseConverter;
+import org.springframework.data.elasticsearch.backend.elasticsearch7.ResponseConverter;
import org.springframework.data.elasticsearch.core.MultiGetItem;
import org.springframework.data.elasticsearch.core.document.Document;
import org.springframework.data.elasticsearch.core.document.Explanation;
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/document/SearchDocumentResponse.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/document/SearchDocumentResponse.java
index 2fda8e46c..aa27da295 100644
--- a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/document/SearchDocumentResponse.java
+++ b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/document/SearchDocumentResponse.java
@@ -25,7 +25,7 @@
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.SearchHits;
import org.elasticsearch.search.aggregations.Aggregations;
-import org.springframework.data.elasticsearch.clients.elasticsearch7.ElasticsearchAggregations;
+import org.springframework.data.elasticsearch.backend.elasticsearch7.ElasticsearchAggregations;
import org.springframework.data.elasticsearch.core.AggregationsContainer;
import org.springframework.data.elasticsearch.core.document.SearchDocument;
import org.springframework.data.elasticsearch.core.suggest.response.CompletionSuggestion;
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/document/package-info.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/document/package-info.java
new file mode 100644
index 000000000..b80aa6d1f
--- /dev/null
+++ b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/document/package-info.java
@@ -0,0 +1,3 @@
+@org.springframework.lang.NonNullApi
+@org.springframework.lang.NonNullFields
+package org.springframework.data.elasticsearch.backend.elasticsearch7.document;
diff --git a/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/query/package-info.java b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/query/package-info.java
new file mode 100644
index 000000000..ea6401d0a
--- /dev/null
+++ b/src/main/java/org/springframework/data/elasticsearch/backend/elasticsearch7/query/package-info.java
@@ -0,0 +1,3 @@
+@org.springframework.lang.NonNullApi
+@org.springframework.lang.NonNullFields
+package org.springframework.data.elasticsearch.backend.elasticsearch7.query;
diff --git a/src/main/java/org/springframework/data/elasticsearch/config/ElasticsearchNamespaceHandler.java b/src/main/java/org/springframework/data/elasticsearch/config/ElasticsearchNamespaceHandler.java
index 92b72ddde..aebce90c1 100644
--- a/src/main/java/org/springframework/data/elasticsearch/config/ElasticsearchNamespaceHandler.java
+++ b/src/main/java/org/springframework/data/elasticsearch/config/ElasticsearchNamespaceHandler.java
@@ -35,7 +35,6 @@ public void init() {
RepositoryBeanDefinitionParser parser = new RepositoryBeanDefinitionParser(extension);
registerBeanDefinitionParser("repositories", parser);
- registerBeanDefinitionParser("transport-client", new TransportClientBeanDefinitionParser());
registerBeanDefinitionParser("rest-client", new RestClientBeanDefinitionParser());
}
}
diff --git a/src/main/java/org/springframework/data/elasticsearch/config/TransportClientBeanDefinitionParser.java b/src/main/java/org/springframework/data/elasticsearch/config/TransportClientBeanDefinitionParser.java
deleted file mode 100644
index 37d412948..000000000
--- a/src/main/java/org/springframework/data/elasticsearch/config/TransportClientBeanDefinitionParser.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright 2013-2021 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.springframework.data.elasticsearch.config;
-
-import org.springframework.beans.factory.support.AbstractBeanDefinition;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.xml.AbstractBeanDefinitionParser;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.client.TransportClientFactoryBean;
-import org.w3c.dom.Element;
-
-/**
- * TransportClientBeanDefinitionParser
- *
- * @author Rizwan Idrees
- * @author Mohsin Husen
- * @deprecated as of 4.0
- */
-@Deprecated
-public class TransportClientBeanDefinitionParser extends AbstractBeanDefinitionParser {
-
- @Override
- protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
- BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(TransportClientFactoryBean.class);
- setConfigurations(element, builder);
- return getSourcedBeanDefinition(builder, element, parserContext);
- }
-
- private void setConfigurations(Element element, BeanDefinitionBuilder builder) {
- builder.addPropertyValue("clusterNodes", element.getAttribute("cluster-nodes"));
- builder.addPropertyValue("clusterName", element.getAttribute("cluster-name"));
- builder.addPropertyValue("clientTransportSniff", Boolean.valueOf(element.getAttribute("client-transport-sniff")));
- builder.addPropertyValue("clientIgnoreClusterName",
- Boolean.valueOf(element.getAttribute("client-transport-ignore-cluster-name")));
- builder.addPropertyValue("clientPingTimeout", element.getAttribute("client-transport-ping-timeout"));
- builder.addPropertyValue("clientNodesSamplerInterval",
- element.getAttribute("client-transport-nodes-sampler-interval"));
- }
-
- private AbstractBeanDefinition getSourcedBeanDefinition(BeanDefinitionBuilder builder, Element source,
- ParserContext context) {
- AbstractBeanDefinition definition = builder.getBeanDefinition();
- definition.setSource(context.extractSource(source));
- return definition;
- }
-}
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 70c5285e3..432c08810 100644
--- a/src/main/java/org/springframework/data/elasticsearch/core/AbstractElasticsearchTemplate.java
+++ b/src/main/java/org/springframework/data/elasticsearch/core/AbstractElasticsearchTemplate.java
@@ -20,14 +20,15 @@
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
+import java.util.Objects;
import java.util.stream.Collectors;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.data.convert.EntityReader;
+import org.springframework.data.elasticsearch.backend.elasticsearch7.RequestFactory;
import org.springframework.data.elasticsearch.backend.elasticsearch7.document.SearchDocumentResponse;
-import org.springframework.data.elasticsearch.clients.elasticsearch7.RequestFactory;
import org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter;
import org.springframework.data.elasticsearch.core.convert.MappingElasticsearchConverter;
import org.springframework.data.elasticsearch.core.document.Document;
@@ -59,9 +60,9 @@
/**
* This class contains methods that are common to different implementations of the {@link ElasticsearchOperations}
- * interface that use different clients, like TransportClient, RestHighLevelClient and the next Java client from
- * Elasticsearch or some future implementation that might use an Opensearch client. This class must not contain imports
- * or use classes that are specific to one of these implementations.
+ * interface that use different clients, like RestHighLevelClient and the next Java client from Elasticsearch or some
+ * future implementation that might use an Opensearch client. This class must not contain imports or use classes that
+ * are specific to one of these implementations.
*
* Note: Although this class is public, it is not considered to be part of the official Spring Data
* Elasticsearch API and so might change at any time.
@@ -75,25 +76,27 @@
*/
public abstract class AbstractElasticsearchTemplate implements ElasticsearchOperations, ApplicationContextAware {
- @Nullable protected ElasticsearchConverter elasticsearchConverter;
- @Nullable protected RequestFactory requestFactory;
- @Nullable protected EntityOperations entityOperations;
+ protected ElasticsearchConverter elasticsearchConverter;
+ protected RequestFactory requestFactory;
+ protected EntityOperations entityOperations;
@Nullable protected EntityCallbacks entityCallbacks;
@Nullable protected RefreshPolicy refreshPolicy;
- @Nullable protected RoutingResolver routingResolver;
+ protected RoutingResolver routingResolver;
- // region Initialization
- protected void initialize(ElasticsearchConverter elasticsearchConverter) {
+ public AbstractElasticsearchTemplate() {
+ this(null);
+ }
- Assert.notNull(elasticsearchConverter, "elasticsearchConverter must not be null.");
+ public AbstractElasticsearchTemplate(@Nullable ElasticsearchConverter elasticsearchConverter) {
- this.elasticsearchConverter = elasticsearchConverter;
+ this.elasticsearchConverter = elasticsearchConverter != null ? elasticsearchConverter
+ : createElasticsearchConverter();
MappingContext extends ElasticsearchPersistentEntity>, ElasticsearchPersistentProperty> mappingContext = this.elasticsearchConverter
.getMappingContext();
this.entityOperations = new EntityOperations(mappingContext);
- this.routingResolver = new DefaultRoutingResolver((SimpleElasticsearchMappingContext) mappingContext);
+ this.routingResolver = new DefaultRoutingResolver(mappingContext);
- requestFactory = new RequestFactory(elasticsearchConverter);
+ requestFactory = new RequestFactory(this.elasticsearchConverter);
// initialize the VersionInfo class in the initialization phase
// noinspection ResultOfMethodCallIgnored
@@ -117,9 +120,13 @@ private AbstractElasticsearchTemplate copy() {
return copy;
}
+ /**
+ * must return a copy of this instance that will for example be used to set a custom routing resolver without
+ * modifying the original object.
+ */
protected abstract AbstractElasticsearchTemplate doCopy();
- protected ElasticsearchConverter createElasticsearchConverter() {
+ private ElasticsearchConverter createElasticsearchConverter() {
MappingElasticsearchConverter mappingElasticsearchConverter = new MappingElasticsearchConverter(
new SimpleElasticsearchMappingContext());
mappingElasticsearchConverter.afterPropertiesSet();
@@ -195,9 +202,8 @@ public T save(T entity, IndexCoordinates index) {
IndexQuery query = getIndexQuery(entityAfterBeforeConvert);
doIndex(query, index);
- T entityAfterAfterSave = (T) maybeCallbackAfterSave(query.getObject(), index);
-
- return entityAfterAfterSave;
+ // noinspection unchecked
+ return (T) maybeCallbackAfterSave(Objects.requireNonNull(query.getObject()), index);
}
@Override
@@ -226,8 +232,8 @@ public Iterable save(Iterable entities, IndexCoordinates index) {
return Collections.emptyList();
}
- List indexedObjectInformations = bulkIndex(indexQueries, index);
- Iterator iterator = indexedObjectInformations.iterator();
+ List indexedObjectInformationList = bulkIndex(indexQueries, index);
+ Iterator iterator = indexedObjectInformationList.iterator();
// noinspection unchecked
return indexQueries.stream() //
@@ -236,8 +242,9 @@ public Iterable save(Iterable entities, IndexCoordinates index) {
.collect(Collectors.toList()); //
}
+ @SafeVarargs
@Override
- public Iterable save(T... entities) {
+ public final Iterable save(T... entities) {
return save(Arrays.asList(entities));
}
@@ -299,7 +306,9 @@ public String delete(Object entity) {
@Override
public String delete(Object entity, IndexCoordinates index) {
- return this.delete(getEntityId(entity), index);
+ String entityId = getEntityId(entity);
+ Assert.notNull(entityId, "entity must have an if that is notnull");
+ return this.delete(entityId, index);
}
@Override
@@ -348,11 +357,11 @@ public List bulkOperation(List> queries, BulkOptions
maybeCallbackBeforeConvertWithQueries(queries, index);
- List indexedObjectInformations = doBulkOperation(queries, bulkOptions, index);
+ List indexedObjectInformationList = doBulkOperation(queries, bulkOptions, index);
maybeCallbackAfterSaveWithQueries(queries, index);
- return indexedObjectInformations;
+ return indexedObjectInformationList;
}
public abstract List doBulkOperation(List> queries, BulkOptions bulkOptions,
@@ -450,9 +459,6 @@ public ElasticsearchConverter getElasticsearchConverter() {
* @since 4.0
*/
public RequestFactory getRequestFactory() {
-
- Assert.notNull(requestFactory, "requestfactory not initialized");
-
return requestFactory;
}
@@ -501,8 +507,7 @@ protected T updateIndexedObject(T entity, IndexedObjectInformation indexedOb
}
// noinspection unchecked
- T updatedEntity = (T) propertyAccessor.getBean();
- return updatedEntity;
+ return (T) propertyAccessor.getBean();
}
return entity;
}
@@ -559,6 +564,7 @@ private IndexQuery getIndexQuery(T entity) {
id = elasticsearchConverter.convertId(id);
}
+ // noinspection ConstantConditions
IndexQueryBuilder builder = new IndexQueryBuilder() //
.withId(id) //
.withObject(entity);
@@ -569,6 +575,7 @@ private IndexQuery getIndexQuery(T entity) {
builder.withSeqNoPrimaryTerm(seqNoPrimaryTerm);
} else {
// version cannot be used together with seq_no and primary_term
+ // noinspection ConstantConditions
builder.withVersion(getEntityVersion(entity));
}
@@ -686,7 +693,7 @@ protected T maybeCallbackAfterConvert(T entity, Document document, IndexCoor
// endregion
protected void updateIndexedObjectsWithQueries(List> queries,
- List indexedObjectInformations) {
+ List indexedObjectInformationList) {
for (int i = 0; i < queries.size(); i++) {
Object query = queries.get(i);
@@ -696,7 +703,7 @@ protected void updateIndexedObjectsWithQueries(List> queries,
Object queryObject = indexQuery.getObject();
if (queryObject != null) {
- indexQuery.setObject(updateIndexedObject(queryObject, indexedObjectInformations.get(i)));
+ indexQuery.setObject(updateIndexedObject(queryObject, indexedObjectInformationList.get(i)));
}
}
}
diff --git a/src/main/java/org/springframework/data/elasticsearch/core/AbstractIndexTemplate.java b/src/main/java/org/springframework/data/elasticsearch/core/AbstractIndexTemplate.java
index 5db3a2ab4..5835d7cda 100644
--- a/src/main/java/org/springframework/data/elasticsearch/core/AbstractIndexTemplate.java
+++ b/src/main/java/org/springframework/data/elasticsearch/core/AbstractIndexTemplate.java
@@ -25,7 +25,7 @@
import org.springframework.dao.InvalidDataAccessApiUsageException;
import org.springframework.data.elasticsearch.UncategorizedElasticsearchException;
import org.springframework.data.elasticsearch.annotations.Mapping;
-import org.springframework.data.elasticsearch.clients.elasticsearch7.RequestFactory;
+import org.springframework.data.elasticsearch.backend.elasticsearch7.RequestFactory;
import org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter;
import org.springframework.data.elasticsearch.core.document.Document;
import org.springframework.data.elasticsearch.core.index.AliasData;
diff --git a/src/main/java/org/springframework/data/elasticsearch/core/query/highlight/HighlightCommonParameters.java b/src/main/java/org/springframework/data/elasticsearch/core/query/highlight/HighlightCommonParameters.java
index 268526c09..e4aba5618 100644
--- a/src/main/java/org/springframework/data/elasticsearch/core/query/highlight/HighlightCommonParameters.java
+++ b/src/main/java/org/springframework/data/elasticsearch/core/query/highlight/HighlightCommonParameters.java
@@ -21,7 +21,7 @@
* @author Peter-Josef Meisch
* @since 4.3
*/
-abstract public class HighlightCommonParameters {
+public abstract class HighlightCommonParameters {
private final String boundaryChars;
private final int boundaryMaxScan;
private final String boundaryScanner;
diff --git a/src/test/java/org/springframework/data/elasticsearch/JUnit5SampleRestClientBasedTests.java b/src/test/java/org/springframework/data/elasticsearch/JUnit5SampleRestTemplateBasedTests.java
similarity index 97%
rename from src/test/java/org/springframework/data/elasticsearch/JUnit5SampleRestClientBasedTests.java
rename to src/test/java/org/springframework/data/elasticsearch/JUnit5SampleRestTemplateBasedTests.java
index d3bb5c786..7373127ca 100644
--- a/src/test/java/org/springframework/data/elasticsearch/JUnit5SampleRestClientBasedTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/JUnit5SampleRestTemplateBasedTests.java
@@ -35,7 +35,7 @@
@SpringIntegrationTest
@ContextConfiguration(classes = { ElasticsearchRestTemplateConfiguration.class })
@DisplayName("a sample JUnit 5 test with rest client")
-public class JUnit5SampleRestClientBasedTests {
+public class JUnit5SampleRestTemplateBasedTests {
@Autowired private ElasticsearchOperations elasticsearchOperations;
diff --git a/src/test/java/org/springframework/data/elasticsearch/JUnit5SampleTransportClientBasedTests.java b/src/test/java/org/springframework/data/elasticsearch/JUnit5SampleTransportClientBasedTests.java
deleted file mode 100644
index 745cc8abc..000000000
--- a/src/test/java/org/springframework/data/elasticsearch/JUnit5SampleTransportClientBasedTests.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright 2019-2021 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.springframework.data.elasticsearch;
-
-import static org.assertj.core.api.Assertions.*;
-
-import org.junit.jupiter.api.DisplayName;
-import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.ElasticsearchTemplate;
-import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
-import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
-import org.springframework.test.context.ContextConfiguration;
-
-/**
- * class demonstrating the setup of a JUnit 5 test in Spring Data Elasticsearch that uses the transport client. The
- * ContextConfiguration must include the {@link ElasticsearchTemplateConfiguration} class
- *
- * @author Peter-Josef Meisch
- */
-@SpringIntegrationTest
-@ContextConfiguration(classes = { ElasticsearchTemplateConfiguration.class })
-@DisplayName("a sample JUnit 5 test with transport client")
-public class JUnit5SampleTransportClientBasedTests {
-
- @Autowired private ElasticsearchOperations elasticsearchOperations;
-
- @Test
- @DisplayName("should have a ElasticsearchTemplate")
- void shouldHaveATemplate() {
- assertThat(elasticsearchOperations).isNotNull().isInstanceOf(ElasticsearchTemplate.class);
- }
-}
diff --git a/src/test/java/org/springframework/data/elasticsearch/TransportFoobarIntegrationTest.java b/src/test/java/org/springframework/data/elasticsearch/TransportFoobarIntegrationTest.java
deleted file mode 100644
index bdc39c75c..000000000
--- a/src/test/java/org/springframework/data/elasticsearch/TransportFoobarIntegrationTest.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.springframework.data.elasticsearch;
-
-import org.junit.jupiter.api.DisplayName;
-import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
-import org.springframework.data.elasticsearch.junit.jupiter.IntegrationtestEnvironment;
-import org.springframework.test.context.ContextConfiguration;
-
-/**
- * This class should only run when the cluster is an Elasticsearch cluster.
- *
- * @author Peter-Josef Meisch
- */
-@EnabledIfSystemProperty(named = IntegrationtestEnvironment.SYSTEM_PROPERTY, matches = "(?i)elasticsearch")
-@ContextConfiguration(classes = { ElasticsearchTemplateConfiguration.class })
-@DisplayName("foobar integration with transport client")
-public class TransportFoobarIntegrationTest extends FoobarIntegrationTest {}
diff --git a/src/test/java/org/springframework/data/elasticsearch/backend/elasticsearch7/CriteriaQueryMappingUnitTests.java b/src/test/java/org/springframework/data/elasticsearch/backend/elasticsearch7/CriteriaQueryMappingUnitTests.java
index f9a8e3fde..e081979f4 100644
--- a/src/test/java/org/springframework/data/elasticsearch/backend/elasticsearch7/CriteriaQueryMappingUnitTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/backend/elasticsearch7/CriteriaQueryMappingUnitTests.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.data.elasticsearch.clients.elasticsearch7;
+package org.springframework.data.elasticsearch.backend.elasticsearch7;
import static org.skyscreamer.jsonassert.JSONAssert.*;
diff --git a/src/test/java/org/springframework/data/elasticsearch/backend/elasticsearch7/CriteriaQueryProcessorUnitTests.java b/src/test/java/org/springframework/data/elasticsearch/backend/elasticsearch7/CriteriaQueryProcessorUnitTests.java
index 943760129..279dc669f 100644
--- a/src/test/java/org/springframework/data/elasticsearch/backend/elasticsearch7/CriteriaQueryProcessorUnitTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/backend/elasticsearch7/CriteriaQueryProcessorUnitTests.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.data.elasticsearch.clients.elasticsearch7;
+package org.springframework.data.elasticsearch.backend.elasticsearch7;
import static org.skyscreamer.jsonassert.JSONAssert.*;
diff --git a/src/test/java/org/springframework/data/elasticsearch/backend/elasticsearch7/RequestFactoryTests.java b/src/test/java/org/springframework/data/elasticsearch/backend/elasticsearch7/RequestFactoryTests.java
index fcb28ddd0..c9e91a798 100644
--- a/src/test/java/org/springframework/data/elasticsearch/backend/elasticsearch7/RequestFactoryTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/backend/elasticsearch7/RequestFactoryTests.java
@@ -13,11 +13,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.data.elasticsearch.clients.elasticsearch7;
+package org.springframework.data.elasticsearch.backend.elasticsearch7;
import static org.assertj.core.api.Assertions.*;
import static org.elasticsearch.index.query.QueryBuilders.*;
-import static org.mockito.Mockito.*;
import static org.skyscreamer.jsonassert.JSONAssert.*;
import java.io.IOException;
@@ -27,13 +26,8 @@
import org.elasticsearch.action.DocWriteRequest;
import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest;
-import org.elasticsearch.action.index.IndexAction;
import org.elasticsearch.action.index.IndexRequest;
-import org.elasticsearch.action.index.IndexRequestBuilder;
-import org.elasticsearch.action.search.SearchAction;
import org.elasticsearch.action.search.SearchRequest;
-import org.elasticsearch.action.search.SearchRequestBuilder;
-import org.elasticsearch.client.Client;
import org.elasticsearch.client.indices.PutIndexTemplateRequest;
import org.elasticsearch.common.lucene.search.function.CombineFunction;
import org.elasticsearch.common.lucene.search.function.FunctionScoreQuery;
@@ -49,13 +43,13 @@
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.core.convert.support.GenericConversionService;
import org.springframework.data.annotation.Id;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.elasticsearch.annotations.Field;
+import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
import org.springframework.data.elasticsearch.core.convert.MappingElasticsearchConverter;
import org.springframework.data.elasticsearch.core.geo.GeoPoint;
import org.springframework.data.elasticsearch.core.index.AliasAction;
@@ -69,7 +63,6 @@
import org.springframework.data.elasticsearch.core.query.GeoDistanceOrder;
import org.springframework.data.elasticsearch.core.query.IndexQuery;
import org.springframework.data.elasticsearch.core.query.IndexQueryBuilder;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
import org.springframework.data.elasticsearch.core.query.Query;
import org.springframework.data.elasticsearch.core.query.RescorerQuery;
import org.springframework.data.elasticsearch.core.query.RescorerQuery.ScoreMode;
@@ -88,8 +81,6 @@ class RequestFactoryTests {
@Nullable private static RequestFactory requestFactory;
@Nullable private static MappingElasticsearchConverter converter;
- @Mock private Client client;
-
@BeforeAll
static void setUpAll() {
SimpleElasticsearchMappingContext mappingContext = new SimpleElasticsearchMappingContext();
@@ -151,7 +142,7 @@ void shouldBuildSearchWithGeoSortSort() throws JSONException {
}
@Test // DATAES-449
- void shouldAddRouting() throws JSONException {
+ void shouldAddRouting() {
String route = "route66";
CriteriaQuery query = new CriteriaQuery(new Criteria("lastName").is("Smith"));
query.setRoute(route);
@@ -172,18 +163,6 @@ void shouldAddMaxQueryWindowForUnpagedToRequest() {
assertThat(searchRequest.source().size()).isEqualTo(RequestFactory.INDEX_MAX_RESULT_WINDOW);
}
- @Test // DATAES-765
- void shouldAddMaxQueryWindowForUnpagedToRequestBuilder() {
- when(client.prepareSearch(any())).thenReturn(new SearchRequestBuilder(client, SearchAction.INSTANCE));
- Query query = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withPageable(Pageable.unpaged()).build();
-
- SearchRequestBuilder searchRequestBuilder = requestFactory.searchRequestBuilder(client, query, Person.class,
- IndexCoordinates.of("persons"));
-
- assertThat(searchRequestBuilder.request().source().from()).isEqualTo(0);
- assertThat(searchRequestBuilder.request().source().size()).isEqualTo(RequestFactory.INDEX_MAX_RESULT_WINDOW);
- }
-
@Test // DATAES-799
void shouldIncludeSeqNoAndPrimaryTermFromIndexQueryToIndexRequest() {
IndexQuery query = new IndexQuery();
@@ -198,23 +177,7 @@ void shouldIncludeSeqNoAndPrimaryTermFromIndexQueryToIndexRequest() {
}
@Test // DATAES-799
- void shouldIncludeSeqNoAndPrimaryTermFromIndexQueryToIndexRequestBuilder() {
- when(client.prepareIndex(anyString(), anyString()))
- .thenReturn(new IndexRequestBuilder(client, IndexAction.INSTANCE));
-
- IndexQuery query = new IndexQuery();
- query.setObject(new Person());
- query.setSeqNo(1L);
- query.setPrimaryTerm(2L);
-
- IndexRequestBuilder builder = requestFactory.indexRequestBuilder(client, query, IndexCoordinates.of("persons"));
-
- assertThat(builder.request().ifSeqNo()).isEqualTo(1L);
- assertThat(builder.request().ifPrimaryTerm()).isEqualTo(2L);
- }
-
- @Test // DATAES-799
- void shouldNotRequestSeqNoAndPrimaryTermViaSearchRequestWhenEntityClassDoesNotContainSeqNoPrimaryTermProperty() {
+ void shouldNotRequestSeqNoAndPrimaryTermWhenEntityClassDoesNotContainSeqNoPrimaryTermProperty() {
Query query = new NativeSearchQueryBuilder().build();
SearchRequest request = requestFactory.searchRequest(query, Person.class, IndexCoordinates.of("persons"));
@@ -223,7 +186,7 @@ void shouldNotRequestSeqNoAndPrimaryTermViaSearchRequestWhenEntityClassDoesNotCo
}
@Test // DATAES-799
- void shouldRequestSeqNoAndPrimaryTermViaSearchRequestWhenEntityClassContainsSeqNoPrimaryTermProperty() {
+ void shouldRequestSeqNoAndPrimaryTermWhenEntityClassContainsSeqNoPrimaryTermProperty() {
Query query = new NativeSearchQueryBuilder().build();
SearchRequest request = requestFactory.searchRequest(query, EntityWithSeqNoPrimaryTerm.class,
@@ -233,7 +196,7 @@ void shouldRequestSeqNoAndPrimaryTermViaSearchRequestWhenEntityClassContainsSeqN
}
@Test // DATAES-799
- void shouldNotRequestSeqNoAndPrimaryTermViaSearchRequestWhenEntityClassIsNull() {
+ void shouldNotRequestSeqNoAndPrimaryTermWhenEntityClassIsNull() {
Query query = new NativeSearchQueryBuilder().build();
SearchRequest request = requestFactory.searchRequest(query, null, IndexCoordinates.of("persons"));
@@ -241,39 +204,6 @@ void shouldNotRequestSeqNoAndPrimaryTermViaSearchRequestWhenEntityClassIsNull()
assertThat(request.source().seqNoAndPrimaryTerm()).isNull();
}
- @Test // DATAES-799
- void shouldNotRequestSeqNoAndPrimaryTermViaSearchRequestBuilderWhenEntityClassDoesNotContainSeqNoPrimaryTermProperty() {
- when(client.prepareSearch(any())).thenReturn(new SearchRequestBuilder(client, SearchAction.INSTANCE));
- Query query = new NativeSearchQueryBuilder().build();
-
- SearchRequestBuilder builder = requestFactory.searchRequestBuilder(client, query, Person.class,
- IndexCoordinates.of("persons"));
-
- assertThat(builder.request().source().seqNoAndPrimaryTerm()).isNull();
- }
-
- @Test // DATAES-799
- void shouldRequestSeqNoAndPrimaryTermViaSearchRequestBuilderWhenEntityClassContainsSeqNoPrimaryTermProperty() {
- when(client.prepareSearch(any())).thenReturn(new SearchRequestBuilder(client, SearchAction.INSTANCE));
- Query query = new NativeSearchQueryBuilder().build();
-
- SearchRequestBuilder builder = requestFactory.searchRequestBuilder(client, query, EntityWithSeqNoPrimaryTerm.class,
- IndexCoordinates.of("seqNoPrimaryTerm"));
-
- assertThat(builder.request().source().seqNoAndPrimaryTerm()).isTrue();
- }
-
- @Test // DATAES-799
- void shouldNotRequestSeqNoAndPrimaryTermViaSearchRequestBuilderWhenEntityClassIsNull() {
- when(client.prepareSearch(any())).thenReturn(new SearchRequestBuilder(client, SearchAction.INSTANCE));
- Query query = new NativeSearchQueryBuilder().build();
-
- SearchRequestBuilder builder = requestFactory.searchRequestBuilder(client, query, null,
- IndexCoordinates.of("persons"));
-
- assertThat(builder.request().source().seqNoAndPrimaryTerm()).isNull();
- }
-
@Test // DATAES-864
void shouldBuildIndicesAliasRequest() throws IOException, JSONException {
@@ -497,19 +427,6 @@ void shouldSetTimeoutToRequest() {
assertThat(searchRequest.source().timeout().getMillis()).isEqualTo(Duration.ofSeconds(1).toMillis());
}
- @Test // DATAES-1003
- @DisplayName("should set timeout to requestbuilder")
- void shouldSetTimeoutToRequestBuilder() {
- when(client.prepareSearch(any())).thenReturn(new SearchRequestBuilder(client, SearchAction.INSTANCE));
- Query query = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withTimeout(Duration.ofSeconds(1)).build();
-
- SearchRequestBuilder searchRequestBuilder = requestFactory.searchRequestBuilder(client, query, Person.class,
- IndexCoordinates.of("persons"));
-
- assertThat(searchRequestBuilder.request().source().timeout().getMillis())
- .isEqualTo(Duration.ofSeconds(1).toMillis());
- }
-
private String requestToString(ToXContent request) throws IOException {
return XContentHelper.toXContent(request, XContentType.JSON, true).utf8ToString();
}
@@ -599,47 +516,35 @@ void shouldBuildSearchWithRescorerQuery() throws JSONException {
@DisplayName("should not set request_cache on default SearchRequest")
void shouldNotSetRequestCacheOnDefaultSearchRequest() {
- when(client.prepareSearch(any())).thenReturn(new SearchRequestBuilder(client, SearchAction.INSTANCE));
Query query = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
SearchRequest searchRequest = requestFactory.searchRequest(query, Person.class, IndexCoordinates.of("persons"));
- SearchRequestBuilder searchRequestBuilder = requestFactory.searchRequestBuilder(client, query, Person.class,
- IndexCoordinates.of("persons"));
assertThat(searchRequest.requestCache()).isNull();
- assertThat(searchRequestBuilder.request().requestCache()).isNull();
}
@Test // #1564
@DisplayName("should set request_cache true on SearchRequest")
void shouldSetRequestCacheTrueOnSearchRequest() {
- when(client.prepareSearch(any())).thenReturn(new SearchRequestBuilder(client, SearchAction.INSTANCE));
Query query = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
query.setRequestCache(true);
SearchRequest searchRequest = requestFactory.searchRequest(query, Person.class, IndexCoordinates.of("persons"));
- SearchRequestBuilder searchRequestBuilder = requestFactory.searchRequestBuilder(client, query, Person.class,
- IndexCoordinates.of("persons"));
assertThat(searchRequest.requestCache()).isTrue();
- assertThat(searchRequestBuilder.request().requestCache()).isTrue();
}
@Test // #1564
@DisplayName("should set request_cache false on SearchRequest")
void shouldSetRequestCacheFalseOnSearchRequest() {
- when(client.prepareSearch(any())).thenReturn(new SearchRequestBuilder(client, SearchAction.INSTANCE));
Query query = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
query.setRequestCache(false);
SearchRequest searchRequest = requestFactory.searchRequest(query, Person.class, IndexCoordinates.of("persons"));
- SearchRequestBuilder searchRequestBuilder = requestFactory.searchRequestBuilder(client, query, Person.class,
- IndexCoordinates.of("persons"));
assertThat(searchRequest.requestCache()).isFalse();
- assertThat(searchRequestBuilder.request().requestCache()).isFalse();
}
// region entities
diff --git a/src/test/java/org/springframework/data/elasticsearch/backend/elasticsearch7/client/ClusterNodesUnitTests.java b/src/test/java/org/springframework/data/elasticsearch/backend/elasticsearch7/client/ClusterNodesUnitTests.java
deleted file mode 100644
index ace62a472..000000000
--- a/src/test/java/org/springframework/data/elasticsearch/backend/elasticsearch7/client/ClusterNodesUnitTests.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright 2018-2021 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.springframework.data.elasticsearch.backend.elasticsearch7.client;
-
-import static org.assertj.core.api.Assertions.*;
-
-import org.junit.jupiter.api.Test;
-
-/**
- * Unit tests for {@link ClusterNodes}.
- *
- * @author Oliver Gierke
- */
-public class ClusterNodesUnitTests {
-
- @Test // DATAES-470
- public void parsesSingleClusterNode() {
-
- ClusterNodes nodes = ClusterNodes.DEFAULT;
-
- assertThat(nodes).hasSize(1) //
- .first().satisfies(it -> {
- assertThat(it.getAddress()).isEqualTo("127.0.0.1");
- assertThat(it.getPort()).isEqualTo(9300);
- });
- }
-
- @Test // DATAES-470
- public void parsesMultiClusterNode() {
-
- ClusterNodes nodes = ClusterNodes.of("127.0.0.1:1234,10.1.0.1:5678");
-
- assertThat(nodes.stream()).hasSize(2); //
- assertThat(nodes.stream()).element(0).satisfies(it -> {
- assertThat(it.getAddress()).isEqualTo("127.0.0.1");
- assertThat(it.getPort()).isEqualTo(1234);
- });
- assertThat(nodes.stream()).element(1).satisfies(it -> {
- assertThat(it.getAddress()).isEqualTo("10.1.0.1");
- assertThat(it.getPort()).isEqualTo(5678);
- });
- }
-
- @Test // DATAES-470
- public void rejectsEmptyHostName() {
-
- assertThatExceptionOfType(IllegalArgumentException.class) //
- .isThrownBy(() -> ClusterNodes.of(":8080")) //
- .withMessageContaining("host");
- }
-
- @Test // DATAES-470
- public void rejectsEmptyPort() {
-
- assertThatExceptionOfType(IllegalArgumentException.class) //
- .isThrownBy(() -> ClusterNodes.of("localhost:")) //
- .withMessageContaining("port");
- }
-
- @Test // DATAES-470
- public void rejectsMissingPort() {
-
- assertThatExceptionOfType(IllegalArgumentException.class) //
- .isThrownBy(() -> ClusterNodes.of("localhost")) //
- .withMessageContaining("host:port");
- }
-
- @Test // DATAES-470
- public void rejectsUnresolvableHost() {
-
- assertThatExceptionOfType(IllegalArgumentException.class) //
- .isThrownBy(() -> ClusterNodes.of("mylocalhost.invalid.:80"));
- }
-}
diff --git a/src/test/java/org/springframework/data/elasticsearch/config/AuditingIntegrationTest.java b/src/test/java/org/springframework/data/elasticsearch/config/AuditingIntegrationTests.java
similarity index 98%
rename from src/test/java/org/springframework/data/elasticsearch/config/AuditingIntegrationTest.java
rename to src/test/java/org/springframework/data/elasticsearch/config/AuditingIntegrationTests.java
index e0bc69f89..1cfc41611 100644
--- a/src/test/java/org/springframework/data/elasticsearch/config/AuditingIntegrationTest.java
+++ b/src/test/java/org/springframework/data/elasticsearch/config/AuditingIntegrationTests.java
@@ -40,7 +40,7 @@
* @author Peter-Josef Meisch
* @author Roman Puchkovskiy
*/
-public abstract class AuditingIntegrationTest {
+public abstract class AuditingIntegrationTests {
public static AuditorAware auditorProvider() {
return new AuditorAware() {
diff --git a/src/test/java/org/springframework/data/elasticsearch/config/ElasticsearchRestAuditingIntegrationTest.java b/src/test/java/org/springframework/data/elasticsearch/config/AuditingRestTemplateIntegrationTests.java
similarity index 88%
rename from src/test/java/org/springframework/data/elasticsearch/config/ElasticsearchRestAuditingIntegrationTest.java
rename to src/test/java/org/springframework/data/elasticsearch/config/AuditingRestTemplateIntegrationTests.java
index f1187e407..53df45b02 100644
--- a/src/test/java/org/springframework/data/elasticsearch/config/ElasticsearchRestAuditingIntegrationTest.java
+++ b/src/test/java/org/springframework/data/elasticsearch/config/AuditingRestTemplateIntegrationTests.java
@@ -26,8 +26,8 @@
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { ElasticsearchRestAuditingIntegrationTest.Config.class })
-public class ElasticsearchRestAuditingIntegrationTest extends AuditingIntegrationTest {
+@ContextConfiguration(classes = { AuditingRestTemplateIntegrationTests.Config.class })
+public class AuditingRestTemplateIntegrationTests extends AuditingIntegrationTests {
@Import({ ElasticsearchRestTemplateConfiguration.class })
@EnableElasticsearchAuditing(auditorAwareRef = "auditorAware")
diff --git a/src/test/java/org/springframework/data/elasticsearch/config/ElasticsearchTransportAuditingIntegrationTest.java b/src/test/java/org/springframework/data/elasticsearch/config/ElasticsearchTransportAuditingIntegrationTest.java
deleted file mode 100644
index d2e636347..000000000
--- a/src/test/java/org/springframework/data/elasticsearch/config/ElasticsearchTransportAuditingIntegrationTest.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2020-2021 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.springframework.data.elasticsearch.config;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Import;
-import org.springframework.data.domain.AuditorAware;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
-import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
-import org.springframework.test.context.ContextConfiguration;
-
-/**
- * @author Peter-Josef Meisch
- */
-@SpringIntegrationTest
-@ContextConfiguration(classes = { ElasticsearchTransportAuditingIntegrationTest.Config.class })
-public class ElasticsearchTransportAuditingIntegrationTest extends AuditingIntegrationTest {
-
- @Import({ ElasticsearchTemplateConfiguration.class })
- @EnableElasticsearchAuditing(auditorAwareRef = "auditorAware")
- static class Config {
-
- @Bean
- public AuditorAware auditorAware() {
- return auditorProvider();
- }
- }
-}
diff --git a/src/test/java/org/springframework/data/elasticsearch/config/namespace/ElasticsearchNamespaceHandlerTests.java b/src/test/java/org/springframework/data/elasticsearch/config/namespace/ElasticsearchNamespaceHandlerTests.java
index 0629461e9..6218f7610 100644
--- a/src/test/java/org/springframework/data/elasticsearch/config/namespace/ElasticsearchNamespaceHandlerTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/config/namespace/ElasticsearchNamespaceHandlerTests.java
@@ -25,7 +25,6 @@
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.backend.elasticsearch7.client.RestClientFactoryBean;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.client.TransportClientFactoryBean;
import org.springframework.data.elasticsearch.junit.jupiter.Tags;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.test.context.ContextConfiguration;
@@ -45,17 +44,8 @@ public class ElasticsearchNamespaceHandlerTests {
@Autowired private ApplicationContext context;
- @Test
- public void shouldCreateTransportClient() {
-
- assertThat(context.getBean(TransportClientFactoryBean.class)).isNotNull();
- assertThat(context.getBean(TransportClientFactoryBean.class)).isInstanceOf(TransportClientFactoryBean.class);
- }
-
@Test
public void shouldCreateRepository() {
-
- assertThat(context.getBean(TransportClientFactoryBean.class)).isNotNull();
assertThat(context.getBean(CreateIndexFalseRepository.class)).isInstanceOf(CreateIndexFalseRepository.class);
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/config/nested/EnableNestedElasticsearchRepositoriesTests.java b/src/test/java/org/springframework/data/elasticsearch/config/nested/EnableNestedElasticsearchRepositoriesIntegrationTests.java
similarity index 78%
rename from src/test/java/org/springframework/data/elasticsearch/config/nested/EnableNestedElasticsearchRepositoriesTests.java
rename to src/test/java/org/springframework/data/elasticsearch/config/nested/EnableNestedElasticsearchRepositoriesIntegrationTests.java
index aee463e31..258bc097d 100644
--- a/src/test/java/org/springframework/data/elasticsearch/config/nested/EnableNestedElasticsearchRepositoriesTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/config/nested/EnableNestedElasticsearchRepositoriesIntegrationTests.java
@@ -25,8 +25,6 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Version;
import org.springframework.data.elasticsearch.annotations.Document;
@@ -34,26 +32,16 @@
import org.springframework.data.elasticsearch.annotations.ScriptedField;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.geo.GeoPoint;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
-import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.data.repository.Repository;
import org.springframework.lang.Nullable;
-import org.springframework.test.context.ContextConfiguration;
/**
* @author Kevin Leturc
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { EnableNestedElasticsearchRepositoriesTests.Config.class })
-public class EnableNestedElasticsearchRepositoriesTests {
-
- @Configuration
- @Import({ ElasticsearchRestTemplateConfiguration.class })
- @EnableElasticsearchRepositories(basePackages = { "org.springframework.data.elasticsearch.config.nested" },
- considerNestedRepositories = true)
- static class Config {}
+public abstract class EnableNestedElasticsearchRepositoriesIntegrationTests {
@Autowired(required = false) private SampleRepository nestedRepository;
@Autowired ElasticsearchOperations operations;
diff --git a/src/test/java/org/springframework/data/elasticsearch/config/nested/EnableNestedElasticsearchRepositoriesTransportTests.java b/src/test/java/org/springframework/data/elasticsearch/config/nested/EnableNestedElasticsearchRepositoriesRestTemplateIntegrationTests.java
similarity index 72%
rename from src/test/java/org/springframework/data/elasticsearch/config/nested/EnableNestedElasticsearchRepositoriesTransportTests.java
rename to src/test/java/org/springframework/data/elasticsearch/config/nested/EnableNestedElasticsearchRepositoriesRestTemplateIntegrationTests.java
index 77f7a343b..3b8b486ac 100644
--- a/src/test/java/org/springframework/data/elasticsearch/config/nested/EnableNestedElasticsearchRepositoriesTransportTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/config/nested/EnableNestedElasticsearchRepositoriesRestTemplateIntegrationTests.java
@@ -17,17 +17,20 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { EnableNestedElasticsearchRepositoriesTransportTests.Config.class })
-public class EnableNestedElasticsearchRepositoriesTransportTests extends EnableNestedElasticsearchRepositoriesTests {
+@ContextConfiguration(classes = { EnableNestedElasticsearchRepositoriesRestTemplateIntegrationTests.Config.class })
+public class EnableNestedElasticsearchRepositoriesRestTemplateIntegrationTests
+ extends EnableNestedElasticsearchRepositoriesIntegrationTests {
@Configuration
- @Import({ ElasticsearchTemplateConfiguration.class })
- @EnableElasticsearchRepositories(considerNestedRepositories = true)
+ @Import({ ElasticsearchRestTemplateConfiguration.class })
+ @EnableElasticsearchRepositories(basePackages = { "org.springframework.data.elasticsearch.config.nested" },
+ considerNestedRepositories = true)
static class Config {}
+
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/config/notnested/EnableElasticsearchRepositoriesTransportTests.java b/src/test/java/org/springframework/data/elasticsearch/config/notnested/EnableElasticsearchRepositoriesRestTemplateTests.java
similarity index 79%
rename from src/test/java/org/springframework/data/elasticsearch/config/notnested/EnableElasticsearchRepositoriesTransportTests.java
rename to src/test/java/org/springframework/data/elasticsearch/config/notnested/EnableElasticsearchRepositoriesRestTemplateTests.java
index 6aee35bc6..1c597c271 100644
--- a/src/test/java/org/springframework/data/elasticsearch/config/notnested/EnableElasticsearchRepositoriesTransportTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/config/notnested/EnableElasticsearchRepositoriesRestTemplateTests.java
@@ -17,15 +17,16 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
/**
* @author Peter-Josef Meisch
*/
-public class EnableElasticsearchRepositoriesTransportTests extends EnableElasticsearchRepositoriesTests {
+public class EnableElasticsearchRepositoriesRestTemplateTests extends EnableElasticsearchRepositoriesTests {
@Configuration
- @Import({ ElasticsearchTemplateConfiguration.class })
- @EnableElasticsearchRepositories(considerNestedRepositories = true)
+ @Import({ ElasticsearchRestTemplateConfiguration.class })
+ @EnableElasticsearchRepositories
static class Config {}
+
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/config/notnested/EnableElasticsearchRepositoriesTests.java b/src/test/java/org/springframework/data/elasticsearch/config/notnested/EnableElasticsearchRepositoriesTests.java
index 35b2c799f..668cc8440 100644
--- a/src/test/java/org/springframework/data/elasticsearch/config/notnested/EnableElasticsearchRepositoriesTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/config/notnested/EnableElasticsearchRepositoriesTests.java
@@ -29,8 +29,6 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Version;
import org.springframework.data.elasticsearch.annotations.Document;
@@ -41,14 +39,11 @@
import org.springframework.data.elasticsearch.core.IndexOperations;
import org.springframework.data.elasticsearch.core.geo.GeoPoint;
import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
-import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.data.elasticsearch.utils.IndexInitializer;
import org.springframework.data.repository.Repository;
import org.springframework.lang.Nullable;
-import org.springframework.test.context.ContextConfiguration;
/**
* @author Rizwan Idrees
@@ -58,8 +53,7 @@
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { EnableElasticsearchRepositoriesTests.Config.class })
-public class EnableElasticsearchRepositoriesTests implements ApplicationContextAware {
+public abstract class EnableElasticsearchRepositoriesTests implements ApplicationContextAware {
@Nullable ApplicationContext context;
@@ -69,11 +63,6 @@ public void setApplicationContext(ApplicationContext applicationContext) throws
this.context = applicationContext;
}
- @Configuration
- @Import({ ElasticsearchRestTemplateConfiguration.class })
- @EnableElasticsearchRepositories
- static class Config {}
-
@Autowired ElasticsearchOperations operations;
private IndexOperations indexOperations;
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchPartQueryTests.java b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchPartQueryTests.java
index dd46fe608..8e0383419 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchPartQueryTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchPartQueryTests.java
@@ -33,7 +33,7 @@
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;
-import org.springframework.data.elasticsearch.clients.elasticsearch7.RequestFactory;
+import org.springframework.data.elasticsearch.backend.elasticsearch7.RequestFactory;
import org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter;
import org.springframework.data.elasticsearch.core.convert.MappingElasticsearchConverter;
import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchRestTemplateCallbackTests.java b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchRestTemplateCallbackTests.java
index bb156c77b..5665c3609 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchRestTemplateCallbackTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchRestTemplateCallbackTests.java
@@ -49,7 +49,7 @@
*/
@ExtendWith(MockitoExtension.class)
@MockitoSettings(strictness = Strictness.LENIENT)
-class ElasticsearchRestTemplateCallbackTests extends AbstractElasticsearchTemplateCallbackTests {
+class ElasticsearchRestTemplateCallbackTests extends ElasticsearchTemplateCallbackTests {
@Mock private RestHighLevelClient client;
@@ -103,6 +103,7 @@ public void setUp() throws Exception {
MultiSearchResponse multiSearchResponse = new MultiSearchResponse(
new MultiSearchResponse.Item[] { multiSearchResponseItem }, 1L);
doReturn(multiSearchResponse).when(client).multiSearch(any(MultiSearchRequest.class), any());
+ doReturn(multiSearchResponse).when(client).msearch(any(MultiSearchRequest.class), any());
doReturn(searchResponse).when(multiSearchResponseItem).getResponse();
doReturn(searchResponse).when(client).scroll(any(SearchScrollRequest.class), any(RequestOptions.class));
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/AbstractElasticsearchTemplateCallbackTests.java b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateCallbackTests.java
similarity index 99%
rename from src/test/java/org/springframework/data/elasticsearch/core/AbstractElasticsearchTemplateCallbackTests.java
rename to src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateCallbackTests.java
index 33536f947..cf0f5b456 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/AbstractElasticsearchTemplateCallbackTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateCallbackTests.java
@@ -30,6 +30,7 @@
import org.mockito.Mock;
import org.mockito.Spy;
import org.springframework.data.annotation.Id;
+import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
import org.springframework.data.elasticsearch.core.document.Document;
import org.springframework.data.elasticsearch.core.event.AfterConvertCallback;
import org.springframework.data.elasticsearch.core.event.AfterSaveCallback;
@@ -38,7 +39,6 @@
import org.springframework.data.elasticsearch.core.query.BulkOptions;
import org.springframework.data.elasticsearch.core.query.IndexQuery;
import org.springframework.data.elasticsearch.core.query.MoreLikeThisQuery;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
import org.springframework.data.elasticsearch.core.query.Query;
import org.springframework.data.mapping.callback.EntityCallbacks;
import org.springframework.data.util.CloseableIterator;
@@ -48,7 +48,7 @@
/**
* @author Roman Puchkovskiy
*/
-abstract class AbstractElasticsearchTemplateCallbackTests {
+abstract class ElasticsearchTemplateCallbackTests {
protected AbstractElasticsearchTemplate template;
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java
index 5cd5cd772..b4e278f84 100755
--- a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java
@@ -83,10 +83,10 @@
import org.springframework.data.elasticsearch.annotations.MultiField;
import org.springframework.data.elasticsearch.annotations.ScriptedField;
import org.springframework.data.elasticsearch.annotations.Setting;
+import org.springframework.data.elasticsearch.backend.elasticsearch7.RequestFactory;
import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQuery;
import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
import org.springframework.data.elasticsearch.backend.elasticsearch7.query.ScriptField;
-import org.springframework.data.elasticsearch.clients.elasticsearch7.RequestFactory;
import org.springframework.data.elasticsearch.core.document.Explanation;
import org.springframework.data.elasticsearch.core.geo.GeoPoint;
import org.springframework.data.elasticsearch.core.index.AliasAction;
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTransportTemplateCallbackTests.java b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTransportTemplateCallbackTests.java
deleted file mode 100644
index ab2f445ca..000000000
--- a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTransportTemplateCallbackTests.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Copyright 2020-2021 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.springframework.data.elasticsearch.core;
-
-import static org.mockito.Mockito.*;
-
-import java.util.HashMap;
-
-import org.elasticsearch.action.ActionFuture;
-import org.elasticsearch.action.bulk.BulkItemResponse;
-import org.elasticsearch.action.bulk.BulkRequestBuilder;
-import org.elasticsearch.action.bulk.BulkResponse;
-import org.elasticsearch.action.get.GetRequestBuilder;
-import org.elasticsearch.action.get.GetResponse;
-import org.elasticsearch.action.get.MultiGetItemResponse;
-import org.elasticsearch.action.get.MultiGetRequestBuilder;
-import org.elasticsearch.action.get.MultiGetResponse;
-import org.elasticsearch.action.index.IndexRequestBuilder;
-import org.elasticsearch.action.index.IndexResponse;
-import org.elasticsearch.action.search.MultiSearchRequest;
-import org.elasticsearch.action.search.MultiSearchResponse;
-import org.elasticsearch.action.search.SearchRequestBuilder;
-import org.elasticsearch.action.search.SearchResponse;
-import org.elasticsearch.action.search.SearchScrollRequestBuilder;
-import org.elasticsearch.action.search.SearchType;
-import org.elasticsearch.client.Client;
-import org.elasticsearch.common.bytes.BytesArray;
-import org.elasticsearch.core.TimeValue;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.Mock;
-import org.mockito.junit.jupiter.MockitoExtension;
-import org.mockito.junit.jupiter.MockitoSettings;
-import org.mockito.quality.Strictness;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.ElasticsearchTemplate;
-
-/**
- * @author Roman Puchkovskiy
- */
-@ExtendWith(MockitoExtension.class)
-@MockitoSettings(strictness = Strictness.LENIENT)
-class ElasticsearchTransportTemplateCallbackTests extends AbstractElasticsearchTemplateCallbackTests {
-
- @Mock private Client client;
-
- @Mock private IndexRequestBuilder indexRequestBuilder;
- @Mock private ActionFuture indexResponseActionFuture;
- @Mock private IndexResponse indexResponse;
- @Mock private BulkRequestBuilder bulkRequestBuilder;
- @Mock private ActionFuture bulkResponseActionFuture;
- @Mock private BulkResponse bulkResponse;
- @Mock private BulkItemResponse bulkItemResponse;
- @Mock private GetRequestBuilder getRequestBuilder;
- @Mock private ActionFuture getResponseActionFuture;
- @Mock private GetResponse getResponse;
- @Mock private MultiGetRequestBuilder multiGetRequestBuilder;
- @Mock private ActionFuture multiGetResponseActionFuture;
- @Mock private MultiGetResponse multiGetResponse;
- @Mock private MultiGetItemResponse multiGetItemResponse;
- @Mock private SearchRequestBuilder searchRequestBuilder;
- @Mock private ActionFuture searchResponseActionFuture;
- @Mock private ActionFuture multiSearchResponseActionFuture;
- @Mock private MultiSearchResponse.Item multiSearchResponseItem;
- @Mock private SearchScrollRequestBuilder searchScrollRequestBuilder;
-
- @BeforeEach
- @SuppressWarnings("deprecation") // we know what we are testing
- public void setUp() {
- initTemplate(new ElasticsearchTemplate(client));
-
- when(client.prepareIndex(anyString(), anyString(), anyString())).thenReturn(indexRequestBuilder);
- doReturn(indexResponseActionFuture).when(indexRequestBuilder).execute();
- when(indexResponseActionFuture.actionGet()).thenReturn(indexResponse);
- doReturn("response-id").when(indexResponse).getId();
-
- when(client.prepareBulk()).thenReturn(bulkRequestBuilder);
- doReturn(bulkResponseActionFuture).when(bulkRequestBuilder).execute();
- when(bulkResponseActionFuture.actionGet()).thenReturn(bulkResponse);
- doReturn(new BulkItemResponse[] { bulkItemResponse, bulkItemResponse }).when(bulkResponse).getItems();
- doReturn("response-id").when(bulkItemResponse).getId();
-
- when(client.prepareGet(anyString(), any(), any())).thenReturn(getRequestBuilder);
- doReturn(getResponseActionFuture).when(getRequestBuilder).execute();
- when(getResponseActionFuture.actionGet()).thenReturn(getResponse);
-
- doReturn(true).when(getResponse).isExists();
- doReturn(false).when(getResponse).isSourceEmpty();
- doReturn(new HashMap() {
- {
- put("id", "init");
- put("firstname", "luke");
- }
- }).when(getResponse).getSourceAsMap();
-
- when(client.prepareMultiGet()).thenReturn(multiGetRequestBuilder);
- doReturn(multiGetResponseActionFuture).when(multiGetRequestBuilder).execute();
- when(multiGetResponseActionFuture.actionGet()).thenReturn(multiGetResponse);
- doReturn(new MultiGetItemResponse[] { multiGetItemResponse, multiGetItemResponse }).when(multiGetResponse)
- .getResponses();
- doReturn(getResponse).when(multiGetItemResponse).getResponse();
-
- when(client.prepareSearch(anyVararg())).thenReturn(searchRequestBuilder);
- doReturn(searchRequestBuilder).when(searchRequestBuilder).setSearchType(any(SearchType.class));
- doReturn(searchRequestBuilder).when(searchRequestBuilder).setVersion(anyBoolean());
- doReturn(searchRequestBuilder).when(searchRequestBuilder).setTrackScores(anyBoolean());
- doReturn(searchRequestBuilder).when(searchRequestBuilder).setScroll(any(TimeValue.class));
- doReturn(searchResponseActionFuture).when(searchRequestBuilder).execute();
- when(searchResponseActionFuture.actionGet()).thenReturn(searchResponse);
- when(searchResponseActionFuture.actionGet(anyString())).thenReturn(searchResponse);
- doReturn(nSearchHits(2)).when(searchResponse).getHits();
- doReturn("scroll-id").when(searchResponse).getScrollId();
- doReturn(new BytesArray(new byte[8])).when(searchHit).getSourceRef();
- doReturn(new HashMap() {
- {
- put("id", "init");
- put("firstname", "luke");
- }
- }).when(searchHit).getSourceAsMap();
-
- when(client.multiSearch(any(MultiSearchRequest.class))).thenReturn(multiSearchResponseActionFuture);
- MultiSearchResponse multiSearchResponse = new MultiSearchResponse(
- new MultiSearchResponse.Item[] { multiSearchResponseItem }, 1L);
- when(multiSearchResponseActionFuture.actionGet()).thenReturn(multiSearchResponse);
- doReturn(searchResponse).when(multiSearchResponseItem).getResponse();
-
- when(client.prepareSearchScroll(anyString())).thenReturn(searchScrollRequestBuilder);
- doReturn(searchScrollRequestBuilder).when(searchScrollRequestBuilder).setScroll(any(TimeValue.class));
- doReturn(searchResponseActionFuture).when(searchScrollRequestBuilder).execute();
- }
-}
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTransportTemplateTests.java b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTransportTemplateTests.java
deleted file mode 100644
index 151ce2d87..000000000
--- a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTransportTemplateTests.java
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- * Copyright 2018-2021 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.springframework.data.elasticsearch.core;
-
-import static org.assertj.core.api.Assertions.*;
-import static org.elasticsearch.index.query.QueryBuilders.*;
-import static org.skyscreamer.jsonassert.JSONAssert.*;
-import static org.springframework.data.elasticsearch.annotations.FieldType.*;
-import static org.springframework.data.elasticsearch.utils.IdGenerator.*;
-
-import java.lang.Object;
-import java.time.Duration;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.elasticsearch.action.search.SearchRequestBuilder;
-import org.elasticsearch.action.support.ActiveShardCount;
-import org.elasticsearch.action.support.WriteRequest;
-import org.elasticsearch.action.update.UpdateRequestBuilder;
-import org.elasticsearch.client.Client;
-import org.elasticsearch.core.TimeValue;
-import org.elasticsearch.index.engine.DocumentMissingException;
-import org.elasticsearch.index.reindex.UpdateByQueryRequestBuilder;
-import org.elasticsearch.search.fetch.subphase.FetchSourceContext;
-import org.json.JSONException;
-import org.junit.jupiter.api.DisplayName;
-import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-import org.springframework.data.annotation.Id;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.domain.Pageable;
-import org.springframework.data.domain.Sort;
-import org.springframework.data.elasticsearch.annotations.Document;
-import org.springframework.data.elasticsearch.annotations.Field;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.ElasticsearchTemplate;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQuery;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
-import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
-import org.springframework.data.elasticsearch.core.query.IndicesOptions;
-import org.springframework.data.elasticsearch.core.query.UpdateQuery;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
-import org.springframework.data.elasticsearch.utils.IndexNameProvider;
-import org.springframework.lang.Nullable;
-import org.springframework.test.context.ContextConfiguration;
-
-/**
- * @author Peter-Josef Meisch
- * @author Sascha Woo
- * @author Farid Faoudi
- */
-@ContextConfiguration(classes = { ElasticsearchTransportTemplateTests.Config.class })
-@DisplayName("ElasticsearchTransportTemplate")
-public class ElasticsearchTransportTemplateTests extends ElasticsearchTemplateTests {
-
- @Configuration
- @Import({ ElasticsearchTemplateConfiguration.class })
- static class Config {
- @Bean
- IndexNameProvider indexNameProvider() {
- return new IndexNameProvider("transport-template");
- }
- }
-
- @Autowired private Client client;
-
- @Test
- public void shouldThrowExceptionIfDocumentDoesNotExistWhileDoingPartialUpdate() {
- // when
- org.springframework.data.elasticsearch.core.document.Document document = org.springframework.data.elasticsearch.core.document.Document
- .create();
- UpdateQuery updateQuery = UpdateQuery.builder(nextIdAsString()).withDocument(document).build();
- assertThatThrownBy(() -> operations.update(updateQuery, IndexCoordinates.of(indexNameProvider.indexName())))
- .isInstanceOf(DocumentMissingException.class);
- }
-
- @Override
- @Test // DATAES-187
- public void shouldUsePageableOffsetToSetFromInSearchRequest() {
-
- // given
- Pageable pageable = new PageRequest(1, 10, Sort.unsorted()) {
- @Override
- public long getOffset() {
- return 30;
- }
- };
-
- NativeSearchQuery query = new NativeSearchQueryBuilder() //
- .withPageable(pageable) //
- .build();
-
- // when
- SearchRequestBuilder searchRequestBuilder = getRequestFactory().searchRequestBuilder(client, query, null,
- IndexCoordinates.of("test"));
-
- // then
- assertThat(searchRequestBuilder.request().source().from()).isEqualTo(30);
- }
-
- @Test // DATAES-768
- void shouldUseAllOptionsFromUpdateQuery() {
- Map doc = new HashMap<>();
- doc.put("id", "1");
- doc.put("message", "test");
- org.springframework.data.elasticsearch.core.document.Document document = org.springframework.data.elasticsearch.core.document.Document
- .from(doc);
- UpdateQuery updateQuery = UpdateQuery.builder("1") //
- .withDocument(document) //
- .withIfSeqNo(42) //
- .withIfPrimaryTerm(13) //
- .withScript("script")//
- .withLang("lang") //
- .withRefreshPolicy(RefreshPolicy.WAIT_UNTIL) //
- .withRetryOnConflict(7) //
- .withTimeout("4711s") //
- .withWaitForActiveShards("all").withFetchSourceIncludes(Collections.singletonList("incl")) //
- .withFetchSourceExcludes(Collections.singletonList("excl")) //
- .build();
-
- UpdateRequestBuilder request = getRequestFactory().updateRequestBuilderFor(client, updateQuery,
- IndexCoordinates.of("index"));
-
- assertThat(request).isNotNull();
- assertThat(request.request().ifSeqNo()).isEqualTo(42);
- assertThat(request.request().ifPrimaryTerm()).isEqualTo(13);
- assertThat(request.request().script().getIdOrCode()).isEqualTo("script");
- assertThat(request.request().script().getLang()).isEqualTo("lang");
- assertThat(request.request().getRefreshPolicy()).isEqualByComparingTo(WriteRequest.RefreshPolicy.WAIT_UNTIL);
- assertThat(request.request().retryOnConflict()).isEqualTo(7);
- assertThat(request.request().timeout()).isEqualByComparingTo(TimeValue.parseTimeValue("4711s", "test"));
- assertThat(request.request().waitForActiveShards()).isEqualTo(ActiveShardCount.ALL);
- FetchSourceContext fetchSourceContext = request.request().fetchSource();
- assertThat(fetchSourceContext).isNotNull();
- assertThat(fetchSourceContext.includes()).containsExactlyInAnyOrder("incl");
- assertThat(fetchSourceContext.excludes()).containsExactlyInAnyOrder("excl");
- }
-
- @Test // DATAES-782
- void shouldProvideClient() {
- Client client = ((ElasticsearchTemplate) operations).getClient();
-
- assertThat(client).isNotNull();
- }
-
- @Test // #1446
- void shouldUseAllOptionsFromUpdateByQuery() throws JSONException {
-
- NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()) //
- .withIndicesOptions(IndicesOptions.LENIENT_EXPAND_OPEN) //
- .build(); //
- searchQuery.setScrollTime(Duration.ofMillis(1000));
-
- UpdateQuery updateQuery = UpdateQuery.builder(searchQuery) //
- .withAbortOnVersionConflict(true) //
- .withBatchSize(10) //
- .withMaxDocs(12) //
- .withMaxRetries(3) //
- .withPipeline("pipeline") //
- .withRequestsPerSecond(5F) //
- .withShouldStoreResult(false) //
- .withSlices(4) //
- .withScriptType(ScriptType.STORED) //
- .withScriptName("script_name") //
- .build(); //
-
- String expectedSearchRequest = '{' + //
- " \"size\": 10," + //
- " \"query\": {" + //
- " \"match_all\": {" + //
- " \"boost\": 1.0" + //
- " }" + //
- " }" + //
- '}'; //
-
- // when
- UpdateByQueryRequestBuilder request = getRequestFactory().updateByQueryRequestBuilder(client, updateQuery,
- IndexCoordinates.of("index"));
-
- // then
- assertThat(request).isNotNull();
- assertThat(request.request().getSearchRequest().indicesOptions()).usingRecursiveComparison()
- .isEqualTo(IndicesOptions.LENIENT_EXPAND_OPEN);
- assertThat(request.request().getScrollTime().getMillis()).isEqualTo(1000);
- assertEquals(request.request().getSearchRequest().source().toString(), expectedSearchRequest, false);
- assertThat(request.request().isAbortOnVersionConflict()).isTrue();
- assertThat(request.request().getBatchSize()).isEqualTo(10);
- assertThat(request.request().getMaxDocs()).isEqualTo(12);
- assertThat(request.request().getPipeline()).isEqualTo("pipeline");
- assertThat(request.request().getRequestsPerSecond()).isEqualTo(5F);
- assertThat(request.request().getShouldStoreResult()).isFalse();
- assertThat(request.request().getSlices()).isEqualTo(4);
- assertThat(request.request().getScript().getIdOrCode()).isEqualTo("script_name");
- assertThat(request.request().getScript().getType()).isEqualTo(org.elasticsearch.script.ScriptType.STORED);
- }
-
- @Document(indexName = "test-index-sample-core-transport-template")
- static class SampleEntity {
- @Nullable @Id private String id;
- @Nullable @Field(type = Text, store = true, fielddata = true) private String type;
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getType() {
- return type;
- }
-
- public void setType(String type) {
- this.type = type;
- }
- }
-}
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/InnerHitsTests.java b/src/test/java/org/springframework/data/elasticsearch/core/InnerHitsIntegrationTests.java
similarity index 93%
rename from src/test/java/org/springframework/data/elasticsearch/core/InnerHitsTests.java
rename to src/test/java/org/springframework/data/elasticsearch/core/InnerHitsIntegrationTests.java
index b80c98ae3..4ae46e0b4 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/InnerHitsTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/InnerHitsIntegrationTests.java
@@ -31,19 +31,15 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;
-import org.springframework.data.elasticsearch.core.document.NestedMetaData;
import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQuery;
import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
+import org.springframework.data.elasticsearch.core.document.NestedMetaData;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
import org.springframework.lang.Nullable;
-import org.springframework.test.context.ContextConfiguration;
/**
* Testing the querying and parsing of inner_hits.
@@ -51,15 +47,10 @@
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { InnerHitsTests.Config.class })
-public class InnerHitsTests {
+public abstract class InnerHitsIntegrationTests {
public static final String INDEX_NAME = "tests-inner-hits";
- @Configuration
- @Import({ ElasticsearchRestTemplateConfiguration.class })
- static class Config {}
-
@Autowired ElasticsearchOperations operations;
@Nullable IndexOperations indexOps;
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/InnerHitsTransportTests.java b/src/test/java/org/springframework/data/elasticsearch/core/InnerHitsRestTemplateIntegrationTests.java
similarity index 78%
rename from src/test/java/org/springframework/data/elasticsearch/core/InnerHitsTransportTests.java
rename to src/test/java/org/springframework/data/elasticsearch/core/InnerHitsRestTemplateIntegrationTests.java
index 5aa1125c6..4c76fbce0 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/InnerHitsTransportTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/InnerHitsRestTemplateIntegrationTests.java
@@ -17,15 +17,15 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { InnerHitsTransportTests.Config.class })
-public class InnerHitsTransportTests extends InnerHitsTests {
+@ContextConfiguration(classes = { InnerHitsRestTemplateIntegrationTests.Config.class })
+public class InnerHitsRestTemplateIntegrationTests extends InnerHitsIntegrationTests {
@Configuration
- @Import({ ElasticsearchTemplateConfiguration.class })
+ @Import({ ElasticsearchRestTemplateConfiguration.class })
static class Config {}
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/LogEntityTests.java b/src/test/java/org/springframework/data/elasticsearch/core/LogEntityIntegrationTests.java
similarity index 93%
rename from src/test/java/org/springframework/data/elasticsearch/core/LogEntityTests.java
rename to src/test/java/org/springframework/data/elasticsearch/core/LogEntityIntegrationTests.java
index 3ff8a6295..14b2230a1 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/LogEntityTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/LogEntityIntegrationTests.java
@@ -28,37 +28,28 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.dao.DataAccessException;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.DateFormat;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
-import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
-import org.springframework.data.elasticsearch.core.query.IndexQuery;
import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQuery;
import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
+import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
+import org.springframework.data.elasticsearch.core.query.IndexQuery;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
import org.springframework.data.elasticsearch.utils.IndexInitializer;
import org.springframework.lang.Nullable;
-import org.springframework.test.context.ContextConfiguration;
/**
- * LogEntityTests
+ * LogEntityIntegrationTests
*
* @author Artur Konczak
* @author Mohsin Husen
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { LogEntityTests.Config.class })
-public class LogEntityTests {
-
- @Configuration
- @Import({ ElasticsearchRestTemplateConfiguration.class })
- static class Config {}
+public abstract class LogEntityIntegrationTests {
private final IndexCoordinates index = IndexCoordinates.of("test-index-log-core");
@Autowired private ElasticsearchOperations operations;
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/LogEntityTransportTests.java b/src/test/java/org/springframework/data/elasticsearch/core/LogEntityRestTemplateIntegrationTests.java
similarity index 74%
rename from src/test/java/org/springframework/data/elasticsearch/core/LogEntityTransportTests.java
rename to src/test/java/org/springframework/data/elasticsearch/core/LogEntityRestTemplateIntegrationTests.java
index 739cad8e7..555df6fe2 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/LogEntityTransportTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/LogEntityRestTemplateIntegrationTests.java
@@ -15,24 +15,23 @@
*/
package org.springframework.data.elasticsearch.core;
-import org.elasticsearch.ElasticsearchException;
-import org.elasticsearch.ElasticsearchSecurityException;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.RestStatusException;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { LogEntityTransportTests.Config.class })
-public class LogEntityTransportTests extends LogEntityTests {
+@ContextConfiguration(classes = { LogEntityRestTemplateIntegrationTests.Config.class })
+public class LogEntityRestTemplateIntegrationTests extends LogEntityIntegrationTests {
@Configuration
- @Import({ ElasticsearchTemplateConfiguration.class })
+ @Import({ ElasticsearchRestTemplateConfiguration.class })
static class Config {}
@Override
protected Class extends Exception> invalidIpExceptionClass() {
- return ElasticsearchException.class;
+ return RestStatusException.class;
}
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchTemplateIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchTemplateIntegrationTests.java
index 0a88a8dae..466c4085c 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchTemplateIntegrationTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchTemplateIntegrationTests.java
@@ -70,11 +70,11 @@
import org.springframework.data.elasticsearch.annotations.FieldType;
import org.springframework.data.elasticsearch.annotations.Mapping;
import org.springframework.data.elasticsearch.annotations.Setting;
+import org.springframework.data.elasticsearch.backend.elasticsearch7.ElasticsearchAggregation;
import org.springframework.data.elasticsearch.backend.elasticsearch7.ReactiveElasticsearchTemplate;
import org.springframework.data.elasticsearch.backend.elasticsearch7.client.reactive.ReactiveElasticsearchClient;
import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQuery;
import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
-import org.springframework.data.elasticsearch.clients.elasticsearch7.ElasticsearchAggregation;
import org.springframework.data.elasticsearch.core.document.Explanation;
import org.springframework.data.elasticsearch.core.index.AliasAction;
import org.springframework.data.elasticsearch.core.index.AliasActionParameters;
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/SourceFilterIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/SourceFilterIntegrationTests.java
index 518ca5c5c..6846d75db 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/SourceFilterIntegrationTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/SourceFilterIntegrationTests.java
@@ -32,17 +32,14 @@
import org.springframework.data.elasticsearch.core.query.FetchSourceFilterBuilder;
import org.springframework.data.elasticsearch.core.query.Query;
import org.springframework.data.elasticsearch.core.query.SourceFilter;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
import org.springframework.lang.Nullable;
-import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { ElasticsearchRestTemplateConfiguration.class })
-public class SourceFilterIntegrationTests {
+public abstract class SourceFilterIntegrationTests {
@Autowired private ElasticsearchOperations operations;
private IndexOperations indexOps;
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/SourceFilterIntegrationTransportTests.java b/src/test/java/org/springframework/data/elasticsearch/core/SourceFilterRestTemplateIntegrationTests.java
similarity index 79%
rename from src/test/java/org/springframework/data/elasticsearch/core/SourceFilterIntegrationTransportTests.java
rename to src/test/java/org/springframework/data/elasticsearch/core/SourceFilterRestTemplateIntegrationTests.java
index ea47505cb..10e822fbb 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/SourceFilterIntegrationTransportTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/SourceFilterRestTemplateIntegrationTests.java
@@ -15,11 +15,11 @@
*/
package org.springframework.data.elasticsearch.core;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { ElasticsearchTemplateConfiguration.class })
-public class SourceFilterIntegrationTransportTests extends SourceFilterIntegrationTests {}
+@ContextConfiguration(classes = { ElasticsearchRestTemplateConfiguration.class })
+public class SourceFilterRestTemplateIntegrationTests extends SourceFilterIntegrationTests {}
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/aggregation/ElasticsearchTemplateAggregationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/aggregation/AggregationIntegrationTests.java
similarity index 95%
rename from src/test/java/org/springframework/data/elasticsearch/core/aggregation/ElasticsearchTemplateAggregationTests.java
rename to src/test/java/org/springframework/data/elasticsearch/core/aggregation/AggregationIntegrationTests.java
index 7310ba556..352db3132 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/aggregation/ElasticsearchTemplateAggregationTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/aggregation/AggregationIntegrationTests.java
@@ -37,27 +37,23 @@
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.InnerField;
import org.springframework.data.elasticsearch.annotations.MultiField;
-import org.springframework.data.elasticsearch.clients.elasticsearch7.ElasticsearchAggregations;
+import org.springframework.data.elasticsearch.backend.elasticsearch7.ElasticsearchAggregations;
+import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQuery;
+import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
import org.springframework.data.elasticsearch.core.AggregationsContainer;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.IndexOperations;
import org.springframework.data.elasticsearch.core.SearchHits;
import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
import org.springframework.data.elasticsearch.core.query.IndexQuery;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQuery;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
import org.springframework.data.elasticsearch.utils.IndexInitializer;
import org.springframework.lang.Nullable;
-import org.springframework.test.context.ContextConfiguration;
/**
* @author Rizwan Idrees
@@ -67,12 +63,7 @@
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { ElasticsearchTemplateAggregationTests.Config.class })
-public class ElasticsearchTemplateAggregationTests {
-
- @Configuration
- @Import({ ElasticsearchRestTemplateConfiguration.class })
- static class Config {}
+public abstract class AggregationIntegrationTests {
static final String RIZWAN_IDREES = "Rizwan Idrees";
static final String MOHSIN_HUSEN = "Mohsin Husen";
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/aggregation/ElasticsearchTemplateAggregationTransportTests.java b/src/test/java/org/springframework/data/elasticsearch/core/aggregation/AggregationRestTemplateIntegrationTests.java
similarity index 80%
rename from src/test/java/org/springframework/data/elasticsearch/core/aggregation/ElasticsearchTemplateAggregationTransportTests.java
rename to src/test/java/org/springframework/data/elasticsearch/core/aggregation/AggregationRestTemplateIntegrationTests.java
index 4523b3e3a..6d55b7f0c 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/aggregation/ElasticsearchTemplateAggregationTransportTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/aggregation/AggregationRestTemplateIntegrationTests.java
@@ -17,17 +17,17 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { ElasticsearchTemplateAggregationTransportTests.Config.class })
-public class ElasticsearchTemplateAggregationTransportTests extends ElasticsearchTemplateAggregationTests {
+@ContextConfiguration(classes = { AggregationRestTemplateIntegrationTests.Config.class })
+public class AggregationRestTemplateIntegrationTests extends AggregationIntegrationTests {
@Configuration
- @Import({ ElasticsearchTemplateConfiguration.class })
+ @Import({ ElasticsearchRestTemplateConfiguration.class })
@EnableElasticsearchRepositories(considerNestedRepositories = true)
static class Config {}
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/cluster/ClusterOperationsIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/cluster/ClusterOperationsIntegrationTests.java
index 673109223..44fbc317a 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/cluster/ClusterOperationsIntegrationTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/cluster/ClusterOperationsIntegrationTests.java
@@ -25,16 +25,13 @@
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
-import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { ElasticsearchRestTemplateConfiguration.class })
-public class ClusterOperationsIntegrationTests {
+public abstract class ClusterOperationsIntegrationTests {
@Autowired private ElasticsearchOperations operations;
private ClusterOperations clusterOperations;
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/cluster/ReactiveClusterOperationsIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/cluster/ClusterOperationsReactiveTemplateIntegrationTests.java
similarity index 96%
rename from src/test/java/org/springframework/data/elasticsearch/core/cluster/ReactiveClusterOperationsIntegrationTests.java
rename to src/test/java/org/springframework/data/elasticsearch/core/cluster/ClusterOperationsReactiveTemplateIntegrationTests.java
index 4ff7b89fc..be0d74bc9 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/cluster/ReactiveClusterOperationsIntegrationTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/cluster/ClusterOperationsReactiveTemplateIntegrationTests.java
@@ -36,7 +36,7 @@
*/
@SpringIntegrationTest
@ContextConfiguration(classes = { ReactiveElasticsearchRestTemplateConfiguration.class })
-public class ReactiveClusterOperationsIntegrationTests {
+public class ClusterOperationsReactiveTemplateIntegrationTests {
@Autowired private ReactiveElasticsearchOperations operations;
private ReactiveClusterOperations clusterOperations;
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/cluster/ClusterOperationsTransportIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/cluster/ClusterOperationsRestTemplateIntegrationTests.java
similarity index 79%
rename from src/test/java/org/springframework/data/elasticsearch/core/cluster/ClusterOperationsTransportIntegrationTests.java
rename to src/test/java/org/springframework/data/elasticsearch/core/cluster/ClusterOperationsRestTemplateIntegrationTests.java
index 7219eeaa5..64a73e97c 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/cluster/ClusterOperationsTransportIntegrationTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/cluster/ClusterOperationsRestTemplateIntegrationTests.java
@@ -15,11 +15,11 @@
*/
package org.springframework.data.elasticsearch.core.cluster;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { ElasticsearchTemplateConfiguration.class })
-public class ClusterOperationsTransportIntegrationTests extends ClusterOperationsIntegrationTests {}
+@ContextConfiguration(classes = { ElasticsearchRestTemplateConfiguration.class })
+public class ClusterOperationsRestTemplateIntegrationTests extends ClusterOperationsIntegrationTests {}
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/event/ElasticsearchOperationsCallbackIntegrationTest.java b/src/test/java/org/springframework/data/elasticsearch/core/event/ElasticsearchOperationsCallbackIntegrationTests.java
similarity index 97%
rename from src/test/java/org/springframework/data/elasticsearch/core/event/ElasticsearchOperationsCallbackIntegrationTest.java
rename to src/test/java/org/springframework/data/elasticsearch/core/event/ElasticsearchOperationsCallbackIntegrationTests.java
index 6020d29e9..488807e32 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/event/ElasticsearchOperationsCallbackIntegrationTest.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/event/ElasticsearchOperationsCallbackIntegrationTests.java
@@ -48,7 +48,7 @@
* @author Roman Puchkovskiy
*/
@SpringIntegrationTest
-abstract class ElasticsearchOperationsCallbackIntegrationTest {
+abstract class ElasticsearchOperationsCallbackIntegrationTests {
private static final String INDEX = "test-operations-callback";
@Autowired private ElasticsearchOperations originalOperations;
@@ -219,9 +219,8 @@ static class SampleEntity {
@Nullable @Id private String id;
@Nullable private String text;
- @Nullable @JoinTypeRelations(relations = { @JoinTypeRelation(parent = "question",
- children = { "answer" }) })
- private JoinField joinField;
+ @Nullable @JoinTypeRelations(relations = {
+ @JoinTypeRelation(parent = "question", children = { "answer" }) }) private JoinField joinField;
@Nullable private SeqNoPrimaryTerm seqNoPrimaryTerm;
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/event/ElasticsearchRestOperationsCallbackIntegrationTest.java b/src/test/java/org/springframework/data/elasticsearch/core/event/ElasticsearchRestTemplateCallbackIntegrationTests.java
similarity index 84%
rename from src/test/java/org/springframework/data/elasticsearch/core/event/ElasticsearchRestOperationsCallbackIntegrationTest.java
rename to src/test/java/org/springframework/data/elasticsearch/core/event/ElasticsearchRestTemplateCallbackIntegrationTests.java
index 9bd2e20a9..c1c4821a6 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/event/ElasticsearchRestOperationsCallbackIntegrationTest.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/event/ElasticsearchRestTemplateCallbackIntegrationTests.java
@@ -22,5 +22,5 @@
* @author Peter-Josef Meisch
*/
@ContextConfiguration(classes = { ElasticsearchRestTemplateConfiguration.class,
- ElasticsearchOperationsCallbackIntegrationTest.Config.class })
-class ElasticsearchRestOperationsCallbackIntegrationTest extends ElasticsearchOperationsCallbackIntegrationTest {}
+ ElasticsearchOperationsCallbackIntegrationTests.Config.class })
+class ElasticsearchRestTemplateCallbackIntegrationTests extends ElasticsearchOperationsCallbackIntegrationTests {}
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/event/ElasticsearchTransportOperationsCallbackIntegrationTest.java b/src/test/java/org/springframework/data/elasticsearch/core/event/ElasticsearchTransportOperationsCallbackIntegrationTest.java
deleted file mode 100644
index dc53b6b8a..000000000
--- a/src/test/java/org/springframework/data/elasticsearch/core/event/ElasticsearchTransportOperationsCallbackIntegrationTest.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright 2020-2021 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.springframework.data.elasticsearch.core.event;
-
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
-import org.springframework.test.context.ContextConfiguration;
-
-/**
- * @author Peter-Josef Meisch
- */
-@ContextConfiguration(classes = { ElasticsearchTemplateConfiguration.class, ElasticsearchOperationsCallbackIntegrationTest.Config.class })
-class ElasticsearchTransportOperationsCallbackIntegrationTest extends ElasticsearchOperationsCallbackIntegrationTest {}
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/geo/ElasticsearchTemplateGeoTests.java b/src/test/java/org/springframework/data/elasticsearch/core/geo/GeoIntegrationTests.java
similarity index 97%
rename from src/test/java/org/springframework/data/elasticsearch/core/geo/ElasticsearchTemplateGeoTests.java
rename to src/test/java/org/springframework/data/elasticsearch/core/geo/GeoIntegrationTests.java
index 0c20dbc67..55383caf1 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/geo/ElasticsearchTemplateGeoTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/geo/GeoIntegrationTests.java
@@ -26,11 +26,10 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.GeoPointField;
+import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.SearchHit;
import org.springframework.data.elasticsearch.core.SearchHits;
@@ -38,13 +37,10 @@
import org.springframework.data.elasticsearch.core.query.Criteria;
import org.springframework.data.elasticsearch.core.query.CriteriaQuery;
import org.springframework.data.elasticsearch.core.query.IndexQuery;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
import org.springframework.data.elasticsearch.utils.IndexInitializer;
import org.springframework.data.geo.Point;
import org.springframework.lang.Nullable;
-import org.springframework.test.context.ContextConfiguration;
/**
* @author Rizwan Idrees
@@ -58,12 +54,7 @@
* Latitude , max Longitude , max Latitude
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { ElasticsearchTemplateGeoTests.Config.class })
-public class ElasticsearchTemplateGeoTests {
-
- @Configuration
- @Import({ ElasticsearchRestTemplateConfiguration.class })
- static class Config {}
+public abstract class GeoIntegrationTests {
private final IndexCoordinates locationMarkerIndex = IndexCoordinates.of("test-index-location-marker-core-geo");
private final IndexCoordinates authorMarkerIndex = IndexCoordinates.of("test-index-author-marker-core-geo");
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/geo/GeoJsonIntegrationTest.java b/src/test/java/org/springframework/data/elasticsearch/core/geo/GeoJsonIntegrationTests.java
similarity index 94%
rename from src/test/java/org/springframework/data/elasticsearch/core/geo/GeoJsonIntegrationTest.java
rename to src/test/java/org/springframework/data/elasticsearch/core/geo/GeoJsonIntegrationTests.java
index faf75ed9c..7b4162ff1 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/geo/GeoJsonIntegrationTest.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/geo/GeoJsonIntegrationTests.java
@@ -32,19 +32,15 @@
import org.springframework.data.elasticsearch.core.SearchHits;
import org.springframework.data.elasticsearch.core.query.Criteria;
import org.springframework.data.elasticsearch.core.query.CriteriaQuery;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
import org.springframework.data.geo.Point;
import org.springframework.lang.Nullable;
-import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { ElasticsearchRestTemplateConfiguration.class })
-@DisplayName("GeoJson integration test with REST client")
-class GeoJsonIntegrationTest {
+abstract class GeoJsonIntegrationTests {
@Autowired private ElasticsearchOperations operations;
@@ -82,7 +78,7 @@ class GeoJsonIntegrationTest {
new Point(40, 40), //
new Point(30, 40), //
new Point(30, 30));
- private final Area area30To40 = new Area("area30To40",geoShape30To40);
+ private final Area area30To40 = new Area("area30To40", geoShape30To40);
private final GeoJsonPolygon geoShape32To37 = GeoJsonPolygon.of( //
new Point(32, 32), //
@@ -90,7 +86,7 @@ class GeoJsonIntegrationTest {
new Point(37, 37), //
new Point(32, 37), //
new Point(32, 32));
- private final Area area32To37 = new Area("area32To37",geoShape30To40);
+ private final Area area32To37 = new Area("area32To37", geoShape30To40);
// endregion
// region setup
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/geo/GeoJsonTransportIntegrationTest.java b/src/test/java/org/springframework/data/elasticsearch/core/geo/GeoJsonRestTemplateIntegrationTests.java
similarity index 71%
rename from src/test/java/org/springframework/data/elasticsearch/core/geo/GeoJsonTransportIntegrationTest.java
rename to src/test/java/org/springframework/data/elasticsearch/core/geo/GeoJsonRestTemplateIntegrationTests.java
index b42f4882d..7f2896229 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/geo/GeoJsonTransportIntegrationTest.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/geo/GeoJsonRestTemplateIntegrationTests.java
@@ -16,14 +16,12 @@
package org.springframework.data.elasticsearch.core.geo;
import org.junit.jupiter.api.DisplayName;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
-import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
-@SpringIntegrationTest
-@ContextConfiguration(classes = { ElasticsearchTemplateConfiguration.class })
-@DisplayName("GeoJson integration test with transport client")
-public class GeoJsonTransportIntegrationTest extends GeoJsonIntegrationTest {}
+@ContextConfiguration(classes = { ElasticsearchRestTemplateConfiguration.class })
+@DisplayName("GeoJson integration test with REST client")
+public class GeoJsonRestTemplateIntegrationTests extends GeoJsonIntegrationTests {}
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/geo/ElasticsearchTemplateGeoTransportTests.java b/src/test/java/org/springframework/data/elasticsearch/core/geo/GeoRestTemplateIntegrationTests.java
similarity index 81%
rename from src/test/java/org/springframework/data/elasticsearch/core/geo/ElasticsearchTemplateGeoTransportTests.java
rename to src/test/java/org/springframework/data/elasticsearch/core/geo/GeoRestTemplateIntegrationTests.java
index 3b684fa49..13f66e470 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/geo/ElasticsearchTemplateGeoTransportTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/geo/GeoRestTemplateIntegrationTests.java
@@ -17,17 +17,17 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { ElasticsearchTemplateGeoTransportTests.Config.class })
-public class ElasticsearchTemplateGeoTransportTests extends ElasticsearchTemplateGeoTests {
+@ContextConfiguration(classes = { GeoRestTemplateIntegrationTests.Config.class })
+public class GeoRestTemplateIntegrationTests extends GeoIntegrationTests {
@Configuration
- @Import({ ElasticsearchTemplateConfiguration.class })
+ @Import({ ElasticsearchRestTemplateConfiguration.class })
@EnableElasticsearchRepositories(considerNestedRepositories = true)
static class Config {}
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/index/IndexOperationIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/index/IndexOperationIntegrationTests.java
index e5e284a3b..959e78936 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/index/IndexOperationIntegrationTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/index/IndexOperationIntegrationTests.java
@@ -32,17 +32,14 @@
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.IndexInformation;
import org.springframework.data.elasticsearch.core.IndexOperations;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
import org.springframework.lang.Nullable;
-import org.springframework.test.context.ContextConfiguration;
/**
* @author George Popides
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { ElasticsearchRestTemplateConfiguration.class })
-public class IndexOperationIntegrationTests {
+public abstract class IndexOperationIntegrationTests {
public static final String INDEX_NAME = "test-index-information-list";
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/index/IndexOperationTransportIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/index/IndexOperationRestTemplateIntegrationTests.java
similarity index 50%
rename from src/test/java/org/springframework/data/elasticsearch/core/index/IndexOperationTransportIntegrationTests.java
rename to src/test/java/org/springframework/data/elasticsearch/core/index/IndexOperationRestTemplateIntegrationTests.java
index abc29a689..164521507 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/index/IndexOperationTransportIntegrationTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/index/IndexOperationRestTemplateIntegrationTests.java
@@ -1,10 +1,10 @@
package org.springframework.data.elasticsearch.core.index;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.test.context.ContextConfiguration;
/**
* @author George Popides
*/
-@ContextConfiguration(classes = { ElasticsearchTemplateConfiguration.class })
-public class IndexOperationTransportIntegrationTests extends IndexOperationIntegrationTests {}
+@ContextConfiguration(classes = { ElasticsearchRestTemplateConfiguration.class })
+public class IndexOperationRestTemplateIntegrationTests extends IndexOperationIntegrationTests {}
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/index/TemplateTests.java b/src/test/java/org/springframework/data/elasticsearch/core/index/IndexTemplateIntegrationTests.java
similarity index 96%
rename from src/test/java/org/springframework/data/elasticsearch/core/index/TemplateTests.java
rename to src/test/java/org/springframework/data/elasticsearch/core/index/IndexTemplateIntegrationTests.java
index 1cec28730..e4a533927 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/index/TemplateTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/index/IndexTemplateIntegrationTests.java
@@ -32,17 +32,14 @@
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.IndexOperations;
import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
import org.springframework.lang.Nullable;
-import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { ElasticsearchRestTemplateConfiguration.class })
-public class TemplateTests {
+public abstract class IndexTemplateIntegrationTests {
@Autowired ElasticsearchOperations operations;
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/index/TemplateTransportTests.java b/src/test/java/org/springframework/data/elasticsearch/core/index/IndexTemplateRestTemplateIntegrationTests.java
similarity index 79%
rename from src/test/java/org/springframework/data/elasticsearch/core/index/TemplateTransportTests.java
rename to src/test/java/org/springframework/data/elasticsearch/core/index/IndexTemplateRestTemplateIntegrationTests.java
index b279c1fa6..843462a49 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/index/TemplateTransportTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/index/IndexTemplateRestTemplateIntegrationTests.java
@@ -15,11 +15,11 @@
*/
package org.springframework.data.elasticsearch.core.index;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { ElasticsearchTemplateConfiguration.class })
-public class TemplateTransportTests extends TemplateTests {}
+@ContextConfiguration(classes = { ElasticsearchRestTemplateConfiguration.class })
+public class IndexTemplateRestTemplateIntegrationTests extends IndexTemplateIntegrationTests {}
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/mapping/FieldNamingStrategyIntegrationTest.java b/src/test/java/org/springframework/data/elasticsearch/core/mapping/FieldNamingStrategyIntegrationTests.java
similarity index 72%
rename from src/test/java/org/springframework/data/elasticsearch/core/mapping/FieldNamingStrategyIntegrationTest.java
rename to src/test/java/org/springframework/data/elasticsearch/core/mapping/FieldNamingStrategyIntegrationTests.java
index 7e8e374d0..04faa1c7e 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/mapping/FieldNamingStrategyIntegrationTest.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/mapping/FieldNamingStrategyIntegrationTests.java
@@ -18,55 +18,30 @@
import static org.assertj.core.api.Assertions.*;
import static org.elasticsearch.index.query.QueryBuilders.*;
-import org.elasticsearch.client.RestHighLevelClient;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;
+import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.IndexOperations;
import org.springframework.data.elasticsearch.core.SearchHits;
-import org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
import org.springframework.data.elasticsearch.core.query.Query;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
-import org.springframework.data.mapping.model.FieldNamingStrategy;
-import org.springframework.data.mapping.model.SnakeCaseFieldNamingStrategy;
import org.springframework.lang.Nullable;
-import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { FieldNamingStrategyIntegrationTest.Config.class })
-public class FieldNamingStrategyIntegrationTest {
+public abstract class FieldNamingStrategyIntegrationTests {
@Autowired private ElasticsearchOperations operations;
- @Configuration
- static class Config extends ElasticsearchRestTemplateConfiguration {
-
- @Override
- @Bean
- public ElasticsearchOperations elasticsearchOperations(ElasticsearchConverter elasticsearchConverter,
- RestHighLevelClient elasticsearchClient) {
- return super.elasticsearchOperations(elasticsearchConverter, elasticsearchClient);
- }
-
- @Override
- protected FieldNamingStrategy fieldNamingStrategy() {
- return new SnakeCaseFieldNamingStrategy();
- }
- }
-
@BeforeEach
void setUp() {
IndexOperations indexOps = this.operations.indexOps(Entity.class);
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/mapping/FieldNamingStrategyIntegrationReactiveTest.java b/src/test/java/org/springframework/data/elasticsearch/core/mapping/FieldNamingStrategyReactiveTemplateIntegrationTests.java
similarity index 95%
rename from src/test/java/org/springframework/data/elasticsearch/core/mapping/FieldNamingStrategyIntegrationReactiveTest.java
rename to src/test/java/org/springframework/data/elasticsearch/core/mapping/FieldNamingStrategyReactiveTemplateIntegrationTests.java
index 79efa8f3f..2f43f0bda 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/mapping/FieldNamingStrategyIntegrationReactiveTest.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/mapping/FieldNamingStrategyReactiveTemplateIntegrationTests.java
@@ -28,9 +28,9 @@
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;
+import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
import org.springframework.data.elasticsearch.core.ReactiveElasticsearchOperations;
import org.springframework.data.elasticsearch.core.ReactiveIndexOperations;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
import org.springframework.data.elasticsearch.core.query.Query;
import org.springframework.data.elasticsearch.junit.jupiter.ReactiveElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
@@ -43,8 +43,8 @@
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { FieldNamingStrategyIntegrationReactiveTest.Config.class })
-public class FieldNamingStrategyIntegrationReactiveTest {
+@ContextConfiguration(classes = { FieldNamingStrategyReactiveTemplateIntegrationTests.Config.class })
+public class FieldNamingStrategyReactiveTemplateIntegrationTests {
@Autowired private ReactiveElasticsearchOperations operations;
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/mapping/FieldNamingStrategyIntegrationTemplateTest.java b/src/test/java/org/springframework/data/elasticsearch/core/mapping/FieldNamingStrategyRestTemplateIntegrationTests.java
similarity index 58%
rename from src/test/java/org/springframework/data/elasticsearch/core/mapping/FieldNamingStrategyIntegrationTemplateTest.java
rename to src/test/java/org/springframework/data/elasticsearch/core/mapping/FieldNamingStrategyRestTemplateIntegrationTests.java
index 4fcae45f6..069bd6a27 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/mapping/FieldNamingStrategyIntegrationTemplateTest.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/mapping/FieldNamingStrategyRestTemplateIntegrationTests.java
@@ -15,8 +15,12 @@
*/
package org.springframework.data.elasticsearch.core.mapping;
+import org.elasticsearch.client.RestHighLevelClient;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
+import org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.mapping.model.FieldNamingStrategy;
import org.springframework.data.mapping.model.SnakeCaseFieldNamingStrategy;
import org.springframework.test.context.ContextConfiguration;
@@ -24,16 +28,22 @@
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { FieldNamingStrategyIntegrationTemplateTest.Config.class })
-public class FieldNamingStrategyIntegrationTemplateTest extends FieldNamingStrategyIntegrationTest {
+@ContextConfiguration(classes = { FieldNamingStrategyRestTemplateIntegrationTests.Config.class })
+public class FieldNamingStrategyRestTemplateIntegrationTests extends FieldNamingStrategyIntegrationTests {
@Configuration
- static class Config extends ElasticsearchTemplateConfiguration {
+ static class Config extends ElasticsearchRestTemplateConfiguration {
+
+ @Override
+ @Bean
+ public ElasticsearchOperations elasticsearchOperations(ElasticsearchConverter elasticsearchConverter,
+ RestHighLevelClient elasticsearchClient) {
+ return super.elasticsearchOperations(elasticsearchConverter, elasticsearchClient);
+ }
@Override
protected FieldNamingStrategy fieldNamingStrategy() {
return new SnakeCaseFieldNamingStrategy();
}
}
-
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/paginating/SearchAfterIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/paginating/SearchAfterIntegrationTests.java
index 8894954a2..20cb554ed 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/paginating/SearchAfterIntegrationTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/paginating/SearchAfterIntegrationTests.java
@@ -34,17 +34,14 @@
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.SearchHits;
import org.springframework.data.elasticsearch.core.query.Query;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
import org.springframework.lang.Nullable;
-import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { ElasticsearchRestTemplateConfiguration.class })
-public class SearchAfterIntegrationTests {
+public abstract class SearchAfterIntegrationTests {
@Autowired private ElasticsearchOperations operations;
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/paginating/SearchAfterTransportIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/paginating/SearchAfterRestTemplateIntegrationTests.java
similarity index 80%
rename from src/test/java/org/springframework/data/elasticsearch/core/paginating/SearchAfterTransportIntegrationTests.java
rename to src/test/java/org/springframework/data/elasticsearch/core/paginating/SearchAfterRestTemplateIntegrationTests.java
index 86c311147..cb7f39df2 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/paginating/SearchAfterTransportIntegrationTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/paginating/SearchAfterRestTemplateIntegrationTests.java
@@ -15,11 +15,11 @@
*/
package org.springframework.data.elasticsearch.core.paginating;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { ElasticsearchTemplateConfiguration.class })
-public class SearchAfterTransportIntegrationTests extends SearchAfterIntegrationTests {}
+@ContextConfiguration(classes = { ElasticsearchRestTemplateConfiguration.class })
+public class SearchAfterRestTemplateIntegrationTests extends SearchAfterIntegrationTests {}
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/query/CriteriaQueryIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/query/CriteriaQueryIntegrationTests.java
index 9c88b9fff..53bded1c2 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/query/CriteriaQueryIntegrationTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/query/CriteriaQueryIntegrationTests.java
@@ -28,9 +28,6 @@
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Version;
import org.springframework.data.elasticsearch.annotations.Document;
@@ -39,11 +36,9 @@
import org.springframework.data.elasticsearch.core.SearchHit;
import org.springframework.data.elasticsearch.core.SearchHits;
import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
import org.springframework.data.elasticsearch.utils.IndexNameProvider;
import org.springframework.lang.Nullable;
-import org.springframework.test.context.ContextConfiguration;
/**
* @author Rizwan Idrees
@@ -52,17 +47,7 @@
* @author James Bodkin
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { CriteriaQueryIntegrationTests.Config.class })
-public class CriteriaQueryIntegrationTests {
-
- @Configuration
- @Import({ ElasticsearchRestTemplateConfiguration.class })
- static class Config {
- @Bean
- IndexNameProvider indexNameProvider() {
- return new IndexNameProvider();
- }
- }
+public abstract class CriteriaQueryIntegrationTests {
@Autowired private ElasticsearchOperations operations;
@Autowired private IndexNameProvider indexNameProvider;
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/RuntimeFieldsTransportTemplateIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/query/CriteriaQueryRestTemplateIntegrationTests.java
similarity index 70%
rename from src/test/java/org/springframework/data/elasticsearch/core/RuntimeFieldsTransportTemplateIntegrationTests.java
rename to src/test/java/org/springframework/data/elasticsearch/core/query/CriteriaQueryRestTemplateIntegrationTests.java
index b4a49de73..114d93d09 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/RuntimeFieldsTransportTemplateIntegrationTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/query/CriteriaQueryRestTemplateIntegrationTests.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2021 the original author or authors.
+ * Copyright 2019-2021 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,27 +13,27 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.data.elasticsearch.core;
+package org.springframework.data.elasticsearch.core.query;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.utils.IndexNameProvider;
import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { RuntimeFieldsTransportTemplateIntegrationTests.Config.class })
-public class RuntimeFieldsTransportTemplateIntegrationTests extends RuntimeFieldsIntegrationTests {
+@ContextConfiguration(classes = { CriteriaQueryRestTemplateIntegrationTests.Config.class })
+public class CriteriaQueryRestTemplateIntegrationTests extends CriteriaQueryIntegrationTests {
@Configuration
- @Import({ ElasticsearchTemplateConfiguration.class })
+ @Import({ ElasticsearchRestTemplateConfiguration.class })
static class Config {
@Bean
IndexNameProvider indexNameProvider() {
- return new IndexNameProvider("runtime-fields-transport-template");
+ return new IndexNameProvider();
}
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/routing/ReactiveElasticsearchOperationsRoutingTests.java b/src/test/java/org/springframework/data/elasticsearch/core/routing/ReactiveElasticsearchOperationsRoutingTests.java
index f6f445543..11e60d53a 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/routing/ReactiveElasticsearchOperationsRoutingTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/routing/ReactiveElasticsearchOperationsRoutingTests.java
@@ -59,7 +59,7 @@ static void beforeAll() {
// check that the used id values go to different shards of the index which is configured to have 5 shards.
// Elasticsearch uses the following function:
Function calcShard = routing -> Math
- .floorMod(ElasticsearchOperationsRoutingTests.Murmur3HashFunction.hash(routing), 5);
+ .floorMod(RoutingIntegrationTests.Murmur3HashFunction.hash(routing), 5);
Integer shard1 = calcShard.apply(ID_1);
Integer shard2 = calcShard.apply(ID_2);
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/routing/ElasticsearchOperationsRoutingTests.java b/src/test/java/org/springframework/data/elasticsearch/core/routing/RoutingIntegrationTests.java
similarity index 96%
rename from src/test/java/org/springframework/data/elasticsearch/core/routing/ElasticsearchOperationsRoutingTests.java
rename to src/test/java/org/springframework/data/elasticsearch/core/routing/RoutingIntegrationTests.java
index 4427b2603..39b76cfdd 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/routing/ElasticsearchOperationsRoutingTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/routing/RoutingIntegrationTests.java
@@ -38,10 +38,8 @@
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;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
import org.springframework.lang.Nullable;
-import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
@@ -49,8 +47,7 @@
*/
@SuppressWarnings("ConstantConditions")
@SpringIntegrationTest
-@ContextConfiguration(classes = { ElasticsearchRestTemplateConfiguration.class })
-public class ElasticsearchOperationsRoutingTests {
+public abstract class RoutingIntegrationTests {
private static final String INDEX = "routing-test";
private static final String ID_0 = "id0";
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/routing/ElasticsearchOperationsRoutingTransportTests.java b/src/test/java/org/springframework/data/elasticsearch/core/routing/RoutingRestTemplateIntegrationTests.java
similarity index 79%
rename from src/test/java/org/springframework/data/elasticsearch/core/routing/ElasticsearchOperationsRoutingTransportTests.java
rename to src/test/java/org/springframework/data/elasticsearch/core/routing/RoutingRestTemplateIntegrationTests.java
index 3aff5b332..726f108e6 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/routing/ElasticsearchOperationsRoutingTransportTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/routing/RoutingRestTemplateIntegrationTests.java
@@ -15,11 +15,11 @@
*/
package org.springframework.data.elasticsearch.core.routing;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { ElasticsearchTemplateConfiguration.class })
-public class ElasticsearchOperationsRoutingTransportTests extends ElasticsearchOperationsRoutingTests {}
+@ContextConfiguration(classes = { ElasticsearchRestTemplateConfiguration.class })
+public class RoutingRestTemplateIntegrationTests extends RoutingIntegrationTests {}
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/suggest/ElasticsearchTemplateCompletionTests.java b/src/test/java/org/springframework/data/elasticsearch/core/suggest/CompletionIntegrationTests.java
similarity index 96%
rename from src/test/java/org/springframework/data/elasticsearch/core/suggest/ElasticsearchTemplateCompletionTests.java
rename to src/test/java/org/springframework/data/elasticsearch/core/suggest/CompletionIntegrationTests.java
index f6d824963..cb7ff177c 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/suggest/ElasticsearchTemplateCompletionTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/suggest/CompletionIntegrationTests.java
@@ -27,24 +27,20 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.CompletionField;
import org.springframework.data.elasticsearch.annotations.Document;
+import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQuery;
+import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.SearchHits;
import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
import org.springframework.data.elasticsearch.core.query.IndexQuery;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQuery;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
import org.springframework.data.elasticsearch.core.suggest.response.CompletionSuggestion;
import org.springframework.data.elasticsearch.core.suggest.response.Suggest;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
import org.springframework.data.elasticsearch.utils.IndexInitializer;
import org.springframework.lang.Nullable;
-import org.springframework.test.context.ContextConfiguration;
/**
* @author Rizwan Idrees
@@ -55,12 +51,7 @@
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { ElasticsearchTemplateCompletionTests.Config.class })
-public class ElasticsearchTemplateCompletionTests {
-
- @Configuration
- @Import({ ElasticsearchRestTemplateConfiguration.class })
- static class Config {}
+public abstract class CompletionIntegrationTests {
@Autowired private ElasticsearchOperations operations;
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/suggest/ElasticsearchTemplateCompletionTransportTests.java b/src/test/java/org/springframework/data/elasticsearch/core/suggest/CompletionRestTemplateIntegrationTests.java
similarity index 80%
rename from src/test/java/org/springframework/data/elasticsearch/core/suggest/ElasticsearchTemplateCompletionTransportTests.java
rename to src/test/java/org/springframework/data/elasticsearch/core/suggest/CompletionRestTemplateIntegrationTests.java
index 4bacd5757..acbd64c38 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/suggest/ElasticsearchTemplateCompletionTransportTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/suggest/CompletionRestTemplateIntegrationTests.java
@@ -17,17 +17,17 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { ElasticsearchTemplateCompletionTransportTests.Config.class })
-public class ElasticsearchTemplateCompletionTransportTests extends ElasticsearchTemplateCompletionTests {
+@ContextConfiguration(classes = { CompletionRestTemplateIntegrationTests.Config.class })
+public class CompletionRestTemplateIntegrationTests extends CompletionIntegrationTests {
@Configuration
- @Import({ ElasticsearchTemplateConfiguration.class })
+ @Import({ ElasticsearchRestTemplateConfiguration.class })
@EnableElasticsearchRepositories(considerNestedRepositories = true)
static class Config {}
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/suggest/ElasticsearchTemplateCompletionWithContextsTests.java b/src/test/java/org/springframework/data/elasticsearch/core/suggest/CompletionWithContextsIntegrationTests.java
similarity index 95%
rename from src/test/java/org/springframework/data/elasticsearch/core/suggest/ElasticsearchTemplateCompletionWithContextsTests.java
rename to src/test/java/org/springframework/data/elasticsearch/core/suggest/CompletionWithContextsIntegrationTests.java
index 9a1df3a50..e918343de 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/suggest/ElasticsearchTemplateCompletionWithContextsTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/suggest/CompletionWithContextsIntegrationTests.java
@@ -36,8 +36,6 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.CompletionContext;
import org.springframework.data.elasticsearch.annotations.CompletionField;
@@ -47,23 +45,16 @@
import org.springframework.data.elasticsearch.core.IndexOperations;
import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
import org.springframework.data.elasticsearch.core.query.IndexQuery;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
import org.springframework.data.elasticsearch.utils.IndexInitializer;
import org.springframework.lang.Nullable;
-import org.springframework.test.context.ContextConfiguration;
/**
* @author Robert Gruendler
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { ElasticsearchTemplateCompletionWithContextsTests.Config.class })
-public class ElasticsearchTemplateCompletionWithContextsTests {
-
- @Configuration
- @Import({ ElasticsearchRestTemplateConfiguration.class })
- static class Config {}
+public abstract class CompletionWithContextsIntegrationTests {
@Autowired private ElasticsearchOperations operations;
private IndexOperations indexOperations;
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/suggest/ElasticsearchTemplateCompletionWithContextsTransportTests.java b/src/test/java/org/springframework/data/elasticsearch/core/suggest/CompletionWithContextsRestTemplateIntegrationTests.java
similarity index 67%
rename from src/test/java/org/springframework/data/elasticsearch/core/suggest/ElasticsearchTemplateCompletionWithContextsTransportTests.java
rename to src/test/java/org/springframework/data/elasticsearch/core/suggest/CompletionWithContextsRestTemplateIntegrationTests.java
index b6f64baf2..24b9b1cc4 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/suggest/ElasticsearchTemplateCompletionWithContextsTransportTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/suggest/CompletionWithContextsRestTemplateIntegrationTests.java
@@ -17,18 +17,15 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
-import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { ElasticsearchTemplateCompletionWithContextsTransportTests.Config.class })
-public class ElasticsearchTemplateCompletionWithContextsTransportTests
- extends ElasticsearchTemplateCompletionWithContextsTests {
+@ContextConfiguration(classes = { CompletionWithContextsRestTemplateIntegrationTests.Config.class })
+public class CompletionWithContextsRestTemplateIntegrationTests extends CompletionWithContextsIntegrationTests {
@Configuration
- @Import({ ElasticsearchTemplateConfiguration.class })
- @EnableElasticsearchRepositories(considerNestedRepositories = true)
+ @Import({ ElasticsearchRestTemplateConfiguration.class })
static class Config {}
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/suggest/ReactiveElasticsearchTemplateSuggestIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/suggest/SuggestReactiveTemplateIntegrationTests.java
similarity index 95%
rename from src/test/java/org/springframework/data/elasticsearch/core/suggest/ReactiveElasticsearchTemplateSuggestIntegrationTests.java
rename to src/test/java/org/springframework/data/elasticsearch/core/suggest/SuggestReactiveTemplateIntegrationTests.java
index 665b0edb3..d3defd1d2 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/suggest/ReactiveElasticsearchTemplateSuggestIntegrationTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/core/suggest/SuggestReactiveTemplateIntegrationTests.java
@@ -36,11 +36,11 @@
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.CompletionField;
import org.springframework.data.elasticsearch.annotations.Document;
+import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQuery;
+import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
import org.springframework.data.elasticsearch.core.ReactiveElasticsearchOperations;
import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
import org.springframework.data.elasticsearch.core.query.IndexQuery;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQuery;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
import org.springframework.data.elasticsearch.core.suggest.response.CompletionSuggestion;
import org.springframework.data.elasticsearch.core.suggest.response.Suggest;
import org.springframework.data.elasticsearch.junit.jupiter.ReactiveElasticsearchRestTemplateConfiguration;
@@ -53,7 +53,7 @@
*/
@SuppressWarnings("SpringJavaAutowiredMembersInspection")
@SpringIntegrationTest
-public class ReactiveElasticsearchTemplateSuggestIntegrationTests {
+public class SuggestReactiveTemplateIntegrationTests {
@Configuration
@Import({ ReactiveElasticsearchRestTemplateConfiguration.class })
static class Config {
@@ -100,7 +100,7 @@ void shouldFindSuggestionsForGivenPrefixCompletion() {
assertThat(suggestion).isNotNull();
assertThat(suggestion).isInstanceOf(CompletionSuggestion.class);
// noinspection unchecked
- List> options = ((CompletionSuggestion) suggestion)
+ List> options = ((CompletionSuggestion) suggestion)
.getEntries().get(0).getOptions();
assertThat(options).hasSize(2);
assertThat(options.get(0).getText()).isIn("Marchand", "Mohsin");
diff --git a/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ClusterConnection.java b/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ClusterConnection.java
index 5f16814a3..9d055ea92 100644
--- a/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ClusterConnection.java
+++ b/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ClusterConnection.java
@@ -43,7 +43,6 @@ public class ClusterConnection implements ExtensionContext.Store.CloseableResour
private static final String SDE_TESTCONTAINER_IMAGE_NAME = "sde.testcontainers.image-name";
private static final String SDE_TESTCONTAINER_IMAGE_VERSION = "sde.testcontainers.image-version";
private static final int ELASTICSEARCH_DEFAULT_PORT = 9200;
- private static final int ELASTICSEARCH_DEFAULT_TRANSPORT_PORT = 9300;
private static final ThreadLocal clusterConnectionInfoThreadLocal = new ThreadLocal<>();
@@ -102,7 +101,6 @@ private ClusterConnectionInfo startElasticsearchContainer() {
.withIntegrationtestEnvironment(integrationtestEnvironment)
.withHostAndPort(elasticsearchContainer.getHost(),
elasticsearchContainer.getMappedPort(ELASTICSEARCH_DEFAULT_PORT)) //
- .withTransportPort(elasticsearchContainer.getMappedPort(ELASTICSEARCH_DEFAULT_TRANSPORT_PORT)) //
.withElasticsearchContainer(elasticsearchContainer) //
.build();
} catch (Exception e) {
diff --git a/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ClusterConnectionInfo.java b/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ClusterConnectionInfo.java
index 307e5e033..82f76c23f 100644
--- a/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ClusterConnectionInfo.java
+++ b/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ClusterConnectionInfo.java
@@ -33,7 +33,6 @@ public final class ClusterConnectionInfo {
private final boolean useSsl;
private final String host;
private final int httpPort;
- private final int transportPort;
private final String clusterName;
@Nullable private final ElasticsearchContainer elasticsearchContainer;
@@ -42,12 +41,11 @@ public static Builder builder() {
}
private ClusterConnectionInfo(IntegrationtestEnvironment integrationtestEnvironment, String host, int httpPort,
- boolean useSsl, int transportPort, @Nullable ElasticsearchContainer elasticsearchContainer) {
+ boolean useSsl, @Nullable ElasticsearchContainer elasticsearchContainer) {
this.integrationtestEnvironment = integrationtestEnvironment;
this.host = host;
this.httpPort = httpPort;
this.useSsl = useSsl;
- this.transportPort = transportPort;
this.elasticsearchContainer = elasticsearchContainer;
this.clusterName = "docker-cluster";
}
@@ -59,7 +57,6 @@ public String toString() {
", useSsl=" + useSsl + //
", host='" + host + '\'' + //
", httpPort=" + httpPort + //
- ", transportPort=" + transportPort + //
'}'; //
}
@@ -71,10 +68,6 @@ public int getHttpPort() {
return httpPort;
}
- public int getTransportPort() {
- return transportPort;
- }
-
public String getClusterName() {
return clusterName;
}
@@ -93,7 +86,6 @@ public static class Builder {
private boolean useSsl = false;
private String host;
private int httpPort;
- private int transportPort;
@Nullable private ElasticsearchContainer elasticsearchContainer;
public Builder withIntegrationtestEnvironment(IntegrationtestEnvironment integrationtestEnvironment) {
@@ -115,19 +107,13 @@ public Builder useSsl(boolean useSsl) {
return this;
}
- public Builder withTransportPort(int transportPort) {
- this.transportPort = transportPort;
- return this;
- }
-
public Builder withElasticsearchContainer(ElasticsearchContainer elasticsearchContainer) {
this.elasticsearchContainer = elasticsearchContainer;
return this;
}
public ClusterConnectionInfo build() {
- return new ClusterConnectionInfo(integrationtestEnvironment, host, httpPort, useSsl, transportPort,
- elasticsearchContainer);
+ return new ClusterConnectionInfo(integrationtestEnvironment, host, httpPort, useSsl, elasticsearchContainer);
}
}
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ElasticsearchTemplateConfiguration.java b/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ElasticsearchTemplateConfiguration.java
deleted file mode 100644
index 6cb6f2caf..000000000
--- a/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ElasticsearchTemplateConfiguration.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright 2019-2021 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.springframework.data.elasticsearch.junit.jupiter;
-
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-
-import org.elasticsearch.client.Client;
-import org.elasticsearch.client.transport.TransportClient;
-import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.common.transport.TransportAddress;
-import org.elasticsearch.transport.client.PreBuiltTransportClient;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.ElasticsearchTemplate;
-import org.springframework.data.elasticsearch.config.ElasticsearchConfigurationSupport;
-import org.springframework.data.elasticsearch.core.RefreshPolicy;
-import org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter;
-
-/**
- * Configuration for Spring Data Elasticsearch using {@link ElasticsearchTemplate}.
- *
- * @author Peter-Josef Meisch
- */
-@Configuration
-public class ElasticsearchTemplateConfiguration extends ElasticsearchConfigurationSupport {
-
- @Bean
- public Client elasticsearchClient(ClusterConnectionInfo clusterConnectionInfo) throws UnknownHostException {
-
- Settings settings = Settings.builder().put("cluster.name", clusterConnectionInfo.getClusterName()).build();
- TransportClient client = new PreBuiltTransportClient(settings);
- client.addTransportAddress(new TransportAddress(InetAddress.getByName(clusterConnectionInfo.getHost()),
- clusterConnectionInfo.getTransportPort()));
-
- return client;
- }
-
- @Bean(name = { "elasticsearchOperations", "elasticsearchTemplate" })
- public ElasticsearchTemplate elasticsearchTemplate(Client elasticsearchClient,
- ElasticsearchConverter elasticsearchConverter) {
-
- ElasticsearchTemplate template = new ElasticsearchTemplate(elasticsearchClient, elasticsearchConverter);
- template.setRefreshPolicy(refreshPolicy());
-
- return template;
- }
-
- @Override
- protected RefreshPolicy refreshPolicy() {
- return RefreshPolicy.IMMEDIATE;
- }
-}
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/autowiring/ComplexCustomMethodRepositoryTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/autowiring/ComplexCustomMethodRepositoryIntegrationTests.java
similarity index 77%
rename from src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/autowiring/ComplexCustomMethodRepositoryTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/autowiring/ComplexCustomMethodRepositoryIntegrationTests.java
index acb2fe57e..e8ded0863 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/autowiring/ComplexCustomMethodRepositoryTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/autowiring/ComplexCustomMethodRepositoryIntegrationTests.java
@@ -22,20 +22,14 @@
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
-import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.data.elasticsearch.utils.IndexNameProvider;
import org.springframework.lang.Nullable;
-import org.springframework.test.context.ContextConfiguration;
/**
* @author Artur Konczak
@@ -43,18 +37,7 @@
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { ComplexCustomMethodRepositoryTests.Config.class })
-public class ComplexCustomMethodRepositoryTests {
-
- @Configuration
- @Import({ ElasticsearchRestTemplateConfiguration.class })
- @EnableElasticsearchRepositories(considerNestedRepositories = true)
- static class Config {
- @Bean
- IndexNameProvider indexNameProvider() {
- return new IndexNameProvider("complex-custom-method");
- }
- }
+public abstract class ComplexCustomMethodRepositoryIntegrationTests {
@Autowired private ComplexElasticsearchRepository complexRepository;
@Autowired ElasticsearchOperations operations;
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/autowiring/ComplexCustomMethodRepositoryTransportTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/autowiring/ComplexCustomMethodRepositoryRestTemplateIntegrationTests.java
similarity index 81%
rename from src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/autowiring/ComplexCustomMethodRepositoryTransportTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/autowiring/ComplexCustomMethodRepositoryRestTemplateIntegrationTests.java
index 2ce12567e..2f3d4eb77 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/autowiring/ComplexCustomMethodRepositoryTransportTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/autowiring/ComplexCustomMethodRepositoryRestTemplateIntegrationTests.java
@@ -18,7 +18,7 @@
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.data.elasticsearch.utils.IndexNameProvider;
import org.springframework.test.context.ContextConfiguration;
@@ -26,10 +26,11 @@
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { ComplexCustomMethodRepositoryTransportTests.Config.class })
-public class ComplexCustomMethodRepositoryTransportTests extends ComplexCustomMethodRepositoryTests {
+@ContextConfiguration(classes = { ComplexCustomMethodRepositoryRestTemplateIntegrationTests.Config.class })
+public class ComplexCustomMethodRepositoryRestTemplateIntegrationTests
+ extends ComplexCustomMethodRepositoryIntegrationTests {
@Configuration
- @Import({ ElasticsearchTemplateConfiguration.class })
+ @Import({ ElasticsearchRestTemplateConfiguration.class })
@EnableElasticsearchRepositories(considerNestedRepositories = true)
static class Config {
@Bean
@@ -37,4 +38,5 @@ IndexNameProvider indexNameProvider() {
return new IndexNameProvider("complex-custom-method");
}
}
+
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/autowiring/ComplexElasticsearchRepository.java b/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/autowiring/ComplexElasticsearchRepository.java
index 1fbda48e8..5231796fb 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/autowiring/ComplexElasticsearchRepository.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/autowiring/ComplexElasticsearchRepository.java
@@ -21,7 +21,7 @@
* @author Artur Konczak
*/
public interface ComplexElasticsearchRepository
- extends ElasticsearchRepository,
+ extends ElasticsearchRepository,
ComplexElasticsearchRepositoryCustom {
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/manualwiring/ComplexCustomMethodRepositoryManualWiringTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/manualwiring/ComplexCustomMethodRepositoryManualWiringIntegrationTests.java
similarity index 77%
rename from src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/manualwiring/ComplexCustomMethodRepositoryManualWiringTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/manualwiring/ComplexCustomMethodRepositoryManualWiringIntegrationTests.java
index 7837d79d0..5be007b97 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/manualwiring/ComplexCustomMethodRepositoryManualWiringTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/manualwiring/ComplexCustomMethodRepositoryManualWiringIntegrationTests.java
@@ -22,38 +22,21 @@
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
-import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.data.elasticsearch.utils.IndexNameProvider;
import org.springframework.lang.Nullable;
-import org.springframework.test.context.ContextConfiguration;
/**
* @author Artur Konczak
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { ComplexCustomMethodRepositoryManualWiringTests.Config.class })
-public class ComplexCustomMethodRepositoryManualWiringTests {
-
- @Configuration
- @Import({ ElasticsearchRestTemplateConfiguration.class })
- @EnableElasticsearchRepositories(considerNestedRepositories = true)
- static class Config {
- @Bean
- IndexNameProvider indexNameProvider() {
- return new IndexNameProvider("complex-custom-method");
- }
- }
+public abstract class ComplexCustomMethodRepositoryManualWiringIntegrationTests {
@Autowired private ComplexElasticsearchRepositoryManualWiring complexRepository;
@Autowired ElasticsearchOperations operations;
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/manualwiring/ComplexCustomMethodRepositoryManualWiringTransportTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/manualwiring/ComplexCustomMethodRepositoryManualWiringRestTemplateIntegrationTests.java
similarity index 83%
rename from src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/manualwiring/ComplexCustomMethodRepositoryManualWiringTransportTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/manualwiring/ComplexCustomMethodRepositoryManualWiringRestTemplateIntegrationTests.java
index 7eb99bae6..9425d51a6 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/manualwiring/ComplexCustomMethodRepositoryManualWiringTransportTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/manualwiring/ComplexCustomMethodRepositoryManualWiringRestTemplateIntegrationTests.java
@@ -18,7 +18,7 @@
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.data.elasticsearch.utils.IndexNameProvider;
import org.springframework.test.context.ContextConfiguration;
@@ -26,11 +26,12 @@
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { ComplexCustomMethodRepositoryManualWiringTransportTests.Config.class })
-public class ComplexCustomMethodRepositoryManualWiringTransportTests
- extends ComplexCustomMethodRepositoryManualWiringTests {
+@ContextConfiguration(classes = { ComplexCustomMethodRepositoryManualWiringRestTemplateIntegrationTests.Config.class })
+public class ComplexCustomMethodRepositoryManualWiringRestTemplateIntegrationTests
+ extends ComplexCustomMethodRepositoryManualWiringIntegrationTests {
+
@Configuration
- @Import({ ElasticsearchTemplateConfiguration.class })
+ @Import({ ElasticsearchRestTemplateConfiguration.class })
@EnableElasticsearchRepositories(considerNestedRepositories = true)
static class Config {
@Bean
@@ -38,4 +39,5 @@ IndexNameProvider indexNameProvider() {
return new IndexNameProvider("complex-custom-method");
}
}
+
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/manualwiring/ComplexElasticsearchRepositoryManualWiring.java b/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/manualwiring/ComplexElasticsearchRepositoryManualWiring.java
index 9bdaad5c9..b3afd5a89 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/manualwiring/ComplexElasticsearchRepositoryManualWiring.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/manualwiring/ComplexElasticsearchRepositoryManualWiring.java
@@ -22,7 +22,7 @@
* @author Artur Konczak
*/
public interface ComplexElasticsearchRepositoryManualWiring
- extends ElasticsearchRepository,
+ extends ElasticsearchRepository,
ComplexElasticsearchRepositoryCustom {
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/custommethod/CustomMethodRepositoryBaseTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/custommethod/CustomMethodRepositoryIntegrationTests.java
similarity index 99%
rename from src/test/java/org/springframework/data/elasticsearch/repositories/custommethod/CustomMethodRepositoryBaseTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repositories/custommethod/CustomMethodRepositoryIntegrationTests.java
index 7e7eb35b0..0e5269698 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/custommethod/CustomMethodRepositoryBaseTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/custommethod/CustomMethodRepositoryIntegrationTests.java
@@ -73,7 +73,7 @@
* @author Rasmus Faber-Espensen
*/
@SpringIntegrationTest
-public abstract class CustomMethodRepositoryBaseTests {
+public abstract class CustomMethodRepositoryIntegrationTests {
@Autowired private IndexNameProvider indexNameProvider;
@Autowired private SampleCustomMethodRepository repository;
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/custommethod/CustomMethodRepositoryRestTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/custommethod/CustomMethodRepositoryRestTemplateIntegrationTests.java
similarity index 88%
rename from src/test/java/org/springframework/data/elasticsearch/repositories/custommethod/CustomMethodRepositoryRestTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repositories/custommethod/CustomMethodRepositoryRestTemplateIntegrationTests.java
index 891579868..d990e49d0 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/custommethod/CustomMethodRepositoryRestTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/custommethod/CustomMethodRepositoryRestTemplateIntegrationTests.java
@@ -28,8 +28,8 @@
* @author Mark Paluch
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { CustomMethodRepositoryRestTests.Config.class })
-public class CustomMethodRepositoryRestTests extends CustomMethodRepositoryBaseTests {
+@ContextConfiguration(classes = { CustomMethodRepositoryRestTemplateIntegrationTests.Config.class })
+public class CustomMethodRepositoryRestTemplateIntegrationTests extends CustomMethodRepositoryIntegrationTests {
@Configuration
@Import({ ElasticsearchRestTemplateConfiguration.class })
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/custommethod/CustomMethodRepositoryTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/custommethod/CustomMethodRepositoryTests.java
deleted file mode 100644
index 30bdd1b54..000000000
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/custommethod/CustomMethodRepositoryTests.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright 2018-2021 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.springframework.data.elasticsearch.repositories.custommethod;
-
-import org.junit.jupiter.api.Disabled;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
-import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
-import org.springframework.data.elasticsearch.utils.IndexNameProvider;
-import org.springframework.test.context.ContextConfiguration;
-
-/**
- * @author Don Wellington
- * @author Mark Paluch
- * @author Peter-Josef Meisch
- */
-@ContextConfiguration(classes = { CustomMethodRepositoryTests.Config.class })
-public class CustomMethodRepositoryTests extends CustomMethodRepositoryBaseTests {
-
- @Configuration
- @Import({ ElasticsearchTemplateConfiguration.class })
- @EnableElasticsearchRepositories(
- basePackages = { "org.springframework.data.elasticsearch.repositories.custommethod" },
- considerNestedRepositories = true)
- static class Config {
- @Bean
- IndexNameProvider indexNameProvider() {
- return new IndexNameProvider("custom-method-repository");
- }
- }
-
- @Disabled("this test crashes the transport client connection in some dockerized test container setup")
- @Override
- public void streamMethodsShouldWorkWithLargeResultSets() {
- }
-}
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/doubleid/DoubleIDRepositoryTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/doubleid/DoubleIDRepositoryIntegrationTests.java
similarity index 84%
rename from src/test/java/org/springframework/data/elasticsearch/repositories/doubleid/DoubleIDRepositoryTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repositories/doubleid/DoubleIDRepositoryIntegrationTests.java
index d234f1a81..9a5e3a52c 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/doubleid/DoubleIDRepositoryTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/doubleid/DoubleIDRepositoryIntegrationTests.java
@@ -25,20 +25,14 @@
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Version;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
-import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.data.elasticsearch.utils.IndexNameProvider;
-import org.springframework.test.context.ContextConfiguration;
/**
* @author Rizwan Idrees
@@ -48,18 +42,7 @@
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { DoubleIDRepositoryTests.Config.class })
-public class DoubleIDRepositoryTests {
-
- @Configuration
- @Import({ ElasticsearchRestTemplateConfiguration.class })
- @EnableElasticsearchRepositories(considerNestedRepositories = true)
- static class Config {
- @Bean
- IndexNameProvider indexNameProvider() {
- return new IndexNameProvider();
- }
- }
+public abstract class DoubleIDRepositoryIntegrationTests {
@Autowired private DoubleIDRepository repository;
diff --git a/src/test/java/org/springframework/data/elasticsearch/core/query/CriteriaQueryTransportIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/doubleid/DoubleIDRepositoryRestTemplateIntegrationTests.java
similarity index 76%
rename from src/test/java/org/springframework/data/elasticsearch/core/query/CriteriaQueryTransportIntegrationTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repositories/doubleid/DoubleIDRepositoryRestTemplateIntegrationTests.java
index 561a2fe90..8eea689e7 100644
--- a/src/test/java/org/springframework/data/elasticsearch/core/query/CriteriaQueryTransportIntegrationTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/doubleid/DoubleIDRepositoryRestTemplateIntegrationTests.java
@@ -13,12 +13,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.data.elasticsearch.core.query;
+package org.springframework.data.elasticsearch.repositories.doubleid;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.data.elasticsearch.utils.IndexNameProvider;
import org.springframework.test.context.ContextConfiguration;
@@ -26,16 +26,15 @@
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { CriteriaQueryTransportIntegrationTests.Config.class })
-public class CriteriaQueryTransportIntegrationTests extends CriteriaQueryIntegrationTests {
+@ContextConfiguration(classes = { DoubleIDRepositoryRestTemplateIntegrationTests.Config.class })
+public class DoubleIDRepositoryRestTemplateIntegrationTests extends DoubleIDRepositoryIntegrationTests {
@Configuration
- @Import({ ElasticsearchTemplateConfiguration.class })
+ @Import({ ElasticsearchRestTemplateConfiguration.class })
@EnableElasticsearchRepositories(considerNestedRepositories = true)
static class Config {
@Bean
IndexNameProvider indexNameProvider() {
- return new IndexNameProvider("criteria-query");
+ return new IndexNameProvider();
}
-
}
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/doubleid/DoubleIDRepositoryTransportTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/doubleid/DoubleIDRepositoryTransportTests.java
deleted file mode 100644
index 2d2156cf6..000000000
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/doubleid/DoubleIDRepositoryTransportTests.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2019-2021 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.springframework.data.elasticsearch.repositories.doubleid;
-
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
-import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
-import org.springframework.test.context.ContextConfiguration;
-
-/**
- * @author Peter-Josef Meisch
- */
-@ContextConfiguration(classes = { DoubleIDRepositoryTransportTests.Config.class })
-public class DoubleIDRepositoryTransportTests extends DoubleIDRepositoryTests {
- @Configuration
- @Import({ ElasticsearchTemplateConfiguration.class })
- @EnableElasticsearchRepositories(considerNestedRepositories = true)
- static class Config {}
-}
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/dynamicindex/DynamicIndexEntityTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/dynamicindex/DynamicIndexEntityIntegrationTests.java
similarity index 81%
rename from src/test/java/org/springframework/data/elasticsearch/repositories/dynamicindex/DynamicIndexEntityTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repositories/dynamicindex/DynamicIndexEntityIntegrationTests.java
index cf57871ba..9ff006405 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/dynamicindex/DynamicIndexEntityTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/dynamicindex/DynamicIndexEntityIntegrationTests.java
@@ -21,40 +21,23 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.IndexOperations;
import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
-import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
-import org.springframework.test.context.ContextConfiguration;
/**
- * DynamicIndexEntityTests
+ * DynamicIndexEntityIntegrationTests
*
* @author Sylvain Laurent
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { DynamicIndexEntityTests.Config.class })
-public class DynamicIndexEntityTests {
-
- @Configuration
- @Import({ ElasticsearchRestTemplateConfiguration.class })
- @EnableElasticsearchRepositories(considerNestedRepositories = true)
- static class Config {
- @Bean
- public IndexNameProvider indexNameProvider() {
- return new IndexNameProvider();
- }
- }
+public abstract class DynamicIndexEntityIntegrationTests {
@Autowired private DynamicIndexRepository repository;
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/dynamicindex/DynamicIndexEntityTransportTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/dynamicindex/DynamicIndexEntityRestTemplateIntegrationTests.java
similarity index 71%
rename from src/test/java/org/springframework/data/elasticsearch/repositories/dynamicindex/DynamicIndexEntityTransportTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repositories/dynamicindex/DynamicIndexEntityRestTemplateIntegrationTests.java
index 474292070..636e341bb 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/dynamicindex/DynamicIndexEntityTransportTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/dynamicindex/DynamicIndexEntityRestTemplateIntegrationTests.java
@@ -15,20 +15,27 @@
*/
package org.springframework.data.elasticsearch.repositories.dynamicindex;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { DynamicIndexEntityTransportTests.Config.class })
+@ContextConfiguration(classes = { DynamicIndexEntityRestTemplateIntegrationTests.Config.class })
-public class DynamicIndexEntityTransportTests extends DynamicIndexEntityTests {
+public class DynamicIndexEntityRestTemplateIntegrationTests extends DynamicIndexEntityIntegrationTests {
@Configuration
- @Import({ ElasticsearchTemplateConfiguration.class })
+ @Import({ ElasticsearchRestTemplateConfiguration.class })
@EnableElasticsearchRepositories(considerNestedRepositories = true)
- static class Config {}
+ static class Config {
+ @Bean
+ public IndexNameProvider indexNameProvider() {
+ return new IndexNameProvider();
+ }
+ }
+
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/geo/SpringDataGeoRepositoryTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/geo/GeoRepositoryIntegrationTests.java
similarity index 88%
rename from src/test/java/org/springframework/data/elasticsearch/repositories/geo/SpringDataGeoRepositoryTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repositories/geo/GeoRepositoryIntegrationTests.java
index 5f7fcd1a2..125486899 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/geo/SpringDataGeoRepositoryTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/geo/GeoRepositoryIntegrationTests.java
@@ -24,25 +24,20 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.GeoPointField;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.IndexOperations;
import org.springframework.data.elasticsearch.core.geo.GeoPoint;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
-import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.data.elasticsearch.utils.IndexInitializer;
import org.springframework.data.geo.Box;
import org.springframework.data.geo.Circle;
import org.springframework.data.geo.Point;
import org.springframework.data.geo.Polygon;
import org.springframework.lang.Nullable;
-import org.springframework.test.context.ContextConfiguration;
/**
* @author Mark Paluch
@@ -50,13 +45,7 @@
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { SpringDataGeoRepositoryTests.Config.class })
-public class SpringDataGeoRepositoryTests {
-
- @Configuration
- @Import({ ElasticsearchRestTemplateConfiguration.class })
- @EnableElasticsearchRepositories(considerNestedRepositories = true)
- static class Config {}
+public abstract class GeoRepositoryIntegrationTests {
@Autowired ElasticsearchOperations operations;
private IndexOperations indexOperations;
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/geo/SpringDataGeoRepositoryTransportTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/geo/GeoRepositoryRestTemplateIntegrationTests.java
similarity index 80%
rename from src/test/java/org/springframework/data/elasticsearch/repositories/geo/SpringDataGeoRepositoryTransportTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repositories/geo/GeoRepositoryRestTemplateIntegrationTests.java
index a9b1ea287..5b4fea102 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/geo/SpringDataGeoRepositoryTransportTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/geo/GeoRepositoryRestTemplateIntegrationTests.java
@@ -17,17 +17,17 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { SpringDataGeoRepositoryTransportTests.Config.class })
-public class SpringDataGeoRepositoryTransportTests extends SpringDataGeoRepositoryTests {
+@ContextConfiguration(classes = { GeoRepositoryRestTemplateIntegrationTests.Config.class })
+public class GeoRepositoryRestTemplateIntegrationTests extends GeoRepositoryIntegrationTests {
@Configuration
- @Import({ ElasticsearchTemplateConfiguration.class })
+ @Import({ ElasticsearchRestTemplateConfiguration.class })
@EnableElasticsearchRepositories(considerNestedRepositories = true)
static class Config {}
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/integer/IntegerIDRepositoryTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/integer/IntegerIDRepositoryIntegrationTests.java
similarity index 86%
rename from src/test/java/org/springframework/data/elasticsearch/repositories/integer/IntegerIDRepositoryTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repositories/integer/IntegerIDRepositoryIntegrationTests.java
index ff1a0a923..203faf26f 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/integer/IntegerIDRepositoryTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/integer/IntegerIDRepositoryIntegrationTests.java
@@ -25,19 +25,14 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Version;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.IndexOperations;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
-import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.data.elasticsearch.utils.IndexInitializer;
-import org.springframework.test.context.ContextConfiguration;
/**
* @author Rizwan Idrees
@@ -47,13 +42,7 @@
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { IntegerIDRepositoryTests.Config.class })
-public class IntegerIDRepositoryTests {
-
- @Configuration
- @Import({ ElasticsearchRestTemplateConfiguration.class })
- @EnableElasticsearchRepositories(considerNestedRepositories = true)
- static class Config {}
+public abstract class IntegerIDRepositoryIntegrationTests {
@Autowired private IntegerIDRepository repository;
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/integer/IntegerIDRepositoryTransportTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/integer/IntegerIDRepositoryRestTemplateIntegrationTests.java
similarity index 79%
rename from src/test/java/org/springframework/data/elasticsearch/repositories/integer/IntegerIDRepositoryTransportTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repositories/integer/IntegerIDRepositoryRestTemplateIntegrationTests.java
index e94719578..da7fc9d50 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/integer/IntegerIDRepositoryTransportTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/integer/IntegerIDRepositoryRestTemplateIntegrationTests.java
@@ -17,17 +17,18 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { IntegerIDRepositoryTransportTests.Config.class })
-public class IntegerIDRepositoryTransportTests extends IntegerIDRepositoryTests {
+@ContextConfiguration(classes = { IntegerIDRepositoryRestTemplateIntegrationTests.Config.class })
+public class IntegerIDRepositoryRestTemplateIntegrationTests extends IntegerIDRepositoryIntegrationTests {
@Configuration
- @Import({ ElasticsearchTemplateConfiguration.class })
+ @Import({ ElasticsearchRestTemplateConfiguration.class })
@EnableElasticsearchRepositories(considerNestedRepositories = true)
static class Config {}
+
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/nestedobject/InnerObjectTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/nestedobject/InnerObjectIntegrationTests.java
similarity index 87%
rename from src/test/java/org/springframework/data/elasticsearch/repositories/nestedobject/InnerObjectTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repositories/nestedobject/InnerObjectIntegrationTests.java
index 2740f99e5..ba2af5cf6 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/nestedobject/InnerObjectTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/nestedobject/InnerObjectIntegrationTests.java
@@ -27,8 +27,6 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
@@ -37,13 +35,10 @@
import org.springframework.data.elasticsearch.annotations.MultiField;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.IndexOperations;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
-import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.data.elasticsearch.utils.IndexInitializer;
import org.springframework.lang.Nullable;
-import org.springframework.test.context.ContextConfiguration;
/**
* @author Mohsin Husen
@@ -51,13 +46,7 @@
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { InnerObjectTests.Config.class })
-public class InnerObjectTests {
-
- @Configuration
- @Import({ ElasticsearchRestTemplateConfiguration.class })
- @EnableElasticsearchRepositories(considerNestedRepositories = true)
- static class Config {}
+public abstract class InnerObjectIntegrationTests {
@Autowired private SampleElasticSearchBookRepository bookRepository;
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/nestedobject/InnerObjectTransportTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/nestedobject/InnerObjectRestTemplateIntegrationTests.java
similarity index 81%
rename from src/test/java/org/springframework/data/elasticsearch/repositories/nestedobject/InnerObjectTransportTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repositories/nestedobject/InnerObjectRestTemplateIntegrationTests.java
index 41739f181..992ea161a 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/nestedobject/InnerObjectTransportTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/nestedobject/InnerObjectRestTemplateIntegrationTests.java
@@ -17,17 +17,18 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { InnerObjectTransportTests.Config.class })
-public class InnerObjectTransportTests extends InnerObjectTests {
+@ContextConfiguration(classes = { InnerObjectRestTemplateIntegrationTests.Config.class })
+public class InnerObjectRestTemplateIntegrationTests extends InnerObjectIntegrationTests {
@Configuration
- @Import({ ElasticsearchTemplateConfiguration.class })
+ @Import({ ElasticsearchRestTemplateConfiguration.class })
@EnableElasticsearchRepositories(considerNestedRepositories = true)
static class Config {}
+
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/setting/dynamic/DynamicSettingAndMappingEntityRepositoryTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/setting/dynamic/DynamicSettingAndMappingEntityRepositoryIntegrationTests.java
similarity index 89%
rename from src/test/java/org/springframework/data/elasticsearch/repositories/setting/dynamic/DynamicSettingAndMappingEntityRepositoryTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repositories/setting/dynamic/DynamicSettingAndMappingEntityRepositoryIntegrationTests.java
index 4952bae34..bea06f43f 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/setting/dynamic/DynamicSettingAndMappingEntityRepositoryTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/setting/dynamic/DynamicSettingAndMappingEntityRepositoryIntegrationTests.java
@@ -25,9 +25,6 @@
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Mapping;
@@ -38,33 +35,19 @@
import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
import org.springframework.data.elasticsearch.core.query.Query;
import org.springframework.data.elasticsearch.core.query.StringQuery;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
-import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.data.elasticsearch.utils.IndexNameProvider;
-import org.springframework.test.context.ContextConfiguration;
/**
- * DynamicSettingAndMappingEntityRepositoryTests
+ * DynamicSettingAndMappingEntityRepositoryIntegrationTests
*
* @author Mohsin Husen
* @author Ilkang Na
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { DynamicSettingAndMappingEntityRepositoryTests.Config.class })
-public class DynamicSettingAndMappingEntityRepositoryTests {
-
- @Configuration
- @Import({ ElasticsearchRestTemplateConfiguration.class })
- @EnableElasticsearchRepositories(considerNestedRepositories = true)
- static class Config {
- @Bean
- IndexNameProvider indexNameProvider() {
- return new IndexNameProvider();
- }
- }
+public abstract class DynamicSettingAndMappingEntityRepositoryIntegrationTests {
@Autowired private ElasticsearchOperations operations;
private IndexOperations indexOperations;
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/setting/dynamic/DynamicSettingAndMappingEntityRepositoryTransportTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/setting/dynamic/DynamicSettingAndMappingEntityRepositoryRestTemplateIntegrationTests.java
similarity index 69%
rename from src/test/java/org/springframework/data/elasticsearch/repositories/setting/dynamic/DynamicSettingAndMappingEntityRepositoryTransportTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repositories/setting/dynamic/DynamicSettingAndMappingEntityRepositoryRestTemplateIntegrationTests.java
index e46becee2..6faa7e96e 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/setting/dynamic/DynamicSettingAndMappingEntityRepositoryTransportTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/setting/dynamic/DynamicSettingAndMappingEntityRepositoryRestTemplateIntegrationTests.java
@@ -15,20 +15,28 @@
*/
package org.springframework.data.elasticsearch.repositories.setting.dynamic;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
+import org.springframework.data.elasticsearch.utils.IndexNameProvider;
import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { DynamicSettingAndMappingEntityRepositoryTransportTests.Config.class })
-public class DynamicSettingAndMappingEntityRepositoryTransportTests
- extends DynamicSettingAndMappingEntityRepositoryTests {
+@ContextConfiguration(classes = { DynamicSettingAndMappingEntityRepositoryRestTemplateIntegrationTests.Config.class })
+public class DynamicSettingAndMappingEntityRepositoryRestTemplateIntegrationTests
+ extends DynamicSettingAndMappingEntityRepositoryIntegrationTests {
@Configuration
- @Import({ ElasticsearchTemplateConfiguration.class })
+ @Import({ ElasticsearchRestTemplateConfiguration.class })
@EnableElasticsearchRepositories(considerNestedRepositories = true)
- static class Config {}
+ static class Config {
+ @Bean
+ IndexNameProvider indexNameProvider() {
+ return new IndexNameProvider();
+ }
+ }
+
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/setting/fielddynamic/FieldDynamicMappingEntityRepositoryTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/setting/fielddynamic/FieldDynamicMappingEntityRepositoryIntegrationTests.java
similarity index 83%
rename from src/test/java/org/springframework/data/elasticsearch/repositories/setting/fielddynamic/FieldDynamicMappingEntityRepositoryTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repositories/setting/fielddynamic/FieldDynamicMappingEntityRepositoryIntegrationTests.java
index 9d5f99341..1fa76f0b0 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/setting/fielddynamic/FieldDynamicMappingEntityRepositoryTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/setting/fielddynamic/FieldDynamicMappingEntityRepositoryIntegrationTests.java
@@ -23,34 +23,23 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Mapping;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.IndexOperations;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
-import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.data.elasticsearch.utils.IndexInitializer;
-import org.springframework.test.context.ContextConfiguration;
/**
- * FieldDynamicMappingEntityRepositoryTests
+ * FieldDynamicMappingEntityRepositoryIntegrationTests
*
* @author Ted Liang
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { FieldDynamicMappingEntityRepositoryTests.Config.class })
-public class FieldDynamicMappingEntityRepositoryTests {
-
- @Configuration
- @Import({ ElasticsearchRestTemplateConfiguration.class })
- @EnableElasticsearchRepositories(considerNestedRepositories = true)
- static class Config {}
+public abstract class FieldDynamicMappingEntityRepositoryIntegrationTests {
@Autowired private ElasticsearchOperations operations;
private IndexOperations indexOperations;
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/setting/fielddynamic/FieldDynamicMappingEntityRepositoryTransportTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/setting/fielddynamic/FieldDynamicMappingEntityRepositoryRestTemplateIntegrationTests.java
similarity index 81%
rename from src/test/java/org/springframework/data/elasticsearch/repositories/setting/fielddynamic/FieldDynamicMappingEntityRepositoryTransportTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repositories/setting/fielddynamic/FieldDynamicMappingEntityRepositoryRestTemplateIntegrationTests.java
index 5aaab7412..7d93b03c5 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/setting/fielddynamic/FieldDynamicMappingEntityRepositoryTransportTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/setting/fielddynamic/FieldDynamicMappingEntityRepositoryRestTemplateIntegrationTests.java
@@ -17,17 +17,19 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { FieldDynamicMappingEntityRepositoryTransportTests.Config.class })
-public class FieldDynamicMappingEntityRepositoryTransportTests extends FieldDynamicMappingEntityRepositoryTests {
+@ContextConfiguration(classes = { FieldDynamicMappingEntityRepositoryRestTemplateIntegrationTests.Config.class })
+public class FieldDynamicMappingEntityRepositoryRestTemplateIntegrationTests
+ extends FieldDynamicMappingEntityRepositoryIntegrationTests {
@Configuration
- @Import({ ElasticsearchTemplateConfiguration.class })
+ @Import({ ElasticsearchRestTemplateConfiguration.class })
@EnableElasticsearchRepositories(considerNestedRepositories = true)
static class Config {}
+
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/spel/SpELEntityTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/spel/SpELEntityIntegrationTests.java
similarity index 81%
rename from src/test/java/org/springframework/data/elasticsearch/repositories/spel/SpELEntityTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repositories/spel/SpELEntityIntegrationTests.java
index 815f671a8..2f3d14adf 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/spel/SpELEntityTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/spel/SpELEntityIntegrationTests.java
@@ -21,19 +21,14 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.IndexOperations;
import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
-import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.data.elasticsearch.utils.IndexInitializer;
-import org.springframework.test.context.ContextConfiguration;
/**
* SpELEntityTest
@@ -42,13 +37,7 @@
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { SpELEntityTests.Config.class })
-public class SpELEntityTests {
-
- @Configuration
- @Import(ElasticsearchRestTemplateConfiguration.class)
- @EnableElasticsearchRepositories(considerNestedRepositories = true)
- static class Config {}
+public abstract class SpELEntityIntegrationTests {
@Autowired private SpELRepository repository;
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/spel/SpELEntityTransportTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/spel/SpELEntityRestTemplateIntegrationTests.java
similarity index 81%
rename from src/test/java/org/springframework/data/elasticsearch/repositories/spel/SpELEntityTransportTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repositories/spel/SpELEntityRestTemplateIntegrationTests.java
index 4ed2809c7..d344b6f8a 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/spel/SpELEntityTransportTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/spel/SpELEntityRestTemplateIntegrationTests.java
@@ -17,17 +17,18 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { SpELEntityTransportTests.Config.class })
-public class SpELEntityTransportTests extends SpELEntityTests {
+@ContextConfiguration(classes = { SpELEntityRestTemplateIntegrationTests.Config.class })
+public class SpELEntityRestTemplateIntegrationTests extends SpELEntityIntegrationTests {
@Configuration
- @Import({ ElasticsearchTemplateConfiguration.class })
+ @Import(ElasticsearchRestTemplateConfiguration.class)
@EnableElasticsearchRepositories(considerNestedRepositories = true)
static class Config {}
+
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/synonym/SynonymRepositoryTransportTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/synonym/SynonymRepositoryRestTemplateTests.java
similarity index 81%
rename from src/test/java/org/springframework/data/elasticsearch/repositories/synonym/SynonymRepositoryTransportTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repositories/synonym/SynonymRepositoryRestTemplateTests.java
index 2f4ddf32d..75fb6c081 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/synonym/SynonymRepositoryTransportTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/synonym/SynonymRepositoryRestTemplateTests.java
@@ -17,17 +17,17 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { SynonymRepositoryTransportTests.Config.class })
-public class SynonymRepositoryTransportTests extends SynonymRepositoryTests {
+@ContextConfiguration(classes = { SynonymRepositoryRestTemplateTests.Config.class })
+public class SynonymRepositoryRestTemplateTests extends SynonymRepositoryTests {
@Configuration
- @Import({ ElasticsearchTemplateConfiguration.class })
+ @Import({ ElasticsearchRestTemplateConfiguration.class })
@EnableElasticsearchRepositories(considerNestedRepositories = true)
static class Config {}
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/synonym/SynonymRepositoryTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/synonym/SynonymRepositoryTests.java
index b56e158df..482d60879 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/synonym/SynonymRepositoryTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/synonym/SynonymRepositoryTests.java
@@ -21,8 +21,6 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Mapping;
@@ -33,13 +31,10 @@
import org.springframework.data.elasticsearch.core.query.Criteria;
import org.springframework.data.elasticsearch.core.query.CriteriaQuery;
import org.springframework.data.elasticsearch.core.query.Query;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
-import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.data.elasticsearch.utils.IndexInitializer;
import org.springframework.lang.Nullable;
-import org.springframework.test.context.ContextConfiguration;
/**
* SynonymRepositoryTests
@@ -48,13 +43,7 @@
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { SynonymRepositoryTests.Config.class })
-public class SynonymRepositoryTests {
-
- @Configuration
- @Import({ ElasticsearchRestTemplateConfiguration.class })
- @EnableElasticsearchRepositories(considerNestedRepositories = true)
- static class Config {}
+public abstract class SynonymRepositoryTests {
@Autowired private SynonymRepository repository;
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/uuidkeyed/UUIDElasticsearchRepositoryTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/uuidkeyed/UUIDElasticsearchRepositoryIntegrationTests.java
similarity index 97%
rename from src/test/java/org/springframework/data/elasticsearch/repositories/uuidkeyed/UUIDElasticsearchRepositoryTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repositories/uuidkeyed/UUIDElasticsearchRepositoryIntegrationTests.java
index 416f4f691..43da11a5f 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/uuidkeyed/UUIDElasticsearchRepositoryTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/uuidkeyed/UUIDElasticsearchRepositoryIntegrationTests.java
@@ -28,8 +28,6 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Version;
import org.springframework.data.domain.Page;
@@ -40,18 +38,15 @@
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;
import org.springframework.data.elasticsearch.annotations.ScriptedField;
+import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQuery;
+import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.IndexOperations;
import org.springframework.data.elasticsearch.core.geo.GeoPoint;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQuery;
-import org.springframework.data.elasticsearch.backend.elasticsearch7.query.NativeSearchQueryBuilder;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
-import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.data.elasticsearch.utils.IndexInitializer;
import org.springframework.lang.Nullable;
-import org.springframework.test.context.ContextConfiguration;
/**
* @author Gad Akuka
@@ -63,13 +58,7 @@
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { UUIDElasticsearchRepositoryTests.Config.class })
-public class UUIDElasticsearchRepositoryTests {
-
- @Configuration
- @Import({ ElasticsearchRestTemplateConfiguration.class })
- @EnableElasticsearchRepositories(considerNestedRepositories = true)
- static class Config {}
+public abstract class UUIDElasticsearchRepositoryIntegrationTests {
@Autowired private SampleUUIDKeyedElasticsearchRepository repository;
diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/uuidkeyed/UUIDElasticsearchRepositoryTransportTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/uuidkeyed/UUIDElasticsearchRepositoryRestTemplateIntegrationTests.java
similarity index 78%
rename from src/test/java/org/springframework/data/elasticsearch/repositories/uuidkeyed/UUIDElasticsearchRepositoryTransportTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repositories/uuidkeyed/UUIDElasticsearchRepositoryRestTemplateIntegrationTests.java
index d538cffbe..327c79396 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repositories/uuidkeyed/UUIDElasticsearchRepositoryTransportTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repositories/uuidkeyed/UUIDElasticsearchRepositoryRestTemplateIntegrationTests.java
@@ -17,17 +17,19 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.test.context.ContextConfiguration;
/**
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { UUIDElasticsearchRepositoryTransportTests.Config.class })
-public class UUIDElasticsearchRepositoryTransportTests extends UUIDElasticsearchRepositoryTests {
+@ContextConfiguration(classes = { UUIDElasticsearchRepositoryRestTemplateIntegrationTests.Config.class })
+public class UUIDElasticsearchRepositoryRestTemplateIntegrationTests
+ extends UUIDElasticsearchRepositoryIntegrationTests {
@Configuration
- @Import({ ElasticsearchTemplateConfiguration.class })
+ @Import({ ElasticsearchRestTemplateConfiguration.class })
@EnableElasticsearchRepositories(considerNestedRepositories = true)
static class Config {}
+
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/repository/query/keywords/QueryKeywordsRepositoryTransportTests.java b/src/test/java/org/springframework/data/elasticsearch/repository/query/keywords/QueryKeywordsRepositoryRestTemplateTests.java
similarity index 82%
rename from src/test/java/org/springframework/data/elasticsearch/repository/query/keywords/QueryKeywordsRepositoryTransportTests.java
rename to src/test/java/org/springframework/data/elasticsearch/repository/query/keywords/QueryKeywordsRepositoryRestTemplateTests.java
index b844907dc..fad22982a 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repository/query/keywords/QueryKeywordsRepositoryTransportTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repository/query/keywords/QueryKeywordsRepositoryRestTemplateTests.java
@@ -17,7 +17,7 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
+import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.test.context.ContextConfiguration;
@@ -26,11 +26,11 @@
*
* @author Peter-Josef Meisch
*/
-@ContextConfiguration(classes = { QueryKeywordsRepositoryTransportTests.Config.class })
-public class QueryKeywordsRepositoryTransportTests extends QueryKeywordsTests {
+@ContextConfiguration(classes = { QueryKeywordsRepositoryRestTemplateTests.Config.class })
+public class QueryKeywordsRepositoryRestTemplateTests extends QueryKeywordsTests {
@Configuration
- @Import({ ElasticsearchTemplateConfiguration.class })
+ @Import({ ElasticsearchRestTemplateConfiguration.class })
@EnableElasticsearchRepositories(considerNestedRepositories = true)
static class Config {}
}
diff --git a/src/test/java/org/springframework/data/elasticsearch/repository/query/keywords/QueryKeywordsTests.java b/src/test/java/org/springframework/data/elasticsearch/repository/query/keywords/QueryKeywordsTests.java
index 7da426757..607e86523 100644
--- a/src/test/java/org/springframework/data/elasticsearch/repository/query/keywords/QueryKeywordsTests.java
+++ b/src/test/java/org/springframework/data/elasticsearch/repository/query/keywords/QueryKeywordsTests.java
@@ -27,8 +27,6 @@
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
@@ -36,13 +34,10 @@
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.IndexOperations;
import org.springframework.data.elasticsearch.core.SearchHits;
-import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
-import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.data.elasticsearch.utils.IndexInitializer;
import org.springframework.lang.Nullable;
-import org.springframework.test.context.ContextConfiguration;
/**
* base class for query keyword tests. Implemented by subclasses using ElasticsearchClient and ElasticsearchRestClient
@@ -53,13 +48,7 @@
* @author Peter-Josef Meisch
*/
@SpringIntegrationTest
-@ContextConfiguration(classes = { QueryKeywordsTests.Config.class })
-class QueryKeywordsTests {
-
- @Configuration
- @Import({ ElasticsearchRestTemplateConfiguration.class })
- @EnableElasticsearchRepositories(considerNestedRepositories = true)
- static class Config {}
+abstract class QueryKeywordsTests {
@Autowired private ProductRepository repository;
diff --git a/src/test/resources/org/springframework/data/elasticsearch/config/namespace/namespace.xml b/src/test/resources/org/springframework/data/elasticsearch/config/namespace/namespace.xml
index 2a0e84954..cf721c1fa 100644
--- a/src/test/resources/org/springframework/data/elasticsearch/config/namespace/namespace.xml
+++ b/src/test/resources/org/springframework/data/elasticsearch/config/namespace/namespace.xml
@@ -6,12 +6,10 @@
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd">
-
+ class="org.springframework.data.elasticsearch.backend.elasticsearch7.ElasticsearchRestTemplate">
+
-
-