ReactiveElasticsearchClient should use the same request parameters as non reactive code.

Original Pull Request #1703
Closes #1658
This commit is contained in:
Farid Faoudi 2021-02-24 21:14:37 +01:00 committed by GitHub
parent 1c549b739b
commit 3bc01a4e5f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 471 additions and 57 deletions

View File

@ -48,14 +48,9 @@ import org.elasticsearch.ElasticsearchStatusException;
import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest; import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest;
import org.elasticsearch.action.admin.indices.alias.get.GetAliasesRequest; import org.elasticsearch.action.admin.indices.alias.get.GetAliasesRequest;
import org.elasticsearch.action.admin.indices.close.CloseIndexRequest; import org.elasticsearch.action.admin.indices.close.CloseIndexRequest;
import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;
import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest; import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
import org.elasticsearch.action.admin.indices.flush.FlushRequest; import org.elasticsearch.action.admin.indices.flush.FlushRequest;
import org.elasticsearch.action.admin.indices.flush.FlushResponse; import org.elasticsearch.action.admin.indices.flush.FlushResponse;
import org.elasticsearch.action.admin.indices.get.GetIndexRequest;
import org.elasticsearch.action.admin.indices.mapping.get.GetMappingsRequest;
import org.elasticsearch.action.admin.indices.mapping.get.GetMappingsResponse;
import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
import org.elasticsearch.action.admin.indices.open.OpenIndexRequest; import org.elasticsearch.action.admin.indices.open.OpenIndexRequest;
import org.elasticsearch.action.admin.indices.refresh.RefreshRequest; import org.elasticsearch.action.admin.indices.refresh.RefreshRequest;
import org.elasticsearch.action.admin.indices.refresh.RefreshResponse; import org.elasticsearch.action.admin.indices.refresh.RefreshResponse;
@ -84,13 +79,18 @@ import org.elasticsearch.action.update.UpdateRequest;
import org.elasticsearch.action.update.UpdateResponse; import org.elasticsearch.action.update.UpdateResponse;
import org.elasticsearch.client.GetAliasesResponse; import org.elasticsearch.client.GetAliasesResponse;
import org.elasticsearch.client.Request; import org.elasticsearch.client.Request;
import org.elasticsearch.client.indices.CreateIndexRequest;
import org.elasticsearch.client.indices.GetFieldMappingsRequest; import org.elasticsearch.client.indices.GetFieldMappingsRequest;
import org.elasticsearch.client.indices.GetFieldMappingsResponse; import org.elasticsearch.client.indices.GetFieldMappingsResponse;
import org.elasticsearch.client.indices.GetIndexRequest;
import org.elasticsearch.client.indices.GetIndexResponse; import org.elasticsearch.client.indices.GetIndexResponse;
import org.elasticsearch.client.indices.GetIndexTemplatesRequest; import org.elasticsearch.client.indices.GetIndexTemplatesRequest;
import org.elasticsearch.client.indices.GetIndexTemplatesResponse; import org.elasticsearch.client.indices.GetIndexTemplatesResponse;
import org.elasticsearch.client.indices.GetMappingsRequest;
import org.elasticsearch.client.indices.GetMappingsResponse;
import org.elasticsearch.client.indices.IndexTemplatesExistRequest; import org.elasticsearch.client.indices.IndexTemplatesExistRequest;
import org.elasticsearch.client.indices.PutIndexTemplateRequest; import org.elasticsearch.client.indices.PutIndexTemplateRequest;
import org.elasticsearch.client.indices.PutMappingRequest;
import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.common.xcontent.DeprecationHandler; import org.elasticsearch.common.xcontent.DeprecationHandler;
import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.common.xcontent.NamedXContentRegistry;
@ -646,13 +646,22 @@ public class DefaultReactiveElasticsearchClient implements ReactiveElasticsearch
// region indices operations // region indices operations
@Override @Override
public Mono<Boolean> createIndex(HttpHeaders headers, CreateIndexRequest createIndexRequest) { public Mono<Boolean> createIndex(HttpHeaders headers,
org.elasticsearch.action.admin.indices.create.CreateIndexRequest createIndexRequest) {
return sendRequest(createIndexRequest, requestCreator.indexCreate(), AcknowledgedResponse.class, headers) // return sendRequest(createIndexRequest, requestCreator.indexCreate(), AcknowledgedResponse.class, headers) //
.map(AcknowledgedResponse::isAcknowledged) // .map(AcknowledgedResponse::isAcknowledged) //
.next(); .next();
} }
@Override
public Mono<Boolean> createIndex(HttpHeaders headers, CreateIndexRequest createIndexRequest) {
return sendRequest(createIndexRequest, requestCreator.createIndexRequest(), AcknowledgedResponse.class, headers) //
.map(AcknowledgedResponse::isAcknowledged) //
.next();
}
@Override @Override
public Mono<Void> closeIndex(HttpHeaders headers, CloseIndexRequest closeIndexRequest) { public Mono<Void> closeIndex(HttpHeaders headers, CloseIndexRequest closeIndexRequest) {
@ -661,14 +670,21 @@ public class DefaultReactiveElasticsearchClient implements ReactiveElasticsearch
} }
@Override @Override
public Mono<Boolean> existsIndex(HttpHeaders headers, GetIndexRequest request) { public Mono<Boolean> existsIndex(HttpHeaders headers, org.elasticsearch.action.admin.indices.get.GetIndexRequest request) {
return sendRequest(request, requestCreator.indexExists(), RawActionResponse.class, headers) // return sendRequest(request, requestCreator.indexExists(), RawActionResponse.class, headers) //
.flatMap(response -> response.releaseBody().thenReturn(response.statusCode().is2xxSuccessful())) // .flatMap(response -> response.releaseBody().thenReturn(response.statusCode().is2xxSuccessful())) //
.next(); .next();
} }
@Override @Override
public Mono<Boolean> existsIndex(HttpHeaders headers, GetIndexRequest request) {
return sendRequest(request, requestCreator.indexExistsRequest(), RawActionResponse.class, headers) //
.flatMap(response -> response.releaseBody().thenReturn(response.statusCode().is2xxSuccessful())) //
.next();
}
@Override
public Mono<Boolean> deleteIndex(HttpHeaders headers, DeleteIndexRequest request) { public Mono<Boolean> deleteIndex(HttpHeaders headers, DeleteIndexRequest request) {
return sendRequest(request, requestCreator.indexDelete(), AcknowledgedResponse.class, headers) // return sendRequest(request, requestCreator.indexDelete(), AcknowledgedResponse.class, headers) //
@ -683,9 +699,17 @@ public class DefaultReactiveElasticsearchClient implements ReactiveElasticsearch
.then(); .then();
} }
@Override
public Mono<org.elasticsearch.action.admin.indices.mapping.get.GetMappingsResponse> getMapping(HttpHeaders headers,
org.elasticsearch.action.admin.indices.mapping.get.GetMappingsRequest getMappingsRequest) {
return sendRequest(getMappingsRequest, requestCreator.getMapping(),
org.elasticsearch.action.admin.indices.mapping.get.GetMappingsResponse.class, headers).next();
}
@Override @Override
public Mono<GetMappingsResponse> getMapping(HttpHeaders headers, GetMappingsRequest getMappingsRequest) { public Mono<GetMappingsResponse> getMapping(HttpHeaders headers, GetMappingsRequest getMappingsRequest) {
return sendRequest(getMappingsRequest, requestCreator.getMapping(), GetMappingsResponse.class, headers).next(); return sendRequest(getMappingsRequest, requestCreator.getMappingRequest(), GetMappingsResponse.class, headers) //
.next();
} }
@Override @Override
@ -701,13 +725,21 @@ public class DefaultReactiveElasticsearchClient implements ReactiveElasticsearch
} }
@Override @Override
public Mono<Boolean> putMapping(HttpHeaders headers, PutMappingRequest putMappingRequest) { public Mono<Boolean> putMapping(HttpHeaders headers,
org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest putMappingRequest) {
return sendRequest(putMappingRequest, requestCreator.putMapping(), AcknowledgedResponse.class, headers) // return sendRequest(putMappingRequest, requestCreator.putMapping(), AcknowledgedResponse.class, headers) //
.map(AcknowledgedResponse::isAcknowledged) // .map(AcknowledgedResponse::isAcknowledged) //
.next(); .next();
} }
@Override
public Mono<Boolean> putMapping(HttpHeaders headers, PutMappingRequest putMappingRequest) {
return sendRequest(putMappingRequest, requestCreator.putMappingRequest(), AcknowledgedResponse.class, headers) //
.map(AcknowledgedResponse::isAcknowledged) //
.next();
}
@Override @Override
public Mono<Void> openIndex(HttpHeaders headers, OpenIndexRequest request) { public Mono<Void> openIndex(HttpHeaders headers, OpenIndexRequest request) {
@ -760,8 +792,7 @@ public class DefaultReactiveElasticsearchClient implements ReactiveElasticsearch
} }
@Override @Override
public Mono<GetIndexResponse> getIndex(HttpHeaders headers, public Mono<GetIndexResponse> getIndex(HttpHeaders headers, GetIndexRequest getIndexRequest) {
org.elasticsearch.client.indices.GetIndexRequest getIndexRequest) {
return sendRequest(getIndexRequest, requestCreator.getIndex(), GetIndexResponse.class, headers).next(); return sendRequest(getIndexRequest, requestCreator.getIndex(), GetIndexResponse.class, headers).next();
} }

