diff --git a/src/main/asciidoc/reference/reactive-elasticsearch-operations.adoc b/src/main/asciidoc/reference/reactive-elasticsearch-operations.adoc index 4f9554bd3..98e1f4b5b 100644 --- a/src/main/asciidoc/reference/reactive-elasticsearch-operations.adoc +++ b/src/main/asciidoc/reference/reactive-elasticsearch-operations.adoc @@ -82,7 +82,7 @@ Consider the following: ==== [source,java] ---- -@Document(indexName = "marvel", type = "characters") +@Document(indexName = "marvel") public class Person { private @Id String id; diff --git a/src/main/java/org/springframework/data/elasticsearch/annotations/IndexPrefixes.java b/src/main/java/org/springframework/data/elasticsearch/annotations/IndexPrefixes.java index 30f7d13b5..1ad56153e 100644 --- a/src/main/java/org/springframework/data/elasticsearch/annotations/IndexPrefixes.java +++ b/src/main/java/org/springframework/data/elasticsearch/annotations/IndexPrefixes.java @@ -20,8 +20,8 @@ package org.springframework.data.elasticsearch.annotations; * @since 4.0 */ public @interface IndexPrefixes { - static final int MIN_DEFAULT = 2; - static final int MAX_DEFAULT = 2; + int MIN_DEFAULT = 2; + int MAX_DEFAULT = 2; int minChars() default MIN_DEFAULT; diff --git a/src/main/java/org/springframework/data/elasticsearch/client/ClusterNodes.java b/src/main/java/org/springframework/data/elasticsearch/client/ClusterNodes.java index f6acd0358..5621c5715 100644 --- a/src/main/java/org/springframework/data/elasticsearch/client/ClusterNodes.java +++ b/src/main/java/org/springframework/data/elasticsearch/client/ClusterNodes.java @@ -66,7 +66,7 @@ class ClusterNodes implements Streamable { 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.valueOf(port)); + return new TransportAddress(toInetAddress(host), Integer.parseInt(port)); }).collect(Collectors.toList()); } diff --git a/src/main/java/org/springframework/data/elasticsearch/client/ElasticsearchHost.java b/src/main/java/org/springframework/data/elasticsearch/client/ElasticsearchHost.java index 27f7174e9..852bb2663 100644 --- a/src/main/java/org/springframework/data/elasticsearch/client/ElasticsearchHost.java +++ b/src/main/java/org/springframework/data/elasticsearch/client/ElasticsearchHost.java @@ -104,7 +104,7 @@ public class ElasticsearchHost { @Override public String toString() { - return "ElasticsearchHost(" + endpoint + ", " + state.name() + ")"; + return "ElasticsearchHost(" + endpoint + ", " + state.name() + ')'; } public enum State { diff --git a/src/main/java/org/springframework/data/elasticsearch/client/NodeClientFactoryBean.java b/src/main/java/org/springframework/data/elasticsearch/client/NodeClientFactoryBean.java index 465d60e8e..4a313a1ce 100644 --- a/src/main/java/org/springframework/data/elasticsearch/client/NodeClientFactoryBean.java +++ b/src/main/java/org/springframework/data/elasticsearch/client/NodeClientFactoryBean.java @@ -81,7 +81,7 @@ public class NodeClientFactoryBean implements FactoryBean, InitializingB } @Override - public NodeClient getObject() throws Exception { + public NodeClient getObject() { return nodeClient; } @@ -148,7 +148,7 @@ public class NodeClientFactoryBean implements FactoryBean, InitializingB } @Override - public void destroy() throws Exception { + public void destroy() { try { // NodeClient.close() is a noop, no need to call it here nodeClient = null; diff --git a/src/main/java/org/springframework/data/elasticsearch/client/RestClientFactoryBean.java b/src/main/java/org/springframework/data/elasticsearch/client/RestClientFactoryBean.java index 1b0264893..a26a2b6d4 100644 --- a/src/main/java/org/springframework/data/elasticsearch/client/RestClientFactoryBean.java +++ b/src/main/java/org/springframework/data/elasticsearch/client/RestClientFactoryBean.java @@ -41,7 +41,7 @@ public class RestClientFactoryBean implements FactoryBean, static final String COMMA = ","; @Override - public void destroy() throws Exception { + public void destroy() { try { log.info("Closing elasticSearch client"); if (client != null) { @@ -58,7 +58,7 @@ public class RestClientFactoryBean implements FactoryBean, } @Override - public RestHighLevelClient getObject() throws Exception { + public RestHighLevelClient getObject() { return client; } @@ -75,7 +75,7 @@ public class RestClientFactoryBean implements FactoryBean, protected void buildClient() throws Exception { Assert.hasText(hosts, "[Assertion Failed] At least one host must be set."); - ArrayList httpHosts = new ArrayList(); + ArrayList httpHosts = new ArrayList<>(); for (String host : hosts.split(COMMA)) { URL hostUrl = new URL(host); httpHosts.add(new HttpHost(hostUrl.getHost(), hostUrl.getPort(), hostUrl.getProtocol())); diff --git a/src/main/java/org/springframework/data/elasticsearch/client/TransportClientFactoryBean.java b/src/main/java/org/springframework/data/elasticsearch/client/TransportClientFactoryBean.java index 18416506a..90b679ebe 100644 --- a/src/main/java/org/springframework/data/elasticsearch/client/TransportClientFactoryBean.java +++ b/src/main/java/org/springframework/data/elasticsearch/client/TransportClientFactoryBean.java @@ -52,7 +52,7 @@ public class TransportClientFactoryBean implements FactoryBean, private Properties properties; @Override - public void destroy() throws Exception { + public void destroy() { try { logger.info("Closing elasticSearch client"); if (client != null) { @@ -64,7 +64,7 @@ public class TransportClientFactoryBean implements FactoryBean, } @Override - public TransportClient getObject() throws Exception { + public TransportClient getObject() { return client; } @@ -83,7 +83,7 @@ public class TransportClientFactoryBean implements FactoryBean, buildClient(); } - protected void buildClient() throws Exception { + protected void buildClient() { client = new PreBuiltTransportClient(settings()); diff --git a/src/main/java/org/springframework/data/elasticsearch/client/reactive/DefaultReactiveElasticsearchClient.java b/src/main/java/org/springframework/data/elasticsearch/client/reactive/DefaultReactiveElasticsearchClient.java index c59d27707..961da02d4 100644 --- a/src/main/java/org/springframework/data/elasticsearch/client/reactive/DefaultReactiveElasticsearchClient.java +++ b/src/main/java/org/springframework/data/elasticsearch/client/reactive/DefaultReactiveElasticsearchClient.java @@ -440,6 +440,7 @@ public class DefaultReactiveElasticsearchClient implements ReactiveElasticsearch * (non-Javadoc) * @see org.springframework.data.elasticsearch.client.reactive.ReactiveElasticsearchClient#ping(org.springframework.http.HttpHeaders, org.elasticsearch.index.reindex.DeleteByQueryRequest) */ + @Override public Mono deleteBy(HttpHeaders headers, DeleteByQueryRequest deleteRequest) { return sendRequest(deleteRequest, RequestCreator.deleteByQuery(), BulkByScrollResponse.class, headers) // @@ -764,14 +765,7 @@ public class DefaultReactiveElasticsearchClient implements ReactiveElasticsearch static Function deleteByQuery() { - return request -> { - - try { - return RequestConverters.deleteByQuery(request); - } catch (IOException e) { - throw new ElasticsearchException("Could not parse request", e); - } - }; + return request -> RequestConverters.deleteByQuery(request); } static Function bulk() { diff --git a/src/main/java/org/springframework/data/elasticsearch/client/reactive/DefaultWebClientProvider.java b/src/main/java/org/springframework/data/elasticsearch/client/reactive/DefaultWebClientProvider.java index 188a7c51f..9dd97118e 100644 --- a/src/main/java/org/springframework/data/elasticsearch/client/reactive/DefaultWebClientProvider.java +++ b/src/main/java/org/springframework/data/elasticsearch/client/reactive/DefaultWebClientProvider.java @@ -61,7 +61,7 @@ class DefaultWebClientProvider implements WebClientProvider { /** * Create new {@link DefaultWebClientProvider} with empty {@link HttpHeaders} and no-op {@literal error listener}. * - * @param pathPrefixcan be {@literal null} + * @param pathPrefix can be {@literal null} * @param scheme must not be {@literal null}. * @param connector can be {@literal null}. * @param errorListener must not be {@literal null}. diff --git a/src/main/java/org/springframework/data/elasticsearch/client/reactive/MultiNodeHostProvider.java b/src/main/java/org/springframework/data/elasticsearch/client/reactive/MultiNodeHostProvider.java index e3a6ce45e..144c2219c 100644 --- a/src/main/java/org/springframework/data/elasticsearch/client/reactive/MultiNodeHostProvider.java +++ b/src/main/java/org/springframework/data/elasticsearch/client/reactive/MultiNodeHostProvider.java @@ -60,6 +60,7 @@ class MultiNodeHostProvider implements HostProvider { * (non-Javadoc) * @see org.springframework.data.elasticsearch.client.reactive.HostProvider#clusterInfo() */ + @Override public Mono clusterInfo() { return nodes(null).map(this::updateNodeState).buffer(hosts.size()) .then(Mono.just(new ClusterInformation(new LinkedHashSet<>(this.hosts.values())))); diff --git a/src/main/java/org/springframework/data/elasticsearch/client/reactive/RawActionResponse.java b/src/main/java/org/springframework/data/elasticsearch/client/reactive/RawActionResponse.java index 400d16508..a2e79330d 100644 --- a/src/main/java/org/springframework/data/elasticsearch/client/reactive/RawActionResponse.java +++ b/src/main/java/org/springframework/data/elasticsearch/client/reactive/RawActionResponse.java @@ -16,11 +16,8 @@ package org.springframework.data.elasticsearch.client.reactive; import org.elasticsearch.common.io.stream.StreamOutput; -import reactor.core.publisher.Flux; -import reactor.core.publisher.Mono; import java.io.IOException; -import java.util.List; import org.elasticsearch.action.ActionResponse; diff --git a/src/main/java/org/springframework/data/elasticsearch/client/util/RequestConverters.java b/src/main/java/org/springframework/data/elasticsearch/client/util/RequestConverters.java index a11ebf830..65a5be626 100644 --- a/src/main/java/org/springframework/data/elasticsearch/client/util/RequestConverters.java +++ b/src/main/java/org/springframework/data/elasticsearch/client/util/RequestConverters.java @@ -103,6 +103,7 @@ import org.springframework.lang.Nullable; * @author Peter-Josef Meisch * @since 3.2 */ +@SuppressWarnings("JavadocReference") public class RequestConverters { private static final XContentType REQUEST_BODY_CONTENT_TYPE = XContentType.JSON; @@ -364,7 +365,7 @@ public class RequestConverters { XContentType upsertContentType = updateRequest.upsertRequest().getContentType(); if ((xContentType != null) && (xContentType != upsertContentType)) { throw new IllegalStateException("Update request cannot have different content types for doc [" + xContentType - + "]" + " and upsert [" + upsertContentType + "] documents"); + + ']' + " and upsert [" + upsertContentType + "] documents"); } else { xContentType = upsertContentType; } @@ -460,7 +461,7 @@ public class RequestConverters { return request; } - public static Request explain(ExplainRequest explainRequest) throws IOException { + public static Request explain(ExplainRequest explainRequest) { Request request = new Request(HttpMethod.GET.name(), endpoint(explainRequest.index(), explainRequest.type(), explainRequest.id(), "_explain")); @@ -482,7 +483,7 @@ public class RequestConverters { return request; } - public static Request rankEval(RankEvalRequest rankEvalRequest) throws IOException { + public static Request rankEval(RankEvalRequest rankEvalRequest) { Request request = new Request(HttpMethod.GET.name(), endpoint(rankEvalRequest.indices(), Strings.EMPTY_ARRAY, "_rank_eval")); @@ -501,8 +502,7 @@ public class RequestConverters { return prepareReindexRequest(reindexRequest, false); } - private static Request prepareReindexRequest(ReindexRequest reindexRequest, boolean waitForCompletion) - throws IOException { + private static Request prepareReindexRequest(ReindexRequest reindexRequest, boolean waitForCompletion) { String endpoint = new EndpointBuilder().addPathPart("_reindex").build(); Request request = new Request(HttpMethod.POST.name(), endpoint); Params params = new Params(request).withWaitForCompletion(waitForCompletion).withRefresh(reindexRequest.isRefresh()) @@ -516,7 +516,7 @@ public class RequestConverters { return request; } - public static Request updateByQuery(UpdateByQueryRequest updateByQueryRequest) throws IOException { + public static Request updateByQuery(UpdateByQueryRequest updateByQueryRequest) { String endpoint = endpoint(updateByQueryRequest.indices(), updateByQueryRequest.getDocTypes(), "_update_by_query"); Request request = new Request(HttpMethod.POST.name(), endpoint); Params params = new Params(request).withRouting(updateByQueryRequest.getRouting()) @@ -541,7 +541,7 @@ public class RequestConverters { return request; } - public static Request deleteByQuery(DeleteByQueryRequest deleteByQueryRequest) throws IOException { + public static Request deleteByQuery(DeleteByQueryRequest deleteByQueryRequest) { String endpoint = endpoint(deleteByQueryRequest.indices(), deleteByQueryRequest.getDocTypes(), "_delete_by_query"); Request request = new Request(HttpMethod.POST.name(), endpoint); Params params = new Params(request).withRouting(deleteByQueryRequest.getRouting()) @@ -587,7 +587,7 @@ public class RequestConverters { return request; } - public static Request putScript(PutStoredScriptRequest putStoredScriptRequest) throws IOException { + public static Request putScript(PutStoredScriptRequest putStoredScriptRequest) { String endpoint = new EndpointBuilder().addPathPartAsIs("_scripts").addPathPart(putStoredScriptRequest.id()) .build(); Request request = new Request(HttpMethod.POST.name(), endpoint); @@ -601,7 +601,7 @@ public class RequestConverters { return request; } - public static Request analyze(AnalyzeRequest request) throws IOException { + public static Request analyze(AnalyzeRequest request) { EndpointBuilder builder = new EndpointBuilder(); String index = request.index(); if (index != null) { @@ -1145,7 +1145,7 @@ public class RequestConverters { } if (requestContentType != xContentType) { throw new IllegalArgumentException("Mismatching content-type found for request with content-type [" - + requestContentType + "], previous requests have content-type [" + xContentType + "]"); + + requestContentType + "], previous requests have content-type [" + xContentType + ']'); } return xContentType; } @@ -1194,7 +1194,7 @@ public class RequestConverters { // encode each part (e.g. index, type and id) separately before merging them into the path // we prepend "/" to the path part to make this path absolute, otherwise there can be issues with // paths that start with `-` or contain `:` - URI uri = new URI(null, null, null, -1, "/" + pathPart, null, null); + URI uri = new URI(null, null, null, -1, '/' + pathPart, null, null); // manually encode any slash that each part may contain return uri.getRawPath().substring(1).replaceAll("/", "%2F"); } catch (URISyntaxException e) { diff --git a/src/main/java/org/springframework/data/elasticsearch/config/ElasticsearchConfigurationSupport.java b/src/main/java/org/springframework/data/elasticsearch/config/ElasticsearchConfigurationSupport.java index 3e2419f3b..f78c91612 100644 --- a/src/main/java/org/springframework/data/elasticsearch/config/ElasticsearchConfigurationSupport.java +++ b/src/main/java/org/springframework/data/elasticsearch/config/ElasticsearchConfigurationSupport.java @@ -127,7 +127,7 @@ public class ElasticsearchConfigurationSupport { return Collections.emptySet(); } - Set> initialEntitySet = new HashSet>(); + Set> initialEntitySet = new HashSet<>(); if (StringUtils.hasText(basePackage)) { 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 3adf37130..bd845ea5b 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/AbstractElasticsearchTemplate.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/AbstractElasticsearchTemplate.java @@ -79,6 +79,7 @@ public abstract class AbstractElasticsearchTemplate implements ElasticsearchOper // endregion // region DocumentOperations + @Override public void delete(Query query, Class clazz, IndexCoordinates index) { Assert.notNull(query, "Query must not be null."); diff --git a/src/main/java/org/springframework/data/elasticsearch/core/CriteriaFilterProcessor.java b/src/main/java/org/springframework/data/elasticsearch/core/CriteriaFilterProcessor.java index 35cf44012..ef73dc50a 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/CriteriaFilterProcessor.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/CriteriaFilterProcessor.java @@ -20,10 +20,13 @@ import static org.springframework.data.elasticsearch.core.query.Criteria.*; import java.util.Iterator; import java.util.LinkedList; import java.util.List; -import java.util.ListIterator; import org.elasticsearch.common.geo.GeoDistance; -import org.elasticsearch.index.query.*; +import org.elasticsearch.index.query.BoolQueryBuilder; +import org.elasticsearch.index.query.GeoBoundingBoxQueryBuilder; +import org.elasticsearch.index.query.GeoDistanceQueryBuilder; +import org.elasticsearch.index.query.QueryBuilder; +import org.elasticsearch.index.query.QueryBuilders; import org.springframework.data.elasticsearch.core.geo.GeoBox; import org.springframework.data.elasticsearch.core.geo.GeoPoint; import org.springframework.data.elasticsearch.core.query.Criteria; @@ -39,28 +42,25 @@ import org.springframework.util.Assert; * @author Franck Marchand * @author Mohsin Husen * @author Artur Konczak - * + * @author Peter-Josef Meisch */ class CriteriaFilterProcessor { - QueryBuilder createFilterFromCriteria(Criteria criteria) { List fbList = new LinkedList<>(); QueryBuilder filter = null; - ListIterator chainIterator = criteria.getCriteriaChain().listIterator(); - - while (chainIterator.hasNext()) { + for (Criteria chainedCriteria : criteria.getCriteriaChain()) { QueryBuilder fb = null; - Criteria chainedCriteria = chainIterator.next(); if (chainedCriteria.isOr()) { fb = QueryBuilders.boolQuery(); - for(QueryBuilder f: createFilterFragmentForCriteria(chainedCriteria)){ - ((BoolQueryBuilder)fb).should(f); + for (QueryBuilder f : createFilterFragmentForCriteria(chainedCriteria)) { + ((BoolQueryBuilder) fb).should(f); } fbList.add(fb); } else if (chainedCriteria.isNegating()) { - List negationFilters = buildNegationFilter(criteria.getField().getName(), criteria.getFilterCriteriaEntries().iterator()); + List negationFilters = buildNegationFilter(criteria.getField().getName(), + criteria.getFilterCriteriaEntries().iterator()); if (!negationFilters.isEmpty()) { fbList.addAll(negationFilters); @@ -75,15 +75,14 @@ class CriteriaFilterProcessor { filter = fbList.get(0); } else { filter = QueryBuilders.boolQuery(); - for(QueryBuilder f: fbList) { - ((BoolQueryBuilder)filter).must(f); + for (QueryBuilder f : fbList) { + ((BoolQueryBuilder) filter).must(f); } } } return filter; } - private List createFilterFragmentForCriteria(Criteria chainedCriteria) { Iterator it = chainedCriteria.getFilterCriteriaEntries().iterator(); List filterList = new LinkedList<>(); @@ -101,7 +100,6 @@ class CriteriaFilterProcessor { return filterList; } - private QueryBuilder processCriteriaEntry(OperationKey key, Object value, String fieldName) { if (value == null) { return null; @@ -116,8 +114,10 @@ class CriteriaFilterProcessor { Object[] valArray = (Object[]) value; Assert.noNullElements(valArray, "Geo distance filter takes 2 not null elements array as parameter."); Assert.isTrue(valArray.length == 2, "Geo distance filter takes a 2-elements array as parameter."); - Assert.isTrue(valArray[0] instanceof GeoPoint || valArray[0] instanceof String || valArray[0] instanceof Point, "First element of a geo distance filter must be a GeoPoint, a Point or a text"); - Assert.isTrue(valArray[1] instanceof String || valArray[1] instanceof Distance, "Second element of a geo distance filter must be a text or a Distance"); + Assert.isTrue(valArray[0] instanceof GeoPoint || valArray[0] instanceof String || valArray[0] instanceof Point, + "First element of a geo distance filter must be a GeoPoint, a Point or a text"); + Assert.isTrue(valArray[1] instanceof String || valArray[1] instanceof Distance, + "Second element of a geo distance filter must be a text or a Distance"); StringBuilder dist = new StringBuilder(); @@ -129,15 +129,18 @@ class CriteriaFilterProcessor { if (valArray[0] instanceof GeoPoint) { GeoPoint loc = (GeoPoint) valArray[0]; - geoDistanceQueryBuilder.point(loc.getLat(),loc.getLon()).distance(dist.toString()).geoDistance(GeoDistance.PLANE); + geoDistanceQueryBuilder.point(loc.getLat(), loc.getLon()).distance(dist.toString()) + .geoDistance(GeoDistance.PLANE); } else if (valArray[0] instanceof Point) { GeoPoint loc = GeoPoint.fromPoint((Point) valArray[0]); - geoDistanceQueryBuilder.point(loc.getLat(), loc.getLon()).distance(dist.toString()).geoDistance(GeoDistance.PLANE); + geoDistanceQueryBuilder.point(loc.getLat(), loc.getLon()).distance(dist.toString()) + .geoDistance(GeoDistance.PLANE); } else { String loc = (String) valArray[0]; if (loc.contains(",")) { - String c[] = loc.split(","); - geoDistanceQueryBuilder.point(Double.parseDouble(c[0]), Double.parseDouble(c[1])).distance(dist.toString()).geoDistance(GeoDistance.PLANE); + String[] c = loc.split(","); + geoDistanceQueryBuilder.point(Double.parseDouble(c[0]), Double.parseDouble(c[1])).distance(dist.toString()) + .geoDistance(GeoDistance.PLANE); } else { geoDistanceQueryBuilder.geohash(loc).distance(dist.toString()).geoDistance(GeoDistance.PLANE); } @@ -150,20 +153,22 @@ class CriteriaFilterProcessor { case BBOX: { filter = QueryBuilders.geoBoundingBoxQuery(fieldName); - Assert.isTrue(value instanceof Object[], "Value of a boundedBy filter should be an array of one or two values."); + Assert.isTrue(value instanceof Object[], + "Value of a boundedBy filter should be an array of one or two values."); Object[] valArray = (Object[]) value; Assert.noNullElements(valArray, "Geo boundedBy filter takes a not null element array as parameter."); if (valArray.length == 1) { - //GeoEnvelop + // GeoEnvelop oneParameterBBox((GeoBoundingBoxQueryBuilder) filter, valArray[0]); } else if (valArray.length == 2) { - //2x GeoPoint - //2x text + // 2x GeoPoint + // 2x text twoParameterBBox((GeoBoundingBoxQueryBuilder) filter, valArray); } else { - //error - Assert.isTrue(false, "Geo distance filter takes a 1-elements array(GeoBox) or 2-elements array(GeoPoints or Strings(format lat,lon or geohash))."); + // error + Assert.isTrue(false, + "Geo distance filter takes a 1-elements array(GeoBox) or 2-elements array(GeoPoints or Strings(format lat,lon or geohash))."); } break; } @@ -172,7 +177,6 @@ class CriteriaFilterProcessor { return filter; } - /** * extract the distance string from a {@link org.springframework.data.geo.Distance} object. * @@ -196,7 +200,8 @@ class CriteriaFilterProcessor { } private void oneParameterBBox(GeoBoundingBoxQueryBuilder filter, Object value) { - Assert.isTrue(value instanceof GeoBox || value instanceof Box, "single-element of boundedBy filter must be type of GeoBox or Box"); + Assert.isTrue(value instanceof GeoBox || value instanceof Box, + "single-element of boundedBy filter must be type of GeoBox or Box"); GeoBox geoBBox; if (value instanceof Box) { @@ -206,7 +211,8 @@ class CriteriaFilterProcessor { geoBBox = (GeoBox) value; } - filter.setCorners(geoBBox.getTopLeft().getLat(), geoBBox.getTopLeft().getLon(), geoBBox.getBottomRight().getLat(), geoBBox.getBottomRight().getLon()); + filter.setCorners(geoBBox.getTopLeft().getLat(), geoBBox.getTopLeft().getLon(), geoBBox.getBottomRight().getLat(), + geoBBox.getBottomRight().getLon()); } private static boolean isType(Object[] array, Class clazz) { @@ -219,7 +225,8 @@ class CriteriaFilterProcessor { } private void twoParameterBBox(GeoBoundingBoxQueryBuilder filter, Object[] values) { - Assert.isTrue(isType(values, GeoPoint.class) || isType(values, String.class), " both elements of boundedBy filter must be type of GeoPoint or text(format lat,lon or geohash)"); + Assert.isTrue(isType(values, GeoPoint.class) || isType(values, String.class), + " both elements of boundedBy filter must be type of GeoPoint or text(format lat,lon or geohash)"); if (values[0] instanceof GeoPoint) { GeoPoint topLeft = (GeoPoint) values[0]; GeoPoint bottomRight = (GeoPoint) values[1]; @@ -236,7 +243,8 @@ class CriteriaFilterProcessor { while (it.hasNext()) { Criteria.CriteriaEntry criteriaEntry = it.next(); - QueryBuilder notFilter = QueryBuilders.boolQuery().mustNot(processCriteriaEntry(criteriaEntry.getKey(), criteriaEntry.getValue(), fieldName)); + QueryBuilder notFilter = QueryBuilders.boolQuery() + .mustNot(processCriteriaEntry(criteriaEntry.getKey(), criteriaEntry.getValue(), fieldName)); notFilterList.add(notFilter); } diff --git a/src/main/java/org/springframework/data/elasticsearch/core/CriteriaQueryProcessor.java b/src/main/java/org/springframework/data/elasticsearch/core/CriteriaQueryProcessor.java index 4683fd7b6..a337baac2 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/CriteriaQueryProcessor.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/CriteriaQueryProcessor.java @@ -157,13 +157,13 @@ class CriteriaQueryProcessor { query = queryStringQuery(searchText).field(fieldName).defaultOperator(AND); break; case CONTAINS: - query = queryStringQuery("*" + searchText + "*").field(fieldName).analyzeWildcard(true); + query = queryStringQuery('*' + searchText + '*').field(fieldName).analyzeWildcard(true); break; case STARTS_WITH: - query = queryStringQuery(searchText + "*").field(fieldName).analyzeWildcard(true); + query = queryStringQuery(searchText + '*').field(fieldName).analyzeWildcard(true); break; case ENDS_WITH: - query = queryStringQuery("*" + searchText).field(fieldName).analyzeWildcard(true); + query = queryStringQuery('*' + searchText).field(fieldName).analyzeWildcard(true); break; case EXPRESSION: query = queryStringQuery(value.toString()).field(fieldName); diff --git a/src/main/java/org/springframework/data/elasticsearch/core/DefaultIndexOperations.java b/src/main/java/org/springframework/data/elasticsearch/core/DefaultIndexOperations.java index 0da7173fb..5ea59998f 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/DefaultIndexOperations.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/DefaultIndexOperations.java @@ -26,9 +26,7 @@ import java.util.Map; import org.apache.http.util.EntityUtils; import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest; -import org.elasticsearch.action.admin.indices.create.CreateIndexRequest; import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest; -import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest; import org.elasticsearch.action.admin.indices.settings.get.GetSettingsRequest; import org.elasticsearch.action.admin.indices.settings.get.GetSettingsResponse; import org.elasticsearch.client.Request; @@ -36,7 +34,9 @@ import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.Response; import org.elasticsearch.client.RestClient; import org.elasticsearch.client.RestHighLevelClient; +import org.elasticsearch.client.indices.CreateIndexRequest; import org.elasticsearch.client.indices.GetIndexRequest; +import org.elasticsearch.client.indices.PutMappingRequest; import org.elasticsearch.cluster.metadata.AliasMetaData; import org.springframework.data.elasticsearch.ElasticsearchException; import org.springframework.data.elasticsearch.core.client.support.AliasData; @@ -121,13 +121,11 @@ class DefaultIndexOperations extends AbstractDefaultIndexOperations implements I RestClient restClient = client.getLowLevelClient(); try { - Request request = new Request("GET", - '/' + index.getIndexName() + "/_mapping/" + index.getTypeName() + "?include_type_name=true"); + Request request = new Request("GET", '/' + index.getIndexName() + "/_mapping"); Response response = restClient.performRequest(request); - return convertMappingResponse(EntityUtils.toString(response.getEntity()), index.getTypeName()); + return convertMappingResponse(EntityUtils.toString(response.getEntity())); } catch (Exception e) { - throw new ElasticsearchException("Error while getting mapping for indexName : " + index.getIndexName() - + " type : " + index.getTypeName() + ' ', e); + throw new ElasticsearchException("Error while getting mapping for indexName : " + index.getIndexName(), e); } } @@ -210,14 +208,14 @@ class DefaultIndexOperations extends AbstractDefaultIndexOperations implements I } // region Helper methods - private Map convertMappingResponse(String mappingResponse, String type) { + private Map convertMappingResponse(String mappingResponse) { ObjectMapper mapper = new ObjectMapper(); try { Map result = null; JsonNode node = mapper.readTree(mappingResponse); - node = node.findValue("mappings").findValue(type); + node = node.findValue("mappings"); result = mapper.readValue(mapper.writeValueAsString(node), HashMap.class); return result; @@ -248,7 +246,7 @@ class DefaultIndexOperations extends AbstractDefaultIndexOperations implements I new TypeReference>() {}); Iterable> aliasIter = aliasData.entrySet(); - List aliasMetaDataList = new ArrayList(); + List aliasMetaDataList = new ArrayList<>(); for (Map.Entry aliasentry : aliasIter) { AliasData data = aliasentry.getValue(); @@ -261,6 +259,5 @@ class DefaultIndexOperations extends AbstractDefaultIndexOperations implements I throw new ElasticsearchException("Could not map alias response : " + aliasResponse, e); } } - // endregion } diff --git a/src/main/java/org/springframework/data/elasticsearch/core/DefaultTransportIndexOperations.java b/src/main/java/org/springframework/data/elasticsearch/core/DefaultTransportIndexOperations.java index 2c34c2e9f..39a910269 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/DefaultTransportIndexOperations.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/DefaultTransportIndexOperations.java @@ -87,15 +87,15 @@ class DefaultTransportIndexOperations extends AbstractDefaultIndexOperations imp @Override public Map getMapping(IndexCoordinates index) { - Assert.notNull(index, "No index defined for putMapping()"); + Assert.notNull(index, "No index defined for getMapping()"); try { - return client.admin().indices() - .getMappings(new GetMappingsRequest().indices(index.getIndexNames()).types(index.getTypeNames())).actionGet() - .getMappings().get(index.getIndexName()).get(index.getTypeName()).getSourceAsMap(); + return client.admin().indices().getMappings( // + new GetMappingsRequest().indices(index.getIndexNames())).actionGet() // + .getMappings().get(index.getIndexName()).get(IndexCoordinates.TYPE) // + .getSourceAsMap(); } catch (Exception e) { - throw new ElasticsearchException("Error while getting mapping for indexName : " + index.getIndexName() - + " type : " + index.getTypeName() + ' ' + e.getMessage()); + throw new ElasticsearchException("Error while getting mapping for indexName : " + index.getIndexName(), e); } } diff --git a/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchRestTemplate.java b/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchRestTemplate.java index bbe47971b..2fe6da806 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchRestTemplate.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchRestTemplate.java @@ -41,7 +41,6 @@ import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.suggest.SuggestBuilder; import org.springframework.data.domain.Pageable; import org.springframework.data.elasticsearch.ElasticsearchException; -import org.springframework.data.elasticsearch.core.aggregation.AggregatedPage; import org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter; import org.springframework.data.elasticsearch.core.document.DocumentAdapters; import org.springframework.data.elasticsearch.core.document.SearchDocumentResponse; diff --git a/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java b/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java index c282b1197..a452f7806 100755 --- a/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java @@ -35,7 +35,6 @@ import org.elasticsearch.search.suggest.SuggestBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.domain.Pageable; -import org.springframework.data.elasticsearch.core.aggregation.AggregatedPage; import org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter; import org.springframework.data.elasticsearch.core.document.DocumentAdapters; import org.springframework.data.elasticsearch.core.document.SearchDocumentResponse; @@ -128,8 +127,7 @@ public class ElasticsearchTemplate extends AbstractElasticsearchTemplate { public T get(GetQuery query, Class clazz, IndexCoordinates index) { GetRequestBuilder getRequestBuilder = requestFactory.getRequestBuilder(client, query, index); GetResponse response = getRequestBuilder.execute().actionGet(); - T entity = elasticsearchConverter.mapDocument(DocumentAdapters.from(response), clazz); - return entity; + return elasticsearchConverter.mapDocument(DocumentAdapters.from(response), clazz); } @Override @@ -163,7 +161,7 @@ public class ElasticsearchTemplate extends AbstractElasticsearchTemplate { @Override public String delete(String id, IndexCoordinates index) { - return client.prepareDelete(index.getIndexName(), index.getTypeName(), id).execute().actionGet().getId(); + return client.prepareDelete(index.getIndexName(), IndexCoordinates.TYPE, id).execute().actionGet().getId(); } @Override diff --git a/src/main/java/org/springframework/data/elasticsearch/core/EntityOperations.java b/src/main/java/org/springframework/data/elasticsearch/core/EntityOperations.java index f376ac270..9c09fbad7 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/EntityOperations.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/EntityOperations.java @@ -99,8 +99,6 @@ class EntityOperations { * @param index index name override can be {@literal null}. * @param type index type override can be {@literal null}. * @return the {@link IndexCoordinates} containing index name and index type. - * @see ElasticsearchPersistentEntity#getIndexName() - * @see ElasticsearchPersistentEntity#getIndexType() */ IndexCoordinates determineIndex(Entity entity, @Nullable String index, @Nullable String type) { return determineIndex(entity.getPersistentEntity(), index, type); @@ -116,12 +114,10 @@ class EntityOperations { * @param index index name override can be {@literal null}. * @param type index type override can be {@literal null}. * @return the {@link IndexCoordinates} containing index name and index type. - * @see ElasticsearchPersistentEntity#getIndexName() - * @see ElasticsearchPersistentEntity#getIndexType() */ IndexCoordinates determineIndex(ElasticsearchPersistentEntity persistentEntity, @Nullable String index, @Nullable String type) { - return IndexCoordinates.of(indexName(persistentEntity, index)).withTypes(typeName(persistentEntity, type)); + return persistentEntity.getIndexCoordinates(); } private static String indexName(@Nullable ElasticsearchPersistentEntity entity, @Nullable String index) { @@ -134,16 +130,6 @@ class EntityOperations { return index; } - private static String typeName(@Nullable ElasticsearchPersistentEntity entity, @Nullable String type) { - - if (StringUtils.isEmpty(type)) { - Assert.notNull(entity, "Cannot determine index type"); - return entity.getIndexCoordinates().getTypeName(); - } - - return type; - } - /** * A representation of information about an entity. * @@ -268,6 +254,7 @@ class EntityOperations { * @return the current version or {@literal null} in case it's uninitialized or the entity doesn't expose a version * property. */ + @Override @Nullable Number getVersion(); } diff --git a/src/main/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchTemplate.java b/src/main/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchTemplate.java index 8c234a8ee..fc71a7af2 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchTemplate.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchTemplate.java @@ -182,8 +182,8 @@ public class ReactiveElasticsearchTemplate implements ReactiveElasticsearchOpera Object id = entity.getId(); IndexRequest request = id != null - ? new IndexRequest(index.getIndexName(), index.getTypeName(), converter.convertId(id)) - : new IndexRequest(index.getIndexName(), index.getTypeName()); + ? new IndexRequest(index.getIndexName()).id(converter.convertId(id)) + : new IndexRequest(index.getIndexName()); request.source(converter.mapObject(value).toJson(), Requests.INDEX_CONTENT_TYPE); @@ -223,7 +223,7 @@ public class ReactiveElasticsearchTemplate implements ReactiveElasticsearchOpera return Mono.defer(() -> { - return doFindById(new GetRequest(index.getIndexName(), index.getTypeName(), id)); + return doFindById(new GetRequest(index.getIndexName(), id)); }); } @@ -241,7 +241,7 @@ public class ReactiveElasticsearchTemplate implements ReactiveElasticsearchOpera private Mono doExists(String id, ElasticsearchPersistentEntity entity, @Nullable IndexCoordinates index) { - return Mono.defer(() -> doExists(new GetRequest(index.getIndexName(), index.getTypeName(), id))); + return Mono.defer(() -> doExists(new GetRequest(index.getIndexName(), id))); } /* @@ -285,7 +285,7 @@ public class ReactiveElasticsearchTemplate implements ReactiveElasticsearchOpera return Mono.defer(() -> { - return doDelete(prepareDeleteRequest(source, new DeleteRequest(index.getIndexName(), index.getTypeName(), id))); + return doDelete(prepareDeleteRequest(source, new DeleteRequest(index.getIndexName(), id))); }); } @@ -312,7 +312,6 @@ public class ReactiveElasticsearchTemplate implements ReactiveElasticsearchOpera return Flux.defer(() -> { DeleteByQueryRequest request = new DeleteByQueryRequest(index.getIndexNames()); - request.types(index.getTypeNames()); request.setQuery(mappedQuery(query, entity)); return doDeleteBy(prepareDeleteByRequest(request)); diff --git a/src/main/java/org/springframework/data/elasticsearch/core/RequestFactory.java b/src/main/java/org/springframework/data/elasticsearch/core/RequestFactory.java index de5fb02d2..02558c058 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/RequestFactory.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/RequestFactory.java @@ -21,12 +21,9 @@ import static org.springframework.util.CollectionUtils.*; import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.Optional; import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest; -import org.elasticsearch.action.admin.indices.create.CreateIndexRequest; import org.elasticsearch.action.admin.indices.create.CreateIndexRequestBuilder; -import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest; import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequestBuilder; import org.elasticsearch.action.bulk.BulkRequest; import org.elasticsearch.action.bulk.BulkRequestBuilder; @@ -42,6 +39,8 @@ 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.PutMappingRequest; import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentType; @@ -176,24 +175,26 @@ class RequestFactory { return bulkRequestBuilder; } + @SuppressWarnings("unchecked") public CreateIndexRequest createIndexRequest(String indexName, Object settings) { CreateIndexRequest request = new CreateIndexRequest(indexName); if (settings instanceof String) { request.settings(String.valueOf(settings), Requests.INDEX_CONTENT_TYPE); } else if (settings instanceof Map) { - request.settings((Map) settings); + request.settings((Map) settings); } else if (settings instanceof XContentBuilder) { request.settings((XContentBuilder) settings); } return request; } + @SuppressWarnings("unchecked") public CreateIndexRequestBuilder createIndexRequestBuilder(Client client, String indexName, Object settings) { CreateIndexRequestBuilder createIndexRequestBuilder = client.admin().indices().prepareCreate(indexName); if (settings instanceof String) { createIndexRequestBuilder.setSettings(String.valueOf(settings), Requests.INDEX_CONTENT_TYPE); } else if (settings instanceof Map) { - createIndexRequestBuilder.setSettings((Map) settings); + createIndexRequestBuilder.setSettings((Map) settings); } else if (settings instanceof XContentBuilder) { createIndexRequestBuilder.setSettings((XContentBuilder) settings); } @@ -202,7 +203,6 @@ class RequestFactory { public DeleteByQueryRequest deleteByQueryRequest(DeleteQuery deleteQuery, IndexCoordinates index) { DeleteByQueryRequest deleteByQueryRequest = new DeleteByQueryRequest(index.getIndexNames()) // - .setDocTypes(index.getTypeNames()) // .setQuery(deleteQuery.getQuery()) // .setAbortOnVersionConflict(false) // .setRefresh(true); @@ -224,8 +224,7 @@ class RequestFactory { .abortOnVersionConflict(false) // .refresh(true); - SearchRequestBuilder source = requestBuilder.source() // - .setTypes(index.getTypeNames()); + SearchRequestBuilder source = requestBuilder.source(); if (deleteQuery.getScrollTimeInMillis() != null) source.setScroll(TimeValue.timeValueMillis(deleteQuery.getScrollTimeInMillis())); @@ -234,11 +233,11 @@ class RequestFactory { } public GetRequest getRequest(GetQuery query, IndexCoordinates index) { - return new GetRequest(index.getIndexName(), index.getTypeName(), query.getId()); + return new GetRequest(index.getIndexName(), query.getId()); } public GetRequestBuilder getRequestBuilder(Client client, GetQuery query, IndexCoordinates index) { - return client.prepareGet(index.getIndexName(), index.getTypeName(), query.getId()); + return client.prepareGet(index.getIndexName(), null, query.getId()); } public HighlightBuilder highlightBuilder(Query query) { @@ -265,7 +264,6 @@ class RequestFactory { public IndexRequest indexRequest(IndexQuery query, IndexCoordinates index) { String indexName = index.getIndexName(); - String type = index.getTypeName(); IndexRequest indexRequest; @@ -273,17 +271,17 @@ class RequestFactory { String id = StringUtils.isEmpty(query.getId()) ? getPersistentEntityId(query.getObject()) : query.getId(); // If we have a query id and a document id, do not ask ES to generate one. if (id != null) { - indexRequest = new IndexRequest(indexName, type, id); + indexRequest = new IndexRequest(indexName).id(id); } else { - indexRequest = new IndexRequest(indexName, type); + indexRequest = new IndexRequest(indexName); } indexRequest.source(elasticsearchConverter.mapObject(query.getObject()).toJson(), Requests.INDEX_CONTENT_TYPE); } else if (query.getSource() != null) { - indexRequest = new IndexRequest(indexName, type, query.getId()).source(query.getSource(), + indexRequest = new IndexRequest(indexName).id(query.getId()).source(query.getSource(), Requests.INDEX_CONTENT_TYPE); } else { throw new ElasticsearchException( - "object or source is null, failed to index the document [id: " + query.getId() + "]"); + "object or source is null, failed to index the document [id: " + query.getId() + ']'); } if (query.getVersion() != null) { indexRequest.version(query.getVersion()); @@ -296,7 +294,7 @@ class RequestFactory { public IndexRequestBuilder indexRequestBuilder(Client client, IndexQuery query, IndexCoordinates index) { String indexName = index.getIndexName(); - String type = index.getTypeName(); + String type = IndexCoordinates.TYPE; IndexRequestBuilder indexRequestBuilder; @@ -315,7 +313,7 @@ class RequestFactory { Requests.INDEX_CONTENT_TYPE); } else { throw new ElasticsearchException( - "object or source is null, failed to index the document [id: " + query.getId() + "]"); + "object or source is null, failed to index the document [id: " + query.getId() + ']'); } if (query.getVersion() != null) { indexRequestBuilder.setVersion(query.getVersion()); @@ -327,8 +325,7 @@ class RequestFactory { } public MoreLikeThisQueryBuilder moreLikeThisQueryBuilder(MoreLikeThisQuery query, IndexCoordinates index) { - MoreLikeThisQueryBuilder.Item item = new MoreLikeThisQueryBuilder.Item(index.getIndexName(), index.getTypeName(), - query.getId()); + MoreLikeThisQueryBuilder.Item item = new MoreLikeThisQueryBuilder.Item(index.getIndexName(), query.getId()); MoreLikeThisQueryBuilder moreLikeThisQueryBuilder = QueryBuilders .moreLikeThisQuery(new MoreLikeThisQueryBuilder.Item[] { item }); @@ -414,7 +411,7 @@ class RequestFactory { UpdateRequest queryUpdateRequest = query.getUpdateRequest(); - UpdateRequest updateRequest = new UpdateRequest(index.getIndexName(), index.getTypeName(), query.getId()) // + UpdateRequest updateRequest = new UpdateRequest(index.getIndexName(), query.getId()) // .routing(queryUpdateRequest.routing()) // .retryOnConflict(queryUpdateRequest.retryOnConflict()) // .timeout(queryUpdateRequest.timeout()) // @@ -455,7 +452,7 @@ class RequestFactory { UpdateRequest queryUpdateRequest = query.getUpdateRequest(); UpdateRequestBuilder updateRequestBuilder = client - .prepareUpdate(index.getIndexName(), index.getTypeName(), query.getId()) // + .prepareUpdate(index.getIndexName(), IndexCoordinates.TYPE, query.getId()) // .setRouting(queryUpdateRequest.routing()) // .setRetryOnConflict(queryUpdateRequest.retryOnConflict()) // .setTimeout(queryUpdateRequest.timeout()) // @@ -490,77 +487,14 @@ class RequestFactory { } private SearchRequest prepareSearchRequest(Query query, @Nullable Class clazz, IndexCoordinates index) { - return prepareSearchRequest(query, Optional.empty(), clazz, index); - } - - public PutMappingRequest putMappingRequest(IndexCoordinates index, Object mapping) { - PutMappingRequest request = new PutMappingRequest(index.getIndexName()).type(index.getTypeName()); - if (mapping instanceof String) { - request.source(String.valueOf(mapping), XContentType.JSON); - } else if (mapping instanceof Map) { - request.source((Map) mapping); - } else if (mapping instanceof XContentBuilder) { - request.source((XContentBuilder) mapping); - } - return request; - } - - public PutMappingRequestBuilder putMappingRequestBuilder(Client client, IndexCoordinates index, Object mapping) { - PutMappingRequestBuilder requestBuilder = client.admin().indices().preparePutMapping(index.getIndexName()) - .setType(index.getTypeName()); - if (mapping instanceof String) { - requestBuilder.setSource(String.valueOf(mapping), XContentType.JSON); - } else if (mapping instanceof Map) { - requestBuilder.setSource((Map) mapping); - } else if (mapping instanceof XContentBuilder) { - requestBuilder.setSource((XContentBuilder) mapping); - } - return requestBuilder; - } - - public MultiGetRequest multiGetRequest(Query query, IndexCoordinates index) { - MultiGetRequest multiGetRequest = new MultiGetRequest(); - getMultiRequestItems(query, index).forEach(multiGetRequest::add); - return multiGetRequest; - } - - public MultiGetRequestBuilder multiGetRequestBuilder(Client client, Query searchQuery, IndexCoordinates index) { - MultiGetRequestBuilder multiGetRequestBuilder = client.prepareMultiGet(); - getMultiRequestItems(searchQuery, index).forEach(multiGetRequestBuilder::add); - return multiGetRequestBuilder; - } - - private List getMultiRequestItems(Query searchQuery, IndexCoordinates index) { - List items = new ArrayList<>(); - if (!isEmpty(searchQuery.getFields())) { - searchQuery.addSourceFilter(new FetchSourceFilter(toArray(searchQuery.getFields()), null)); - } - - for (String id : searchQuery.getIds()) { - MultiGetRequest.Item item = new MultiGetRequest.Item(index.getIndexName(), index.getTypeName(), id); - - if (searchQuery.getRoute() != null) { - item = item.routing(searchQuery.getRoute()); - } - items.add(item); - } - return items; - } - - private SearchRequest prepareSearchRequest(Query query, Optional builder, @Nullable Class clazz, - IndexCoordinates index) { Assert.notNull(index.getIndexNames(), "No index defined for Query"); Assert.notEmpty(index.getIndexNames(), "No index defined for Query"); - Assert.notNull(index.getTypeNames(), "No type defined for Query"); SearchRequest request = new SearchRequest(index.getIndexNames()); SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); - request.types(index.getTypeNames()); sourceBuilder.version(true); sourceBuilder.trackScores(query.getTrackScores()); - builder.ifPresent(sourceBuilder::query); - if (query.getSourceFilter() != null) { SourceFilter sourceFilter = query.getSourceFilter(); sourceBuilder.fetchSource(sourceFilter.getIncludes(), sourceFilter.getExcludes()); @@ -612,15 +546,119 @@ class RequestFactory { return request; } - private SearchRequestBuilder prepareSearchRequestBuilder(Query query, Client client, - @Nullable ElasticsearchPersistentEntity entity, IndexCoordinates index) { + @SuppressWarnings("unchecked") + public PutMappingRequest putMappingRequest(IndexCoordinates index, Object mapping) { + PutMappingRequest request = new PutMappingRequest(index.getIndexName()); + if (mapping instanceof String) { + request.source(String.valueOf(mapping), XContentType.JSON); + } else if (mapping instanceof Map) { + request.source((Map) mapping); + } else if (mapping instanceof XContentBuilder) { + request.source((XContentBuilder) mapping); + } + return request; + } + + @SuppressWarnings("rawtypes") + public PutMappingRequestBuilder putMappingRequestBuilder(Client client, IndexCoordinates index, Object mapping) { + PutMappingRequestBuilder requestBuilder = client.admin().indices().preparePutMapping(index.getIndexName()) + .setType(IndexCoordinates.TYPE); + if (mapping instanceof String) { + requestBuilder.setSource(String.valueOf(mapping), XContentType.JSON); + } else if (mapping instanceof Map) { + requestBuilder.setSource((Map) mapping); + } else if (mapping instanceof XContentBuilder) { + requestBuilder.setSource((XContentBuilder) mapping); + } + return requestBuilder; + } + + public MultiGetRequest multiGetRequest(Query query, IndexCoordinates index) { + MultiGetRequest multiGetRequest = new MultiGetRequest(); + getMultiRequestItems(query, index).forEach(multiGetRequest::add); + return multiGetRequest; + } + + public MultiGetRequestBuilder multiGetRequestBuilder(Client client, Query searchQuery, IndexCoordinates index) { + MultiGetRequestBuilder multiGetRequestBuilder = client.prepareMultiGet(); + getMultiRequestItems(searchQuery, index).forEach(multiGetRequestBuilder::add); + return multiGetRequestBuilder; + } + + private List getMultiRequestItems(Query searchQuery, IndexCoordinates index) { + List items = new ArrayList<>(); + if (!isEmpty(searchQuery.getFields())) { + searchQuery.addSourceFilter(new FetchSourceFilter(toArray(searchQuery.getFields()), null)); + } + + for (String id : searchQuery.getIds()) { + MultiGetRequest.Item item = new MultiGetRequest.Item(index.getIndexName(), id); + + if (searchQuery.getRoute() != null) { + item = item.routing(searchQuery.getRoute()); + } + items.add(item); + } + return items; + } + + private void prepareNativeSearch(NativeSearchQuery query, SearchSourceBuilder sourceBuilder) { + + if (!query.getScriptFields().isEmpty()) { + for (ScriptField scriptedField : query.getScriptFields()) { + sourceBuilder.scriptField(scriptedField.fieldName(), scriptedField.script()); + } + } + + if (query.getCollapseBuilder() != null) { + sourceBuilder.collapse(query.getCollapseBuilder()); + } + + if (!isEmpty(query.getIndicesBoost())) { + for (IndexBoost indexBoost : query.getIndicesBoost()) { + sourceBuilder.indexBoost(indexBoost.getIndexName(), indexBoost.getBoost()); + } + } + + if (!isEmpty(query.getAggregations())) { + for (AbstractAggregationBuilder aggregationBuilder : query.getAggregations()) { + sourceBuilder.aggregation(aggregationBuilder); + } + } + + } + + 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())) { + for (AbstractAggregationBuilder aggregationBuilder : nativeSearchQuery.getAggregations()) { + searchRequestBuilder.addAggregation(aggregationBuilder); + } + } + } + + private SearchRequestBuilder prepareSearchRequestBuilder(Query query, Client client, @Nullable Class clazz, + IndexCoordinates index) { Assert.notNull(index.getIndexNames(), "No index defined for Query"); Assert.notEmpty(index.getIndexNames(), "No index defined for Query"); - Assert.notNull(index.getTypeNames(), "No type defined for Query"); SearchRequestBuilder searchRequestBuilder = client.prepareSearch(index.getIndexNames()) // .setSearchType(query.getSearchType()) // - .setTypes(index.getTypeNames()) // .setVersion(true) // .setTrackScores(query.getTrackScores()); @@ -654,7 +692,7 @@ class RequestFactory { searchRequestBuilder.setPreference(query.getPreference()); } - prepareSort(query, searchRequestBuilder, entity); + prepareSort(query, searchRequestBuilder, getPersistentEntity(clazz)); HighlightBuilder highlightBuilder = highlightBuilder(query); @@ -669,62 +707,7 @@ class RequestFactory { return searchRequestBuilder; } - private void prepareNativeSearch(NativeSearchQuery query, SearchSourceBuilder sourceBuilder) { - NativeSearchQuery nativeSearchQuery = query; - - if (!nativeSearchQuery.getScriptFields().isEmpty()) { - for (ScriptField scriptedField : nativeSearchQuery.getScriptFields()) { - sourceBuilder.scriptField(scriptedField.fieldName(), scriptedField.script()); - } - } - - if (nativeSearchQuery.getCollapseBuilder() != null) { - sourceBuilder.collapse(nativeSearchQuery.getCollapseBuilder()); - } - - if (!isEmpty(nativeSearchQuery.getIndicesBoost())) { - for (IndexBoost indexBoost : nativeSearchQuery.getIndicesBoost()) { - sourceBuilder.indexBoost(indexBoost.getIndexName(), indexBoost.getBoost()); - } - } - - if (!isEmpty(nativeSearchQuery.getAggregations())) { - for (AbstractAggregationBuilder aggregationBuilder : nativeSearchQuery.getAggregations()) { - sourceBuilder.aggregation(aggregationBuilder); - } - } - - } - - 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())) { - for (AbstractAggregationBuilder aggregationBuilder : nativeSearchQuery.getAggregations()) { - searchRequestBuilder.addAggregation(aggregationBuilder); - } - } - } - - private SearchRequestBuilder prepareSearchRequestBuilder(Query query, Client client, @Nullable Class clazz, - IndexCoordinates index) { - return prepareSearchRequestBuilder(query, client, getPersistentEntity(clazz), index); - } - + @SuppressWarnings("rawtypes") private void prepareSort(Query query, SearchSourceBuilder sourceBuilder, @Nullable ElasticsearchPersistentEntity entity) { @@ -741,6 +724,7 @@ class RequestFactory { } } + @SuppressWarnings("rawtypes") private void prepareSort(Query query, SearchRequestBuilder searchRequestBuilder, @Nullable ElasticsearchPersistentEntity entity) { if (query.getSort() != null) { @@ -756,7 +740,7 @@ class RequestFactory { } } - private SortBuilder getSortBuilder(Sort.Order order, @Nullable ElasticsearchPersistentEntity entity) { + private SortBuilder getSortBuilder(Sort.Order order, @Nullable ElasticsearchPersistentEntity entity) { SortOrder sortOrder = order.getDirection().isDescending() ? SortOrder.DESC : SortOrder.ASC; if (ScoreSortBuilder.NAME.equals(order.getProperty())) { @@ -854,7 +838,7 @@ class RequestFactory { return null; } - private VersionType retrieveVersionTypeFromPersistentEntity(Class clazz) { + private VersionType retrieveVersionTypeFromPersistentEntity(Class clazz) { if (clazz != null) { return elasticsearchConverter.getMappingContext().getRequiredPersistentEntity(clazz).getVersionType(); diff --git a/src/main/java/org/springframework/data/elasticsearch/core/SearchHitSupport.java b/src/main/java/org/springframework/data/elasticsearch/core/SearchHitSupport.java index 6dda54ba5..590b6c984 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/SearchHitSupport.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/SearchHitSupport.java @@ -60,7 +60,7 @@ public final class SearchHitSupport { if (result instanceof AggregatedPage) { AggregatedPage page = (AggregatedPage) result; - List list = page.getContent().stream().map(o -> unwrapSearchHits(o)).collect(Collectors.toList()); + List list = page.getContent().stream().map(SearchHitSupport::unwrapSearchHits).collect(Collectors.toList()); return new AggregatedPageImpl<>(list, null, page.getTotalElements(), page.getAggregations(), page.getScrollId(), page.getMaxScore()); diff --git a/src/main/java/org/springframework/data/elasticsearch/core/SearchOperations.java b/src/main/java/org/springframework/data/elasticsearch/core/SearchOperations.java index 0165c04af..7dc92f6f4 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/SearchOperations.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/SearchOperations.java @@ -237,6 +237,7 @@ public interface SearchOperations { * @return scrolled page result * @deprecated since 4.0, use {@link #searchScrollContinue(String, long, Class)}. */ + @SuppressWarnings("unchecked") @Deprecated default ScrolledPage continueScroll(@Nullable String scrollId, long scrollTimeInMillis, Class clazz) { return (ScrolledPage) SearchHitSupport diff --git a/src/main/java/org/springframework/data/elasticsearch/core/client/support/AliasData.java b/src/main/java/org/springframework/data/elasticsearch/core/client/support/AliasData.java index b25d4ab2b..f8b326a9d 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/client/support/AliasData.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/client/support/AliasData.java @@ -16,19 +16,14 @@ package org.springframework.data.elasticsearch.core.client.support; import lombok.Data; -import lombok.Getter; -import org.elasticsearch.cluster.metadata.AliasMetaData; - -import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; -@JsonIgnoreProperties(ignoreUnknown=true) +@JsonIgnoreProperties(ignoreUnknown = true) @Data public class AliasData { String filter = null; String routing = null; String search_routing = null; - String index_routing= null; + String index_routing = null; } diff --git a/src/main/java/org/springframework/data/elasticsearch/core/convert/DefaultElasticsearchTypeMapper.java b/src/main/java/org/springframework/data/elasticsearch/core/convert/DefaultElasticsearchTypeMapper.java index 5929a6264..a6a5306ac 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/convert/DefaultElasticsearchTypeMapper.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/convert/DefaultElasticsearchTypeMapper.java @@ -84,6 +84,7 @@ public class DefaultElasticsearchTypeMapper extends DefaultTypeMapper source) { return Alias.ofNullable(source.get(typeKey)); } @@ -92,6 +93,7 @@ public class DefaultElasticsearchTypeMapper extends DefaultTypeMapper sink, Object alias) { if (typeKey == null) { diff --git a/src/main/java/org/springframework/data/elasticsearch/core/convert/ElasticsearchCustomConversions.java b/src/main/java/org/springframework/data/elasticsearch/core/convert/ElasticsearchCustomConversions.java index 18cc1c2e0..14b62aee3 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/convert/ElasticsearchCustomConversions.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/convert/ElasticsearchCustomConversions.java @@ -33,6 +33,7 @@ import org.springframework.util.NumberUtils; * Elasticsearch specific {@link CustomConversions}. * * @author Christoph Strobl + * @author Peter-Josef Meisch * @since 3.2 */ public class ElasticsearchCustomConversions extends CustomConversions { @@ -42,9 +43,7 @@ public class ElasticsearchCustomConversions extends CustomConversions { static { - List converters = new ArrayList<>(); - - converters.addAll(GeoConverters.getConvertersToRegister()); + List converters = new ArrayList<>(GeoConverters.getConvertersToRegister()); converters.add(StringToUUIDConverter.INSTANCE); converters.add(UUIDToStringConverter.INSTANCE); converters.add(BigDecimalToDoubleConverter.INSTANCE); diff --git a/src/main/java/org/springframework/data/elasticsearch/core/convert/MappingElasticsearchConverter.java b/src/main/java/org/springframework/data/elasticsearch/core/convert/MappingElasticsearchConverter.java index b383c346b..f42cce959 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/convert/MappingElasticsearchConverter.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/convert/MappingElasticsearchConverter.java @@ -169,9 +169,10 @@ public class MappingElasticsearchConverter .map(searchDocument -> read(type, searchDocument)) // .collect(Collectors.toList()); Aggregations aggregations = searchDocumentResponse.getAggregations(); - return new SearchHits(totalHits, maxScore, scrollId, searchHits, aggregations); + return new SearchHits<>(totalHits, maxScore, scrollId, searchHits, aggregations); } + @Override public SearchHit read(Class type, SearchDocument searchDocument) { Assert.notNull(type, "type must not be null"); @@ -182,7 +183,7 @@ public class MappingElasticsearchConverter Object[] sortValues = searchDocument.getSortValues(); T content = mapDocument(searchDocument, type); - return new SearchHit(id, score, sortValues, content); + return new SearchHit<>(id, score, sortValues, content); } @Override diff --git a/src/main/java/org/springframework/data/elasticsearch/core/document/DocumentAdapters.java b/src/main/java/org/springframework/data/elasticsearch/core/document/DocumentAdapters.java index 28dd733d9..814009b4d 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/document/DocumentAdapters.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/document/DocumentAdapters.java @@ -372,9 +372,7 @@ public class DocumentAdapters { Objects.requireNonNull(action); - documentFields.forEach(field -> { - action.accept(field.getName(), getValue(field)); - }); + documentFields.forEach(field -> action.accept(field.getName(), getValue(field))); } /* @@ -719,7 +717,7 @@ public class DocumentAdapters { String id = hasId() ? getId() : "?"; String version = hasVersion() ? Long.toString(getVersion()) : "?"; - return getClass().getSimpleName() + "@" + id + "#" + version + " " + toJson(); + return getClass().getSimpleName() + '@' + id + '#' + version + ' ' + toJson(); } } } diff --git a/src/main/java/org/springframework/data/elasticsearch/core/document/MapDocument.java b/src/main/java/org/springframework/data/elasticsearch/core/document/MapDocument.java index 78ad9c08f..439aeb3b9 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/document/MapDocument.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/document/MapDocument.java @@ -281,6 +281,6 @@ class MapDocument implements Document { String id = hasId() ? getId() : "?"; String version = hasVersion() ? Long.toString(getVersion()) : "?"; - return getClass().getSimpleName() + "@" + id + "#" + version + " " + toJson(); + return getClass().getSimpleName() + '@' + id + '#' + version + ' ' + toJson(); } } diff --git a/src/main/java/org/springframework/data/elasticsearch/core/index/MappingBuilder.java b/src/main/java/org/springframework/data/elasticsearch/core/index/MappingBuilder.java index b12ef55cb..082c7ecfd 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/index/MappingBuilder.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/index/MappingBuilder.java @@ -31,7 +31,17 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.core.io.ClassPathResource; import org.springframework.data.annotation.Transient; -import org.springframework.data.elasticsearch.annotations.*; +import org.springframework.data.elasticsearch.ElasticsearchException; +import org.springframework.data.elasticsearch.annotations.CompletionContext; +import org.springframework.data.elasticsearch.annotations.CompletionField; +import org.springframework.data.elasticsearch.annotations.DynamicMapping; +import org.springframework.data.elasticsearch.annotations.DynamicTemplates; +import org.springframework.data.elasticsearch.annotations.Field; +import org.springframework.data.elasticsearch.annotations.FieldType; +import org.springframework.data.elasticsearch.annotations.GeoPointField; +import org.springframework.data.elasticsearch.annotations.InnerField; +import org.springframework.data.elasticsearch.annotations.Mapping; +import org.springframework.data.elasticsearch.annotations.MultiField; import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate; import org.springframework.data.elasticsearch.core.ResourceUtil; import org.springframework.data.elasticsearch.core.completion.Completion; @@ -39,6 +49,7 @@ import org.springframework.data.elasticsearch.core.convert.ElasticsearchConverte import org.springframework.data.elasticsearch.core.geo.GeoPoint; import org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentEntity; import org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentProperty; +import org.springframework.data.mapping.MappingException; import org.springframework.data.mapping.PropertyHandler; import org.springframework.data.util.TypeInformation; import org.springframework.lang.Nullable; @@ -95,31 +106,34 @@ public class MappingBuilder { * builds the Elasticsearch mapping for the given clazz. * * @return JSON string - * @throws IOException + * @throws ElasticsearchException on errors while building the mapping */ - public String buildPropertyMapping(Class clazz) throws IOException { + public String buildPropertyMapping(Class clazz) throws ElasticsearchException { - ElasticsearchPersistentEntity entity = elasticsearchConverter.getMappingContext() - .getRequiredPersistentEntity(clazz); + try { + ElasticsearchPersistentEntity entity = elasticsearchConverter.getMappingContext() + .getRequiredPersistentEntity(clazz); - XContentBuilder builder = jsonBuilder().startObject().startObject(entity.getIndexCoordinates().getTypeName()); + XContentBuilder builder = jsonBuilder().startObject(); - // Dynamic templates - addDynamicTemplatesMapping(builder, entity); + // Dynamic templates + addDynamicTemplatesMapping(builder, entity); - // Parent - String parentType = entity.getParentType(); - if (hasText(parentType)) { - builder.startObject(FIELD_PARENT).field(FIELD_PARAM_TYPE, parentType).endObject(); + // Parent + String parentType = entity.getParentType(); + if (hasText(parentType)) { + builder.startObject(FIELD_PARENT).field(FIELD_PARAM_TYPE, parentType).endObject(); + } + + mapEntity(builder, entity, true, "", false, FieldType.Auto, null, entity.findAnnotation(DynamicMapping.class)); + + builder.endObject() // root object + .close(); + + return builder.getOutputStream().toString(); + } catch (MappingException | IOException e) { + throw new ElasticsearchException("could not build mapping", e); } - - mapEntity(builder, entity, true, "", false, FieldType.Auto, null, entity.findAnnotation(DynamicMapping.class)); - - builder.endObject() // indexType - .endObject() // root object - .close(); - - return builder.getOutputStream().toString(); } private void mapEntity(XContentBuilder builder, @Nullable ElasticsearchPersistentEntity entity, boolean isRootObject, diff --git a/src/main/java/org/springframework/data/elasticsearch/core/mapping/ElasticsearchPersistentEntity.java b/src/main/java/org/springframework/data/elasticsearch/core/mapping/ElasticsearchPersistentEntity.java index 759d38745..8b08f321b 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/mapping/ElasticsearchPersistentEntity.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/mapping/ElasticsearchPersistentEntity.java @@ -44,6 +44,7 @@ public interface ElasticsearchPersistentEntity extends PersistentEntitypotential score property of the owning * {@link ElasticsearchPersistentEntity}. This method is mainly used by {@link ElasticsearchPersistentEntity} * implementation to discover score property candidates on {@link ElasticsearchPersistentEntity} creation you should - * rather call {@link ElasticsearchPersistentEntity#isScoreProperty(PersistentProperty)} to determine whether the + * rather call {@link ElasticsearchPersistentEntity#getScoreProperty()} to determine whether the * current property is the score property of that {@link ElasticsearchPersistentEntity} under consideration. * * @return @@ -53,7 +53,7 @@ public interface ElasticsearchPersistentProperty extends PersistentPropertypotential parent property of the owning * {@link ElasticsearchPersistentEntity}. This method is mainly used by {@link ElasticsearchPersistentEntity} * implementation to discover parent property candidates on {@link ElasticsearchPersistentEntity} creation you should - * rather call {@link ElasticsearchPersistentEntity#isParentProperty()} to determine whether the current property is + * rather call {@link ElasticsearchPersistentEntity#getScoreProperty()} to determine whether the current property is * the parent property of that {@link ElasticsearchPersistentEntity} under consideration. * * @return @@ -78,6 +78,7 @@ public interface ElasticsearchPersistentProperty extends PersistentProperty + * {@link org.springframework.data.elasticsearch.core.DocumentOperations#bulkIndex(List, BulkOptions, IndexCoordinates)} or + * {@link org.springframework.data.elasticsearch.core.DocumentOperations#bulkUpdate(List, BulkOptions, IndexCoordinates)} call.
* Use {@link BulkOptions#builder()} to obtain a builder, then set the desired properties and call * {@link BulkOptionsBuilder#build()} to get the BulkOptions object. * diff --git a/src/main/java/org/springframework/data/elasticsearch/core/query/Criteria.java b/src/main/java/org/springframework/data/elasticsearch/core/query/Criteria.java index 3a7bc43c4..91d25e41e 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/query/Criteria.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/query/Criteria.java @@ -515,8 +515,8 @@ public class Criteria { private void assertNoBlankInWildcardedQuery(String searchString, boolean leadingWildcard, boolean trailingWildcard) { if (searchString != null && searchString.contains(CRITERIA_VALUE_SEPERATOR)) { - throw new InvalidDataAccessApiUsageException("Cannot constructQuery '" + (leadingWildcard ? "*" : "") + "\"" - + searchString + "\"" + (trailingWildcard ? "*" : "") + "'. Use expression or multiple clauses instead."); + throw new InvalidDataAccessApiUsageException("Cannot constructQuery '" + (leadingWildcard ? "*" : "") + '"' + + searchString + '"' + (trailingWildcard ? "*" : "") + "'. Use expression or multiple clauses instead."); } } @@ -618,7 +618,7 @@ public class Criteria { /** * @since 4.0 */ - EXISTS; + EXISTS } public static class CriteriaEntry { diff --git a/src/main/java/org/springframework/data/elasticsearch/core/query/CriteriaQuery.java b/src/main/java/org/springframework/data/elasticsearch/core/query/CriteriaQuery.java index 8a4f31466..b348c85bb 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/query/CriteriaQuery.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/query/CriteriaQuery.java @@ -24,6 +24,7 @@ import org.springframework.util.Assert; * @author Rizwan Idrees * @author Mohsin Husen * @author Mark Paluch + * @author Peter-Josef Meisch */ public class CriteriaQuery extends AbstractQuery { @@ -45,7 +46,7 @@ public class CriteriaQuery extends AbstractQuery { this.addSort(pageable.getSort()); } - public static final Query fromQuery(CriteriaQuery source) { + public static Query fromQuery(CriteriaQuery source) { return fromQuery(source, new CriteriaQuery()); } diff --git a/src/main/java/org/springframework/data/elasticsearch/core/query/FetchSourceFilterBuilder.java b/src/main/java/org/springframework/data/elasticsearch/core/query/FetchSourceFilterBuilder.java index ae9113936..317877947 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/query/FetchSourceFilterBuilder.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/query/FetchSourceFilterBuilder.java @@ -39,7 +39,6 @@ public class FetchSourceFilterBuilder { if (includes == null) includes = new String[0]; if (excludes == null) excludes = new String[0]; - SourceFilter sourceFilter = new FetchSourceFilter(includes, excludes); - return sourceFilter; + return new FetchSourceFilter(includes, excludes); } } diff --git a/src/main/java/org/springframework/data/elasticsearch/core/query/UpdateQuery.java b/src/main/java/org/springframework/data/elasticsearch/core/query/UpdateQuery.java index 961c7d164..1e4081bdd 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/query/UpdateQuery.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/query/UpdateQuery.java @@ -15,7 +15,6 @@ */ package org.springframework.data.elasticsearch.core.query; -import org.elasticsearch.action.index.IndexRequest; import org.elasticsearch.action.update.UpdateRequest; /** diff --git a/src/main/java/org/springframework/data/elasticsearch/repository/ElasticsearchRepository.java b/src/main/java/org/springframework/data/elasticsearch/repository/ElasticsearchRepository.java index c04043df3..9e7ad0bd8 100644 --- a/src/main/java/org/springframework/data/elasticsearch/repository/ElasticsearchRepository.java +++ b/src/main/java/org/springframework/data/elasticsearch/repository/ElasticsearchRepository.java @@ -18,7 +18,6 @@ package org.springframework.data.elasticsearch.repository; import org.elasticsearch.index.query.QueryBuilder; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; -import org.springframework.data.elasticsearch.core.query.NativeSearchQuery; import org.springframework.data.elasticsearch.core.query.Query; import org.springframework.data.repository.NoRepositoryBean; diff --git a/src/main/java/org/springframework/data/elasticsearch/repository/query/AbstractReactiveElasticsearchRepositoryQuery.java b/src/main/java/org/springframework/data/elasticsearch/repository/query/AbstractReactiveElasticsearchRepositoryQuery.java index d361d5708..f2a044b57 100644 --- a/src/main/java/org/springframework/data/elasticsearch/repository/query/AbstractReactiveElasticsearchRepositoryQuery.java +++ b/src/main/java/org/springframework/data/elasticsearch/repository/query/AbstractReactiveElasticsearchRepositoryQuery.java @@ -90,7 +90,7 @@ abstract class AbstractReactiveElasticsearchRepositoryQuery implements Repositor IndexCoordinates index = IndexCoordinates.of(indexName).withTypes(indexTypeName); ReactiveElasticsearchQueryExecution execution = getExecution(parameterAccessor, - new ResultProcessingConverter(processor, elasticsearchOperations)); + new ResultProcessingConverter(processor)); return execution.execute(query, processor.getReturnedType().getDomainType(), targetType, index); } diff --git a/src/main/java/org/springframework/data/elasticsearch/repository/query/ElasticsearchEntityMetadata.java b/src/main/java/org/springframework/data/elasticsearch/repository/query/ElasticsearchEntityMetadata.java index 7c3df3b03..2e90241f0 100644 --- a/src/main/java/org/springframework/data/elasticsearch/repository/query/ElasticsearchEntityMetadata.java +++ b/src/main/java/org/springframework/data/elasticsearch/repository/query/ElasticsearchEntityMetadata.java @@ -19,11 +19,17 @@ import org.springframework.data.repository.core.EntityMetadata; /** * @author Christoph Strobl + * @author Peter-Josef Meisch * @since 3.2 */ public interface ElasticsearchEntityMetadata extends EntityMetadata { String getIndexName(); + /** + * @return the type for the index + * @deprecated since 4.0 + */ + @Deprecated String getIndexTypeName(); } diff --git a/src/main/java/org/springframework/data/elasticsearch/repository/query/ElasticsearchParameters.java b/src/main/java/org/springframework/data/elasticsearch/repository/query/ElasticsearchParameters.java index 735b19645..df9d7b67f 100644 --- a/src/main/java/org/springframework/data/elasticsearch/repository/query/ElasticsearchParameters.java +++ b/src/main/java/org/springframework/data/elasticsearch/repository/query/ElasticsearchParameters.java @@ -26,6 +26,7 @@ import org.springframework.data.repository.query.Parameters; /** * @author Christoph Strobl + * @author Peter-Josef Meisch * @since 3.2 */ public class ElasticsearchParameters extends Parameters { @@ -55,26 +56,14 @@ public class ElasticsearchParameters extends Parameters searchHits = elasticsearchOperations.search(query, clazz, index); result = SearchHitSupport.page(searchHits, query.getPageable()); } else if (queryMethod.isStreamQuery()) { - Class entityType = clazz; if (accessor.getPageable().isUnpaged()) { query.setPageable(PageRequest.of(0, DEFAULT_STREAM_BATCH_SIZE)); } else { query.setPageable(accessor.getPageable()); } - result = StreamUtils.createStreamFromIterator(elasticsearchOperations.stream(query, entityType, index)); + result = StreamUtils.createStreamFromIterator(elasticsearchOperations.stream(query, clazz, index)); } else if (queryMethod.isCollectionQuery()) { if (accessor.getPageable().isUnpaged()) { diff --git a/src/main/java/org/springframework/data/elasticsearch/repository/query/ElasticsearchQueryMethod.java b/src/main/java/org/springframework/data/elasticsearch/repository/query/ElasticsearchQueryMethod.java index d9eaf1a08..8fd8a97d9 100644 --- a/src/main/java/org/springframework/data/elasticsearch/repository/query/ElasticsearchQueryMethod.java +++ b/src/main/java/org/springframework/data/elasticsearch/repository/query/ElasticsearchQueryMethod.java @@ -67,6 +67,7 @@ public class ElasticsearchQueryMethod extends QueryMethod { * @return the {@link ElasticsearchEntityMetadata} for the query methods {@link #getReturnedObjectType() return type}. * @since 3.2 */ + @Override public ElasticsearchEntityMetadata getEntityInformation() { if (metadata == null) { diff --git a/src/main/java/org/springframework/data/elasticsearch/repository/query/ReactiveElasticsearchParametersParameterAccessor.java b/src/main/java/org/springframework/data/elasticsearch/repository/query/ReactiveElasticsearchParametersParameterAccessor.java index 6be298523..4ef0b9992 100644 --- a/src/main/java/org/springframework/data/elasticsearch/repository/query/ReactiveElasticsearchParametersParameterAccessor.java +++ b/src/main/java/org/springframework/data/elasticsearch/repository/query/ReactiveElasticsearchParametersParameterAccessor.java @@ -44,9 +44,7 @@ class ReactiveElasticsearchParametersParameterAccessor extends ElasticsearchPara this.subscriptions = new ArrayList<>(values.length); - for (int i = 0; i < values.length; i++) { - - Object value = values[i]; + for (Object value : values) { if (value == null || !ReactiveWrappers.supports(value.getClass())) { @@ -95,6 +93,7 @@ class ReactiveElasticsearchParametersParameterAccessor extends ElasticsearchPara * (non-Javadoc) * @see org.springframework.data.repository.query.ParametersParameterAccessor#getBindableValue(int) */ + @Override public Object getBindableValue(int index) { return getValue(getParameters().getBindableParameter(index).getIndex()); } diff --git a/src/main/java/org/springframework/data/elasticsearch/repository/query/ReactiveElasticsearchQueryExecution.java b/src/main/java/org/springframework/data/elasticsearch/repository/query/ReactiveElasticsearchQueryExecution.java index 7ef44c08e..e3fbc76b1 100644 --- a/src/main/java/org/springframework/data/elasticsearch/repository/query/ReactiveElasticsearchQueryExecution.java +++ b/src/main/java/org/springframework/data/elasticsearch/repository/query/ReactiveElasticsearchQueryExecution.java @@ -17,7 +17,6 @@ package org.springframework.data.elasticsearch.repository.query; import org.springframework.core.convert.converter.Converter; import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates; -import org.springframework.data.elasticsearch.core.ReactiveElasticsearchOperations; import org.springframework.data.elasticsearch.core.query.Query; import org.springframework.data.repository.query.ResultProcessor; import org.springframework.data.repository.query.ReturnedType; @@ -66,13 +65,10 @@ public interface ReactiveElasticsearchQueryExecution { final class ResultProcessingConverter implements Converter { private final ResultProcessor processor; - private final ReactiveElasticsearchOperations operations; - public ResultProcessingConverter(ResultProcessor processor, ReactiveElasticsearchOperations operations) { + public ResultProcessingConverter(ResultProcessor processor) { Assert.notNull(processor, "processor must not be null"); - Assert.notNull(operations, "operations must not be null"); this.processor = processor; - this.operations = operations; } /* diff --git a/src/main/java/org/springframework/data/elasticsearch/repository/query/ReactiveElasticsearchQueryMethod.java b/src/main/java/org/springframework/data/elasticsearch/repository/query/ReactiveElasticsearchQueryMethod.java index 414fc52b6..da6b7dba0 100644 --- a/src/main/java/org/springframework/data/elasticsearch/repository/query/ReactiveElasticsearchQueryMethod.java +++ b/src/main/java/org/springframework/data/elasticsearch/repository/query/ReactiveElasticsearchQueryMethod.java @@ -38,6 +38,7 @@ import org.springframework.util.ClassUtils; /** * @author Christoph Strobl + * @author Peter-Josef Meisch * @since 3.2 */ public class ReactiveElasticsearchQueryMethod extends ElasticsearchQueryMethod { @@ -45,13 +46,10 @@ public class ReactiveElasticsearchQueryMethod extends ElasticsearchQueryMethod { private static final ClassTypeInformation PAGE_TYPE = ClassTypeInformation.from(Page.class); private static final ClassTypeInformation SLICE_TYPE = ClassTypeInformation.from(Slice.class); - private final Method method; - public ReactiveElasticsearchQueryMethod(Method method, RepositoryMetadata metadata, ProjectionFactory factory, MappingContext, ElasticsearchPersistentProperty> mappingContext) { super(method, metadata, factory, mappingContext); - this.method = method; if (hasParameterOfType(method, Pageable.class)) { diff --git a/src/main/java/org/springframework/data/elasticsearch/repository/query/ReactivePartTreeElasticsearchQuery.java b/src/main/java/org/springframework/data/elasticsearch/repository/query/ReactivePartTreeElasticsearchQuery.java index 88ee4d9c4..ee90dfef0 100644 --- a/src/main/java/org/springframework/data/elasticsearch/repository/query/ReactivePartTreeElasticsearchQuery.java +++ b/src/main/java/org/springframework/data/elasticsearch/repository/query/ReactivePartTreeElasticsearchQuery.java @@ -30,13 +30,12 @@ import org.springframework.data.repository.query.parser.PartTree; public class ReactivePartTreeElasticsearchQuery extends AbstractReactiveElasticsearchRepositoryQuery { private final PartTree tree; - private final ResultProcessor processor; public ReactivePartTreeElasticsearchQuery(ReactiveElasticsearchQueryMethod queryMethod, ReactiveElasticsearchOperations elasticsearchOperations) { super(queryMethod, elasticsearchOperations); - this.processor = queryMethod.getResultProcessor(); + ResultProcessor processor = queryMethod.getResultProcessor(); this.tree = new PartTree(queryMethod.getName(), processor.getReturnedType().getDomainType()); } diff --git a/src/main/java/org/springframework/data/elasticsearch/repository/query/SimpleElasticsearchEntityMetadata.java b/src/main/java/org/springframework/data/elasticsearch/repository/query/SimpleElasticsearchEntityMetadata.java index d900f89ac..80aae45b4 100644 --- a/src/main/java/org/springframework/data/elasticsearch/repository/query/SimpleElasticsearchEntityMetadata.java +++ b/src/main/java/org/springframework/data/elasticsearch/repository/query/SimpleElasticsearchEntityMetadata.java @@ -16,10 +16,12 @@ package org.springframework.data.elasticsearch.repository.query; import org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentEntity; +import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates; import org.springframework.util.Assert; /** * @author Christoph Strobl + * @author Peter-Josef Meisch * @since 3.2 */ public class SimpleElasticsearchEntityMetadata implements ElasticsearchEntityMetadata { @@ -43,7 +45,7 @@ public class SimpleElasticsearchEntityMetadata implements ElasticsearchEntity @Override public String getIndexTypeName() { - return entity.getIndexCoordinates().getTypeName(); + return IndexCoordinates.TYPE; } @Override diff --git a/src/main/java/org/springframework/data/elasticsearch/repository/support/AbstractElasticsearchRepository.java b/src/main/java/org/springframework/data/elasticsearch/repository/support/AbstractElasticsearchRepository.java index 04437b862..5977febef 100644 --- a/src/main/java/org/springframework/data/elasticsearch/repository/support/AbstractElasticsearchRepository.java +++ b/src/main/java/org/springframework/data/elasticsearch/repository/support/AbstractElasticsearchRepository.java @@ -101,7 +101,7 @@ public abstract class AbstractElasticsearchRepository implements Elastics putMapping(); } } catch (ElasticsearchException exception) { - LOGGER.error("failed to load elasticsearch nodes : {}", exception.getDetailedMessage()); + LOGGER.warn("Cannot create index: {}", exception.getDetailedMessage()); } } diff --git a/src/main/java/org/springframework/data/elasticsearch/repository/support/ReactiveElasticsearchRepositoryFactory.java b/src/main/java/org/springframework/data/elasticsearch/repository/support/ReactiveElasticsearchRepositoryFactory.java index 0ecb9024e..b9c64c871 100644 --- a/src/main/java/org/springframework/data/elasticsearch/repository/support/ReactiveElasticsearchRepositoryFactory.java +++ b/src/main/java/org/springframework/data/elasticsearch/repository/support/ReactiveElasticsearchRepositoryFactory.java @@ -106,6 +106,7 @@ public class ReactiveElasticsearchRepositoryFactory extends ReactiveRepositoryFa * (non-Javadoc) * @see org.springframework.data.repository.core.support.RepositoryFactorySupport#getEntityInformation(java.lang.Class) */ + @Override public ElasticsearchEntityInformation getEntityInformation(Class domainClass) { return getEntityInformation(domainClass, null); } diff --git a/src/test/java/org/springframework/data/elasticsearch/JUnit5ClusterConnectionTests.java b/src/test/java/org/springframework/data/elasticsearch/JUnit5ClusterConnectionTests.java index a2a04cae4..a35685425 100644 --- a/src/test/java/org/springframework/data/elasticsearch/JUnit5ClusterConnectionTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/JUnit5ClusterConnectionTests.java @@ -19,10 +19,8 @@ import static org.assertj.core.api.Assertions.*; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.data.elasticsearch.junit.jupiter.ClusterConnectionInfo; import org.springframework.data.elasticsearch.junit.jupiter.IntegrationTest; -import org.springframework.data.elasticsearch.junit.jupiter.SpringDataElasticsearchExtension; /** * Testing the setup and parameter injection of the CusterConnectionInfo. diff --git a/src/test/java/org/springframework/data/elasticsearch/NestedObjectTests.java b/src/test/java/org/springframework/data/elasticsearch/NestedObjectTests.java index 29c6f3644..e42b53652 100644 --- a/src/test/java/org/springframework/data/elasticsearch/NestedObjectTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/NestedObjectTests.java @@ -44,6 +44,7 @@ import org.springframework.data.elasticsearch.annotations.FieldType; import org.springframework.data.elasticsearch.annotations.InnerField; 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.core.SearchHits; import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates; import org.springframework.data.elasticsearch.core.query.GetQuery; @@ -66,14 +67,15 @@ import org.springframework.test.context.ContextConfiguration; @ContextConfiguration(classes = { ElasticsearchTemplateConfiguration.class }) public class NestedObjectTests { - @Autowired private ElasticsearchOperations elasticsearchTemplate; + @Autowired private ElasticsearchOperations operations; + private IndexOperations indexOperations; @BeforeEach public void before() { - - IndexInitializer.init(elasticsearchTemplate, Book.class); - IndexInitializer.init(elasticsearchTemplate, Person.class); - IndexInitializer.init(elasticsearchTemplate, PersonMultipleLevelNested.class); + indexOperations = operations.getIndexOperations(); + IndexInitializer.init(indexOperations, Book.class); + IndexInitializer.init(indexOperations, Person.class); + IndexInitializer.init(indexOperations, PersonMultipleLevelNested.class); } @Test @@ -124,14 +126,14 @@ public class NestedObjectTests { indexQueries.add(indexQuery2); IndexCoordinates index = IndexCoordinates.of("test-index-person").withTypes("user"); - elasticsearchTemplate.bulkIndex(indexQueries, index); - elasticsearchTemplate.refresh(Person.class); + operations.bulkIndex(indexQueries, index); + indexOperations.refresh(Person.class); QueryBuilder builder = nestedQuery("car", boolQuery().must(termQuery("car.name", "saturn")).must(termQuery("car.model", "imprezza")), ScoreMode.None); NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(builder).build(); - SearchHits persons = elasticsearchTemplate.search(searchQuery, Person.class, index); + SearchHits persons = operations.search(searchQuery, Person.class, index); assertThat(persons).hasSize(1); } @@ -143,14 +145,14 @@ public class NestedObjectTests { List indexQueries = createPerson(); // when - elasticsearchTemplate.bulkIndex(indexQueries, + operations.bulkIndex(indexQueries, IndexCoordinates.of("test-index-person-multiple-level-nested").withTypes("user")); - elasticsearchTemplate.refresh(PersonMultipleLevelNested.class); + indexOperations.refresh(PersonMultipleLevelNested.class); // then GetQuery getQuery = new GetQuery(); getQuery.setId("1"); - PersonMultipleLevelNested personIndexed = elasticsearchTemplate.get(getQuery, PersonMultipleLevelNested.class, + PersonMultipleLevelNested personIndexed = operations.get(getQuery, PersonMultipleLevelNested.class, IndexCoordinates.of("test-index-person-multiple-level-nested").withTypes("user")); assertThat(personIndexed).isNotNull(); } @@ -162,11 +164,11 @@ public class NestedObjectTests { List indexQueries = createPerson(); // when - elasticsearchTemplate.bulkIndex(indexQueries, + operations.bulkIndex(indexQueries, IndexCoordinates.of("test-index-person-multiple-level-nested").withTypes("user")); // then - Map mapping = elasticsearchTemplate.getMapping(PersonMultipleLevelNested.class); + Map mapping = indexOperations.getMapping(PersonMultipleLevelNested.class); assertThat(mapping).isNotNull(); Map propertyMap = (Map) mapping.get("properties"); @@ -183,8 +185,8 @@ public class NestedObjectTests { // when IndexCoordinates index = IndexCoordinates.of("test-index-person-multiple-level-nested").withTypes("user"); - elasticsearchTemplate.bulkIndex(indexQueries, index); - elasticsearchTemplate.refresh(PersonMultipleLevelNested.class); + operations.bulkIndex(indexQueries, index); + indexOperations.refresh(PersonMultipleLevelNested.class); // then BoolQueryBuilder builder = boolQuery(); @@ -193,7 +195,7 @@ public class NestedObjectTests { NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(builder).build(); - SearchHits personIndexed = elasticsearchTemplate.search(searchQuery, + SearchHits personIndexed = operations.search(searchQuery, PersonMultipleLevelNested.class, index); assertThat(personIndexed).isNotNull(); assertThat(personIndexed.getTotalHits()).isEqualTo(1); @@ -323,14 +325,14 @@ public class NestedObjectTests { indexQueries.add(indexQuery2); IndexCoordinates index = IndexCoordinates.of("test-index-person").withTypes("user"); - elasticsearchTemplate.bulkIndex(indexQueries, index); - elasticsearchTemplate.refresh(Person.class); + operations.bulkIndex(indexQueries, index); + indexOperations.refresh(Person.class); // when QueryBuilder builder = nestedQuery("books", boolQuery().must(termQuery("books.name", "java")), ScoreMode.None); NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(builder).build(); - SearchHits persons = elasticsearchTemplate.search(searchQuery, Person.class, index); + SearchHits persons = operations.search(searchQuery, Person.class, index); // then assertThat(persons).hasSize(1); @@ -372,13 +374,13 @@ public class NestedObjectTests { // when IndexCoordinates index = IndexCoordinates.of("test-index-book-nested-objects").withTypes("book"); - elasticsearchTemplate.bulkIndex(indexQueries, index); - elasticsearchTemplate.refresh(Book.class); + operations.bulkIndex(indexQueries, index); + indexOperations.refresh(Book.class); // then NativeSearchQuery searchQuery = new NativeSearchQueryBuilder() .withQuery(nestedQuery("buckets", termQuery("buckets.1", "test3"), ScoreMode.None)).build(); - SearchHits books = elasticsearchTemplate.search(searchQuery, Book.class, index); + SearchHits books = operations.search(searchQuery, Book.class, index); assertThat(books.getSearchHits()).hasSize(1); assertThat(books.getSearchHit(0).getContent().getId()).isEqualTo(book2.getId()); @@ -386,7 +388,7 @@ public class NestedObjectTests { @Setter @Getter - @Document(indexName = "test-index-book-nested-objects", type = "book", shards = 1, replicas = 0, + @Document(indexName = "test-index-book-nested-objects", replicas = 0, refreshInterval = "-1") static class Book { @@ -400,7 +402,7 @@ public class NestedObjectTests { } @Data - @Document(indexName = "test-index-person", type = "user", shards = 1, replicas = 0, refreshInterval = "-1") + @Document(indexName = "test-index-person", replicas = 0, refreshInterval = "-1") static class Person { @Id private String id; @@ -425,7 +427,7 @@ public class NestedObjectTests { * @author Artur Konczak */ @Data - @Document(indexName = "test-index-person-multiple-level-nested", type = "user", shards = 1, replicas = 0, + @Document(indexName = "test-index-person-multiple-level-nested", replicas = 0, refreshInterval = "-1") static class PersonMultipleLevelNested { diff --git a/src/test/java/org/springframework/data/elasticsearch/TestUtils.java b/src/test/java/org/springframework/data/elasticsearch/TestUtils.java index 7e6be5287..bd879cb78 100644 --- a/src/test/java/org/springframework/data/elasticsearch/TestUtils.java +++ b/src/test/java/org/springframework/data/elasticsearch/TestUtils.java @@ -34,7 +34,6 @@ import org.springframework.data.elasticsearch.client.reactive.ReactiveRestClient import org.springframework.data.elasticsearch.support.SearchHitsUtil; import org.springframework.data.util.Version; import org.springframework.util.ObjectUtils; -import org.springframework.util.StringUtils; /** * @author Christoph Strobl @@ -115,7 +114,6 @@ public final class TestUtils { private static class DocumentLookup implements OfType { private String id; - private String type; public DocumentLookup(String id) { this.id = id; @@ -126,9 +124,6 @@ public final class TestUtils { public boolean existsIn(String index) { GetRequest request = new GetRequest(index).id(id); - if (StringUtils.hasText(type)) { - request = request.type(type); - } try (RestHighLevelClient client = restHighLevelClient()) { return client.get(request, RequestOptions.DEFAULT).isExists(); } @@ -136,7 +131,6 @@ public final class TestUtils { @Override public ExistsIn ofType(String type) { - this.type = type; return this; } } diff --git a/src/test/java/org/springframework/data/elasticsearch/client/reactive/ReactiveElasticsearchClientTests.java b/src/test/java/org/springframework/data/elasticsearch/client/reactive/ReactiveElasticsearchClientTests.java index cea61945c..aa1c0fc0b 100644 --- a/src/test/java/org/springframework/data/elasticsearch/client/reactive/ReactiveElasticsearchClientTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/client/reactive/ReactiveElasticsearchClientTests.java @@ -18,6 +18,7 @@ package org.springframework.data.elasticsearch.client.reactive; import static org.assertj.core.api.Assertions.*; import lombok.SneakyThrows; +import org.elasticsearch.client.indices.GetIndexRequest; import reactor.test.StepVerifier; import java.io.IOException; @@ -31,7 +32,6 @@ import java.util.stream.IntStream; import org.elasticsearch.ElasticsearchStatusException; import org.elasticsearch.Version; -import org.elasticsearch.action.admin.indices.get.GetIndexRequest; import org.elasticsearch.action.bulk.BulkRequest; import org.elasticsearch.action.delete.DeleteRequest; import org.elasticsearch.action.get.GetRequest; @@ -134,17 +134,14 @@ public class ReactiveElasticsearchClientTests { public void infoShouldReturnClusterInformation() { client.info().as(StepVerifier::create) // - .consumeNextWith(it -> { - - assertThat(it.getVersion()).isGreaterThanOrEqualTo(Version.CURRENT); - }) // + .consumeNextWith(it -> assertThat(it.getVersion()).isGreaterThanOrEqualTo(Version.CURRENT)) // .verifyComplete(); } @Test // DATAES-519 public void getOnNonExistingIndexShouldThrowException() { - client.get(new GetRequest(INDEX_I, TYPE_I, "nonono")) // + client.get(new GetRequest(INDEX_I, "nonono")) // .as(StepVerifier::create) // .expectError(ElasticsearchStatusException.class) // .verify(); @@ -155,7 +152,7 @@ public class ReactiveElasticsearchClientTests { String id = addSourceDocument().ofType(TYPE_I).to(INDEX_I); - client.get(new GetRequest(INDEX_I, TYPE_I, id)) // + client.get(new GetRequest(INDEX_I, id)) // .as(StepVerifier::create) // .consumeNextWith(it -> { @@ -171,17 +168,7 @@ public class ReactiveElasticsearchClientTests { addSourceDocument().ofType(TYPE_I).to(INDEX_I); String id = "this-one-does-not-exist"; - client.get(new GetRequest(INDEX_I, TYPE_I, id)) // - .as(StepVerifier::create) // - .verifyComplete(); - } - - @Test // DATAES-488 - public void getShouldCompleteForNonExistingType() { - - String id = addSourceDocument().ofType(TYPE_I).to(INDEX_I); - - client.get(new GetRequest(INDEX_I, "fantasy-books", id)) // + client.get(new GetRequest(INDEX_I, id)) // .as(StepVerifier::create) // .verifyComplete(); } @@ -193,17 +180,13 @@ public class ReactiveElasticsearchClientTests { String id2 = addSourceDocument().ofType(TYPE_I).to(INDEX_I); MultiGetRequest request = new MultiGetRequest() // - .add(INDEX_I, TYPE_I, id1) // - .add(INDEX_I, TYPE_I, id2); + .add(INDEX_I, id1) // + .add(INDEX_I, id2); client.multiGet(request) // .as(StepVerifier::create) // - .consumeNextWith(it -> { - assertThat(it.getId()).isEqualTo(id1); - }) // - .consumeNextWith(it -> { - assertThat(it.getId()).isEqualTo(id2); - }) // + .consumeNextWith(it -> assertThat(it.getId()).isEqualTo(id1)) // + .consumeNextWith(it -> assertThat(it.getId()).isEqualTo(id2)) // .verifyComplete(); } @@ -214,14 +197,12 @@ public class ReactiveElasticsearchClientTests { addSourceDocument().ofType(TYPE_I).to(INDEX_I); MultiGetRequest request = new MultiGetRequest() // - .add(INDEX_I, TYPE_I, id1) // - .add(INDEX_I, TYPE_I, "this-one-does-not-exist"); + .add(INDEX_I, id1) // + .add(INDEX_I, "this-one-does-not-exist"); client.multiGet(request) // .as(StepVerifier::create) // - .consumeNextWith(it -> { - assertThat(it.getId()).isEqualTo(id1); - }) // + .consumeNextWith(it -> assertThat(it.getId()).isEqualTo(id1)) // .verifyComplete(); } @@ -232,9 +213,9 @@ public class ReactiveElasticsearchClientTests { String id2 = addSourceDocument().ofType(TYPE_I).to(INDEX_I); MultiGetRequest request = new MultiGetRequest() // - .add(INDEX_I, TYPE_I, id1) // - .add(INDEX_I, TYPE_I, "this-one-does-not-exist") // - .add(INDEX_I, TYPE_I, id2); // + .add(INDEX_I,id1) // + .add(INDEX_I,"this-one-does-not-exist") // + .add(INDEX_I,id2); // client.multiGet(request) // .map(GetResult::getId) // @@ -249,7 +230,9 @@ public class ReactiveElasticsearchClientTests { String id1 = addSourceDocument().ofType(TYPE_I).to(INDEX_I); String id2 = addSourceDocument().ofType(TYPE_I).to(INDEX_I); - client.multiGet(new MultiGetRequest().add(INDEX_II, TYPE_I, id1).add(INDEX_II, TYPE_I, id2)) // + client.multiGet(new MultiGetRequest() // + .add(INDEX_II, id1) + .add(INDEX_II, id2)) // .as(StepVerifier::create) // .verifyComplete(); } @@ -261,8 +244,8 @@ public class ReactiveElasticsearchClientTests { String id2 = addSourceDocument().ofType(TYPE_II).to(INDEX_II); MultiGetRequest request = new MultiGetRequest() // - .add(INDEX_I, TYPE_I, id1) // - .add(INDEX_II, TYPE_II, id2); + .add(INDEX_I, id1) // + .add(INDEX_II, id2); client.multiGet(request) // .map(GetResult::getId) // @@ -276,7 +259,7 @@ public class ReactiveElasticsearchClientTests { String id = addSourceDocument().ofType(TYPE_I).to(INDEX_I); - client.exists(new GetRequest(INDEX_I, TYPE_I, id)) // + client.exists(new GetRequest(INDEX_I, id)) // .as(StepVerifier::create) // .expectNext(true)// .verifyComplete(); @@ -287,7 +270,7 @@ public class ReactiveElasticsearchClientTests { String id = addSourceDocument().ofType(TYPE_I).to(INDEX_I); - client.exists(new GetRequest(INDEX_II, TYPE_I, id)) // + client.exists(new GetRequest(INDEX_II, id)) // .as(StepVerifier::create) // .expectNext(false)// .verifyComplete(); @@ -325,7 +308,7 @@ public class ReactiveElasticsearchClientTests { public void updateShouldUpsertNonExistingDocumentWhenUsedWithUpsert() { String id = UUID.randomUUID().toString(); - UpdateRequest request = new UpdateRequest(INDEX_I, TYPE_I, id) // + UpdateRequest request = new UpdateRequest(INDEX_I, id) // .doc(DOC_SOURCE) // .docAsUpsert(true); @@ -344,7 +327,7 @@ public class ReactiveElasticsearchClientTests { String id = addSourceDocument().ofType(TYPE_I).to(INDEX_I); - UpdateRequest request = new UpdateRequest(INDEX_I, TYPE_I, id) // + UpdateRequest request = new UpdateRequest(INDEX_I, id) // .doc(Collections.singletonMap("dutiful", "farseer")); client.update(request) // @@ -362,7 +345,7 @@ public class ReactiveElasticsearchClientTests { public void updateShouldErrorNonExistingDocumentWhenNotUpserted() { String id = UUID.randomUUID().toString(); - UpdateRequest request = new UpdateRequest(INDEX_I, TYPE_I, id) // + UpdateRequest request = new UpdateRequest(INDEX_I, id) // .doc(DOC_SOURCE); client.update(request) // @@ -375,13 +358,11 @@ public class ReactiveElasticsearchClientTests { String id = addSourceDocument().ofType(TYPE_I).to(INDEX_I); - DeleteRequest request = new DeleteRequest(INDEX_I, TYPE_I, id); + DeleteRequest request = new DeleteRequest(INDEX_I, id); client.delete(request) // .as(StepVerifier::create) // - .consumeNextWith(it -> { - assertThat(it.status()).isEqualTo(RestStatus.OK); - }) // + .consumeNextWith(it -> assertThat(it.status()).isEqualTo(RestStatus.OK)) // .verifyComplete(); } @@ -390,13 +371,11 @@ public class ReactiveElasticsearchClientTests { addSourceDocument().ofType(TYPE_I).to(INDEX_I); - DeleteRequest request = new DeleteRequest(INDEX_I, TYPE_I, "this-one-does-not-exist"); + DeleteRequest request = new DeleteRequest(INDEX_I, "this-one-does-not-exist"); client.delete(request) // .as(StepVerifier::create) // - .consumeNextWith(it -> { - assertThat(it.status()).isEqualTo(RestStatus.NOT_FOUND); - }) // + .consumeNextWith(it -> assertThat(it.status()).isEqualTo(RestStatus.NOT_FOUND)) // .verifyComplete(); } @@ -406,7 +385,7 @@ public class ReactiveElasticsearchClientTests { addSourceDocument().ofType(TYPE_I).to(INDEX_I); addSourceDocument().ofType(TYPE_I).to(INDEX_I); - SearchRequest request = new SearchRequest(INDEX_I).types(TYPE_I) // + SearchRequest request = new SearchRequest(INDEX_I) // .source(new SearchSourceBuilder().query(QueryBuilders.matchAllQuery())); client.search(request) // @@ -420,7 +399,7 @@ public class ReactiveElasticsearchClientTests { syncClient.indices().create(new CreateIndexRequest(INDEX_I), RequestOptions.DEFAULT); - SearchRequest request = new SearchRequest(INDEX_I).types(TYPE_I) // + SearchRequest request = new SearchRequest(INDEX_I) // .source(new SearchSourceBuilder().query(QueryBuilders.matchAllQuery())); client.search(request) // @@ -435,7 +414,6 @@ public class ReactiveElasticsearchClientTests { String id = addSourceDocument().ofType(TYPE_I).to(INDEX_I); DeleteByQueryRequest request = new DeleteByQueryRequest(INDEX_I) // - .setDocTypes(TYPE_I) // .setQuery(QueryBuilders.boolQuery().must(QueryBuilders.termQuery("_id", id))); client.deleteBy(request) // @@ -452,7 +430,6 @@ public class ReactiveElasticsearchClientTests { addSourceDocument().ofType(TYPE_I).to(INDEX_I); DeleteByQueryRequest request = new DeleteByQueryRequest(INDEX_I) // - .setDocTypes(TYPE_I) // .setQuery(QueryBuilders.boolQuery().must(QueryBuilders.termQuery("_id", "it-was-not-me"))); client.deleteBy(request) // @@ -467,7 +444,7 @@ public class ReactiveElasticsearchClientTests { IntStream.range(0, 100).forEach(it -> add(Collections.singletonMap(it + "-foo", "bar")).ofType(TYPE_I).to(INDEX_I)); - SearchRequest request = new SearchRequest(INDEX_I).types(TYPE_I) // + SearchRequest request = new SearchRequest(INDEX_I) // .source(new SearchSourceBuilder().query(QueryBuilders.matchAllQuery())); request = request.scroll(TimeValue.timeValueMinutes(1)); @@ -483,7 +460,7 @@ public class ReactiveElasticsearchClientTests { IntStream.range(0, 100).forEach(it -> add(Collections.singletonMap(it + "-foo", "bar")).ofType(TYPE_I).to(INDEX_I)); - SearchRequest request = new SearchRequest(INDEX_I).types(TYPE_I) // + SearchRequest request = new SearchRequest(INDEX_I) // .source(new SearchSourceBuilder().query(QueryBuilders.matchAllQuery())); request = request.scroll(TimeValue.timeValueMinutes(1)); @@ -524,7 +501,7 @@ public class ReactiveElasticsearchClientTests { .as(StepVerifier::create) // .verifyComplete(); - assertThat(syncClient.indices().exists(new GetIndexRequest().indices(INDEX_I), RequestOptions.DEFAULT)).isTrue(); + assertThat(syncClient.indices().exists(new GetIndexRequest(INDEX_I), RequestOptions.DEFAULT)).isTrue(); } @Test // DATAES-569 @@ -546,7 +523,7 @@ public class ReactiveElasticsearchClientTests { .as(StepVerifier::create) // .verifyComplete(); - assertThat(syncClient.indices().exists(new GetIndexRequest().indices(INDEX_I), RequestOptions.DEFAULT)).isFalse(); + assertThat(syncClient.indices().exists(new GetIndexRequest(INDEX_I), RequestOptions.DEFAULT)).isFalse(); } @Test // DATAES-569 @@ -658,9 +635,9 @@ public class ReactiveElasticsearchClientTests { String idFirstDoc = addSourceDocument().ofType(TYPE_I).to(INDEX_I); String idSecondDoc = addSourceDocument().ofType(TYPE_I).to(INDEX_I); - UpdateRequest requestFirstDoc = new UpdateRequest(INDEX_I, TYPE_I, idFirstDoc) // + UpdateRequest requestFirstDoc = new UpdateRequest(INDEX_I, idFirstDoc) // .doc(Collections.singletonMap("dutiful", "farseer")); - UpdateRequest requestSecondDoc = new UpdateRequest(INDEX_I, TYPE_I, idSecondDoc) // + UpdateRequest requestSecondDoc = new UpdateRequest(INDEX_I, idSecondDoc) // .doc(Collections.singletonMap("secondDocUpdate", "secondDocUpdatePartTwo")); BulkRequest bulkRequest = new BulkRequest(); @@ -683,13 +660,13 @@ public class ReactiveElasticsearchClientTests { return add(DOC_SOURCE); } - private AddToIndexOfType add(Map source) { + private AddToIndexOfType add(Map source) { return new AddDocument(source); } private IndexRequest indexRequest(Map source, String index, String type) { - return new IndexRequest(index, type) // + return new IndexRequest(index) // .id(UUID.randomUUID().toString()) // .source(source) // .setRefreshPolicy(RefreshPolicy.IMMEDIATE) // @@ -711,10 +688,10 @@ public class ReactiveElasticsearchClientTests { class AddDocument implements AddToIndexOfType { - Map source; + Map source; @Nullable String type; - AddDocument(Map source) { + AddDocument(Map source) { this.source = source; } diff --git a/src/test/java/org/springframework/data/elasticsearch/client/reactive/ReactiveElasticsearchClientUnitTests.java b/src/test/java/org/springframework/data/elasticsearch/client/reactive/ReactiveElasticsearchClientUnitTests.java index 4a7488c68..01e4ee615 100644 --- a/src/test/java/org/springframework/data/elasticsearch/client/reactive/ReactiveElasticsearchClientUnitTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/client/reactive/ReactiveElasticsearchClientUnitTests.java @@ -16,7 +16,6 @@ package org.springframework.data.elasticsearch.client.reactive; import static org.assertj.core.api.Assertions.*; -import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import static org.springframework.data.elasticsearch.client.reactive.ReactiveMockClientTestsUtils.MockWebClientProvider.Receive.*; diff --git a/src/test/java/org/springframework/data/elasticsearch/client/reactive/ReactiveMockClientTestsUtils.java b/src/test/java/org/springframework/data/elasticsearch/client/reactive/ReactiveMockClientTestsUtils.java index 49063946b..2ff13a387 100644 --- a/src/test/java/org/springframework/data/elasticsearch/client/reactive/ReactiveMockClientTestsUtils.java +++ b/src/test/java/org/springframework/data/elasticsearch/client/reactive/ReactiveMockClientTestsUtils.java @@ -129,10 +129,12 @@ public class ReactiveMockClientTestsUtils { this.activeDefaultHost = activeDefaultHost; } + @Override public Mono lookupActiveHost() { return delegate.lookupActiveHost(); } + @Override public Mono lookupActiveHost(Verification verification) { if (StringUtils.hasText(activeDefaultHost)) { @@ -142,14 +144,17 @@ public class ReactiveMockClientTestsUtils { return delegate.lookupActiveHost(verification); } + @Override public Mono getActive() { return delegate.getActive(); } + @Override public Mono getActive(Verification verification) { return delegate.getActive(verification); } + @Override public WebClient createWebClient(InetSocketAddress endpoint) { return delegate.createWebClient(endpoint); } @@ -210,6 +215,7 @@ public class ReactiveMockClientTestsUtils { return get(getInetSocketAddress(host)); } + @Override public WebClient get(InetSocketAddress endpoint) { synchronized (lock) { diff --git a/src/test/java/org/springframework/data/elasticsearch/config/abstractelasticsearchconfiguration/ElasticsearchConfigurationTests.java b/src/test/java/org/springframework/data/elasticsearch/config/abstractelasticsearchconfiguration/ElasticsearchConfigurationTests.java index 4ec7d5fbf..f234bc959 100644 --- a/src/test/java/org/springframework/data/elasticsearch/config/abstractelasticsearchconfiguration/ElasticsearchConfigurationTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/config/abstractelasticsearchconfiguration/ElasticsearchConfigurationTests.java @@ -65,7 +65,7 @@ public class ElasticsearchConfigurationTests { assertThat(repository).isNotNull(); } - @Document(indexName = "test-index-config-abstractelasticsearchconfiguraiton", type = "test-type", createIndex = false) + @Document(indexName = "test-index-config-abstractelasticsearchconfiguraiton", createIndex = false) static class CreateIndexFalseEntity { @Id private String id; 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 1618e0732..591fcdc17 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 @@ -63,7 +63,7 @@ public class ElasticsearchNamespaceHandlerTests { assertThat(context.getBean(RestClientFactoryBean.class)).isInstanceOf(RestClientFactoryBean.class); } - @Document(indexName = "test-index-config-namespace", type = "test-type", createIndex = false) + @Document(indexName = "test-index-config-namespace", createIndex = false) static class CreateIndexFalseEntity { @Id private String id; diff --git a/src/test/java/org/springframework/data/elasticsearch/config/nested/EnableNestedElasticsearchRepositoriesTests.java b/src/test/java/org/springframework/data/elasticsearch/config/nested/EnableNestedElasticsearchRepositoriesTests.java index 8c232a9dd..72df2ec51 100644 --- a/src/test/java/org/springframework/data/elasticsearch/config/nested/EnableNestedElasticsearchRepositoriesTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/config/nested/EnableNestedElasticsearchRepositoriesTests.java @@ -35,7 +35,7 @@ import org.springframework.data.elasticsearch.annotations.Field; import org.springframework.data.elasticsearch.annotations.Score; import org.springframework.data.elasticsearch.annotations.ScriptedField; import org.springframework.data.elasticsearch.core.geo.GeoPoint; -import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration; +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; @@ -50,7 +50,7 @@ import org.springframework.test.context.ContextConfiguration; public class EnableNestedElasticsearchRepositoriesTests { @Configuration - @Import({ ElasticsearchTemplateConfiguration.class }) + @Import({ ElasticsearchRestTemplateConfiguration.class }) @EnableElasticsearchRepositories(basePackages = { "org.springframework.data.elasticsearch.config.nested" }, considerNestedRepositories = true) static class Config {} @@ -64,8 +64,7 @@ public class EnableNestedElasticsearchRepositoriesTests { @Data @Builder - @Document(indexName = "test-index-sample-config-nested", type = "test-type", shards = 1, replicas = 0, - refreshInterval = "-1") + @Document(indexName = "test-index-sample-config-nested", replicas = 0, refreshInterval = "-1") static class SampleEntity { @Id private String id; diff --git a/src/test/java/org/springframework/data/elasticsearch/config/nested/EnableNestedElasticsearchRepositoriesTransportTests.java b/src/test/java/org/springframework/data/elasticsearch/config/nested/EnableNestedElasticsearchRepositoriesTransportTests.java new file mode 100644 index 000000000..f21ab286e --- /dev/null +++ b/src/test/java/org/springframework/data/elasticsearch/config/nested/EnableNestedElasticsearchRepositoriesTransportTests.java @@ -0,0 +1,33 @@ +/* + * Copyright 2019 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.nested; + +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 = { EnableNestedElasticsearchRepositoriesTransportTests.Config.class }) +public class EnableNestedElasticsearchRepositoriesTransportTests { + @Configuration + @Import({ ElasticsearchTemplateConfiguration.class }) + @EnableElasticsearchRepositories(considerNestedRepositories = true) + 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 348abe6e5..fb6107bac 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 @@ -83,7 +83,7 @@ public class EnableElasticsearchRepositoriesTests implements ApplicationContextA @BeforeEach public void before() { - IndexInitializer.init(operations, SampleEntity.class); + IndexInitializer.init(operations.getIndexOperations(), SampleEntity.class); } @Test @@ -112,8 +112,7 @@ public class EnableElasticsearchRepositoriesTests implements ApplicationContextA } @Data - @Document(indexName = "test-index-sample-config-not-nested", type = "test-type", shards = 1, replicas = 0, - refreshInterval = "-1") + @Document(indexName = "test-index-sample-config-not-nested", replicas = 0, refreshInterval = "-1") static class SampleEntity { @Id private String id; @@ -129,8 +128,7 @@ public class EnableElasticsearchRepositoriesTests implements ApplicationContextA } @Data - @Document(indexName = "test-index-uuid-keyed-config-not-nested", type = "test-type-uuid-keyed", shards = 1, - replicas = 0, refreshInterval = "-1") + @Document(indexName = "test-index-uuid-keyed-config-not-nested", replicas = 0, refreshInterval = "-1") static class SampleEntityUUIDKeyed { @Id private UUID id; diff --git a/src/test/java/org/springframework/data/elasticsearch/core/DocumentAdaptersUnitTests.java b/src/test/java/org/springframework/data/elasticsearch/core/DocumentAdaptersUnitTests.java index 740083eff..1e03dfa21 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/DocumentAdaptersUnitTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/DocumentAdaptersUnitTests.java @@ -45,7 +45,7 @@ public class DocumentAdaptersUnitTests { public void shouldAdaptGetResponse() { Map fields = Collections.singletonMap("field", - new DocumentField("field", Arrays.asList("value"))); + new DocumentField("field", Collections.singletonList("value"))); GetResult getResult = new GetResult("index", "type", "my-id", 1, 1, 42, true, null, fields, null); GetResponse response = new GetResponse(getResult); @@ -80,7 +80,7 @@ public class DocumentAdaptersUnitTests { public void shouldAdaptSearchResponse() { Map fields = Collections.singletonMap("field", - new DocumentField("field", Arrays.asList("value"))); + new DocumentField("field", Collections.singletonList("value"))); SearchHit searchHit = new SearchHit(123, "my-id", new Text("type"), fields); searchHit.score(42); @@ -99,7 +99,7 @@ public class DocumentAdaptersUnitTests { Map fields = new LinkedHashMap<>(); - fields.put("string", new DocumentField("string", Arrays.asList("value"))); + fields.put("string", new DocumentField("string", Collections.singletonList("value"))); fields.put("bool", new DocumentField("bool", Arrays.asList(true, true, false))); SearchHit searchHit = new SearchHit(123, "my-id", new Text("type"), fields); @@ -115,7 +115,7 @@ public class DocumentAdaptersUnitTests { Map fields = new LinkedHashMap<>(); - fields.put("string", new DocumentField("string", Arrays.asList("value"))); + fields.put("string", new DocumentField("string", Collections.singletonList("value"))); fields.put("bool", new DocumentField("bool", Arrays.asList(true, true, false))); fields.put("null", new DocumentField("null", Collections.emptyList())); @@ -133,7 +133,7 @@ public class DocumentAdaptersUnitTests { Map fields = new LinkedHashMap<>(); - fields.put("string", new DocumentField("string", Arrays.asList("value"))); + fields.put("string", new DocumentField("string", Collections.singletonList("value"))); fields.put("bool", new DocumentField("bool", Arrays.asList(true, true, false))); SearchHit searchHit = new SearchHit(123, "my-id", new Text("type"), fields); diff --git a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchRestTemplateTests.java b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchRestTemplateTests.java index 83a286cb3..01271dd76 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchRestTemplateTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchRestTemplateTests.java @@ -60,14 +60,12 @@ public class ElasticsearchRestTemplateTests extends ElasticsearchTemplateTests { IndexRequest indexRequest = new IndexRequest(); indexRequest.source("{}", XContentType.JSON); UpdateQuery updateQuery = new UpdateQueryBuilder().withId(randomNumeric(5)).withIndexRequest(indexRequest).build(); - assertThatThrownBy(() -> { - operations.update(updateQuery, index); - }).isInstanceOf(ElasticsearchStatusException.class); + assertThatThrownBy(() -> operations.update(updateQuery, index)).isInstanceOf(ElasticsearchStatusException.class); } @Data @Builder - @Document(indexName = "test-index-sample-core-rest-template", type = "test-type", shards = 1, replicas = 0, + @Document(indexName = "test-index-sample-core-rest-template", replicas = 0, refreshInterval = "-1") static class SampleEntity { 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 4f4b7cefb..64036be37 100755 --- a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java @@ -332,9 +332,7 @@ public abstract class ElasticsearchTemplateTests { .withPreference("_only_nodes:oops").build(); // when - assertThatThrownBy(() -> { - operations.search(searchQueryWithInvalidPreference, SampleEntity.class, index); - }).isInstanceOf(Exception.class); + assertThatThrownBy(() -> operations.search(searchQueryWithInvalidPreference, SampleEntity.class, index)).isInstanceOf(Exception.class); } @Test // DATAES-422 - Add support for IndicesOptions in search queries @@ -515,7 +513,7 @@ public abstract class ElasticsearchTemplateTests { // when DeleteQuery deleteQuery = new DeleteQuery(); - deleteQuery.setQuery(typeQuery(TYPE_NAME)); + deleteQuery.setQuery(termQuery("message", "foo")); operations.delete(deleteQuery, IndexCoordinates.of("test-index-*").withTypes(TYPE_NAME)); @@ -1390,8 +1388,8 @@ public abstract class ElasticsearchTemplateTests { indexOperations.createIndex(INDEX_1_NAME); // when - indexOperations.putMapping(IndexCoordinates.of(INDEX_1_NAME).withTypes(TYPE_NAME), entity); + // then Map mapping = indexOperations.getMapping(IndexCoordinates.of(INDEX_1_NAME).withTypes(TYPE_NAME)); assertThat(mapping.get("properties")).isNotNull(); @@ -1441,7 +1439,7 @@ public abstract class ElasticsearchTemplateTests { } @Test // DATAES-227 - public void shouldUseUpsertOnUpdate() throws IOException { + public void shouldUseUpsertOnUpdate() { // given Map doc = new HashMap<>(); @@ -1465,7 +1463,7 @@ public abstract class ElasticsearchTemplateTests { } @Test // DATAES-693 - public void shouldReturnSourceWhenRequested() throws IOException { + public void shouldReturnSourceWhenRequested() { // given Map doc = new HashMap<>(); doc.put("id", "1"); @@ -1525,12 +1523,10 @@ public abstract class ElasticsearchTemplateTests { NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()) .withIndicesOptions(IndicesOptions.lenientExpandOpen()).build(); - List> entities = new ArrayList<>(); - ScrolledPage> scroll = operations.searchScrollStart(scrollTimeInMillis, searchQuery, SampleEntity.class, index); - entities.addAll(scroll.getContent()); + List> entities = new ArrayList<>(scroll.getContent()); while (scroll.hasContent()) { scroll = operations.searchScrollContinue(scroll.getScrollId(), scrollTimeInMillis, SampleEntity.class); @@ -1858,9 +1854,7 @@ public abstract class ElasticsearchTemplateTests { indexOperations.refresh(IndexCoordinates.of(INDEX_NAME_SAMPLE_ENTITY)); // reindex with version one below - assertThatThrownBy(() -> { - operations.index(indexQueryBuilder.withVersion(entity.getVersion() - 1).build(), index); - }).hasMessageContaining("version").hasMessageContaining("conflict"); + assertThatThrownBy(() -> operations.index(indexQueryBuilder.withVersion(entity.getVersion() - 1).build(), index)).hasMessageContaining("version").hasMessageContaining("conflict"); } @Test @@ -2140,9 +2134,7 @@ public abstract class ElasticsearchTemplateTests { CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria()); // when - assertThatThrownBy(() -> { - operations.count(criteriaQuery, (IndexCoordinates) null); - }).isInstanceOf(IllegalArgumentException.class); + assertThatThrownBy(() -> operations.count(criteriaQuery, (IndexCoordinates) null)).isInstanceOf(IllegalArgumentException.class); } @Test // DATAES-67 @@ -2159,9 +2151,7 @@ public abstract class ElasticsearchTemplateTests { NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build(); // when - assertThatThrownBy(() -> { - operations.count(searchQuery, (IndexCoordinates) null); - }).isInstanceOf(IllegalArgumentException.class); + assertThatThrownBy(() -> operations.count(searchQuery, (IndexCoordinates) null)).isInstanceOf(IllegalArgumentException.class); } @Test // DATAES-71 @@ -2173,7 +2163,7 @@ public abstract class ElasticsearchTemplateTests { + " \"analyzer\": {\n" + " \"emailAnalyzer\": {\n" + " \"type\": \"custom\",\n" + " \"tokenizer\": \"uax_url_email\"\n" + " }\n" - + " }\n" + " }\n" + " }\n" + "}"; + + " }\n" + " }\n" + " }\n" + '}'; indexOperations.deleteIndex(INDEX_3_NAME); @@ -2215,7 +2205,7 @@ public abstract class ElasticsearchTemplateTests { + " \"analyzer\": {\n" + " \"emailAnalyzer\": {\n" + " \"type\": \"custom\",\n" + " \"tokenizer\": \"uax_url_email\"\n" + " }\n" - + " }\n" + " }\n" + " }\n" + "}"; + + " }\n" + " }\n" + " }\n" + '}'; // when indexOperations.deleteIndex(SampleEntity.class); @@ -2798,7 +2788,7 @@ public abstract class ElasticsearchTemplateTests { assertThat(aliases).isEmpty(); } - @Document(indexName = INDEX_2_NAME, replicas = 0, shards = 1) + @Document(indexName = INDEX_2_NAME, replicas = 0) class ResultAggregator { private String id; @@ -2900,7 +2890,7 @@ public abstract class ElasticsearchTemplateTests { @AllArgsConstructor @EqualsAndHashCode(exclude = "score") @Builder - @Document(indexName = INDEX_NAME_SAMPLE_ENTITY, type = "test-type", shards = 1, replicas = 0, refreshInterval = "-1") + @Document(indexName = INDEX_NAME_SAMPLE_ENTITY, replicas = 0, refreshInterval = "-1") static class SampleEntity { @Id private String id; @@ -2923,7 +2913,7 @@ public abstract class ElasticsearchTemplateTests { @Data @AllArgsConstructor @Builder - @Document(indexName = "test-index-uuid-keyed-core-template", type = "test-type-uuid-keyed", shards = 1, replicas = 0, + @Document(indexName = "test-index-uuid-keyed-core-template", replicas = 0, refreshInterval = "-1") private static class SampleEntityUUIDKeyed { @@ -2945,7 +2935,7 @@ public abstract class ElasticsearchTemplateTests { @Builder @AllArgsConstructor @NoArgsConstructor - @Document(indexName = "test-index-book-core-template", type = "book", shards = 1, replicas = 0, + @Document(indexName = "test-index-book-core-template", replicas = 0, refreshInterval = "-1") static class Book { @@ -2969,7 +2959,7 @@ public abstract class ElasticsearchTemplateTests { @Builder @AllArgsConstructor @NoArgsConstructor - @Document(indexName = "test-index-version-core-template", type = "test-type", shards = 1, replicas = 0, + @Document(indexName = "test-index-version-core-template", replicas = 0, refreshInterval = "-1", versionType = VersionType.EXTERNAL_GTE) private static class GTEVersionEntity { @@ -2981,7 +2971,7 @@ public abstract class ElasticsearchTemplateTests { } @Data - @Document(indexName = "test-index-hetro1-core-template", type = "hetro", replicas = 0, shards = 1) + @Document(indexName = "test-index-hetro1-core-template", replicas = 0) static class HetroEntity1 { @Id private String id; @@ -2996,7 +2986,7 @@ public abstract class ElasticsearchTemplateTests { } @Data - @Document(indexName = "test-index-hetro2-core-template", type = "hetro", replicas = 0, shards = 1) + @Document(indexName = "test-index-hetro2-core-template", replicas = 0) static class HetroEntity2 { @Id private String id; @@ -3011,7 +3001,7 @@ public abstract class ElasticsearchTemplateTests { } @Data - @Document(indexName = "test-index-server-configuration", type = "test-type", useServerConfiguration = true, + @Document(indexName = "test-index-server-configuration", useServerConfiguration = true, shards = 10, replicas = 10, refreshInterval = "-1") private static class UseServerConfigurationEntity { @@ -3021,7 +3011,7 @@ public abstract class ElasticsearchTemplateTests { } @Data - @Document(indexName = "test-index-sample-mapping", type = "mapping", shards = 1, replicas = 0, refreshInterval = "-1") + @Document(indexName = "test-index-sample-mapping", replicas = 0, refreshInterval = "-1") static class SampleMappingEntity { @Id private String id; diff --git a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTransportTemplateTests.java b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTransportTemplateTests.java index e9e150b21..683e2571c 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTransportTemplateTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTransportTemplateTests.java @@ -59,11 +59,10 @@ public class ElasticsearchTransportTemplateTests extends ElasticsearchTemplateTe IndexRequest indexRequest = new IndexRequest(); indexRequest.source("{}", XContentType.JSON); UpdateQuery updateQuery = new UpdateQueryBuilder().withId(randomNumeric(5)).withIndexRequest(indexRequest).build(); - assertThatThrownBy(() -> { - operations.update(updateQuery, index); - }).isInstanceOf(DocumentMissingException.class); + assertThatThrownBy(() -> operations.update(updateQuery, index)).isInstanceOf(DocumentMissingException.class); } + @Override @Test // DATAES-187 public void shouldUsePageableOffsetToSetFromInSearchRequest() { @@ -88,7 +87,7 @@ public class ElasticsearchTransportTemplateTests extends ElasticsearchTemplateTe } @Data - @Document(indexName = "test-index-sample-core-transport-template", type = "test-type", shards = 1, replicas = 0, + @Document(indexName = "test-index-sample-core-transport-template", replicas = 0, refreshInterval = "-1") static class SampleEntity { diff --git a/src/test/java/org/springframework/data/elasticsearch/core/IndexCoordinatesTest.java b/src/test/java/org/springframework/data/elasticsearch/core/IndexCoordinatesTest.java index 12bc66bce..0f1a6a14c 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/IndexCoordinatesTest.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/IndexCoordinatesTest.java @@ -27,23 +27,17 @@ class IndexCoordinatesTest { @Test void cannotBeInitializedWithNullIndexName() { - assertThatThrownBy(() -> { - IndexCoordinates.of(null); - }).isInstanceOf(IllegalArgumentException.class); + assertThatThrownBy(() -> IndexCoordinates.of(null)).isInstanceOf(IllegalArgumentException.class); } @Test void cannotBeInitializedWithNullIndexNames() { - assertThatThrownBy(() -> { - IndexCoordinates.of((String[]) null); - }).isInstanceOf(IllegalArgumentException.class); + assertThatThrownBy(() -> IndexCoordinates.of((String[]) null)).isInstanceOf(IllegalArgumentException.class); } @Test void cannotBeInitializedWithEmptyIndexNames() { - assertThatThrownBy(() -> { - IndexCoordinates.of(new String[] {}); - }).isInstanceOf(IllegalArgumentException.class); + assertThatThrownBy(() -> IndexCoordinates.of(new String[] {})).isInstanceOf(IllegalArgumentException.class); } @Test diff --git a/src/test/java/org/springframework/data/elasticsearch/core/LogEntityTests.java b/src/test/java/org/springframework/data/elasticsearch/core/LogEntityTests.java index 633a497c4..ff16c14a2 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/LogEntityTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/LogEntityTests.java @@ -27,6 +27,7 @@ import java.util.Arrays; import java.util.Date; import org.elasticsearch.ElasticsearchException; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -61,11 +62,12 @@ public class LogEntityTests { private final IndexCoordinates index = IndexCoordinates.of("test-index-log-core").withTypes("test-log-type"); @Autowired private ElasticsearchOperations operations; + private IndexOperations indexOperations; @BeforeEach public void before() throws ParseException { - - IndexInitializer.init(operations, LogEntity.class); + indexOperations = operations.getIndexOperations(); + IndexInitializer.init(indexOperations, LogEntity.class); SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm"); IndexQuery indexQuery1 = new LogEntityBuilder("1").action("update").date(dateFormatter.parse("2013-10-18 18:01")) @@ -81,7 +83,12 @@ public class LogEntityTests { .code(2).ip("10.10.10.4").buildIndex(); operations.bulkIndex(Arrays.asList(indexQuery1, indexQuery2, indexQuery3, indexQuery4), index); - operations.refresh(LogEntity.class); + indexOperations.refresh(LogEntity.class); + } + + @AfterEach + void after() { + indexOperations.deleteIndex(LogEntity.class); } @Test // DATAES-66 @@ -122,7 +129,7 @@ public class LogEntityTests { * Simple type to test facets */ @Data - @Document(indexName = "test-index-log-core", type = "test-log-type", shards = 1, replicas = 0, refreshInterval = "-1") + @Document(indexName = "test-index-log-core", replicas = 0, refreshInterval = "-1") static class LogEntity { private static final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); diff --git a/src/test/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchTemplateTests.java b/src/test/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchTemplateTests.java index d85e25e4b..4d74cb592 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchTemplateTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchTemplateTests.java @@ -24,6 +24,7 @@ import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; +import org.springframework.data.elasticsearch.client.reactive.ReactiveElasticsearchClient; import reactor.core.publisher.Mono; import reactor.test.StepVerifier; @@ -99,7 +100,7 @@ public class ReactiveElasticsearchTemplateTests { } @AfterEach - public void tearDown() { + public void after() { deleteIndices(); } @@ -110,7 +111,7 @@ public class ReactiveElasticsearchTemplateTests { @Test // DATAES-504 public void executeShouldProvideResource() { - Mono.from(template.execute(client -> client.ping())) // + Mono.from(template.execute(ReactiveElasticsearchClient::ping)) // .as(StepVerifier::create) // .expectNext(true) // .verifyComplete(); @@ -456,10 +457,7 @@ public class ReactiveElasticsearchTemplateTests { @Test // DATAES-518 public void searchShouldApplyPagingCorrectly() { - List source = IntStream.range(0, 100).mapToObj(it -> randomEntity("entity - " + it)) - .collect(Collectors.toList()); - - index(source.toArray(new SampleEntity[0])); + index(IntStream.range(0, 100).mapToObj(it -> randomEntity("entity - " + it)).toArray(SampleEntity[]::new)); CriteriaQuery query = new CriteriaQuery(new Criteria("message").contains("entity")) // .addSort(Sort.by("message"))// @@ -473,10 +471,7 @@ public class ReactiveElasticsearchTemplateTests { @Test // DATAES-518 public void findWithoutPagingShouldReadAll() { - List source = IntStream.range(0, 100).mapToObj(it -> randomEntity("entity - " + it)) - .collect(Collectors.toList()); - - index(source.toArray(new SampleEntity[0])); + index(IntStream.range(0, 100).mapToObj(it -> randomEntity("entity - " + it)).toArray(SampleEntity[]::new)); CriteriaQuery query = new CriteriaQuery(new Criteria("message").contains("entity")) // .addSort(Sort.by("message"))// @@ -717,7 +712,7 @@ public class ReactiveElasticsearchTemplateTests { } @Data - @Document(indexName = "marvel", type = "characters") + @Document(indexName = "marvel") static class Person { private @Id String id; @@ -780,7 +775,7 @@ public class ReactiveElasticsearchTemplateTests { @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode(exclude = "score") - @Document(indexName = DEFAULT_INDEX, type = "test-type", shards = 1, replicas = 0, refreshInterval = "-1") + @Document(indexName = DEFAULT_INDEX, replicas = 0, refreshInterval = "-1") static class SampleEntity { @Id private String id; diff --git a/src/test/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchTemplateUnitTests.java b/src/test/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchTemplateUnitTests.java index ce95568c9..dd917e301 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchTemplateUnitTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchTemplateUnitTests.java @@ -258,7 +258,7 @@ public class ReactiveElasticsearchTemplateUnitTests { @NoArgsConstructor @AllArgsConstructor @Builder - @Document(indexName = "test-index-sample-core-reactive-template-Unit", type = "test-type", shards = 1, replicas = 0, + @Document(indexName = "test-index-sample-core-reactive-template-Unit", replicas = 0, refreshInterval = "-1") static class SampleEntity { diff --git a/src/test/java/org/springframework/data/elasticsearch/core/aggregation/ElasticsearchTemplateAggregationTests.java b/src/test/java/org/springframework/data/elasticsearch/core/aggregation/ElasticsearchTemplateAggregationTests.java index a8db95146..71c8cf285 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/aggregation/ElasticsearchTemplateAggregationTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/aggregation/ElasticsearchTemplateAggregationTests.java @@ -27,7 +27,6 @@ import java.lang.Integer; import java.util.ArrayList; import java.util.List; -import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.SearchType; import org.elasticsearch.search.aggregations.Aggregations; import org.junit.jupiter.api.AfterEach; @@ -42,9 +41,9 @@ 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.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.ResultsExtractor; import org.springframework.data.elasticsearch.core.query.IndexQuery; import org.springframework.data.elasticsearch.core.query.NativeSearchQuery; import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder; @@ -78,11 +77,12 @@ public class ElasticsearchTemplateAggregationTests { static final String INDEX_NAME = "test-index-articles-core-aggregation"; @Autowired private ElasticsearchOperations operations; + private IndexOperations indexOperations; @BeforeEach public void before() { - - IndexInitializer.init(operations, ArticleEntity.class); + indexOperations = operations.getIndexOperations(); + IndexInitializer.init(indexOperations, ArticleEntity.class); IndexQuery article1 = new ArticleEntityBuilder("1").title("article four").subject("computing") .addAuthor(RIZWAN_IDREES).addAuthor(ARTUR_KONCZAK).addAuthor(MOHSIN_HUSEN).addAuthor(JONATHAN_YAN).score(10) @@ -107,8 +107,7 @@ public class ElasticsearchTemplateAggregationTests { @AfterEach public void after() { - - operations.deleteIndex(ArticleEntity.class); + indexOperations.deleteIndex(ArticleEntity.class); } @Test @@ -136,7 +135,7 @@ public class ElasticsearchTemplateAggregationTests { * @author Mohsin Husen */ @Data - @Document(indexName = "test-index-articles-core-aggregation", type = "article", shards = 1, replicas = 0, + @Document(indexName = "test-index-articles-core-aggregation", replicas = 0, refreshInterval = "-1") static class ArticleEntity { @@ -154,10 +153,6 @@ public class ElasticsearchTemplateAggregationTests { private int score; - private ArticleEntity() { - - } - public ArticleEntity(String id) { this.id = id; } diff --git a/src/test/java/org/springframework/data/elasticsearch/core/completion/ElasticsearchTemplateCompletionTests.java b/src/test/java/org/springframework/data/elasticsearch/core/completion/ElasticsearchTemplateCompletionTests.java index acb204390..3f4296f85 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/completion/ElasticsearchTemplateCompletionTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/completion/ElasticsearchTemplateCompletionTests.java @@ -26,6 +26,7 @@ import org.elasticsearch.search.suggest.SuggestBuilder; import org.elasticsearch.search.suggest.SuggestBuilders; import org.elasticsearch.search.suggest.SuggestionBuilder; import org.elasticsearch.search.suggest.completion.CompletionSuggestion; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -72,6 +73,12 @@ public class ElasticsearchTemplateCompletionTests { IndexInitializer.init(indexOperations, AnnotatedCompletionEntity.class); } + @AfterEach + void after() { + indexOperations.deleteIndex("test-index-annotated-completion"); + indexOperations.deleteIndex("test-index-core-completion"); + } + private void loadCompletionObjectEntities() { List indexQueries = new ArrayList<>(); @@ -237,7 +244,7 @@ public class ElasticsearchTemplateCompletionTests { /** * @author Mewes Kochheim */ - @Document(indexName = "test-index-core-completion", type = "completion-type", shards = 1, replicas = 0, + @Document(indexName = "test-index-core-completion", replicas = 0, refreshInterval = "-1") static class CompletionEntity { @@ -321,7 +328,7 @@ public class ElasticsearchTemplateCompletionTests { /** * @author Mewes Kochheim */ - @Document(indexName = "test-index-annotated-completion", type = "annotated-completion-type", shards = 1, replicas = 0, + @Document(indexName = "test-index-annotated-completion", replicas = 0, refreshInterval = "-1") static class AnnotatedCompletionEntity { diff --git a/src/test/java/org/springframework/data/elasticsearch/core/completion/ElasticsearchTemplateCompletionWithContextsTests.java b/src/test/java/org/springframework/data/elasticsearch/core/completion/ElasticsearchTemplateCompletionWithContextsTests.java index 71864d076..470962714 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/completion/ElasticsearchTemplateCompletionWithContextsTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/completion/ElasticsearchTemplateCompletionWithContextsTests.java @@ -33,6 +33,7 @@ import org.elasticsearch.search.suggest.completion.CompletionSuggestion; import org.elasticsearch.search.suggest.completion.CompletionSuggestionBuilder; import org.elasticsearch.search.suggest.completion.context.CategoryQueryContext; import org.elasticsearch.search.suggest.completion.context.ContextMapping; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -71,7 +72,11 @@ public class ElasticsearchTemplateCompletionWithContextsTests { @BeforeEach void setup() { indexOperations = operations.getIndexOperations(); + indexOperations.deleteIndex(ContextCompletionEntity.class); + } + @AfterEach + void after() { indexOperations.deleteIndex(ContextCompletionEntity.class); } @@ -238,7 +243,7 @@ public class ElasticsearchTemplateCompletionWithContextsTests { * @author Mewes Kochheim * @author Robert Gruendler */ - @Document(indexName = "test-index-context-completion", type = "context-completion-type", shards = 1, replicas = 0, + @Document(indexName = "test-index-context-completion", replicas = 0, refreshInterval = "-1") static class ContextCompletionEntity { diff --git a/src/test/java/org/springframework/data/elasticsearch/core/convert/MappingElasticsearchConverterUnitTests.java b/src/test/java/org/springframework/data/elasticsearch/core/convert/MappingElasticsearchConverterUnitTests.java index 009618c8d..2c92e4963 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/convert/MappingElasticsearchConverterUnitTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/convert/MappingElasticsearchConverterUnitTests.java @@ -56,8 +56,6 @@ import org.springframework.data.elasticsearch.annotations.GeoPointField; import org.springframework.data.elasticsearch.core.document.Document; import org.springframework.data.elasticsearch.core.geo.GeoPoint; import org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchMappingContext; -import org.springframework.data.elasticsearch.core.query.Criteria; -import org.springframework.data.elasticsearch.core.query.CriteriaQuery; import org.springframework.data.geo.Box; import org.springframework.data.geo.Circle; import org.springframework.data.geo.Point; @@ -201,9 +199,7 @@ public class MappingElasticsearchConverterUnitTests { public void shouldFailToInitializeGivenMappingContextIsNull() { // given - assertThatThrownBy(() -> { - new MappingElasticsearchConverter(null); - }).isInstanceOf(IllegalArgumentException.class); + assertThatThrownBy(() -> new MappingElasticsearchConverter(null)).isInstanceOf(IllegalArgumentException.class); } @Test @@ -233,7 +229,7 @@ public class MappingElasticsearchConverterUnitTests { } @Test // DATAES-530 - public void shouldMapObjectToJsonString() throws IOException { + public void shouldMapObjectToJsonString() { // Given // When @@ -245,7 +241,7 @@ public class MappingElasticsearchConverterUnitTests { } @Test // DATAES-530 - public void shouldMapJsonStringToObject() throws IOException { + public void shouldMapJsonStringToObject() { // Given // When @@ -258,7 +254,7 @@ public class MappingElasticsearchConverterUnitTests { } @Test // DATAES-530 - public void shouldMapGeoPointElasticsearchNames() throws IOException { + public void shouldMapGeoPointElasticsearchNames() { // given Point point = new Point(10, 20); String pointAsString = point.getX() + "," + point.getY(); @@ -277,7 +273,7 @@ public class MappingElasticsearchConverterUnitTests { } @Test // DATAES-530 - public void ignoresReadOnlyProperties() throws IOException { + public void ignoresReadOnlyProperties() { // given Sample sample = new Sample(); @@ -311,7 +307,7 @@ public class MappingElasticsearchConverterUnitTests { } @Test // DATAES-530 - public void writesConcreteList() throws IOException { + public void writesConcreteList() { Person ginger = new Person(); ginger.id = "ginger"; @@ -324,7 +320,7 @@ public class MappingElasticsearchConverterUnitTests { } @Test // DATAES-530 - public void writesInterfaceList() throws IOException { + public void writesInterfaceList() { Inventory gun = new Gun("Glock 19", 33); Inventory grenade = new Grenade("40 mm"); @@ -346,7 +342,7 @@ public class MappingElasticsearchConverterUnitTests { @Test // DATAES-530 public void readListOfConcreteTypesCorrectly() { - sarahAsMap.put("coWorkers", Arrays.asList(kyleAsMap)); + sarahAsMap.put("coWorkers", Collections.singletonList(kyleAsMap)); Person target = mappingElasticsearchConverter.read(Person.class, sarahAsMap); @@ -447,7 +443,7 @@ public class MappingElasticsearchConverterUnitTests { public void readGenericListList() { Document source = Document.create(); - source.put("objectList", Arrays.asList(Arrays.asList(t800AsMap, gunAsMap))); + source.put("objectList", Collections.singletonList(Arrays.asList(t800AsMap, gunAsMap))); Skynet target = mappingElasticsearchConverter.read(Skynet.class, source); @@ -738,6 +734,7 @@ public class MappingElasticsearchConverterUnitTests { String city; } + @EqualsAndHashCode(callSuper = true) @Data static class Place extends Address { @@ -789,7 +786,7 @@ public class MappingElasticsearchConverterUnitTests { @AllArgsConstructor @Builder @org.springframework.data.elasticsearch.annotations.Document(indexName = "test-index-geo-core-entity-mapper", - type = "geo-test-index", shards = 1, replicas = 0, refreshInterval = "-1") + type = "geo-test-index", replicas = 0, refreshInterval = "-1") static class GeoEntity { @Id private String id; diff --git a/src/test/java/org/springframework/data/elasticsearch/core/geo/ElasticsearchTemplateGeoTests.java b/src/test/java/org/springframework/data/elasticsearch/core/geo/ElasticsearchTemplateGeoTests.java index 3469d2d14..adeefe32e 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/geo/ElasticsearchTemplateGeoTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/geo/ElasticsearchTemplateGeoTests.java @@ -29,6 +29,7 @@ import java.util.List; import org.elasticsearch.geometry.utils.Geohash; import org.elasticsearch.index.query.QueryBuilders; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -89,6 +90,12 @@ public class ElasticsearchTemplateGeoTests { IndexInitializer.init(indexOperations, LocationMarkerEntity.class); } + @AfterEach + void after() { + indexOperations.deleteIndex(AuthorMarkerEntity.class); + indexOperations.deleteIndex(LocationMarkerEntity.class); + } + private void loadClassBaseEntities() { List indexQueries = new ArrayList<>(); @@ -368,7 +375,7 @@ public class ElasticsearchTemplateGeoTests { * @author Mohsin Husen */ @Data - @Document(indexName = "test-index-author-marker-core-geo", type = "geo-class-point-type", shards = 1, replicas = 0, + @Document(indexName = "test-index-author-marker-core-geo", replicas = 0, refreshInterval = "-1") static class AuthorMarkerEntity { @@ -427,7 +434,7 @@ public class ElasticsearchTemplateGeoTests { @NoArgsConstructor @AllArgsConstructor @Builder - @Document(indexName = "test-index-location-marker-core-geo", type = "geo-annotation-point-type", shards = 1, + @Document(indexName = "test-index-location-marker-core-geo", replicas = 0, refreshInterval = "-1") static class LocationMarkerEntity { diff --git a/src/test/java/org/springframework/data/elasticsearch/core/index/MappingBuilderTests.java b/src/test/java/org/springframework/data/elasticsearch/core/index/MappingBuilderTests.java index 508a64f81..921c8cbe1 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/index/MappingBuilderTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/index/MappingBuilderTests.java @@ -111,10 +111,10 @@ public class MappingBuilderTests extends MappingContextBaseTests { } @Test // DATAES-568 - public void testInfiniteLoopAvoidance() throws IOException, JSONException { + public void testInfiniteLoopAvoidance() throws JSONException { - String expected = "{\"mapping\":{\"properties\":{\"message\":{\"store\":true,\"" - + "type\":\"text\",\"index\":false," + "\"analyzer\":\"standard\"}}}}"; + String expected = "{\"properties\":{\"message\":{\"store\":true,\"" + + "type\":\"text\",\"index\":false," + "\"analyzer\":\"standard\"}}}"; String mapping = getMappingBuilder().buildPropertyMapping(SampleTransientEntity.class); @@ -122,10 +122,10 @@ public class MappingBuilderTests extends MappingContextBaseTests { } @Test // DATAES-568 - public void shouldUseValueFromAnnotationType() throws IOException, JSONException { + public void shouldUseValueFromAnnotationType() throws JSONException { // Given - String expected = "{\"price\":{\"properties\":{\"price\":{\"type\":\"double\"}}}}"; + String expected = "{\"properties\":{\"price\":{\"type\":\"double\"}}}"; // When String mapping = getMappingBuilder().buildPropertyMapping(StockPrice.class); @@ -165,9 +165,9 @@ public class MappingBuilderTests extends MappingContextBaseTests { } @Test // DATAES-568 - public void shouldCreateMappingForSpecifiedParentType() throws IOException, JSONException { + public void shouldCreateMappingForSpecifiedParentType() throws JSONException { - String expected = "{\"mapping\":{\"_parent\":{\"type\":\"parentType\"},\"properties\":{}}}"; + String expected = "{\"_parent\":{\"type\":\"parentType\"},\"properties\":{}}"; String mapping = getMappingBuilder().buildPropertyMapping(MinimalChildEntity.class); @@ -175,11 +175,11 @@ public class MappingBuilderTests extends MappingContextBaseTests { } @Test // DATAES-76 - public void shouldBuildMappingWithSuperclass() throws IOException, JSONException { + public void shouldBuildMappingWithSuperclass() throws JSONException { - String expected = "{\"mapping\":{\"properties\":{\"message\":{\"store\":true,\"" + String expected = "{\"properties\":{\"message\":{\"store\":true,\"" + "type\":\"text\",\"index\":false,\"analyzer\":\"standard\"}" + ",\"createdDate\":{" - + "\"type\":\"date\",\"index\":false}}}}"; + + "\"type\":\"date\",\"index\":false}}}"; String mapping = getMappingBuilder().buildPropertyMapping(SampleInheritedEntity.class); @@ -214,12 +214,12 @@ public class MappingBuilderTests extends MappingContextBaseTests { } @Test // DATAES-568 - public void shouldBuildMappingsForGeoPoint() throws IOException, JSONException { + public void shouldBuildMappingsForGeoPoint() throws JSONException { // given - String expected = "{\"geo-test-index\": {\"properties\": {" + "\"pointA\":{\"type\":\"geo_point\"}," + String expected = "{\"properties\": {" + "\"pointA\":{\"type\":\"geo_point\"}," + "\"pointB\":{\"type\":\"geo_point\"}," + "\"pointC\":{\"type\":\"geo_point\"}," - + "\"pointD\":{\"type\":\"geo_point\"}" + "}}}"; + + "\"pointD\":{\"type\":\"geo_point\"}" + "}}"; // when String mapping; @@ -300,8 +300,8 @@ public class MappingBuilderTests extends MappingContextBaseTests { public void shouldUseCopyTo() { // given - operations.createIndex(CopyToEntity.class); - operations.putMapping(CopyToEntity.class); + indexOperations.createIndex(CopyToEntity.class); + indexOperations.putMapping(CopyToEntity.class); // when Map mapping = operations.getMapping(CopyToEntity.class); @@ -316,11 +316,11 @@ public class MappingBuilderTests extends MappingContextBaseTests { } @Test // DATAES-568 - public void shouldUseFieldNameOnId() throws IOException, JSONException { + public void shouldUseFieldNameOnId() throws JSONException { // given - String expected = "{\"fieldname-type\":{\"properties\":{" + "\"id-property\":{\"type\":\"keyword\",\"index\":true}" - + "}}}"; + String expected = "{\"properties\":{" + "\"id-property\":{\"type\":\"keyword\",\"index\":true}" + + "}}"; // when String mapping = getMappingBuilder().buildPropertyMapping(FieldNameEntity.IdEntity.class); @@ -330,11 +330,11 @@ public class MappingBuilderTests extends MappingContextBaseTests { } @Test // DATAES-568 - public void shouldUseFieldNameOnText() throws IOException, JSONException { + public void shouldUseFieldNameOnText() throws JSONException { // given - String expected = "{\"fieldname-type\":{\"properties\":{" + "\"id-property\":{\"type\":\"keyword\",\"index\":true}," - + "\"text-property\":{\"type\":\"text\"}" + "}}}"; + String expected = "{\"properties\":{" + "\"id-property\":{\"type\":\"keyword\",\"index\":true}," + + "\"text-property\":{\"type\":\"text\"}" + "}}"; // when String mapping = getMappingBuilder().buildPropertyMapping(FieldNameEntity.TextEntity.class); @@ -344,11 +344,11 @@ public class MappingBuilderTests extends MappingContextBaseTests { } @Test // DATAES-568 - public void shouldUseFieldNameOnMapping() throws IOException, JSONException { + public void shouldUseFieldNameOnMapping() throws JSONException { // given - String expected = "{\"fieldname-type\":{\"properties\":{" + "\"id-property\":{\"type\":\"keyword\",\"index\":true}," - + "\"mapping-property\":{\"type\":\"string\",\"analyzer\":\"standard_lowercase_asciifolding\"}" + "}}}"; + String expected = "{\"properties\":{" + "\"id-property\":{\"type\":\"keyword\",\"index\":true}," + + "\"mapping-property\":{\"type\":\"string\",\"analyzer\":\"standard_lowercase_asciifolding\"}" + "}}"; // when String mapping = getMappingBuilder().buildPropertyMapping(FieldNameEntity.MappingEntity.class); @@ -358,11 +358,11 @@ public class MappingBuilderTests extends MappingContextBaseTests { } @Test // DATAES-568 - public void shouldUseFieldNameOnGeoPoint() throws IOException, JSONException { + public void shouldUseFieldNameOnGeoPoint() throws JSONException { // given - String expected = "{\"fieldname-type\":{\"properties\":{" + "\"id-property\":{\"type\":\"keyword\",\"index\":true}," - + "\"geopoint-property\":{\"type\":\"geo_point\"}" + "}}}"; + String expected = "{\"properties\":{" + "\"id-property\":{\"type\":\"keyword\",\"index\":true}," + + "\"geopoint-property\":{\"type\":\"geo_point\"}" + "}}"; // when String mapping = getMappingBuilder().buildPropertyMapping(FieldNameEntity.GeoPointEntity.class); @@ -372,11 +372,11 @@ public class MappingBuilderTests extends MappingContextBaseTests { } @Test // DATAES-568 - public void shouldUseFieldNameOnCircularEntity() throws IOException, JSONException { + public void shouldUseFieldNameOnCircularEntity() throws JSONException { // given - String expected = "{\"fieldname-type\":{\"properties\":{" + "\"id-property\":{\"type\":\"keyword\",\"index\":true}," - + "\"circular-property\":{\"type\":\"object\",\"properties\":{\"id-property\":{}}}" + "}}}"; + String expected = "{\"properties\":{" + "\"id-property\":{\"type\":\"keyword\",\"index\":true}," + + "\"circular-property\":{\"type\":\"object\",\"properties\":{\"id-property\":{}}}" + "}}"; // when String mapping = getMappingBuilder().buildPropertyMapping(FieldNameEntity.CircularEntity.class); @@ -386,12 +386,12 @@ public class MappingBuilderTests extends MappingContextBaseTests { } @Test // DATAES-568 - public void shouldUseFieldNameOnCompletion() throws IOException, JSONException { + public void shouldUseFieldNameOnCompletion() throws JSONException { // given - String expected = "{\"fieldname-type\":{\"properties\":{" + "\"id-property\":{\"type\":\"keyword\",\"index\":true}," + String expected = "{\"properties\":{" + "\"id-property\":{\"type\":\"keyword\",\"index\":true}," + "\"completion-property\":{\"type\":\"completion\",\"max_input_length\":100,\"preserve_position_increments\":true,\"preserve_separators\":true,\"search_analyzer\":\"simple\",\"analyzer\":\"simple\"},\"completion-property\":{}" - + "}}}"; + + "}}"; // when String mapping = getMappingBuilder().buildPropertyMapping(FieldNameEntity.CompletionEntity.class); @@ -401,12 +401,11 @@ public class MappingBuilderTests extends MappingContextBaseTests { } @Test // DATAES-568 - public void shouldUseFieldNameOnMultiField() throws IOException, JSONException { + public void shouldUseFieldNameOnMultiField() throws JSONException { // given - String expected = "{\"fieldname-type\":{\"properties\":{" + "\"id-property\":{\"type\":\"keyword\",\"index\":true}," - + "\"multifield-property\":{\"type\":\"text\",\"analyzer\":\"whitespace\",\"fields\":{\"prefix\":{\"type\":\"text\",\"analyzer\":\"stop\",\"search_analyzer\":\"standard\"}}}" - + "}}}"; + String expected = "{\"properties\":{" + "\"id-property\":{\"type\":\"keyword\",\"index\":true}," + + "\"multifield-property\":{\"type\":\"text\",\"analyzer\":\"whitespace\",\"fields\":{\"prefix\":{\"type\":\"text\",\"analyzer\":\"stop\",\"search_analyzer\":\"standard\"}}}}}"; // when String mapping = getMappingBuilder().buildPropertyMapping(FieldNameEntity.MultiFieldEntity.class); @@ -416,10 +415,10 @@ public class MappingBuilderTests extends MappingContextBaseTests { } @Test // DATAES-639 - public void shouldUseIgnoreAbove() throws IOException, JSONException { + public void shouldUseIgnoreAbove() throws JSONException { // given - String expected = "{\"ignore-above-type\":{\"properties\":{\"message\":{\"type\":\"keyword\",\"ignore_above\":10}}}}"; + String expected = "{\"properties\":{\"message\":{\"type\":\"keyword\",\"ignore_above\":10}}}"; // when String mapping = getMappingBuilder().buildPropertyMapping(IgnoreAboveEntity.class); @@ -429,9 +428,8 @@ public class MappingBuilderTests extends MappingContextBaseTests { } @Test - public void shouldSetFieldMappingProperties() throws JSONException, IOException { + public void shouldSetFieldMappingProperties() throws JSONException { String expected = "{\n" + // - " \"fmp\": {\n" + // " \"properties\": {\n" + // " \"storeTrue\": {\n" + // " \"store\": true\n" + // @@ -516,7 +514,6 @@ public class MappingBuilderTests extends MappingContextBaseTests { " \"scaling_factor\": 100.0\n" + // " }\n" + // " }\n" + // - " }\n" + // "}\n"; // // when @@ -527,10 +524,9 @@ public class MappingBuilderTests extends MappingContextBaseTests { } @Test - void shouldWriteDynamicMappingSettings() throws IOException, JSONException { + void shouldWriteDynamicMappingSettings() throws JSONException { String expected = "{\n" + // - " \"dms\": {\n" + // " \"dynamic\": \"false\",\n" + // " \"properties\": {\n" + // " \"author\": {\n" + // @@ -539,7 +535,6 @@ public class MappingBuilderTests extends MappingContextBaseTests { " \"properties\": {}\n" + // " }\n" + // " }\n" + // - " }\n" + // "}\n"; String mapping = getMappingBuilder().buildPropertyMapping(ConfigureDynamicMappingEntity.class); @@ -555,7 +550,7 @@ public class MappingBuilderTests extends MappingContextBaseTests { @NoArgsConstructor @AllArgsConstructor @Builder - @Document(indexName = "ignore-above-index", type = "ignore-above-type") + @Document(indexName = "ignore-above-index") static class IgnoreAboveEntity { @Id private String id; @@ -569,12 +564,12 @@ public class MappingBuilderTests extends MappingContextBaseTests { @SuppressWarnings("unused") static class FieldNameEntity { - @Document(indexName = "fieldname-index", type = "fieldname-type") + @Document(indexName = "fieldname-index") static class IdEntity { @Id @Field("id-property") private String id; } - @Document(indexName = "fieldname-index", type = "fieldname-type") + @Document(indexName = "fieldname-index") static class TextEntity { @Id @Field("id-property") private String id; @@ -583,7 +578,7 @@ public class MappingBuilderTests extends MappingContextBaseTests { private String textProperty; } - @Document(indexName = "fieldname-index", type = "fieldname-type") + @Document(indexName = "fieldname-index") static class MappingEntity { @Id @Field("id-property") private String id; @@ -592,7 +587,7 @@ public class MappingBuilderTests extends MappingContextBaseTests { private byte[] mappingProperty; } - @Document(indexName = "fieldname-index", type = "fieldname-type") + @Document(indexName = "fieldname-index") static class GeoPointEntity { @Id @Field("id-property") private String id; @@ -600,7 +595,7 @@ public class MappingBuilderTests extends MappingContextBaseTests { @Field("geopoint-property") private GeoPoint geoPoint; } - @Document(indexName = "fieldname-index", type = "fieldname-type") + @Document(indexName = "fieldname-index") static class CircularEntity { @Id @Field("id-property") private String id; @@ -609,7 +604,7 @@ public class MappingBuilderTests extends MappingContextBaseTests { private CircularEntity circularProperty; } - @Document(indexName = "fieldname-index", type = "fieldname-type") + @Document(indexName = "fieldname-index") static class CompletionEntity { @Id @Field("id-property") private String id; @@ -618,7 +613,7 @@ public class MappingBuilderTests extends MappingContextBaseTests { private Completion suggest; } - @Document(indexName = "fieldname-index", type = "fieldname-type") + @Document(indexName = "fieldname-index") static class MultiFieldEntity { @Id @Field("id-property") private String id; @@ -635,7 +630,7 @@ public class MappingBuilderTests extends MappingContextBaseTests { * * @author Peter-Josef Meisch */ - @Document(indexName = "test-index-minimal", type = "mapping") + @Document(indexName = "test-index-minimal") static class MinimalChildEntity { @Id private String id; @@ -653,7 +648,7 @@ public class MappingBuilderTests extends MappingContextBaseTests { @NoArgsConstructor @AllArgsConstructor @Builder - @Document(indexName = "test-index-book-mapping-builder", type = "book", shards = 1, replicas = 0, + @Document(indexName = "test-index-book-mapping-builder", replicas = 0, refreshInterval = "-1") static class Book { @@ -670,7 +665,7 @@ public class MappingBuilderTests extends MappingContextBaseTests { * @author Stuart Stevenson * @author Mohsin Husen */ - @Document(indexName = "test-index-simple-recursive-mapping-builder", type = "circular-object", shards = 1, + @Document(indexName = "test-index-simple-recursive-mapping-builder", replicas = 0, refreshInterval = "-1") static class SimpleRecursiveEntity { @@ -686,7 +681,7 @@ public class MappingBuilderTests extends MappingContextBaseTests { @NoArgsConstructor @AllArgsConstructor @Builder - @Document(indexName = "test-copy-to-mapping-builder", type = "test", shards = 1, replicas = 0, refreshInterval = "-1") + @Document(indexName = "test-copy-to-mapping-builder", replicas = 0, refreshInterval = "-1") static class CopyToEntity { @Id private String id; @@ -706,7 +701,7 @@ public class MappingBuilderTests extends MappingContextBaseTests { @NoArgsConstructor @AllArgsConstructor @Builder - @Document(indexName = "test-index-normalizer-mapping-builder", type = "test", shards = 1, replicas = 0, + @Document(indexName = "test-index-normalizer-mapping-builder", replicas = 0, refreshInterval = "-1") @Setting(settingPath = "/settings/test-normalizer.json") static class NormalizerEntity { @@ -748,7 +743,7 @@ public class MappingBuilderTests extends MappingContextBaseTests { /** * @author Kevin Leturc */ - @Document(indexName = "test-index-sample-inherited-mapping-builder", type = "mapping", shards = 1, replicas = 0, + @Document(indexName = "test-index-sample-inherited-mapping-builder", replicas = 0, refreshInterval = "-1") static class SampleInheritedEntity extends AbstractInheritedEntity { @@ -806,7 +801,7 @@ public class MappingBuilderTests extends MappingContextBaseTests { @NoArgsConstructor @AllArgsConstructor @Builder - @Document(indexName = "test-index-stock-mapping-builder", type = "price", shards = 1, replicas = 0, + @Document(indexName = "test-index-stock-mapping-builder", replicas = 0, refreshInterval = "-1") static class StockPrice { @@ -846,7 +841,7 @@ public class MappingBuilderTests extends MappingContextBaseTests { /** * @author Jakub Vavrik */ - @Document(indexName = "test-index-recursive-mapping-mapping-builder", type = "mapping", shards = 1, replicas = 0, + @Document(indexName = "test-index-recursive-mapping-mapping-builder", replicas = 0, refreshInterval = "-1") static class SampleTransientEntity { @@ -882,7 +877,7 @@ public class MappingBuilderTests extends MappingContextBaseTests { } public void setSomeField(SampleTransientEntity.NestedEntity someField) { - this.someField = someField; + NestedEntity.someField = someField; } public Boolean getSomething() { @@ -903,7 +898,7 @@ public class MappingBuilderTests extends MappingContextBaseTests { @NoArgsConstructor @AllArgsConstructor @Builder - @Document(indexName = "test-index-geo-mapping-builder", type = "geo-test-index", shards = 1, replicas = 0, + @Document(indexName = "test-index-geo-mapping-builder", replicas = 0, refreshInterval = "-1") static class GeoEntity { @@ -927,7 +922,7 @@ public class MappingBuilderTests extends MappingContextBaseTests { /** * Created by akonczak on 21/08/2016. */ - @Document(indexName = "test-index-user-mapping-builder", type = "user") + @Document(indexName = "test-index-user-mapping-builder") static class User { @Id private String id; @@ -937,7 +932,7 @@ public class MappingBuilderTests extends MappingContextBaseTests { /** * Created by akonczak on 21/08/2016. */ - @Document(indexName = "test-index-group-mapping-builder", type = "group") + @Document(indexName = "test-index-group-mapping-builder") static class Group { @Id String id; @@ -945,7 +940,7 @@ public class MappingBuilderTests extends MappingContextBaseTests { @Field(type = FieldType.Nested, ignoreFields = { "groups" }) private Set users = new HashSet<>(); } - @Document(indexName = "test-index-field-mapping-parameters", type = "fmp") + @Document(indexName = "test-index-field-mapping-parameters") static class FieldMappingParameters { @Field private String indexTrue; @Field(index = false) private String indexFalse; @@ -960,14 +955,14 @@ public class MappingBuilderTests extends MappingContextBaseTests { @Field(type = FieldType.Integer) private String type; @Field(type = FieldType.Date, format = DateFormat.custom, pattern = "YYYYMMDD") private LocalDate date; @Field(analyzer = "ana", searchAnalyzer = "sana", normalizer = "norma") private String analyzers; - @Field(type = Keyword, docValues = true) private String docValuesTrue; + @Field(type = Keyword) private String docValuesTrue; @Field(type = Keyword, docValues = false) private String docValuesFalse; @Field(ignoreMalformed = true) private String ignoreMalformedTrue; - @Field(ignoreMalformed = false) private String ignoreMalformedFalse; + @Field() private String ignoreMalformedFalse; @Field(indexOptions = IndexOptions.none) private String indexOptionsNone; @Field(indexOptions = IndexOptions.positions) private String indexOptionsPositions; @Field(indexPhrases = true) private String indexPhrasesTrue; - @Field(indexPhrases = false) private String indexPhrasesFalse; + @Field() private String indexPhrasesFalse; @Field(indexPrefixes = @IndexPrefixes) private String defaultIndexPrefixes; @Field(indexPrefixes = @IndexPrefixes(minChars = 1, maxChars = 10)) private String customIndexPrefixes; @Field private String normsTrue; @@ -982,7 +977,7 @@ public class MappingBuilderTests extends MappingContextBaseTests { @Field(type = FieldType.Scaled_Float, scalingFactor = 100.0) Double scaledFloat; } - @Document(indexName = "test-index-configure-dynamic-mapping", type = "dms") + @Document(indexName = "test-index-configure-dynamic-mapping") @DynamicMapping(DynamicMappingValue.False) static class ConfigureDynamicMappingEntity { diff --git a/src/test/java/org/springframework/data/elasticsearch/core/index/SimpleDynamicTemplatesMappingTests.java b/src/test/java/org/springframework/data/elasticsearch/core/index/SimpleDynamicTemplatesMappingTests.java index ad8d1750c..0d56d60e6 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/index/SimpleDynamicTemplatesMappingTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/index/SimpleDynamicTemplatesMappingTests.java @@ -42,28 +42,28 @@ import org.springframework.test.context.ContextConfiguration; public class SimpleDynamicTemplatesMappingTests extends MappingContextBaseTests { @Test // DATAES-568 - public void testCorrectDynamicTemplatesMappings() throws IOException { + public void testCorrectDynamicTemplatesMappings() { String mapping = getMappingBuilder().buildPropertyMapping(SampleDynamicTemplatesEntity.class); - String EXPECTED_MAPPING_ONE = "{\"test-dynamictemplatestype\":{\"dynamic_templates\":" + String EXPECTED_MAPPING_ONE = "{\"dynamic_templates\":" + "[{\"with_custom_analyzer\":{" + "\"mapping\":{\"type\":\"string\",\"analyzer\":\"standard_lowercase_asciifolding\"}," - + "\"path_match\":\"names.*\"}}]," + "\"properties\":{\"names\":{\"type\":\"object\"}}}}"; + + "\"path_match\":\"names.*\"}}]," + "\"properties\":{\"names\":{\"type\":\"object\"}}}"; assertThat(mapping).isEqualTo(EXPECTED_MAPPING_ONE); } @Test // DATAES-568 - public void testCorrectDynamicTemplatesMappingsTwo() throws IOException { + public void testCorrectDynamicTemplatesMappingsTwo() { String mapping = getMappingBuilder().buildPropertyMapping(SampleDynamicTemplatesEntityTwo.class); - String EXPECTED_MAPPING_TWO = "{\"test-dynamictemplatestype\":{\"dynamic_templates\":" + String EXPECTED_MAPPING_TWO = "{\"dynamic_templates\":" + "[{\"with_custom_analyzer\":{" + "\"mapping\":{\"type\":\"string\",\"analyzer\":\"standard_lowercase_asciifolding\"}," + "\"path_match\":\"names.*\"}}," + "{\"participantA1_with_custom_analyzer\":{" + "\"mapping\":{\"type\":\"string\",\"analyzer\":\"standard_lowercase_asciifolding\"}," - + "\"path_match\":\"participantA1.*\"}}]," + "\"properties\":{\"names\":{\"type\":\"object\"}}}}"; + + "\"path_match\":\"participantA1.*\"}}]," + "\"properties\":{\"names\":{\"type\":\"object\"}}}"; assertThat(mapping).isEqualTo(EXPECTED_MAPPING_TWO); } @@ -71,27 +71,27 @@ public class SimpleDynamicTemplatesMappingTests extends MappingContextBaseTests /** * @author Petr Kukral */ - @Document(indexName = "test-dynamictemplates", type = "test-dynamictemplatestype", indexStoreType = "memory", - shards = 1, replicas = 0, refreshInterval = "-1") + @Document(indexName = "test-dynamictemplates", indexStoreType = "memory", + replicas = 0, refreshInterval = "-1") @DynamicTemplates(mappingPath = "/mappings/test-dynamic_templates_mappings.json") static class SampleDynamicTemplatesEntity { @Id private String id; - @Field(type = FieldType.Object) private Map names = new HashMap(); + @Field(type = FieldType.Object) private Map names = new HashMap<>(); } /** * @author Petr Kukral */ - @Document(indexName = "test-dynamictemplates", type = "test-dynamictemplatestype", indexStoreType = "memory", - shards = 1, replicas = 0, refreshInterval = "-1") + @Document(indexName = "test-dynamictemplates", indexStoreType = "memory", + replicas = 0, refreshInterval = "-1") @DynamicTemplates(mappingPath = "/mappings/test-dynamic_templates_mappings_two.json") static class SampleDynamicTemplatesEntityTwo { @Id private String id; - @Field(type = FieldType.Object) private Map names = new HashMap(); + @Field(type = FieldType.Object) private Map names = new HashMap<>(); } } diff --git a/src/test/java/org/springframework/data/elasticsearch/core/index/SimpleElasticsearchDateMappingTests.java b/src/test/java/org/springframework/data/elasticsearch/core/index/SimpleElasticsearchDateMappingTests.java index da52ed63f..8e2f19611 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/index/SimpleElasticsearchDateMappingTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/index/SimpleElasticsearchDateMappingTests.java @@ -38,13 +38,13 @@ import org.springframework.data.elasticsearch.annotations.FieldType; */ public class SimpleElasticsearchDateMappingTests extends MappingContextBaseTests { - private static final String EXPECTED_MAPPING = "{\"mapping\":{\"properties\":{\"message\":{\"store\":true," + private static final String EXPECTED_MAPPING = "{\"properties\":{\"message\":{\"store\":true," + "\"type\":\"text\",\"index\":false,\"analyzer\":\"standard\"},\"customFormatDate\":{\"type\":\"date\",\"format\":\"dd.MM.yyyy hh:mm\"}," + "\"defaultFormatDate\":{\"type\":\"date\"},\"basicFormatDate\":{\"" - + "type\":\"date\",\"format\":\"basic_date\"}}}}"; + + "type\":\"date\",\"format\":\"basic_date\"}}}"; @Test // DATAES-568 - public void testCorrectDateMappings() throws IOException { + public void testCorrectDateMappings() { String mapping = getMappingBuilder().buildPropertyMapping(SampleDateMappingEntity.class); @@ -55,7 +55,7 @@ public class SimpleElasticsearchDateMappingTests extends MappingContextBaseTests * @author Jakub Vavrik */ @Data - @Document(indexName = "test-index-date-mapping-core", type = "mapping", shards = 1, replicas = 0, + @Document(indexName = "test-index-date-mapping-core", replicas = 0, refreshInterval = "-1") static class SampleDateMappingEntity { diff --git a/src/test/java/org/springframework/data/elasticsearch/core/mapping/SimpleElasticsearchPersistentEntityTests.java b/src/test/java/org/springframework/data/elasticsearch/core/mapping/SimpleElasticsearchPersistentEntityTests.java index b3d74fdce..735d9428d 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/mapping/SimpleElasticsearchPersistentEntityTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/mapping/SimpleElasticsearchPersistentEntityTests.java @@ -39,7 +39,7 @@ import org.springframework.util.ReflectionUtils; public class SimpleElasticsearchPersistentEntityTests { @Test - public void shouldThrowExceptionGivenVersionPropertyIsNotLong() throws NoSuchFieldException, IntrospectionException { + public void shouldThrowExceptionGivenVersionPropertyIsNotLong() { // given TypeInformation typeInformation = ClassTypeInformation.from(EntityWithWrongVersionType.class); SimpleElasticsearchPersistentEntity entity = new SimpleElasticsearchPersistentEntity<>( @@ -51,8 +51,7 @@ public class SimpleElasticsearchPersistentEntityTests { } @Test - public void shouldThrowExceptionGivenMultipleVersionPropertiesArePresent() - throws NoSuchFieldException, IntrospectionException { + public void shouldThrowExceptionGivenMultipleVersionPropertiesArePresent() { // given TypeInformation typeInformation = ClassTypeInformation.from(EntityWithMultipleVersionField.class); SimpleElasticsearchPersistentEntity entity = new SimpleElasticsearchPersistentEntity<>( diff --git a/src/test/java/org/springframework/data/elasticsearch/core/query/CriteriaQueryTests.java b/src/test/java/org/springframework/data/elasticsearch/core/query/CriteriaQueryTests.java index bc206b2d1..04c737a87 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/query/CriteriaQueryTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/query/CriteriaQueryTests.java @@ -30,6 +30,7 @@ import java.lang.Long; import java.util.ArrayList; import java.util.List; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -41,6 +42,7 @@ import org.springframework.data.elasticsearch.annotations.Document; import org.springframework.data.elasticsearch.annotations.Field; import org.springframework.data.elasticsearch.annotations.Score; import org.springframework.data.elasticsearch.core.ElasticsearchOperations; +import org.springframework.data.elasticsearch.core.IndexOperations; import org.springframework.data.elasticsearch.core.SearchHit; import org.springframework.data.elasticsearch.core.SearchHits; import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates; @@ -65,14 +67,21 @@ public class CriteriaQueryTests { private final IndexCoordinates index = IndexCoordinates.of("test-index-sample-core-query").withTypes("test-type"); @Autowired private ElasticsearchOperations operations; + private IndexOperations indexOperations; @BeforeEach public void before() { + indexOperations = operations.getIndexOperations(); - operations.deleteIndex(SampleEntity.class); - operations.createIndex(SampleEntity.class); - operations.putMapping(SampleEntity.class); - operations.refresh(SampleEntity.class); + indexOperations.deleteIndex(SampleEntity.class); + indexOperations.createIndex(SampleEntity.class); + indexOperations.putMapping(SampleEntity.class); + indexOperations.refresh(SampleEntity.class); + } + + @AfterEach + void after() { + indexOperations.deleteIndex(SampleEntity.class); } @Test @@ -89,7 +98,7 @@ public class CriteriaQueryTests { indexQuery.setId(documentId); indexQuery.setObject(sampleEntity); operations.index(indexQuery, index); - operations.refresh(SampleEntity.class); + indexOperations.refresh(SampleEntity.class); CriteriaQuery criteriaQuery = new CriteriaQuery( new Criteria("message").contains("test").and("message").contains("some")); @@ -132,7 +141,7 @@ public class CriteriaQueryTests { indexQueries.add(indexQuery2); operations.bulkIndex(indexQueries, index); - operations.refresh(SampleEntity.class); + indexOperations.refresh(SampleEntity.class); CriteriaQuery criteriaQuery = new CriteriaQuery( new Criteria("message").contains("some").or("message").contains("test")); @@ -163,7 +172,7 @@ public class CriteriaQueryTests { indexQueries.add(indexQuery); operations.bulkIndex(indexQueries, index); - operations.refresh(SampleEntity.class); + indexOperations.refresh(SampleEntity.class); CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria().and(new Criteria("message").contains("some"))); // when @@ -194,7 +203,7 @@ public class CriteriaQueryTests { indexQueries.add(indexQuery); operations.bulkIndex(indexQueries, index); - operations.refresh(SampleEntity.class); + indexOperations.refresh(SampleEntity.class); CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria().or(new Criteria("message").contains("some"))); // when @@ -223,7 +232,7 @@ public class CriteriaQueryTests { indexQueries.add(indexQuery); operations.bulkIndex(indexQueries, index); - operations.refresh(SampleEntity.class); + indexOperations.refresh(SampleEntity.class); CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria("message").is("some message")); // when @@ -265,7 +274,7 @@ public class CriteriaQueryTests { indexQueries.add(indexQuery2); operations.bulkIndex(indexQueries, index); - operations.refresh(SampleEntity.class); + indexOperations.refresh(SampleEntity.class); CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria("message").is("some message")); // when @@ -307,7 +316,7 @@ public class CriteriaQueryTests { indexQueries.add(indexQuery2); operations.bulkIndex(indexQueries, index); - operations.refresh(SampleEntity.class); + indexOperations.refresh(SampleEntity.class); Criteria criteria = new Criteria("message").endsWith("end"); CriteriaQuery criteriaQuery = new CriteriaQuery(criteria); @@ -349,7 +358,7 @@ public class CriteriaQueryTests { indexQueries.add(indexQuery2); operations.bulkIndex(indexQueries, index); - operations.refresh(SampleEntity.class); + indexOperations.refresh(SampleEntity.class); Criteria criteria = new Criteria("message").startsWith("start"); CriteriaQuery criteriaQuery = new CriteriaQuery(criteria); @@ -391,7 +400,7 @@ public class CriteriaQueryTests { indexQueries.add(indexQuery2); operations.bulkIndex(indexQueries, index); - operations.refresh(SampleEntity.class); + indexOperations.refresh(SampleEntity.class); CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria("message").contains("contains")); // when @@ -432,7 +441,7 @@ public class CriteriaQueryTests { indexQueries.add(indexQuery2); operations.bulkIndex(indexQueries, index); - operations.refresh(SampleEntity.class); + indexOperations.refresh(SampleEntity.class); CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria("message").expression("+elasticsearch || test")); // when @@ -473,7 +482,7 @@ public class CriteriaQueryTests { indexQueries.add(indexQuery2); operations.bulkIndex(indexQueries, index); - operations.refresh(SampleEntity.class); + indexOperations.refresh(SampleEntity.class); CriteriaQuery criteriaQuery = new CriteriaQuery( new Criteria("message").startsWith("some").endsWith("search").contains("message").is("some message search")); @@ -515,7 +524,7 @@ public class CriteriaQueryTests { indexQueries.add(indexQuery2); operations.bulkIndex(indexQueries, index); - operations.refresh(SampleEntity.class); + indexOperations.refresh(SampleEntity.class); CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria("message").is("foo").not()); // when @@ -559,7 +568,7 @@ public class CriteriaQueryTests { indexQueries.add(indexQuery2); operations.bulkIndex(indexQueries, index); - operations.refresh(SampleEntity.class); + indexOperations.refresh(SampleEntity.class); CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria("rate").between(100, 150)); // when @@ -601,7 +610,7 @@ public class CriteriaQueryTests { indexQueries.add(indexQuery2); operations.bulkIndex(indexQueries, index); - operations.refresh(SampleEntity.class); + indexOperations.refresh(SampleEntity.class); CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria("rate").between(350, null)); // when @@ -644,7 +653,7 @@ public class CriteriaQueryTests { indexQueries.add(indexQuery2); operations.bulkIndex(indexQueries, index); - operations.refresh(SampleEntity.class); + indexOperations.refresh(SampleEntity.class); CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria("rate").between(null, 550)); // when @@ -687,7 +696,7 @@ public class CriteriaQueryTests { indexQueries.add(indexQuery2); operations.bulkIndex(indexQueries, index); - operations.refresh(SampleEntity.class); + indexOperations.refresh(SampleEntity.class); CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria("rate").lessThanEqual(750)); // when @@ -730,7 +739,7 @@ public class CriteriaQueryTests { indexQueries.add(indexQuery2); operations.bulkIndex(indexQueries, index); - operations.refresh(SampleEntity.class); + indexOperations.refresh(SampleEntity.class); CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria("rate").greaterThanEqual(950)); // when @@ -773,7 +782,7 @@ public class CriteriaQueryTests { indexQueries.add(indexQuery2); operations.bulkIndex(indexQueries, index); - operations.refresh(SampleEntity.class); + indexOperations.refresh(SampleEntity.class); CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria("message").contains("foo").boost(1)); // when @@ -794,7 +803,7 @@ public class CriteriaQueryTests { indexQueries.add(buildIndex(SampleEntity.builder().id("3").message("ac").build())); operations.bulkIndex(indexQueries, index); - operations.refresh(SampleEntity.class); + indexOperations.refresh(SampleEntity.class); // when CriteriaQuery criteriaQuery = new CriteriaQuery( @@ -821,7 +830,7 @@ public class CriteriaQueryTests { indexQuery.setId(documentId); indexQuery.setObject(sampleEntity); operations.index(indexQuery, index); - operations.refresh(SampleEntity.class); + indexOperations.refresh(SampleEntity.class); CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria("message").is("Hello World!")); @@ -837,7 +846,7 @@ public class CriteriaQueryTests { @Getter @NoArgsConstructor @AllArgsConstructor - @Document(indexName = "test-index-sample-core-query", type = "test-type", shards = 1, replicas = 0, + @Document(indexName = "test-index-sample-core-query", replicas = 0, refreshInterval = "-1") static class SampleEntity { 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 541a0191e..87cea98a4 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 @@ -112,7 +112,7 @@ class ClusterConnection implements ExtensionContext.Store.CloseableResource { } @Override - public void close() throws Exception { + public void close() { if (node != null) { LOGGER.debug("closing node"); diff --git a/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ElasticsearchRestTemplateConfiguration.java b/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ElasticsearchRestTemplateConfiguration.java index 8e55e790a..aaf800ab1 100644 --- a/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ElasticsearchRestTemplateConfiguration.java +++ b/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/ElasticsearchRestTemplateConfiguration.java @@ -24,7 +24,6 @@ import org.springframework.context.annotation.Configuration; import org.springframework.data.elasticsearch.client.ClientConfiguration; import org.springframework.data.elasticsearch.client.RestClients; import org.springframework.data.elasticsearch.config.AbstractElasticsearchConfiguration; -import org.springframework.util.Assert; /** * Configuration for Spring Data Elasticsearch using diff --git a/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/IntegrationTest.java b/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/IntegrationTest.java index 7725648e3..17e3032bb 100644 --- a/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/IntegrationTest.java +++ b/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/IntegrationTest.java @@ -21,7 +21,6 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import org.junit.jupiter.api.extension.ExtendWith; -import org.springframework.test.context.junit.jupiter.SpringExtension; /** * Wraps the {@link SpringDataElasticsearchExtension}. diff --git a/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/SpringDataElasticsearchExtension.java b/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/SpringDataElasticsearchExtension.java index 4ca24daa7..4f5a17940 100644 --- a/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/SpringDataElasticsearchExtension.java +++ b/src/test/java/org/springframework/data/elasticsearch/junit/jupiter/SpringDataElasticsearchExtension.java @@ -57,7 +57,7 @@ public class SpringDataElasticsearchExtension private static final Lock initLock = new ReentrantLock(); @Override - public void beforeAll(ExtensionContext extensionContext) throws Exception { + public void beforeAll(ExtensionContext extensionContext) { initLock.lock(); try { ExtensionContext.Store store = getStore(extensionContext); diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/CdiProductRepository.java b/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/CdiProductRepository.java index 1bce2df2c..f4d36723c 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/CdiProductRepository.java +++ b/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/CdiProductRepository.java @@ -27,5 +27,6 @@ import org.springframework.data.repository.CrudRepository; */ public interface CdiProductRepository extends CrudRepository { + @Override Optional findById(String id); } diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/CdiRepositoryTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/CdiRepositoryTests.java index 9031540c3..913ffc76e 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/CdiRepositoryTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/CdiRepositoryTests.java @@ -158,7 +158,7 @@ public class CdiRepositoryTests { @NoArgsConstructor @AllArgsConstructor @Builder - @Document(indexName = "test-index-product-cdi-repository", type = "test-product-type", shards = 1, replicas = 0, + @Document(indexName = "test-index-product-cdi-repository", replicas = 0, refreshInterval = "-1") static class Product { @@ -188,7 +188,7 @@ public class CdiRepositoryTests { } @Data - @Document(indexName = "test-index-person-cdi-repository", type = "user", shards = 1, replicas = 0, + @Document(indexName = "test-index-person-cdi-repository", replicas = 0, refreshInterval = "-1") static class Person { @@ -206,7 +206,7 @@ public class CdiRepositoryTests { @NoArgsConstructor @AllArgsConstructor @Builder - @Document(indexName = "test-index-book-cdi-repository", type = "book", shards = 1, replicas = 0, + @Document(indexName = "test-index-book-cdi-repository", replicas = 0, refreshInterval = "-1") static class Book { diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/OtherQualifier.java b/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/OtherQualifier.java index 02b2ef124..28062174b 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/OtherQualifier.java +++ b/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/OtherQualifier.java @@ -25,7 +25,7 @@ import javax.inject.Qualifier; /** * @author Mark Paluch - * @see DATAES-234 + * @see DATAES-234 */ @Qualifier @Retention(RetentionPolicy.RUNTIME) diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/PersonDB.java b/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/PersonDB.java index 8881fe662..74a7ef51e 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/PersonDB.java +++ b/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/PersonDB.java @@ -25,7 +25,7 @@ import javax.inject.Qualifier; /** * @author Mark Paluch - * @see DATAES-234 + * @see DATAES-234 */ @Qualifier @Retention(RetentionPolicy.RUNTIME) diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/QualifiedProductRepository.java b/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/QualifiedProductRepository.java index 8f29926cc..ec3124fdb 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/QualifiedProductRepository.java +++ b/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/QualifiedProductRepository.java @@ -19,7 +19,7 @@ import org.springframework.data.repository.CrudRepository; /** * @author Mark Paluch - * @see DATAES-234 + * @see DATAES-234 */ @PersonDB @OtherQualifier diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/SamplePersonRepository.java b/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/SamplePersonRepository.java index 1cb8cc98e..f82bd24b0 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/SamplePersonRepository.java +++ b/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/SamplePersonRepository.java @@ -19,7 +19,7 @@ import org.springframework.data.repository.Repository; /** * @author Mark Paluch - * @see DATAES-113 + * @see DATAES-113 */ public interface SamplePersonRepository extends Repository, SamplePersonRepositoryCustom { diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/SamplePersonRepositoryCustom.java b/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/SamplePersonRepositoryCustom.java index e53e940e2..1d44c249e 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/SamplePersonRepositoryCustom.java +++ b/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/SamplePersonRepositoryCustom.java @@ -17,8 +17,8 @@ package org.springframework.data.elasticsearch.repositories.cdi; /** - * @see DATAES-113 * @author Mark Paluch + * @see DATAES-113 */ interface SamplePersonRepositoryCustom { diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/SamplePersonRepositoryImpl.java b/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/SamplePersonRepositoryImpl.java index 953263c27..d7219d5af 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/SamplePersonRepositoryImpl.java +++ b/src/test/java/org/springframework/data/elasticsearch/repositories/cdi/SamplePersonRepositoryImpl.java @@ -17,8 +17,8 @@ package org.springframework.data.elasticsearch.repositories.cdi; /** - * @see DATAES-113 * @author Mark Paluch + * @see DATAES-113 */ class SamplePersonRepositoryImpl implements SamplePersonRepositoryCustom { 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/ComplexCustomMethodRepositoryTests.java index 05ed308fd..268ec79c0 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/ComplexCustomMethodRepositoryTests.java @@ -20,6 +20,7 @@ import static org.springframework.data.elasticsearch.annotations.FieldType.*; import lombok.Data; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -29,6 +30,7 @@ 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.IndexOperations; import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration; import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest; import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories; @@ -52,10 +54,17 @@ public class ComplexCustomMethodRepositoryTests { @Autowired private ComplexElasticsearchRepository complexRepository; @Autowired private ElasticsearchOperations operations; + private IndexOperations indexOperations; @BeforeEach public void before() { - IndexInitializer.init(operations, SampleEntity.class); + indexOperations = operations.getIndexOperations(); + IndexInitializer.init(indexOperations, SampleEntity.class); + } + + @AfterEach + void after() { + indexOperations.deleteIndex(SampleEntity.class); } @Test @@ -71,8 +80,8 @@ public class ComplexCustomMethodRepositoryTests { } @Data - @Document(indexName = "test-index-sample-repositories-complex-custommethod-autowiring", type = "test-type", - shards = 1, replicas = 0, refreshInterval = "-1") + @Document(indexName = "test-index-sample-repositories-complex-custommethod-autowiring", + replicas = 0, refreshInterval = "-1") static class SampleEntity { @Id private String id; diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/autowiring/ComplexElasticsearchRepositoryCustom.java b/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/autowiring/ComplexElasticsearchRepositoryCustom.java index ce9e0fafd..9e1f4e93d 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/autowiring/ComplexElasticsearchRepositoryCustom.java +++ b/src/test/java/org/springframework/data/elasticsearch/repositories/complex/custommethod/autowiring/ComplexElasticsearchRepositoryCustom.java @@ -21,5 +21,5 @@ package org.springframework.data.elasticsearch.repositories.complex.custommethod */ public interface ComplexElasticsearchRepositoryCustom { - public String doSomethingSpecial(); + String doSomethingSpecial(); } 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/ComplexCustomMethodRepositoryManualWiringTests.java index ed1f3172b..aa61d0e14 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/ComplexCustomMethodRepositoryManualWiringTests.java @@ -20,6 +20,7 @@ import static org.springframework.data.elasticsearch.annotations.FieldType.*; import lombok.Data; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -29,6 +30,7 @@ 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.IndexOperations; import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration; import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest; import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories; @@ -51,10 +53,17 @@ public class ComplexCustomMethodRepositoryManualWiringTests { @Autowired private ComplexElasticsearchRepositoryManualWiring complexRepository; @Autowired private ElasticsearchOperations operations; + private IndexOperations indexOperations; @BeforeEach public void before() { - IndexInitializer.init(operations, SampleEntity.class); + indexOperations = operations.getIndexOperations(); + IndexInitializer.init(indexOperations, SampleEntity.class); + } + + @AfterEach + void after() { + indexOperations.deleteIndex(SampleEntity.class); } @Test @@ -70,7 +79,7 @@ public class ComplexCustomMethodRepositoryManualWiringTests { } @Data - @Document(indexName = "test-index-sample-repository-manual-wiring", type = "test-type", shards = 1, replicas = 0, + @Document(indexName = "test-index-sample-repository-manual-wiring", replicas = 0, refreshInterval = "-1") static class SampleEntity { diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/custommethod/CustomMethodRepositoryBaseTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/custommethod/CustomMethodRepositoryBaseTests.java index da38a6e57..a7c0ebd12 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repositories/custommethod/CustomMethodRepositoryBaseTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/repositories/custommethod/CustomMethodRepositoryBaseTests.java @@ -32,6 +32,8 @@ import java.util.List; import java.util.UUID; import java.util.stream.Stream; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.annotation.Id; @@ -44,10 +46,13 @@ import org.springframework.data.domain.Sort.Order; import org.springframework.data.elasticsearch.annotations.Document; import org.springframework.data.elasticsearch.annotations.Field; import org.springframework.data.elasticsearch.annotations.Query; +import org.springframework.data.elasticsearch.core.ElasticsearchOperations; +import org.springframework.data.elasticsearch.core.IndexOperations; import org.springframework.data.elasticsearch.core.geo.GeoBox; import org.springframework.data.elasticsearch.core.geo.GeoPoint; import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest; import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; +import org.springframework.data.elasticsearch.utils.IndexInitializer; import org.springframework.data.geo.Box; import org.springframework.data.geo.Distance; import org.springframework.data.geo.Metrics; @@ -70,6 +75,20 @@ public abstract class CustomMethodRepositoryBaseTests { @Autowired private SampleStreamingCustomMethodRepository streamingRepository; + @Autowired private ElasticsearchOperations operations; + private IndexOperations indexOperations; + + @BeforeEach + public void before() { + indexOperations = operations.getIndexOperations(); + IndexInitializer.init(indexOperations, SampleEntity.class); + } + + @AfterEach + void after() { + indexOperations.deleteIndex(SampleEntity.class); + } + @Test public void shouldExecuteCustomMethod() { @@ -1367,7 +1386,7 @@ public abstract class CustomMethodRepositoryBaseTests { @NoArgsConstructor @AllArgsConstructor @Builder - @Document(indexName = "test-index-sample-repositories-custo-method", type = "test-type", shards = 1, replicas = 0, + @Document(indexName = "test-index-sample-repositories-custo-method", replicas = 0, refreshInterval = "-1") static class SampleEntity { diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/custommethod/CustomMethodRepositoryRestTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/custommethod/CustomMethodRepositoryRestTests.java index 2089a5f6b..84f1fd07e 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repositories/custommethod/CustomMethodRepositoryRestTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/repositories/custommethod/CustomMethodRepositoryRestTests.java @@ -15,14 +15,10 @@ */ package org.springframework.data.elasticsearch.repositories.custommethod; -import org.junit.jupiter.api.BeforeEach; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; -import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate; import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration; import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories; -import org.springframework.data.elasticsearch.utils.IndexInitializer; import org.springframework.test.context.ContextConfiguration; /** @@ -39,11 +35,4 @@ public class CustomMethodRepositoryRestTests extends CustomMethodRepositoryBaseT basePackages = { "org.springframework.data.elasticsearch.repositories.custommethod" }, considerNestedRepositories = true) static class Config {} - - @Autowired private ElasticsearchRestTemplate elasticsearchTemplate; - - @BeforeEach - public void before() { - IndexInitializer.init(elasticsearchTemplate, SampleEntity.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 index 4d91b80f1..7a0541b8b 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repositories/custommethod/CustomMethodRepositoryTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/repositories/custommethod/CustomMethodRepositoryTests.java @@ -15,14 +15,10 @@ */ package org.springframework.data.elasticsearch.repositories.custommethod; -import org.junit.jupiter.api.BeforeEach; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; -import org.springframework.data.elasticsearch.core.ElasticsearchOperations; import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration; import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories; -import org.springframework.data.elasticsearch.utils.IndexInitializer; import org.springframework.test.context.ContextConfiguration; /** @@ -40,10 +36,4 @@ public class CustomMethodRepositoryTests extends CustomMethodRepositoryBaseTests considerNestedRepositories = true) static class Config {} - @Autowired private ElasticsearchOperations operations; - - @BeforeEach - public void before() { - IndexInitializer.init(operations, SampleEntity.class); - } } diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/doubleid/DoubleIDRepositoryTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/doubleid/DoubleIDRepositoryTests.java index fd55e5a71..620180dd1 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repositories/doubleid/DoubleIDRepositoryTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/repositories/doubleid/DoubleIDRepositoryTests.java @@ -31,6 +31,7 @@ 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; @@ -57,16 +58,17 @@ public class DoubleIDRepositoryTests { @Autowired private DoubleIDRepository repository; @Autowired private ElasticsearchOperations operations; + private IndexOperations indexOperations; @BeforeEach public void before() { - IndexInitializer.init(operations, DoubleIDEntity.class); + indexOperations = operations.getIndexOperations(); + IndexInitializer.init(indexOperations, DoubleIDEntity.class); } @AfterEach public void after() { - - operations.deleteIndex(DoubleIDEntity.class); + indexOperations.deleteIndex(DoubleIDEntity.class); } @Test @@ -119,7 +121,7 @@ public class DoubleIDRepositoryTests { * @author Mohsin Husen */ - @Document(indexName = "test-index-double-keyed-entity", type = "double-keyed-entity", shards = 1, replicas = 0, + @Document(indexName = "test-index-double-keyed-entity", replicas = 0, refreshInterval = "-1") static class DoubleIDEntity { diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/dynamicindex/DynamicIndexEntityTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/dynamicindex/DynamicIndexEntityTests.java index 09e080041..75b1cf813 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repositories/dynamicindex/DynamicIndexEntityTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/repositories/dynamicindex/DynamicIndexEntityTests.java @@ -73,7 +73,7 @@ public class DynamicIndexEntityTests { } @AfterEach - public void teardown() { + public void after() { deleteIndexes(); } diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/geo/SpringDataGeoRepositoryTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/geo/SpringDataGeoRepositoryTests.java index a2de6313e..47ba36cc8 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repositories/geo/SpringDataGeoRepositoryTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/repositories/geo/SpringDataGeoRepositoryTests.java @@ -26,6 +26,7 @@ import lombok.Setter; import java.util.Locale; import java.util.Optional; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -35,6 +36,7 @@ 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; @@ -62,12 +64,20 @@ public class SpringDataGeoRepositoryTests { static class Config {} @Autowired ElasticsearchOperations operations; + private IndexOperations indexOperations; @Autowired SpringDataGeoRepository repository; @BeforeEach public void init() { - IndexInitializer.init(operations, GeoEntity.class); + + indexOperations = operations.getIndexOperations(); + IndexInitializer.init(indexOperations, GeoEntity.class); + } + + @AfterEach + void after() { + indexOperations.deleteIndex(GeoEntity.class); } @Test @@ -111,7 +121,7 @@ public class SpringDataGeoRepositoryTests { @NoArgsConstructor @AllArgsConstructor @Builder - @Document(indexName = "test-index-geo-repository", type = "geo-test-index", shards = 1, replicas = 0, + @Document(indexName = "test-index-geo-repository", replicas = 0, refreshInterval = "-1") static class GeoEntity { diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/integer/IntegerIDRepositoryTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/integer/IntegerIDRepositoryTests.java index 680e4d374..da84a2ea6 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repositories/integer/IntegerIDRepositoryTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/repositories/integer/IntegerIDRepositoryTests.java @@ -21,6 +21,7 @@ import java.util.Arrays; import java.util.Optional; import org.apache.commons.lang.math.RandomUtils; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -30,6 +31,7 @@ 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; @@ -56,10 +58,17 @@ public class IntegerIDRepositoryTests { @Autowired private IntegerIDRepository repository; @Autowired private ElasticsearchOperations operations; + private IndexOperations indexOperations; @BeforeEach public void before() { - IndexInitializer.init(operations, IntegerIDEntity.class); + indexOperations = operations.getIndexOperations(); + IndexInitializer.init(indexOperations, IntegerIDEntity.class); + } + + @AfterEach + void after() { + indexOperations.deleteIndex(IntegerIDEntity.class); } @Test @@ -112,7 +121,7 @@ public class IntegerIDRepositoryTests { * @author Mohsin Husen */ - @Document(indexName = "test-index-integer-keyed-entity", type = "integer-keyed-entity", shards = 1, replicas = 0, + @Document(indexName = "test-index-integer-keyed-entity", replicas = 0, refreshInterval = "-1") static class IntegerIDEntity { diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/nestedobject/InnerObjectTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/nestedobject/InnerObjectTests.java index 4079afc3a..a51f1ad7c 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repositories/nestedobject/InnerObjectTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/repositories/nestedobject/InnerObjectTests.java @@ -29,6 +29,7 @@ import java.util.Collection; import java.util.HashMap; import java.util.Map; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -41,6 +42,7 @@ import org.springframework.data.elasticsearch.annotations.FieldType; import org.springframework.data.elasticsearch.annotations.InnerField; 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; @@ -65,10 +67,17 @@ public class InnerObjectTests { @Autowired private SampleElasticSearchBookRepository bookRepository; @Autowired private ElasticsearchOperations operations; + private IndexOperations indexOperations; @BeforeEach public void before() { - IndexInitializer.init(operations, Book.class); + indexOperations = operations.getIndexOperations(); + IndexInitializer.init(indexOperations, Book.class); + } + + @AfterEach + void after() { + indexOperations.deleteIndex(Book.class); } @Test @@ -101,7 +110,7 @@ public class InnerObjectTests { @NoArgsConstructor @AllArgsConstructor @Builder - @Document(indexName = "test-index-book", type = "book", shards = 1, replicas = 0, refreshInterval = "-1") + @Document(indexName = "test-index-book", replicas = 0, refreshInterval = "-1") static class Book { @Id private String id; 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/DynamicSettingAndMappingEntityRepositoryTests.java index 1b9d9e26b..ab972d8a0 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/DynamicSettingAndMappingEntityRepositoryTests.java @@ -21,6 +21,7 @@ import java.util.Map; import org.apache.commons.lang.RandomStringUtils; import org.elasticsearch.index.query.QueryBuilders; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -31,6 +32,7 @@ import org.springframework.data.elasticsearch.annotations.Document; import org.springframework.data.elasticsearch.annotations.Mapping; import org.springframework.data.elasticsearch.annotations.Setting; import org.springframework.data.elasticsearch.core.ElasticsearchOperations; +import org.springframework.data.elasticsearch.core.IndexOperations; import org.springframework.data.elasticsearch.core.SearchHits; import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates; import org.springframework.data.elasticsearch.core.query.NativeSearchQuery; @@ -59,12 +61,19 @@ public class DynamicSettingAndMappingEntityRepositoryTests { static class Config {} @Autowired private ElasticsearchOperations operations; + private IndexOperations indexOperations; @Autowired private DynamicSettingAndMappingEntityRepository repository; @BeforeEach public void before() { - IndexInitializer.init(operations, DynamicSettingAndMappingEntity.class); + indexOperations = operations.getIndexOperations(); + IndexInitializer.init(indexOperations, DynamicSettingAndMappingEntity.class); + } + + @AfterEach + void after() { + indexOperations.deleteIndex(DynamicSettingAndMappingEntity.class); } @Test // DATAES-64 @@ -74,8 +83,8 @@ public class DynamicSettingAndMappingEntityRepositoryTests { // delete , create and apply mapping in before method // then - assertThat(operations.indexExists(DynamicSettingAndMappingEntity.class)).isTrue(); - Map map = operations.getSetting(DynamicSettingAndMappingEntity.class); + assertThat(indexOperations.indexExists(DynamicSettingAndMappingEntity.class)).isTrue(); + Map map = indexOperations.getSettings(DynamicSettingAndMappingEntity.class); assertThat(map.containsKey("index.number_of_replicas")).isTrue(); assertThat(map.containsKey("index.number_of_shards")).isTrue(); assertThat(map.containsKey("index.analysis.analyzer.emailAnalyzer.tokenizer")).isTrue(); @@ -126,7 +135,7 @@ public class DynamicSettingAndMappingEntityRepositoryTests { // delete , create and apply mapping in before method // when - Map mapping = operations.getMapping(DynamicSettingAndMappingEntity.class); + Map mapping = indexOperations.getMapping(DynamicSettingAndMappingEntity.class); // then Map properties = (Map) mapping.get("properties"); @@ -141,23 +150,21 @@ public class DynamicSettingAndMappingEntityRepositoryTests { public void shouldCreateMappingWithSpecifiedMappings() { // given - operations.deleteIndex(DynamicSettingAndMappingEntity.class); - operations.createIndex(DynamicSettingAndMappingEntity.class); - operations.refresh(DynamicSettingAndMappingEntity.class); + indexOperations.deleteIndex(DynamicSettingAndMappingEntity.class); + indexOperations.createIndex(DynamicSettingAndMappingEntity.class); + indexOperations.refresh(DynamicSettingAndMappingEntity.class); // when String mappings = "{\n" + // - " \"test-setting-type\" : {\n" + // " \"properties\" : {\n" + // " \"email\" : {\"type\" : \"text\", \"analyzer\" : \"emailAnalyzer\" }\n" + // " }\n" + // - " }\n" + // - "}"; - operations.putMapping(DynamicSettingAndMappingEntity.class, mappings); - operations.refresh(DynamicSettingAndMappingEntity.class); + '}'; + indexOperations.putMapping(DynamicSettingAndMappingEntity.class, mappings); + indexOperations.refresh(DynamicSettingAndMappingEntity.class); // then - Map mapping = operations.getMapping(DynamicSettingAndMappingEntity.class); + Map mapping = indexOperations.getMapping(DynamicSettingAndMappingEntity.class); Map properties = (Map) mapping.get("properties"); assertThat(mapping).isNotNull(); assertThat(properties).isNotNull(); @@ -172,7 +179,7 @@ public class DynamicSettingAndMappingEntityRepositoryTests { // given // then - Map mapping = operations.getMapping(DynamicSettingAndMappingEntity.class); + Map mapping = indexOperations.getMapping(DynamicSettingAndMappingEntity.class); Map properties = (Map) mapping.get("properties"); assertThat(mapping).isNotNull(); assertThat(properties).isNotNull(); @@ -184,7 +191,7 @@ public class DynamicSettingAndMappingEntityRepositoryTests { /** * @author Mohsin Husen */ - @Document(indexName = "test-index-dynamic-setting-and-mapping", type = "test-setting-type") + @Document(indexName = "test-index-dynamic-setting-and-mapping") @Setting(settingPath = "/settings/test-settings.json") @Mapping(mappingPath = "/mappings/test-mappings.json") static class DynamicSettingAndMappingEntity { 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/FieldDynamicMappingEntityRepositoryTests.java index 3ac5c7145..aee8fe076 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/FieldDynamicMappingEntityRepositoryTests.java @@ -19,6 +19,7 @@ import static org.assertj.core.api.Assertions.*; import java.util.Map; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -28,6 +29,7 @@ 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.ElasticsearchCrudRepository; @@ -54,9 +56,16 @@ public class FieldDynamicMappingEntityRepositoryTests { @Autowired private ElasticsearchOperations operations; + private IndexOperations indexOperations; @BeforeEach public void before() { - IndexInitializer.init(operations, FieldDynamicMappingEntity.class); + indexOperations = operations.getIndexOperations(); + IndexInitializer.init(indexOperations, FieldDynamicMappingEntity.class); + } + + @AfterEach + void after() { + indexOperations.deleteIndex(FieldDynamicMappingEntity.class); } @Test // DATAES-209 @@ -92,7 +101,7 @@ public class FieldDynamicMappingEntityRepositoryTests { /** * @author Ted Liang */ - @Document(indexName = "test-index-field-dynamic-mapping", type = "test-field-mapping-type") + @Document(indexName = "test-index-field-dynamic-mapping") static class FieldDynamicMappingEntity { @Id private String id; diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/spel/SpELEntityTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/spel/SpELEntityTests.java index 1eef7734f..bb304f0ac 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repositories/spel/SpELEntityTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/repositories/spel/SpELEntityTests.java @@ -18,6 +18,7 @@ package org.springframework.data.elasticsearch.repositories.spel; import static org.assertj.core.api.Assertions.*; import org.elasticsearch.index.query.QueryBuilders; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -26,6 +27,7 @@ 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.core.query.NativeSearchQuery; import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration; @@ -53,10 +55,17 @@ public class SpELEntityTests { @Autowired private SpELRepository repository; @Autowired private ElasticsearchOperations operations; + private IndexOperations indexOperations; @BeforeEach public void before() { - IndexInitializer.init(operations, SpELEntity.class); + indexOperations = operations.getIndexOperations(); + IndexInitializer.init(indexOperations, SpELEntity.class); + } + + @AfterEach + void after() { + indexOperations.deleteIndex("test-index-abz-*"); } @Test @@ -94,7 +103,7 @@ public class SpELEntityTests { * * @author Artur Konczak */ - @Document(indexName = "#{'test-index-abz'+'-'+'entity'}", type = "#{'my'+'Type'}", shards = 1, replicas = 0, + @Document(indexName = "#{'test-index-abz'+'-'+'entity'}", replicas = 0, refreshInterval = "-1") static class SpELEntity { 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 54a2db4bf..cfd9d7cbe 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 @@ -20,6 +20,7 @@ import static org.assertj.core.api.Assertions.*; import lombok.Data; import org.elasticsearch.index.query.QueryBuilders; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -30,6 +31,7 @@ import org.springframework.data.elasticsearch.annotations.Document; import org.springframework.data.elasticsearch.annotations.Mapping; import org.springframework.data.elasticsearch.annotations.Setting; import org.springframework.data.elasticsearch.core.ElasticsearchOperations; +import org.springframework.data.elasticsearch.core.IndexOperations; import org.springframework.data.elasticsearch.core.SearchHits; import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates; import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder; @@ -58,12 +60,18 @@ public class SynonymRepositoryTests { @Autowired private SynonymRepository repository; @Autowired private ElasticsearchOperations operations; + private IndexOperations indexOperations; @BeforeEach public void before() { - IndexInitializer.init(operations, SynonymEntity.class); + indexOperations = operations.getIndexOperations(); + IndexInitializer.init(indexOperations, SynonymEntity.class); } + @AfterEach + void after() { + indexOperations.deleteIndex(SynonymEntity.class); + } @Test public void shouldDo() { @@ -90,7 +98,7 @@ public class SynonymRepositoryTests { * @author Mohsin Husen */ @Data - @Document(indexName = "test-index-synonym", type = "synonym-type") + @Document(indexName = "test-index-synonym") @Setting(settingPath = "/synonyms/settings.json") @Mapping(mappingPath = "/synonyms/mappings.json") static class SynonymEntity { diff --git a/src/test/java/org/springframework/data/elasticsearch/repositories/uuidkeyed/UUIDElasticsearchRepositoryTests.java b/src/test/java/org/springframework/data/elasticsearch/repositories/uuidkeyed/UUIDElasticsearchRepositoryTests.java index 4ad24d3c6..1a9673c6f 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repositories/uuidkeyed/UUIDElasticsearchRepositoryTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/repositories/uuidkeyed/UUIDElasticsearchRepositoryTests.java @@ -29,6 +29,7 @@ import java.util.List; import java.util.Optional; import java.util.UUID; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -45,6 +46,7 @@ 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.core.ElasticsearchOperations; +import org.springframework.data.elasticsearch.core.IndexOperations; import org.springframework.data.elasticsearch.core.geo.GeoPoint; import org.springframework.data.elasticsearch.core.query.NativeSearchQuery; import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder; @@ -76,11 +78,17 @@ public class UUIDElasticsearchRepositoryTests { @Autowired private SampleUUIDKeyedElasticsearchRepository repository; @Autowired private ElasticsearchOperations operations; + private IndexOperations indexOperations; @BeforeEach public void before() { + indexOperations = operations.getIndexOperations(); + IndexInitializer.init(indexOperations, SampleEntityUUIDKeyed.class); + } - IndexInitializer.init(operations, SampleEntityUUIDKeyed.class); + @AfterEach + void after() { + indexOperations.deleteIndex(SampleEntityUUIDKeyed.class); } @Test @@ -593,7 +601,7 @@ public class UUIDElasticsearchRepositoryTests { @AllArgsConstructor @Builder @Data - @Document(indexName = "test-index-uuid-keyed", type = "test-type-uuid-keyed", shards = 1, replicas = 0, + @Document(indexName = "test-index-uuid-keyed", replicas = 0, refreshInterval = "-1") static class SampleEntityUUIDKeyed { diff --git a/src/test/java/org/springframework/data/elasticsearch/repository/config/ReactiveElasticsearchRepositoriesRegistrarTests.java b/src/test/java/org/springframework/data/elasticsearch/repository/config/ReactiveElasticsearchRepositoriesRegistrarTests.java index 674ab6055..84f554c87 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repository/config/ReactiveElasticsearchRepositoriesRegistrarTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/repository/config/ReactiveElasticsearchRepositoriesRegistrarTests.java @@ -72,7 +72,7 @@ public class ReactiveElasticsearchRepositoriesRegistrarTests { @NoArgsConstructor @AllArgsConstructor @Builder - @Document(indexName = "test-index-sample-reactive-repositories-registrar", type = "test-type", shards = 1, + @Document(indexName = "test-index-sample-reactive-repositories-registrar", replicas = 0, refreshInterval = "-1") static class SampleEntity { diff --git a/src/test/java/org/springframework/data/elasticsearch/repository/config/ReactiveElasticsearchRepositoryConfigurationExtensionUnitTests.java b/src/test/java/org/springframework/data/elasticsearch/repository/config/ReactiveElasticsearchRepositoryConfigurationExtensionUnitTests.java index b3fa4de59..aea0b777c 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repository/config/ReactiveElasticsearchRepositoryConfigurationExtensionUnitTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/repository/config/ReactiveElasticsearchRepositoryConfigurationExtensionUnitTests.java @@ -100,7 +100,7 @@ public class ReactiveElasticsearchRepositoryConfigurationExtensionUnitTests { } - @Document(indexName = "star-wars", type = "character") + @Document(indexName = "star-wars") static class SwCharacter {} static class Store {} diff --git a/src/test/java/org/springframework/data/elasticsearch/repository/query/ElasticsearchStringQueryUnitTests.java b/src/test/java/org/springframework/data/elasticsearch/repository/query/ElasticsearchStringQueryUnitTests.java index 99e20da5b..299e3ed53 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repository/query/ElasticsearchStringQueryUnitTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/repository/query/ElasticsearchStringQueryUnitTests.java @@ -90,7 +90,7 @@ public class ElasticsearchStringQueryUnitTests { private org.springframework.data.elasticsearch.core.query.Query createQuery(String methodName, String... args) throws NoSuchMethodException { - Class[] argTypes = Arrays.stream(args).map(Object::getClass).toArray(size -> new Class[size]); + Class[] argTypes = Arrays.stream(args).map(Object::getClass).toArray(Class[]::new); ElasticsearchQueryMethod queryMethod = getQueryMethod(methodName, argTypes); ElasticsearchStringQuery elasticsearchStringQuery = queryForMethod(queryMethod); return elasticsearchStringQuery.createQuery(new ElasticsearchParametersParameterAccessor(queryMethod, args)); @@ -123,7 +123,7 @@ public class ElasticsearchStringQueryUnitTests { * @author Artur Konczak */ - @Document(indexName = "test-index-person-query-unittest", type = "user", shards = 1, replicas = 0, + @Document(indexName = "test-index-person-query-unittest", replicas = 0, refreshInterval = "-1") static class Person { @@ -178,7 +178,7 @@ public class ElasticsearchStringQueryUnitTests { @NoArgsConstructor @AllArgsConstructor @Builder - @Document(indexName = "test-index-book-query-unittest", type = "book", shards = 1, replicas = 0, + @Document(indexName = "test-index-book-query-unittest", replicas = 0, refreshInterval = "-1") static class Book { diff --git a/src/test/java/org/springframework/data/elasticsearch/repository/query/ReactiveElasticsearchQueryMethodUnitTests.java b/src/test/java/org/springframework/data/elasticsearch/repository/query/ReactiveElasticsearchQueryMethodUnitTests.java index f514f26dc..e57f9c6ba 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repository/query/ReactiveElasticsearchQueryMethodUnitTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/repository/query/ReactiveElasticsearchQueryMethodUnitTests.java @@ -71,7 +71,6 @@ public class ReactiveElasticsearchQueryMethodUnitTests { assertThat(metadata.getJavaType()).isAssignableFrom(Person.class); assertThat(metadata.getIndexName()).isEqualTo(INDEX_NAME); - assertThat(metadata.getIndexTypeName()).isEqualTo("user"); } @Test // DATAES-519 @@ -85,19 +84,19 @@ public class ReactiveElasticsearchQueryMethodUnitTests { } @Test // DATAES-519 - public void rejectsMonoPageableResult() throws Exception { + public void rejectsMonoPageableResult() { assertThatThrownBy(() -> queryMethod(PersonRepository.class, "findMonoByName", String.class, Pageable.class)) .isInstanceOf(IllegalStateException.class); } @Test // DATAES-519 - public void throwsExceptionOnWrappedPage() throws Exception { + public void throwsExceptionOnWrappedPage() { assertThatThrownBy(() -> queryMethod(PersonRepository.class, "findMonoPageByName", String.class, Pageable.class)) .isInstanceOf(InvalidDataAccessApiUsageException.class); } @Test // DATAES-519 - public void throwsExceptionOnWrappedSlice() throws Exception { + public void throwsExceptionOnWrappedSlice() { assertThatThrownBy(() -> queryMethod(PersonRepository.class, "findMonoSliceByName", String.class, Pageable.class)) .isInstanceOf(InvalidDataAccessApiUsageException.class); } @@ -150,7 +149,7 @@ public class ReactiveElasticsearchQueryMethodUnitTests { * @author Artur Konczak */ - @Document(indexName = INDEX_NAME, type = "user", shards = 1, replicas = 0, refreshInterval = "-1") + @Document(indexName = INDEX_NAME, replicas = 0, refreshInterval = "-1") static class Person { @Id private String id; @@ -204,7 +203,7 @@ public class ReactiveElasticsearchQueryMethodUnitTests { @NoArgsConstructor @AllArgsConstructor @Builder - @Document(indexName = "test-index-book-reactive-repository-query", type = "book", shards = 1, replicas = 0, + @Document(indexName = "test-index-book-reactive-repository-query", replicas = 0, refreshInterval = "-1") static class Book { diff --git a/src/test/java/org/springframework/data/elasticsearch/repository/query/ReactiveElasticsearchStringQueryUnitTests.java b/src/test/java/org/springframework/data/elasticsearch/repository/query/ReactiveElasticsearchStringQueryUnitTests.java index c86ec0b4d..1d68dd1ba 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repository/query/ReactiveElasticsearchStringQueryUnitTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/repository/query/ReactiveElasticsearchStringQueryUnitTests.java @@ -126,7 +126,7 @@ public class ReactiveElasticsearchStringQueryUnitTests { private org.springframework.data.elasticsearch.core.query.Query createQuery(String methodName, String... args) throws NoSuchMethodException { - Class[] argTypes = Arrays.stream(args).map(Object::getClass).toArray(size -> new Class[size]); + Class[] argTypes = Arrays.stream(args).map(Object::getClass).toArray(Class[]::new); ReactiveElasticsearchQueryMethod queryMethod = getQueryMethod(methodName, argTypes); ReactiveElasticsearchStringQuery elasticsearchStringQuery = queryForMethod(queryMethod); @@ -175,7 +175,7 @@ public class ReactiveElasticsearchStringQueryUnitTests { * @author Artur Konczak */ - @Document(indexName = "test-index-person-reactive-repository-string-query", type = "user", shards = 1, replicas = 0, + @Document(indexName = "test-index-person-reactive-repository-string-query", replicas = 0, refreshInterval = "-1") public class Person { @@ -230,7 +230,7 @@ public class ReactiveElasticsearchStringQueryUnitTests { @NoArgsConstructor @AllArgsConstructor @Builder - @Document(indexName = "test-index-book-reactive-repository-string-query", type = "book", shards = 1, replicas = 0, + @Document(indexName = "test-index-book-reactive-repository-string-query", replicas = 0, refreshInterval = "-1") static class Book { diff --git a/src/test/java/org/springframework/data/elasticsearch/repository/query/StubParameterAccessor.java b/src/test/java/org/springframework/data/elasticsearch/repository/query/StubParameterAccessor.java index 3ec897f18..98613b757 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repository/query/StubParameterAccessor.java +++ b/src/test/java/org/springframework/data/elasticsearch/repository/query/StubParameterAccessor.java @@ -41,6 +41,7 @@ class StubParameterAccessor implements ElasticsearchParameterAccessor { * (non-Javadoc) * @see org.springframework.data.repository.query.ParameterAccessor#getPageable() */ + @Override public Pageable getPageable() { return null; } @@ -49,6 +50,7 @@ class StubParameterAccessor implements ElasticsearchParameterAccessor { * (non-Javadoc) * @see org.springframework.data.repository.query.ParameterAccessor#getBindableValue(int) */ + @Override public Object getBindableValue(int index) { return values[index]; } @@ -57,6 +59,7 @@ class StubParameterAccessor implements ElasticsearchParameterAccessor { * (non-Javadoc) * @see org.springframework.data.repository.query.ParameterAccessor#hasBindableNullValue() */ + @Override public boolean hasBindableNullValue() { return false; } @@ -65,6 +68,7 @@ class StubParameterAccessor implements ElasticsearchParameterAccessor { * (non-Javadoc) * @see org.springframework.data.repository.query.ParameterAccessor#getSort() */ + @Override public Sort getSort() { return Sort.unsorted(); } @@ -73,6 +77,7 @@ class StubParameterAccessor implements ElasticsearchParameterAccessor { * (non-Javadoc) * @see org.springframework.data.repository.query.ParameterAccessor#iterator() */ + @Override public Iterator iterator() { return Arrays.asList(values).iterator(); } 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 a5679e89f..2636a00ba 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,6 +27,7 @@ import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -37,6 +38,7 @@ 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.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; @@ -64,12 +66,14 @@ class QueryKeywordsTests { @Autowired private ProductRepository repository; - @Autowired private ElasticsearchOperations elasticsearchTemplate; + @Autowired private ElasticsearchOperations operations; + private IndexOperations indexOperations; @BeforeEach public void before() { + indexOperations = operations.getIndexOperations(); - IndexInitializer.init(elasticsearchTemplate, Product.class); + IndexInitializer.init(indexOperations, Product.class); Product product1 = Product.builder().id("1").name("Sugar").text("Cane sugar").price(1.0f).available(false) .sortName("sort5").build(); @@ -87,6 +91,11 @@ class QueryKeywordsTests { repository.saveAll(Arrays.asList(product1, product2, product3, product4, product5, product6)); } + @AfterEach + void after() { + indexOperations.deleteIndex(Product.class); + } + @Test public void shouldSupportAND() { @@ -266,7 +275,7 @@ class QueryKeywordsTests { @NoArgsConstructor @AllArgsConstructor @Builder - @Document(indexName = "test-index-product-query-keywords", type = "test-product-type", shards = 1, replicas = 0, + @Document(indexName = "test-index-product-query-keywords", replicas = 0, refreshInterval = "-1") static class Product { diff --git a/src/test/java/org/springframework/data/elasticsearch/repository/support/ElasticsearchEntityInformationCreatorImplTests.java b/src/test/java/org/springframework/data/elasticsearch/repository/support/ElasticsearchEntityInformationCreatorImplTests.java index 689d63d4e..dcb8b9cfd 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repository/support/ElasticsearchEntityInformationCreatorImplTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/repository/support/ElasticsearchEntityInformationCreatorImplTests.java @@ -45,16 +45,12 @@ public class ElasticsearchEntityInformationCreatorImplTests { @Test public void shouldThrowMappingExceptionOnMissingEntity() { - assertThatThrownBy(() -> { - entityInfoCreator.getEntityInformation(String.class); - }).isInstanceOf(MappingException.class); + assertThatThrownBy(() -> entityInfoCreator.getEntityInformation(String.class)).isInstanceOf(MappingException.class); } @Test public void shouldThrowIllegalArgumentExceptionOnMissingIdAnnotation() { - assertThatThrownBy(() -> { - entityInfoCreator.getEntityInformation(EntityNoId.class); - }).isInstanceOf(IllegalArgumentException.class).hasMessageContaining("No id property found"); + assertThatThrownBy(() -> entityInfoCreator.getEntityInformation(EntityNoId.class)).isInstanceOf(IllegalArgumentException.class).hasMessageContaining("No id property found"); } @Document(indexName = "whatever") diff --git a/src/test/java/org/springframework/data/elasticsearch/repository/support/SimpleReactiveElasticsearchRepositoryTests.java b/src/test/java/org/springframework/data/elasticsearch/repository/support/SimpleReactiveElasticsearchRepositoryTests.java index f35c20444..8738e6c15 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repository/support/SimpleReactiveElasticsearchRepositoryTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/repository/support/SimpleReactiveElasticsearchRepositoryTests.java @@ -23,10 +23,12 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import org.junit.jupiter.api.AfterEach; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import reactor.test.StepVerifier; +import java.io.IOException; import java.lang.Boolean; import java.lang.Long; import java.lang.Object; @@ -96,14 +98,17 @@ public class SimpleReactiveElasticsearchRepositoryTests { TestUtils.deleteIndex(INDEX); } + @AfterEach + void after() { + TestUtils.deleteIndex(INDEX); + } + @Test // DATAES-519 public void saveShouldSaveSingleEntity() { repository.save(SampleEntity.builder().build()) // .as(StepVerifier::create) // - .consumeNextWith(it -> { - assertThat(TestUtils.documentWithId(it.getId()).ofType(TYPE).existsIn(INDEX)).isTrue(); - }) // + .consumeNextWith(it -> assertThat(TestUtils.documentWithId(it.getId()).existsIn(INDEX)).isTrue()) // .verifyComplete(); } @@ -114,15 +119,9 @@ public class SimpleReactiveElasticsearchRepositoryTests { .saveAll(Arrays.asList(SampleEntity.builder().build(), SampleEntity.builder().build(), SampleEntity.builder().build())) // .as(StepVerifier::create) // - .consumeNextWith(it -> { - assertThat(TestUtils.documentWithId(it.getId()).ofType(TYPE).existsIn(INDEX)).isTrue(); - }) // - .consumeNextWith(it -> { - assertThat(TestUtils.documentWithId(it.getId()).ofType(TYPE).existsIn(INDEX)).isTrue(); - }) // - .consumeNextWith(it -> { - assertThat(TestUtils.documentWithId(it.getId()).ofType(TYPE).existsIn(INDEX)).isTrue(); - }) // + .consumeNextWith(it -> assertThat(TestUtils.documentWithId(it.getId()).existsIn(INDEX)).isTrue()) // + .consumeNextWith(it -> assertThat(TestUtils.documentWithId(it.getId()).existsIn(INDEX)).isTrue()) // + .consumeNextWith(it -> assertThat(TestUtils.documentWithId(it.getId()).existsIn(INDEX)).isTrue()) // .verifyComplete(); } @@ -132,21 +131,19 @@ public class SimpleReactiveElasticsearchRepositoryTests { } @Test // DATAES-519 - public void findShouldRetrieveSingleEntityById() { + public void findShouldRetrieveSingleEntityById() throws IOException { bulkIndex(SampleEntity.builder().id("id-one").build(), // SampleEntity.builder().id("id-two").build(), // SampleEntity.builder().id("id-three").build()); repository.findById("id-two").as(StepVerifier::create)// - .consumeNextWith(it -> { - assertThat(it.getId()).isEqualTo("id-two"); - }) // + .consumeNextWith(it -> assertThat(it.getId()).isEqualTo("id-two")) // .verifyComplete(); } @Test // DATAES-519 - public void findByIdShouldCompleteIfNothingFound() { + public void findByIdShouldCompleteIfNothingFound() throws IOException { bulkIndex(SampleEntity.builder().id("id-one").build(), // SampleEntity.builder().id("id-two").build(), // @@ -157,7 +154,7 @@ public class SimpleReactiveElasticsearchRepositoryTests { } @Test // DATAES-720 - public void findAllShouldReturnAllElements() { + public void findAllShouldReturnAllElements() throws IOException { // make sure to be above the default page size of the Query interface int count = DEFAULT_PAGE_SIZE * 2; bulkIndex(IntStream.range(1, count + 1) // @@ -176,7 +173,7 @@ public class SimpleReactiveElasticsearchRepositoryTests { } @Test // DATAES-519 - public void findAllByIdShouldRetrieveMatchingDocuments() { + public void findAllByIdShouldRetrieveMatchingDocuments() throws IOException { bulkIndex(SampleEntity.builder().id("id-one").build(), // SampleEntity.builder().id("id-two").build(), // @@ -189,7 +186,7 @@ public class SimpleReactiveElasticsearchRepositoryTests { } @Test // DATAES-519 - public void findAllByIdShouldCompleteWhenNothingFound() { + public void findAllByIdShouldCompleteWhenNothingFound() throws IOException { bulkIndex(SampleEntity.builder().id("id-one").build(), // SampleEntity.builder().id("id-two").build(), // @@ -206,7 +203,7 @@ public class SimpleReactiveElasticsearchRepositoryTests { } @Test // DATAES-519 - public void countShouldCountDocuments() { + public void countShouldCountDocuments() throws IOException { bulkIndex(SampleEntity.builder().id("id-one").build(), // SampleEntity.builder().id("id-two").build()); @@ -215,7 +212,7 @@ public class SimpleReactiveElasticsearchRepositoryTests { } @Test // DATAES-519 - public void existsByIdShouldReturnTrueIfExists() { + public void existsByIdShouldReturnTrueIfExists() throws IOException { bulkIndex(SampleEntity.builder().id("id-one").message("message").build(), // SampleEntity.builder().id("id-two").message("test message").build(), // @@ -228,7 +225,7 @@ public class SimpleReactiveElasticsearchRepositoryTests { } @Test // DATAES-519 - public void existsByIdShouldReturnFalseIfNotExists() { + public void existsByIdShouldReturnFalseIfNotExists() throws IOException { bulkIndex(SampleEntity.builder().id("id-one").message("message").build(), // SampleEntity.builder().id("id-two").message("test message").build(), // @@ -241,7 +238,7 @@ public class SimpleReactiveElasticsearchRepositoryTests { } @Test // DATAES-519 - public void countShouldCountMatchingDocuments() { + public void countShouldCountMatchingDocuments() throws IOException { bulkIndex(SampleEntity.builder().id("id-one").message("message").build(), // SampleEntity.builder().id("id-two").message("test message").build(), // @@ -254,7 +251,7 @@ public class SimpleReactiveElasticsearchRepositoryTests { } @Test // DATAES-519 - public void existsShouldReturnTrueIfExists() { + public void existsShouldReturnTrueIfExists() throws IOException { bulkIndex(SampleEntity.builder().id("id-one").message("message").build(), // SampleEntity.builder().id("id-two").message("test message").build(), // @@ -267,7 +264,7 @@ public class SimpleReactiveElasticsearchRepositoryTests { } @Test // DATAES-519 - public void existsShouldReturnFalseIfNotExists() { + public void existsShouldReturnFalseIfNotExists() throws IOException { bulkIndex(SampleEntity.builder().id("id-one").message("message").build(), // SampleEntity.builder().id("id-two").message("test message").build(), // @@ -280,7 +277,7 @@ public class SimpleReactiveElasticsearchRepositoryTests { } @Test // DATAES-519 - public void deleteByIdShouldCompleteIfNothingDeleted() { + public void deleteByIdShouldCompleteIfNothingDeleted() throws IOException { bulkIndex(SampleEntity.builder().id("id-one").build(), // SampleEntity.builder().id("id-two").build()); @@ -294,7 +291,7 @@ public class SimpleReactiveElasticsearchRepositoryTests { } @Test // DATAES-519 - public void deleteByIdShouldDeleteEntry() { + public void deleteByIdShouldDeleteEntry() throws IOException { SampleEntity toBeDeleted = SampleEntity.builder().id("id-two").build(); bulkIndex(SampleEntity.builder().id("id-one").build(), toBeDeleted); @@ -305,7 +302,7 @@ public class SimpleReactiveElasticsearchRepositoryTests { } @Test // DATAES-519 - public void deleteShouldDeleteEntry() { + public void deleteShouldDeleteEntry() throws IOException { SampleEntity toBeDeleted = SampleEntity.builder().id("id-two").build(); bulkIndex(SampleEntity.builder().id("id-one").build(), toBeDeleted); @@ -316,7 +313,7 @@ public class SimpleReactiveElasticsearchRepositoryTests { } @Test // DATAES-519 - public void deleteAllShouldDeleteGivenEntries() { + public void deleteAllShouldDeleteGivenEntries() throws IOException { SampleEntity toBeDeleted = SampleEntity.builder().id("id-one").build(); SampleEntity hangInThere = SampleEntity.builder().id("id-two").build(); @@ -332,7 +329,7 @@ public class SimpleReactiveElasticsearchRepositoryTests { } @Test // DATAES-519 - public void deleteAllShouldDeleteAllEntries() { + public void deleteAllShouldDeleteAllEntries() throws IOException { bulkIndex(SampleEntity.builder().id("id-one").build(), // SampleEntity.builder().id("id-two").build(), // @@ -344,7 +341,7 @@ public class SimpleReactiveElasticsearchRepositoryTests { } @Test // DATAES-519 - public void derivedFinderMethodShouldBeExecutedCorrectly() { + public void derivedFinderMethodShouldBeExecutedCorrectly() throws IOException { bulkIndex(SampleEntity.builder().id("id-one").message("message").build(), // SampleEntity.builder().id("id-two").message("test message").build(), // @@ -357,7 +354,7 @@ public class SimpleReactiveElasticsearchRepositoryTests { } @Test // DATAES-519 - public void derivedFinderMethodShouldBeExecutedCorrectlyWhenGivenPublisher() { + public void derivedFinderMethodShouldBeExecutedCorrectlyWhenGivenPublisher() throws IOException { bulkIndex(SampleEntity.builder().id("id-one").message("message").build(), // SampleEntity.builder().id("id-two").message("test message").build(), // @@ -370,7 +367,7 @@ public class SimpleReactiveElasticsearchRepositoryTests { } @Test // DATAES-519 - public void derivedFinderWithDerivedSortMethodShouldBeExecutedCorrectly() { + public void derivedFinderWithDerivedSortMethodShouldBeExecutedCorrectly() throws IOException { bulkIndex(SampleEntity.builder().id("id-one").message("test").rate(3).build(), // SampleEntity.builder().id("id-two").message("test test").rate(1).build(), // @@ -385,7 +382,7 @@ public class SimpleReactiveElasticsearchRepositoryTests { } @Test // DATAES-519 - public void derivedFinderMethodWithSortParameterShouldBeExecutedCorrectly() { + public void derivedFinderMethodWithSortParameterShouldBeExecutedCorrectly() throws IOException { bulkIndex(SampleEntity.builder().id("id-one").message("test").rate(3).build(), // SampleEntity.builder().id("id-two").message("test test").rate(1).build(), // @@ -400,7 +397,7 @@ public class SimpleReactiveElasticsearchRepositoryTests { } @Test // DATAES-519 - public void derivedFinderMethodWithPageableParameterShouldBeExecutedCorrectly() { + public void derivedFinderMethodWithPageableParameterShouldBeExecutedCorrectly() throws IOException { bulkIndex(SampleEntity.builder().id("id-one").message("test").rate(3).build(), // SampleEntity.builder().id("id-two").message("test test").rate(1).build(), // @@ -414,7 +411,7 @@ public class SimpleReactiveElasticsearchRepositoryTests { } @Test // DATAES-519 - public void derivedFinderMethodReturningMonoShouldBeExecutedCorrectly() { + public void derivedFinderMethodReturningMonoShouldBeExecutedCorrectly() throws IOException { bulkIndex(SampleEntity.builder().id("id-one").message("message").build(), // SampleEntity.builder().id("id-two").message("test message").build(), // @@ -427,7 +424,7 @@ public class SimpleReactiveElasticsearchRepositoryTests { } @Test // DATAES-519 - public void annotatedFinderMethodShouldBeExecutedCorrectly() { + public void annotatedFinderMethodShouldBeExecutedCorrectly() throws IOException { bulkIndex(SampleEntity.builder().id("id-one").message("message").build(), // SampleEntity.builder().id("id-two").message("test message").build(), // @@ -440,7 +437,7 @@ public class SimpleReactiveElasticsearchRepositoryTests { } @Test // DATAES-519 - public void derivedDeleteMethodShouldBeExecutedCorrectly() { + public void derivedDeleteMethodShouldBeExecutedCorrectly() throws IOException { bulkIndex(SampleEntity.builder().id("id-one").message("message").build(), // SampleEntity.builder().id("id-two").message("test message").build(), // @@ -456,15 +453,15 @@ public class SimpleReactiveElasticsearchRepositoryTests { assertThat(TestUtils.documentWithId("id-three").ofType(TYPE).existsIn(INDEX)).isTrue(); } - IndexRequest indexRequest(Map source, String index, String type) { + private IndexRequest indexRequest(Map source, String index) { - return new IndexRequest(index, type) // + return new IndexRequest(index) // .id(source.containsKey("id") ? source.get("id").toString() : UUID.randomUUID().toString()) // .source(source) // .create(true); } - IndexRequest indexRequestFrom(SampleEntity entity) { + private IndexRequest indexRequestFrom(SampleEntity entity) { Map target = new LinkedHashMap<>(); @@ -483,17 +480,17 @@ public class SimpleReactiveElasticsearchRepositoryTests { target.put("rate", entity.getRate()); target.put("available", entity.isAvailable()); - return indexRequest(target, INDEX, TYPE); + return indexRequest(target, INDEX); } - void bulkIndex(SampleEntity... entities) { + void bulkIndex(SampleEntity... entities) throws IOException { BulkRequest request = new BulkRequest(); Arrays.stream(entities).forEach(it -> request.add(indexRequestFrom(it))); try (RestHighLevelClient client = TestUtils.restHighLevelClient()) { client.bulk(request.setRefreshPolicy(RefreshPolicy.IMMEDIATE), RequestOptions.DEFAULT); - } catch (Exception e) {} + } } interface ReactiveSampleEntityRepository extends ReactiveCrudRepository { @@ -530,7 +527,7 @@ public class SimpleReactiveElasticsearchRepositoryTests { @NoArgsConstructor @AllArgsConstructor @Builder - @Document(indexName = INDEX, type = TYPE, shards = 1, replicas = 0, refreshInterval = "-1") + @Document(indexName = INDEX, replicas = 0, refreshInterval = "-1") static class SampleEntity { @Id private String id; diff --git a/src/test/java/org/springframework/data/elasticsearch/repository/support/simple/SimpleElasticsearchRepositoryTests.java b/src/test/java/org/springframework/data/elasticsearch/repository/support/simple/SimpleElasticsearchRepositoryTests.java index 506c56b87..080fa30c8 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repository/support/simple/SimpleElasticsearchRepositoryTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/repository/support/simple/SimpleElasticsearchRepositoryTests.java @@ -33,6 +33,7 @@ import java.util.List; import java.util.Optional; import org.elasticsearch.action.ActionRequestValidationException; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -47,6 +48,7 @@ import org.springframework.data.domain.Sort.Order; 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.IndexOperations; import org.springframework.data.elasticsearch.core.query.NativeSearchQuery; import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder; import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration; @@ -78,11 +80,18 @@ public class SimpleElasticsearchRepositoryTests { @Autowired private SampleElasticsearchRepository repository; - @Autowired private ElasticsearchOperations elasticsearchOperations; + @Autowired private ElasticsearchOperations operations; + private IndexOperations indexOperations; @BeforeEach public void before() { - IndexInitializer.init(elasticsearchOperations, SampleEntity.class); + indexOperations = operations.getIndexOperations(); + IndexInitializer.init(indexOperations, SampleEntity.class); + } + + @AfterEach + void after() { + indexOperations.deleteIndex(SampleEntity.class); } @Test @@ -698,7 +707,7 @@ public class SimpleElasticsearchRepositoryTests { @NoArgsConstructor @AllArgsConstructor @Builder - @Document(indexName = "test-index-sample-simple-repository", type = "test-type", shards = 1, replicas = 0, + @Document(indexName = "test-index-sample-simple-repository", replicas = 0, refreshInterval = "-1") static class SampleEntity { diff --git a/src/test/java/org/springframework/data/elasticsearch/utils/IndexInitializer.java b/src/test/java/org/springframework/data/elasticsearch/utils/IndexInitializer.java index 58a1b2d69..d0281942a 100644 --- a/src/test/java/org/springframework/data/elasticsearch/utils/IndexInitializer.java +++ b/src/test/java/org/springframework/data/elasticsearch/utils/IndexInitializer.java @@ -34,6 +34,7 @@ public class IndexInitializer { * @param clazz * @deprecated since 4.0, use {@link IndexInitializer#init(IndexOperations, Class)} */ + @Deprecated public static void init(ElasticsearchOperations operations, Class clazz) { operations.getIndexOperations().deleteIndex(clazz); diff --git a/src/test/resources/mappings/test-mappings.json b/src/test/resources/mappings/test-mappings.json index 74373cabb..fcb7b647c 100644 --- a/src/test/resources/mappings/test-mappings.json +++ b/src/test/resources/mappings/test-mappings.json @@ -1,10 +1,8 @@ { - "test-setting-type": { - "properties": { - "email": { - "type": "text", - "analyzer": "emailAnalyzer" - } - } + "properties": { + "email": { + "type": "text", + "analyzer": "emailAnalyzer" } + } } diff --git a/src/test/resources/synonyms/mappings.json b/src/test/resources/synonyms/mappings.json index 489d750c8..30cc91c68 100644 --- a/src/test/resources/synonyms/mappings.json +++ b/src/test/resources/synonyms/mappings.json @@ -1,10 +1,8 @@ { - "synonym-type": { - "properties": { - "text": { - "type": "text", - "analyzer": "synonym_analyzer" - } + "properties": { + "text": { + "type": "text", + "analyzer": "synonym_analyzer" } } -} \ No newline at end of file +}