From 98a8d1a5ac0dcb33ab917de1dfe62b2379f377a1 Mon Sep 17 00:00:00 2001 From: Peter-Josef Meisch Date: Tue, 16 Mar 2021 22:36:57 +0100 Subject: [PATCH] Polishing --- .../DefaultReactiveElasticsearchClient.java | 12 ++-- .../reactive/ReactiveElasticsearchClient.java | 6 +- .../client/util/RequestConverters.java | 58 +++++++++---------- .../core/query/NativeSearchQueryBuilder.java | 2 +- ...veElasticsearchClientIntegrationTests.java | 28 ++++----- 5 files changed, 50 insertions(+), 56 deletions(-) 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 8e7f6a08f..3c9446d61 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 @@ -22,7 +22,6 @@ import io.netty.handler.ssl.IdentityCipherSuiteFilter; import io.netty.handler.ssl.JdkSslContext; import io.netty.handler.timeout.ReadTimeoutHandler; import io.netty.handler.timeout.WriteTimeoutHandler; -import org.elasticsearch.action.get.MultiGetItemResponse; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import reactor.netty.http.client.HttpClient; @@ -64,6 +63,7 @@ import org.elasticsearch.action.delete.DeleteRequest; import org.elasticsearch.action.delete.DeleteResponse; import org.elasticsearch.action.get.GetRequest; import org.elasticsearch.action.get.GetResponse; +import org.elasticsearch.action.get.MultiGetItemResponse; import org.elasticsearch.action.get.MultiGetRequest; import org.elasticsearch.action.get.MultiGetResponse; import org.elasticsearch.action.index.IndexRequest; @@ -409,8 +409,7 @@ public class DefaultReactiveElasticsearchClient implements ReactiveElasticsearch @Override public Flux searchTemplate(HttpHeaders headers, SearchTemplateRequest searchTemplateRequest) { return sendRequest(searchTemplateRequest, requestCreator.searchTemplate(), SearchTemplateResponse.class, headers) - .map(r -> r.getResponse().getHits()) - .flatMap(Flux::fromIterable); + .map(response -> response.getResponse().getHits()).flatMap(Flux::fromIterable); } /* @@ -876,10 +875,9 @@ public class DefaultReactiveElasticsearchClient implements ReactiveElasticsearch String mediaType = response.headers().contentType().map(MediaType::toString).orElse(XContentType.JSON.mediaType()); return response.body(BodyExtractors.toMono(byte[].class)) // - .switchIfEmpty(Mono - .error(new ElasticsearchStatusException(String.format("%s request to %s returned error code %s and no body.", - request.getMethod(), request.getEndpoint(), statusCode), status)) - ) + .switchIfEmpty(Mono.error( + new ElasticsearchStatusException(String.format("%s request to %s returned error code %s and no body.", + request.getMethod(), request.getEndpoint(), statusCode), status))) .map(bytes -> new String(bytes, StandardCharsets.UTF_8)) // .flatMap(content -> contentOrError(content, mediaType, status)) .flatMap(unused -> Mono diff --git a/src/main/java/org/springframework/data/elasticsearch/client/reactive/ReactiveElasticsearchClient.java b/src/main/java/org/springframework/data/elasticsearch/client/reactive/ReactiveElasticsearchClient.java index 9e407c10f..c8f4ae9f2 100644 --- a/src/main/java/org/springframework/data/elasticsearch/client/reactive/ReactiveElasticsearchClient.java +++ b/src/main/java/org/springframework/data/elasticsearch/client/reactive/ReactiveElasticsearchClient.java @@ -391,7 +391,7 @@ public interface ReactiveElasticsearchClient { * * @param consumer must not be {@literal null}. * @see Search Template - * API on elastic.co + * API on elastic.co * @return the {@link Flux} emitting {@link SearchHit hits} one by one. */ default Flux searchTemplate(Consumer consumer) { @@ -405,7 +405,7 @@ public interface ReactiveElasticsearchClient { * * @param searchTemplateRequest must not be {@literal null}. * @see Search Template - * API on elastic.co + * API on elastic.co * @return the {@link Flux} emitting {@link SearchHit hits} one by one. */ default Flux searchTemplate(SearchTemplateRequest searchTemplateRequest) { @@ -418,7 +418,7 @@ public interface ReactiveElasticsearchClient { * @param headers Use {@link HttpHeaders} to provide eg. authentication data. Must not be {@literal null}. * @param searchTemplateRequest must not be {@literal null}. * @see Search Template - * API on elastic.co + * API on elastic.co * @return the {@link Flux} emitting {@link SearchHit hits} one by one. */ Flux searchTemplate(HttpHeaders headers, SearchTemplateRequest searchTemplateRequest); 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 dadbd4d79..ea2e5df32 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 @@ -416,7 +416,7 @@ public class RequestConverters { SearchRequest searchRequest = templateRequest.getRequest(); String endpoint = new EndpointBuilder().addCommaSeparatedPathParts(templateRequest.getRequest().indices()) - .addPathPart("_search").addPathPart("template").build(); + .addPathPart("_search").addPathPart("template").build(); Request request = new Request(HttpMethod.GET.name(), endpoint); Params params = new Params(request); @@ -751,21 +751,21 @@ public class RequestConverters { return request; } - public static Request indexExists(org.elasticsearch.client.indices.GetIndexRequest getIndexRequest) { - // this can be called with no indices as argument by transport client, not via REST though - if (getIndexRequest.indices() == null || getIndexRequest.indices().length == 0) { - throw new IllegalArgumentException("indices are mandatory"); - } - String endpoint = endpoint(getIndexRequest.indices(), ""); - Request request = new Request(HttpMethod.HEAD.name(), endpoint); + public static Request indexExists(org.elasticsearch.client.indices.GetIndexRequest getIndexRequest) { + // this can be called with no indices as argument by transport client, not via REST though + if (getIndexRequest.indices() == null || getIndexRequest.indices().length == 0) { + throw new IllegalArgumentException("indices are mandatory"); + } + String endpoint = endpoint(getIndexRequest.indices(), ""); + Request request = new Request(HttpMethod.HEAD.name(), endpoint); - Params params = new Params(request); - params.withLocal(getIndexRequest.local()); - params.withHuman(getIndexRequest.humanReadable()); - params.withIndicesOptions(getIndexRequest.indicesOptions()); - params.withIncludeDefaults(getIndexRequest.includeDefaults()); - return request; - } + Params params = new Params(request); + params.withLocal(getIndexRequest.local()); + params.withHuman(getIndexRequest.humanReadable()); + params.withIndicesOptions(getIndexRequest.indicesOptions()); + params.withIncludeDefaults(getIndexRequest.includeDefaults()); + return request; + } public static Request indexOpen(OpenIndexRequest openIndexRequest) { String endpoint = RequestConverters.endpoint(openIndexRequest.indices(), "_open"); @@ -804,7 +804,7 @@ public class RequestConverters { } public static Request indexCreate(org.elasticsearch.client.indices.CreateIndexRequest createIndexRequest) { - String endpoint = RequestConverters.endpoint(new String[]{createIndexRequest.index()}); + String endpoint = RequestConverters.endpoint(new String[] { createIndexRequest.index() }); Request request = new Request(HttpMethod.PUT.name(), endpoint); Params parameters = new Params(request); @@ -846,17 +846,17 @@ public class RequestConverters { return request; } - public static Request putMapping(org.elasticsearch.client.indices.PutMappingRequest putMappingRequest) { - Request request = new Request(HttpMethod.PUT.name(), - RequestConverters.endpoint(putMappingRequest.indices(), "_mapping")); + public static Request putMapping(org.elasticsearch.client.indices.PutMappingRequest putMappingRequest) { + Request request = new Request(HttpMethod.PUT.name(), + RequestConverters.endpoint(putMappingRequest.indices(), "_mapping")); - new RequestConverters.Params(request) // - .withTimeout(putMappingRequest.timeout()) // - .withMasterTimeout(putMappingRequest.masterNodeTimeout()) // - .withIncludeTypeName(false); - request.setEntity(RequestConverters.createEntity(putMappingRequest, RequestConverters.REQUEST_BODY_CONTENT_TYPE)); - return request; - } + new RequestConverters.Params(request) // + .withTimeout(putMappingRequest.timeout()) // + .withMasterTimeout(putMappingRequest.masterNodeTimeout()) // + .withIncludeTypeName(false); + request.setEntity(RequestConverters.createEntity(putMappingRequest, RequestConverters.REQUEST_BODY_CONTENT_TYPE)); + return request; + } public static Request flushIndex(FlushRequest flushRequest) { String[] indices = flushRequest.indices() == null ? Strings.EMPTY_ARRAY : flushRequest.indices(); @@ -883,10 +883,10 @@ public class RequestConverters { return request; } - public static Request getMapping(org.elasticsearch.client.indices.GetMappingsRequest getMappingsRequest) { - String[] indices = getMappingsRequest.indices() == null ? Strings.EMPTY_ARRAY : getMappingsRequest.indices(); + public static Request getMapping(org.elasticsearch.client.indices.GetMappingsRequest getMappingsRequest) { + String[] indices = getMappingsRequest.indices() == null ? Strings.EMPTY_ARRAY : getMappingsRequest.indices(); - Request request = new Request(HttpMethod.GET.name(), RequestConverters.endpoint(indices, "_mapping")); + Request request = new Request(HttpMethod.GET.name(), RequestConverters.endpoint(indices, "_mapping")); RequestConverters.Params parameters = new RequestConverters.Params(request); parameters.withMasterTimeout(getMappingsRequest.masterNodeTimeout()); diff --git a/src/main/java/org/springframework/data/elasticsearch/core/query/NativeSearchQueryBuilder.java b/src/main/java/org/springframework/data/elasticsearch/core/query/NativeSearchQueryBuilder.java index e9d6ef205..33abb43b1 100755 --- a/src/main/java/org/springframework/data/elasticsearch/core/query/NativeSearchQueryBuilder.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/query/NativeSearchQueryBuilder.java @@ -120,7 +120,7 @@ public class NativeSearchQueryBuilder { return this; } - public NativeSearchQueryBuilder withSearchTemplate(SearchTemplateRequestBuilder searchTemplateBuilder){ + public NativeSearchQueryBuilder withSearchTemplate(SearchTemplateRequestBuilder searchTemplateBuilder) { this.searchTemplateBuilder = searchTemplateBuilder; return this; } diff --git a/src/test/java/org/springframework/data/elasticsearch/client/reactive/ReactiveElasticsearchClientIntegrationTests.java b/src/test/java/org/springframework/data/elasticsearch/client/reactive/ReactiveElasticsearchClientIntegrationTests.java index 3e866f275..d4aafe4e6 100644 --- a/src/test/java/org/springframework/data/elasticsearch/client/reactive/ReactiveElasticsearchClientIntegrationTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/client/reactive/ReactiveElasticsearchClientIntegrationTests.java @@ -454,10 +454,7 @@ public class ReactiveElasticsearchClientIntegrationTests { params.put("firstname", "inline"); request.setScriptParams(params); - client.searchTemplate(request) - .as(StepVerifier::create) - .expectNextCount(1) - .verifyComplete(); + client.searchTemplate(request).as(StepVerifier::create).expectNextCount(1).verifyComplete(); } @Test // #1725 @@ -471,14 +468,13 @@ public class ReactiveElasticsearchClientIntegrationTests { testDoc.put("lastname", "template"); add(testDoc).to(INDEX_I); - client.execute(c -> c.post() - .uri(builder -> builder.path("_scripts/searchbyfirstname").build()) - .contentType(MediaType.APPLICATION_JSON) - .bodyValue( - "{\"script\":{\"lang\":\"mustache\",\"source\":{\"query\":{\"match\":{\"firstname\":\"{{firstname}}\"}}}}}") - .retrieve() - .bodyToMono(Void.class)) - .block(); + client.execute(c -> c.post().uri(builder -> builder.path("_scripts/searchbyfirstname").build()) + .contentType(MediaType.APPLICATION_JSON) + .bodyValue( + "{\"script\":{\"lang\":\"mustache\",\"source\":{\"query\":{\"match\":{\"firstname\":\"{{firstname}}\"}}}}}") + .retrieve().bodyToMono(Void.class)).block(); + + client.indices().refreshIndex(request -> request.indices(INDEX_I)).block(); SearchTemplateRequest request = new SearchTemplateRequest(new SearchRequest(INDEX_I)); request.setScriptType(ScriptType.STORED); @@ -487,10 +483,10 @@ public class ReactiveElasticsearchClientIntegrationTests { params.put("firstname", "stored"); request.setScriptParams(params); - client.searchTemplate(request) - .as(StepVerifier::create) - .expectNextCount(1) - .verifyComplete(); + client.searchTemplate(request) // + .as(StepVerifier::create) // + .expectNextCount(1) // + .verifyComplete(); // } @Test // DATAES-488