View File

@ -15,6 +15,11 @@
*/ */
package org.springframework.data.elasticsearch.client.reactive; package org.springframework.data.elasticsearch.client.reactive;
import org.elasticsearch.client.indices.CreateIndexRequest;
import org.elasticsearch.client.indices.GetIndexRequest;
import org.elasticsearch.client.indices.GetMappingsRequest;
import org.elasticsearch.client.indices.GetMappingsResponse;
import org.elasticsearch.client.indices.PutMappingRequest;
import reactor.core.publisher.Flux; import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
@ -25,13 +30,8 @@ import java.util.function.Consumer;
import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest; import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest;
import org.elasticsearch.action.admin.indices.alias.get.GetAliasesRequest; import org.elasticsearch.action.admin.indices.alias.get.GetAliasesRequest;
import org.elasticsearch.action.admin.indices.close.CloseIndexRequest; import org.elasticsearch.action.admin.indices.close.CloseIndexRequest;
import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;
import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest; import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
import org.elasticsearch.action.admin.indices.flush.FlushRequest; import org.elasticsearch.action.admin.indices.flush.FlushRequest;
import org.elasticsearch.action.admin.indices.get.GetIndexRequest;
import org.elasticsearch.action.admin.indices.mapping.get.GetMappingsRequest;
import org.elasticsearch.action.admin.indices.mapping.get.GetMappingsResponse;
import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
import org.elasticsearch.action.admin.indices.open.OpenIndexRequest; import org.elasticsearch.action.admin.indices.open.OpenIndexRequest;
import org.elasticsearch.action.admin.indices.refresh.RefreshRequest; import org.elasticsearch.action.admin.indices.refresh.RefreshRequest;
import org.elasticsearch.action.admin.indices.settings.get.GetSettingsRequest; import org.elasticsearch.action.admin.indices.settings.get.GetSettingsRequest;
@ -748,42 +748,74 @@ public interface ReactiveElasticsearchClient {
interface Indices { interface Indices {
/** /**
* Execute the given {@link GetIndexRequest} against the {@literal indices} API. * Execute the given {@link org.elasticsearch.action.admin.indices.get.GetIndexRequest} against the {@literal indices} API.
* *
* @param consumer never {@literal null}. * @param consumer never {@literal null}.
* @return the {@link Mono} emitting {@literal true} if the index exists, {@literal false} otherwise. * @return the {@link Mono} emitting {@literal true} if the index exists, {@literal false} otherwise.
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-exists.html"> Indices * @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-exists.html"> Indices
* Exists API on elastic.co</a> * Exists API on elastic.co</a>
* @deprecated since 4.2
*/ */
default Mono<Boolean> existsIndex(Consumer<GetIndexRequest> consumer) { @Deprecated
default Mono<Boolean> existsIndex(Consumer<org.elasticsearch.action.admin.indices.get.GetIndexRequest> consumer) {
GetIndexRequest request = new GetIndexRequest(); org.elasticsearch.action.admin.indices.get.GetIndexRequest request =
new org.elasticsearch.action.admin.indices.get.GetIndexRequest();
consumer.accept(request); consumer.accept(request);
return existsIndex(request); return existsIndex(request);
} }
/** /**
* Execute the given {@link GetIndexRequest} against the {@literal indices} API. * Execute the given {@link org.elasticsearch.action.admin.indices.get.GetIndexRequest} against the {@literal indices} API.
* *
* @param getIndexRequest must not be {@literal null}. * @param getIndexRequest must not be {@literal null}.
* @return the {@link Mono} emitting {@literal true} if the index exists, {@literal false} otherwise. * @return the {@link Mono} emitting {@literal true} if the index exists, {@literal false} otherwise.
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-exists.html"> Indices * @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-exists.html"> Indices
* Exists API on elastic.co</a> * Exists API on elastic.co</a>
* @deprecated since 4.2, use {@link #existsIndex(GetIndexRequest)}
*/ */
default Mono<Boolean> existsIndex(GetIndexRequest getIndexRequest) { @Deprecated
default Mono<Boolean> existsIndex(org.elasticsearch.action.admin.indices.get.GetIndexRequest getIndexRequest) {
return existsIndex(HttpHeaders.EMPTY, getIndexRequest); return existsIndex(HttpHeaders.EMPTY, getIndexRequest);
} }
/** /**
* Execute the given {@link GetIndexRequest} against the {@literal indices} API. * Execute the given {@link org.elasticsearch.action.admin.indices.get.GetIndexRequest} against the {@literal indices} API.
* *
* @param headers Use {@link HttpHeaders} to provide eg. authentication data. Must not be {@literal null}. * @param headers Use {@link HttpHeaders} to provide eg. authentication data. Must not be {@literal null}.
* @param getIndexRequest must not be {@literal null}. * @param getIndexRequest must not be {@literal null}.
* @return the {@link Mono} emitting {@literal true} if the index exists, {@literal false} otherwise. * @return the {@link Mono} emitting {@literal true} if the index exists, {@literal false} otherwise.
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-exists.html"> Indices * @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-exists.html"> Indices
* Exists API on elastic.co</a> * Exists API on elastic.co</a>
* @deprecated since 4.2, use {@link #existsIndex(HttpHeaders, GetIndexRequest)}
*/ */
Mono<Boolean> existsIndex(HttpHeaders headers, GetIndexRequest getIndexRequest); @Deprecated
Mono<Boolean> existsIndex(HttpHeaders headers, org.elasticsearch.action.admin.indices.get.GetIndexRequest getIndexRequest);
/**
* Execute the given {@link GetIndexRequest} against the {@literal indices} API.
*
* @param getIndexRequest must not be {@literal null}.
* @return the {@link Mono} emitting {@literal true} if the index exists, {@literal false} otherwise.
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-exists.html"> Indices
* Exists API on elastic.co</a>
* @since 4.2
*/
default Mono<Boolean> existsIndex(GetIndexRequest getIndexRequest) {
return existsIndex(HttpHeaders.EMPTY, getIndexRequest);
}
/**
* Execute the given {@link GetIndexRequest} against the {@literal indices} API.
*
* @param headers Use {@link HttpHeaders} to provide eg. authentication data. Must not be {@literal null}.
* @param getIndexRequest must not be {@literal null}.
* @return the {@link Mono} emitting {@literal true} if the index exists, {@literal false} otherwise.
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-exists.html"> Indices
* Exists API on elastic.co</a>
* @since 4.2
*/
Mono<Boolean> existsIndex(HttpHeaders headers, GetIndexRequest getIndexRequest);
/** /**
* Execute the given {@link DeleteIndexRequest} against the {@literal indices} API. * Execute the given {@link DeleteIndexRequest} against the {@literal indices} API.
@ -827,21 +859,53 @@ public interface ReactiveElasticsearchClient {
Mono<Boolean> deleteIndex(HttpHeaders headers, DeleteIndexRequest deleteIndexRequest); Mono<Boolean> deleteIndex(HttpHeaders headers, DeleteIndexRequest deleteIndexRequest);
/** /**
* Execute the given {@link CreateIndexRequest} against the {@literal indices} API. * Execute the given {@link org.elasticsearch.action.admin.indices.create.CreateIndexRequest} against the {@literal indices} API.
* *
* @param consumer never {@literal null}. * @param consumer never {@literal null}.
* @return a {@link Mono} signalling successful operation completion or an {@link Mono#error(Throwable) error} if * @return a {@link Mono} signalling successful operation completion or an {@link Mono#error(Throwable) error} if
* eg. the index already exist. * eg. the index already exist.
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html"> Indices * @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html"> Indices
* Create API on elastic.co</a> * Create API on elastic.co</a>
* @deprecated since 4.2
*/ */
default Mono<Boolean> createIndex(Consumer<CreateIndexRequest> consumer) { @Deprecated
default Mono<Boolean> createIndex(Consumer<org.elasticsearch.action.admin.indices.create.CreateIndexRequest> consumer) {
CreateIndexRequest request = new CreateIndexRequest(); org.elasticsearch.action.admin.indices.create.CreateIndexRequest request =
new org.elasticsearch.action.admin.indices.create.CreateIndexRequest();
consumer.accept(request); consumer.accept(request);
return createIndex(request); return createIndex(request);
} }
/**
* Execute the given {@link org.elasticsearch.action.admin.indices.create.CreateIndexRequest} against the {@literal indices} API.
*
* @param createIndexRequest must not be {@literal null}.
* @return a {@link Mono} signalling successful operation completion or an {@link Mono#error(Throwable) error} if
* eg. the index already exist.
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html"> Indices
* Create API on elastic.co</a>
* @deprecated since 4.2, use {@link #createIndex(CreateIndexRequest)}
*/
@Deprecated
default Mono<Boolean> createIndex(org.elasticsearch.action.admin.indices.create.CreateIndexRequest createIndexRequest) {
return createIndex(HttpHeaders.EMPTY, createIndexRequest);
}
/**
* Execute the given {@link org.elasticsearch.action.admin.indices.create.CreateIndexRequest} against the {@literal indices} API.
*
* @param headers Use {@link HttpHeaders} to provide eg. authentication data. Must not be {@literal null}.
* @param createIndexRequest must not be {@literal null}.
* @return a {@link Mono} signalling successful operation completion or an {@link Mono#error(Throwable) error} if
* eg. the index already exist.
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html"> Indices
* Create API on elastic.co</a>
* @deprecated since 4.2, use {@link #createIndex(HttpHeaders, CreateIndexRequest)}
*/
@Deprecated
Mono<Boolean> createIndex(HttpHeaders headers, org.elasticsearch.action.admin.indices.create.CreateIndexRequest createIndexRequest);
/** /**
* Execute the given {@link CreateIndexRequest} against the {@literal indices} API. * Execute the given {@link CreateIndexRequest} against the {@literal indices} API.
* *
@ -850,6 +914,7 @@ public interface ReactiveElasticsearchClient {
* eg. the index already exist. * eg. the index already exist.
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html"> Indices * @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html"> Indices
* Create API on elastic.co</a> * Create API on elastic.co</a>
* @since 4.2
*/ */
default Mono<Boolean> createIndex(CreateIndexRequest createIndexRequest) { default Mono<Boolean> createIndex(CreateIndexRequest createIndexRequest) {
return createIndex(HttpHeaders.EMPTY, createIndexRequest); return createIndex(HttpHeaders.EMPTY, createIndexRequest);
@ -864,6 +929,7 @@ public interface ReactiveElasticsearchClient {
* eg. the index already exist. * eg. the index already exist.
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html"> Indices * @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html"> Indices
* Create API on elastic.co</a> * Create API on elastic.co</a>
* @since 4.2
*/ */
Mono<Boolean> createIndex(HttpHeaders headers, CreateIndexRequest createIndexRequest); Mono<Boolean> createIndex(HttpHeaders headers, CreateIndexRequest createIndexRequest);
@ -991,7 +1057,7 @@ public interface ReactiveElasticsearchClient {
Mono<Void> refreshIndex(HttpHeaders headers, RefreshRequest refreshRequest); Mono<Void> refreshIndex(HttpHeaders headers, RefreshRequest refreshRequest);
/** /**
* Execute the given {@link PutMappingRequest} against the {@literal indices} API. * Execute the given {@link org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest} against the {@literal indices} API.
* *
* @param consumer never {@literal null}. * @param consumer never {@literal null}.
* @return a {@link Mono} signalling operation completion or an {@link Mono#error(Throwable) error} if eg. the index * @return a {@link Mono} signalling operation completion or an {@link Mono#error(Throwable) error} if eg. the index
@ -1001,12 +1067,12 @@ public interface ReactiveElasticsearchClient {
* @deprecated since 4.1, use {@link #putMapping(Consumer)} * @deprecated since 4.1, use {@link #putMapping(Consumer)}
*/ */
@Deprecated @Deprecated
default Mono<Boolean> updateMapping(Consumer<PutMappingRequest> consumer) { default Mono<Boolean> updateMapping(Consumer<org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest> consumer) {
return putMapping(consumer); return putMapping(consumer);
} }
/** /**
* Execute the given {@link PutMappingRequest} against the {@literal indices} API. * Execute the given {@link org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest} against the {@literal indices} API.
* *
* @param putMappingRequest must not be {@literal null}. * @param putMappingRequest must not be {@literal null}.
* @return a {@link Mono} signalling operation completion or an {@link Mono#error(Throwable) error} if eg. the index * @return a {@link Mono} signalling operation completion or an {@link Mono#error(Throwable) error} if eg. the index
@ -1016,12 +1082,12 @@ public interface ReactiveElasticsearchClient {
* @deprecated since 4.1, use {@link #putMapping(PutMappingRequest)} * @deprecated since 4.1, use {@link #putMapping(PutMappingRequest)}
*/ */
@Deprecated @Deprecated
default Mono<Boolean> updateMapping(PutMappingRequest putMappingRequest) { default Mono<Boolean> updateMapping(org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest putMappingRequest) {
return putMapping(putMappingRequest); return putMapping(putMappingRequest);
} }
/** /**
* Execute the given {@link PutMappingRequest} against the {@literal indices} API. * Execute the given {@link org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest} against the {@literal indices} API.
* *
* @param headers Use {@link HttpHeaders} to provide eg. authentication data. Must not be {@literal null}. * @param headers Use {@link HttpHeaders} to provide eg. authentication data. Must not be {@literal null}.
* @param putMappingRequest must not be {@literal null}. * @param putMappingRequest must not be {@literal null}.
@ -1032,26 +1098,58 @@ public interface ReactiveElasticsearchClient {
* @deprecated since 4.1, use {@link #putMapping(HttpHeaders, PutMappingRequest)} * @deprecated since 4.1, use {@link #putMapping(HttpHeaders, PutMappingRequest)}
*/ */
@Deprecated @Deprecated
default Mono<Boolean> updateMapping(HttpHeaders headers, PutMappingRequest putMappingRequest) { default Mono<Boolean> updateMapping(HttpHeaders headers, org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest putMappingRequest) {
return putMapping(headers, putMappingRequest); return putMapping(headers, putMappingRequest);
} }
/** /**
* Execute the given {@link PutMappingRequest} against the {@literal indices} API. * Execute the given {@link org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest} against the {@literal indices} API.
* *
* @param consumer never {@literal null}. * @param consumer never {@literal null}.
* @return a {@link Mono} signalling operation completion or an {@link Mono#error(Throwable) error} if eg. the index * @return a {@link Mono} signalling operation completion or an {@link Mono#error(Throwable) error} if eg. the index
* does not exist. * does not exist.
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html"> Indices * @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html"> Indices
* Put Mapping API on elastic.co</a> * Put Mapping API on elastic.co</a>
* @deprecated since 4.2
*/ */
default Mono<Boolean> putMapping(Consumer<PutMappingRequest> consumer) { @Deprecated
default Mono<Boolean> putMapping(Consumer<org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest> consumer) {
PutMappingRequest request = new PutMappingRequest(); org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest request =
new org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest();
consumer.accept(request); consumer.accept(request);
return putMapping(request); return putMapping(request);
} }
/**
* Execute the given {@link org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest} against the {@literal indices} API.
*
* @param putMappingRequest must not be {@literal null}.
* @return a {@link Mono} signalling operation completion or an {@link Mono#error(Throwable) error} if eg. the index
* does not exist.
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html"> Indices
* Put Mapping API on elastic.co</a>
* @deprecated since 4.2, use {@link #putMapping(PutMappingRequest)}
*/
@Deprecated
default Mono<Boolean> putMapping(org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest putMappingRequest) {
return putMapping(HttpHeaders.EMPTY, putMappingRequest);
}
/**
* Execute the given {@link org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest} against the {@literal indices} API.
*
* @param headers Use {@link HttpHeaders} to provide eg. authentication data. Must not be {@literal null}.
* @param putMappingRequest must not be {@literal null}.
* @return a {@link Mono} signalling operation completion or an {@link Mono#error(Throwable) error} if eg. the index
* does not exist.
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html"> Indices
* Put Mapping API on elastic.co</a>
* @deprecated since 4.2, use {@link #putMapping(HttpHeaders, PutMappingRequest)}
*/
@Deprecated
Mono<Boolean> putMapping(HttpHeaders headers, org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest putMappingRequest);
/** /**
* Execute the given {@link PutMappingRequest} against the {@literal indices} API. * Execute the given {@link PutMappingRequest} against the {@literal indices} API.
* *
@ -1060,6 +1158,7 @@ public interface ReactiveElasticsearchClient {
* does not exist. * does not exist.
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html"> Indices * @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html"> Indices
* Put Mapping API on elastic.co</a> * Put Mapping API on elastic.co</a>
* @since 4.2
*/ */
default Mono<Boolean> putMapping(PutMappingRequest putMappingRequest) { default Mono<Boolean> putMapping(PutMappingRequest putMappingRequest) {
return putMapping(HttpHeaders.EMPTY, putMappingRequest); return putMapping(HttpHeaders.EMPTY, putMappingRequest);
@ -1074,6 +1173,7 @@ public interface ReactiveElasticsearchClient {
* does not exist. * does not exist.
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html"> Indices * @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html"> Indices
* Put Mapping API on elastic.co</a> * Put Mapping API on elastic.co</a>
* @since 4.2
*/ */
Mono<Boolean> putMapping(HttpHeaders headers, PutMappingRequest putMappingRequest); Mono<Boolean> putMapping(HttpHeaders headers, PutMappingRequest putMappingRequest);
@ -1163,7 +1263,7 @@ public interface ReactiveElasticsearchClient {
Mono<GetSettingsResponse> getSettings(HttpHeaders headers, GetSettingsRequest getSettingsRequest); Mono<GetSettingsResponse> getSettings(HttpHeaders headers, GetSettingsRequest getSettingsRequest);
/** /**
* Execute the given {@link GetMappingsRequest} against the {@literal indices} API. * Execute the given {@link org.elasticsearch.action.admin.indices.mapping.get.GetMappingsRequest} against the {@literal indices} API.
* *
* @param consumer never {@literal null}. * @param consumer never {@literal null}.
* @return a {@link Mono} signalling operation completion or an {@link Mono#error(Throwable) error} if eg. the index * @return a {@link Mono} signalling operation completion or an {@link Mono#error(Throwable) error} if eg. the index
@ -1171,14 +1271,51 @@ public interface ReactiveElasticsearchClient {
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html"> Indices * @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html"> Indices
* Flush API on elastic.co</a> * Flush API on elastic.co</a>
* @since 4.1 * @since 4.1
* @deprecated since 4.2
*/ */
default Mono<GetMappingsResponse> getMapping(Consumer<GetMappingsRequest> consumer) { @Deprecated
default Mono<org.elasticsearch.action.admin.indices.mapping.get.GetMappingsResponse> getMapping(
Consumer<org.elasticsearch.action.admin.indices.mapping.get.GetMappingsRequest> consumer) {
GetMappingsRequest request = new GetMappingsRequest(); org.elasticsearch.action.admin.indices.mapping.get.GetMappingsRequest request =
new org.elasticsearch.action.admin.indices.mapping.get.GetMappingsRequest();
consumer.accept(request); consumer.accept(request);
return getMapping(request); return getMapping(request);
} }
/**
* Execute the given {@link org.elasticsearch.action.admin.indices.mapping.get.GetMappingsRequest} against the {@literal indices} API.
*
* @param getMappingsRequest must not be {@literal null}.
* @return a {@link Mono} signalling operation completion or an {@link Mono#error(Throwable) error} if eg. the index
* does not exist.
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html"> Indices
* Flush API on elastic.co</a>
* @since 4.1
* @deprecated since 4.2, use {@link #getMapping(GetMappingsRequest)}
*/
@Deprecated
default Mono<org.elasticsearch.action.admin.indices.mapping.get.GetMappingsResponse> getMapping(
org.elasticsearch.action.admin.indices.mapping.get.GetMappingsRequest getMappingsRequest) {
return getMapping(HttpHeaders.EMPTY, getMappingsRequest);
}
/**
* Execute the given {@link org.elasticsearch.action.admin.indices.mapping.get.GetMappingsRequest} against the {@literal indices} API.
*
* @param headers Use {@link HttpHeaders} to provide eg. authentication data. Must not be {@literal null}.
* @param getMappingsRequest must not be {@literal null}.
* @return a {@link Mono} signalling operation completion or an {@link Mono#error(Throwable) error} if eg. the index
* does not exist.
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html"> Indices
* Flush API on elastic.co</a>
* @since 4.1
* @deprecated since 4.2, use {@link #getMapping(HttpHeaders, GetMappingsRequest)}
*/
@Deprecated
Mono<org.elasticsearch.action.admin.indices.mapping.get.GetMappingsResponse> getMapping(HttpHeaders headers,
org.elasticsearch.action.admin.indices.mapping.get.GetMappingsRequest getMappingsRequest);
/** /**
* Execute the given {@link GetMappingsRequest} against the {@literal indices} API. * Execute the given {@link GetMappingsRequest} against the {@literal indices} API.
* *
@ -1186,8 +1323,8 @@ public interface ReactiveElasticsearchClient {
* @return a {@link Mono} signalling operation completion or an {@link Mono#error(Throwable) error} if eg. the index * @return a {@link Mono} signalling operation completion or an {@link Mono#error(Throwable) error} if eg. the index
* does not exist. * does not exist.
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html"> Indices * @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html"> Indices
* Flush API on elastic.co</a> * Get mapping API on elastic.co</a>
* @since 4.1 * @since 4.2
*/ */
default Mono<GetMappingsResponse> getMapping(GetMappingsRequest getMappingsRequest) { default Mono<GetMappingsResponse> getMapping(GetMappingsRequest getMappingsRequest) {
return getMapping(HttpHeaders.EMPTY, getMappingsRequest); return getMapping(HttpHeaders.EMPTY, getMappingsRequest);
@ -1201,8 +1338,8 @@ public interface ReactiveElasticsearchClient {
* @return a {@link Mono} signalling operation completion or an {@link Mono#error(Throwable) error} if eg. the index * @return a {@link Mono} signalling operation completion or an {@link Mono#error(Throwable) error} if eg. the index
* does not exist. * does not exist.
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html"> Indices * @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html"> Indices
* Flush API on elastic.co</a> * Get mapping API on elastic.co</a>
* @since 4.1 * @since 4.2
*/ */
Mono<GetMappingsResponse> getMapping(HttpHeaders headers, GetMappingsRequest getMappingsRequest); Mono<GetMappingsResponse> getMapping(HttpHeaders headers, GetMappingsRequest getMappingsRequest);
@ -1465,8 +1602,8 @@ public interface ReactiveElasticsearchClient {
* @return the {@link Mono} emitting the response * @return the {@link Mono} emitting the response
* @since 4.2 * @since 4.2
*/ */
default Mono<GetIndexResponse> getIndex(Consumer<org.elasticsearch.client.indices.GetIndexRequest> consumer) { default Mono<GetIndexResponse> getIndex(Consumer<GetIndexRequest> consumer) {
org.elasticsearch.client.indices.GetIndexRequest getIndexRequest = new org.elasticsearch.client.indices.GetIndexRequest(); GetIndexRequest getIndexRequest = new GetIndexRequest();
consumer.accept(getIndexRequest); consumer.accept(getIndexRequest);
return getIndex(getIndexRequest); return getIndex(getIndexRequest);
} }
@ -1478,7 +1615,7 @@ public interface ReactiveElasticsearchClient {
* @return the {@link Mono} emitting the response * @return the {@link Mono} emitting the response
* @since 4.2 * @since 4.2
*/ */
default Mono<GetIndexResponse> getIndex(org.elasticsearch.client.indices.GetIndexRequest getIndexRequest) { default Mono<GetIndexResponse> getIndex(GetIndexRequest getIndexRequest) {
return getIndex(HttpHeaders.EMPTY, getIndexRequest); return getIndex(HttpHeaders.EMPTY, getIndexRequest);
} }
@ -1490,7 +1627,6 @@ public interface ReactiveElasticsearchClient {
* @return the {@link Mono} emitting the response * @return the {@link Mono} emitting the response
* @since 4.2 * @since 4.2
*/ */
Mono<GetIndexResponse> getIndex(HttpHeaders headers, Mono<GetIndexResponse> getIndex(HttpHeaders headers, GetIndexRequest getIndexRequest);
org.elasticsearch.client.indices.GetIndexRequest getIndexRequest);
} }
} }

View File

@ -6,12 +6,8 @@ import java.util.function.Function;
import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest; import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest;
import org.elasticsearch.action.admin.indices.alias.get.GetAliasesRequest; import org.elasticsearch.action.admin.indices.alias.get.GetAliasesRequest;
import org.elasticsearch.action.admin.indices.close.CloseIndexRequest; import org.elasticsearch.action.admin.indices.close.CloseIndexRequest;
import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;
import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest; import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
import org.elasticsearch.action.admin.indices.flush.FlushRequest; import org.elasticsearch.action.admin.indices.flush.FlushRequest;
import org.elasticsearch.action.admin.indices.get.GetIndexRequest;
import org.elasticsearch.action.admin.indices.mapping.get.GetMappingsRequest;
import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
import org.elasticsearch.action.admin.indices.open.OpenIndexRequest; import org.elasticsearch.action.admin.indices.open.OpenIndexRequest;
import org.elasticsearch.action.admin.indices.refresh.RefreshRequest; import org.elasticsearch.action.admin.indices.refresh.RefreshRequest;
import org.elasticsearch.action.admin.indices.settings.get.GetSettingsRequest; import org.elasticsearch.action.admin.indices.settings.get.GetSettingsRequest;
@ -28,10 +24,14 @@ import org.elasticsearch.action.search.SearchScrollRequest;
import org.elasticsearch.action.update.UpdateRequest; import org.elasticsearch.action.update.UpdateRequest;
import org.elasticsearch.client.Request; import org.elasticsearch.client.Request;
import org.elasticsearch.client.core.CountRequest; import org.elasticsearch.client.core.CountRequest;
import org.elasticsearch.client.indices.CreateIndexRequest;
import org.elasticsearch.client.indices.GetFieldMappingsRequest; import org.elasticsearch.client.indices.GetFieldMappingsRequest;
import org.elasticsearch.client.indices.GetIndexRequest;
import org.elasticsearch.client.indices.GetIndexTemplatesRequest; import org.elasticsearch.client.indices.GetIndexTemplatesRequest;
import org.elasticsearch.client.indices.GetMappingsRequest;
import org.elasticsearch.client.indices.IndexTemplatesExistRequest; import org.elasticsearch.client.indices.IndexTemplatesExistRequest;
import org.elasticsearch.client.indices.PutIndexTemplateRequest; import org.elasticsearch.client.indices.PutIndexTemplateRequest;
import org.elasticsearch.client.indices.PutMappingRequest;
import org.elasticsearch.index.reindex.DeleteByQueryRequest; import org.elasticsearch.index.reindex.DeleteByQueryRequest;
import org.elasticsearch.index.reindex.UpdateByQueryRequest; import org.elasticsearch.index.reindex.UpdateByQueryRequest;
import org.springframework.data.elasticsearch.UncategorizedElasticsearchException; import org.springframework.data.elasticsearch.UncategorizedElasticsearchException;
@ -114,15 +114,37 @@ public interface RequestCreator {
// --> INDICES // --> INDICES
default Function<GetIndexRequest, Request> indexExists() { /**
* @deprecated since 4.2
*/
@Deprecated
default Function<org.elasticsearch.action.admin.indices.get.GetIndexRequest, Request> indexExists() {
return RequestConverters::indexExists; return RequestConverters::indexExists;
} }
/**
* @since 4.2
*/
default Function<GetIndexRequest, Request> indexExistsRequest() {
return RequestConverters::indexExists;
}
default Function<DeleteIndexRequest, Request> indexDelete() { default Function<DeleteIndexRequest, Request> indexDelete() {
return RequestConverters::indexDelete; return RequestConverters::indexDelete;
} }
default Function<CreateIndexRequest, Request> indexCreate() { /**
* @deprecated since 4.2
*/
@Deprecated
default Function<org.elasticsearch.action.admin.indices.create.CreateIndexRequest, Request> indexCreate() {
return RequestConverters::indexCreate;
}
/**
* @since 4.2
*/
default Function<CreateIndexRequest, Request> createIndexRequest() {
return RequestConverters::indexCreate; return RequestConverters::indexCreate;
} }
@ -138,10 +160,21 @@ public interface RequestCreator {
return RequestConverters::indexRefresh; return RequestConverters::indexRefresh;
} }
default Function<PutMappingRequest, Request> putMapping() { /**
* @deprecated since 4.2
*/
@Deprecated
default Function<org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest, Request> putMapping() {
return RequestConverters::putMapping; return RequestConverters::putMapping;
} }
/**
* @since 4.2
*/
default Function<PutMappingRequest, Request> putMappingRequest() {
return RequestConverters::putMapping;
}
default Function<FlushRequest, Request> flushIndex() { default Function<FlushRequest, Request> flushIndex() {
return RequestConverters::flushIndex; return RequestConverters::flushIndex;
} }
@ -159,11 +192,20 @@ public interface RequestCreator {
/** /**
* @since 4.1 * @since 4.1
* @deprecated since 4.2
*/ */
default Function<GetMappingsRequest, Request> getMapping() { @Deprecated
default Function<org.elasticsearch.action.admin.indices.mapping.get.GetMappingsRequest, Request> getMapping() {
return RequestConverters::getMapping; return RequestConverters::getMapping;
} }
/**
* @since 4.2
*/
default Function<GetMappingsRequest, Request> getMappingRequest() {
return RequestConverters::getMapping;
}
/** /**
* @since 4.1 * @since 4.1
*/ */
@ -216,7 +258,7 @@ public interface RequestCreator {
/** /**
* @since 4.2 * @since 4.2
*/ */
default Function<org.elasticsearch.client.indices.GetIndexRequest, Request> getIndex() { default Function<GetIndexRequest, Request> getIndex() {
return RequestConverters::getIndex; return RequestConverters::getIndex;
} }
} }

View File

@ -735,6 +735,22 @@ public class RequestConverters {
return request; 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);
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) { public static Request indexOpen(OpenIndexRequest openIndexRequest) {
String endpoint = RequestConverters.endpoint(openIndexRequest.indices(), "_open"); String endpoint = RequestConverters.endpoint(openIndexRequest.indices(), "_open");
Request request = new Request(HttpMethod.POST.name(), endpoint); Request request = new Request(HttpMethod.POST.name(), endpoint);
@ -771,6 +787,19 @@ public class RequestConverters {
return request; return request;
} }
public static Request indexCreate(org.elasticsearch.client.indices.CreateIndexRequest createIndexRequest) {
String endpoint = RequestConverters.endpoint(new String[]{createIndexRequest.index()});
Request request = new Request(HttpMethod.PUT.name(), endpoint);
Params parameters = new Params(request);
parameters.withTimeout(createIndexRequest.timeout());
parameters.withMasterTimeout(createIndexRequest.masterNodeTimeout());
parameters.withWaitForActiveShards(createIndexRequest.waitForActiveShards(), ActiveShardCount.DEFAULT);
request.setEntity(createEntity(createIndexRequest, RequestConverters.REQUEST_BODY_CONTENT_TYPE));
return request;
}
public static Request indexRefresh(RefreshRequest refreshRequest) { public static Request indexRefresh(RefreshRequest refreshRequest) {
String[] indices = refreshRequest.indices() == null ? Strings.EMPTY_ARRAY : refreshRequest.indices(); String[] indices = refreshRequest.indices() == null ? Strings.EMPTY_ARRAY : refreshRequest.indices();
@ -800,6 +829,18 @@ public class RequestConverters {
return request; return request;
} }
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;
}
public static Request flushIndex(FlushRequest flushRequest) { public static Request flushIndex(FlushRequest flushRequest) {
String[] indices = flushRequest.indices() == null ? Strings.EMPTY_ARRAY : flushRequest.indices(); String[] indices = flushRequest.indices() == null ? Strings.EMPTY_ARRAY : flushRequest.indices();
Request request = new Request(HttpMethod.POST.name(), RequestConverters.endpoint(indices, "_flush")); Request request = new Request(HttpMethod.POST.name(), RequestConverters.endpoint(indices, "_flush"));
@ -825,6 +866,19 @@ public class RequestConverters {
return request; return request;
} }
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"));
RequestConverters.Params parameters = new RequestConverters.Params(request);
parameters.withMasterTimeout(getMappingsRequest.masterNodeTimeout());
parameters.withIndicesOptions(getMappingsRequest.indicesOptions());
parameters.withLocal(getMappingsRequest.local());
parameters.withIncludeTypeName(false);
return request;
}
public static Request getSettings(GetSettingsRequest getSettingsRequest) { public static Request getSettings(GetSettingsRequest getSettingsRequest) {
String[] indices = getSettingsRequest.indices() == null ? Strings.EMPTY_ARRAY : getSettingsRequest.indices(); String[] indices = getSettingsRequest.indices() == null ? Strings.EMPTY_ARRAY : getSettingsRequest.indices();
String[] names = getSettingsRequest.names() == null ? Strings.EMPTY_ARRAY : getSettingsRequest.names(); String[] names = getSettingsRequest.names() == null ? Strings.EMPTY_ARRAY : getSettingsRequest.names();

View File

@ -18,6 +18,10 @@ package org.springframework.data.elasticsearch.client.reactive;
import static org.assertj.core.api.Assertions.*; import static org.assertj.core.api.Assertions.*;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import org.elasticsearch.client.indices.CreateIndexRequest;
import org.elasticsearch.client.indices.GetIndexRequest;
import org.elasticsearch.client.indices.GetMappingsRequest;
import org.elasticsearch.common.xcontent.XContentType;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
import reactor.test.StepVerifier; import reactor.test.StepVerifier;
@ -583,6 +587,28 @@ public class ReactiveElasticsearchClientIntegrationTests {
.verifyComplete(); .verifyComplete();
} }
@Test // #1658
public void indexExistsShouldReturnTrueIfExists() {
operations.indexOps(IndexCoordinates.of(INDEX_I)).create().block();
client.indices().existsIndex(new GetIndexRequest(INDEX_I)) //
.as(StepVerifier::create) //
.expectNext(true) //
.verifyComplete();
}
@Test // #1658
public void indexExistsShouldReturnFalseIfNotExists() {
operations.indexOps(IndexCoordinates.of(INDEX_I)).create().block();
client.indices().existsIndex(new GetIndexRequest(INDEX_II)) //
.as(StepVerifier::create) //
.expectNext(false) //
.verifyComplete();
}
@Test // DATAES-569, DATAES-678 @Test // DATAES-569, DATAES-678
public void createIndex() { public void createIndex() {
@ -607,6 +633,55 @@ public class ReactiveElasticsearchClientIntegrationTests {
.verifyError(ElasticsearchStatusException.class); .verifyError(ElasticsearchStatusException.class);
} }
@Test // #1658
public void createIndex_() {
client.indices().createIndex(new CreateIndexRequest(INDEX_I))
.as(StepVerifier::create)
.expectNext(true)
.verifyComplete();
operations.indexOps(IndexCoordinates.of(INDEX_I)).exists() //
.as(StepVerifier::create) //
.expectNext(true) //
.verifyComplete();
}
@Test // #1658
public void createExistingIndexErrors_() {
operations.indexOps(IndexCoordinates.of(INDEX_I)).create().block();
client.indices().createIndex(new CreateIndexRequest(INDEX_I)) //
.as(StepVerifier::create) //
.verifyError(ElasticsearchStatusException.class);
}
@Test // #1658
public void getIndex() {
operations.indexOps(IndexCoordinates.of(INDEX_I)).create().block();
client.indices().getIndex(new GetIndexRequest(INDEX_I))
.as(StepVerifier::create)
.consumeNextWith(it -> {
assertThat(it.getIndices().length).isOne();
assertThat(it.getIndices()[0]).isEqualTo(INDEX_I);
})
.verifyComplete();
}
@Test // #1658
public void getIndexError() {
operations.indexOps(IndexCoordinates.of(INDEX_I)).create().block();
client.indices().getIndex(new GetIndexRequest(INDEX_II))
.as(StepVerifier::create)
.verifyError(ElasticsearchStatusException.class);
}
@Test // DATAES-569, DATAES-678 @Test // DATAES-569, DATAES-678
public void deleteExistingIndex() { public void deleteExistingIndex() {
@ -686,6 +761,82 @@ public class ReactiveElasticsearchClientIntegrationTests {
.verifyError(ElasticsearchStatusException.class); .verifyError(ElasticsearchStatusException.class);
} }
@Test // #1640
void putMapping() {
operations.indexOps(IndexCoordinates.of(INDEX_I)).create().block();
Map<String, Object> jsonMap = Collections.singletonMap("properties",
Collections.singletonMap("message", Collections.singletonMap("type", "text")));
org.elasticsearch.client.indices.PutMappingRequest putMappingRequest =
new org.elasticsearch.client.indices.PutMappingRequest(INDEX_I).source(jsonMap);
client.indices().putMapping(putMappingRequest) //
.as(StepVerifier::create) //
.expectNext(true) //
.verifyComplete();
}
@Test // #1640
void putMappingError() {
operations.indexOps(IndexCoordinates.of(INDEX_I)).create().block();
Map<String, Object> jsonMap = Collections.singletonMap("properties",
Collections.singletonMap("message", Collections.singletonMap("type", "text")));
org.elasticsearch.client.indices.PutMappingRequest putMappingRequest =
new org.elasticsearch.client.indices.PutMappingRequest(INDEX_II).source(jsonMap);
client.indices().putMapping(putMappingRequest) //
.as(StepVerifier::create) //
.verifyError(ElasticsearchStatusException.class);
}
@Test // #1640
void getMapping() {
operations.indexOps(IndexCoordinates.of(INDEX_I)).create().block();
Map<String, Object> jsonMap = Collections.singletonMap("properties",
Collections.singletonMap("message", Collections.singletonMap("type", "text")));
org.elasticsearch.client.indices.PutMappingRequest putMappingRequest =
new org.elasticsearch.client.indices.PutMappingRequest(INDEX_I).source(jsonMap);
client.indices().putMapping(putMappingRequest).block();
final GetMappingsRequest getMappingsRequest = new GetMappingsRequest().indices(INDEX_I);
client.indices().getMapping(getMappingsRequest) //
.as(StepVerifier::create) //
.consumeNextWith(it -> {
assertThat(it.mappings().get(INDEX_I).getSourceAsMap()).isEqualTo(jsonMap);
})
.verifyComplete();
}
@Test // #1640
void getMappingError() {
operations.indexOps(IndexCoordinates.of(INDEX_I)).create().block();
Map<String, Object> jsonMap = Collections.singletonMap("properties",
Collections.singletonMap("message", Collections.singletonMap("type", "text")));
org.elasticsearch.client.indices.PutMappingRequest putMappingRequest =
new org.elasticsearch.client.indices.PutMappingRequest(INDEX_I).source(jsonMap);
client.indices().putMapping(putMappingRequest).block();
final GetMappingsRequest getMappingsRequest = new GetMappingsRequest().indices(INDEX_II);
client.indices().getMapping(getMappingsRequest) //
.as(StepVerifier::create) //
.verifyError(ElasticsearchStatusException.class);
}
@Test // DATAES-569 @Test // DATAES-569
public void updateMapping() { public void updateMapping() {