Skip to content

Commit 6d28592

Browse files
committed
ReactiveElasticsearchClient should use the same request parameters as non reactive code
1 parent 929d97f commit 6d28592

File tree

5 files changed

+352
-1
lines changed

5 files changed

+352
-1
lines changed

src/main/java/org/springframework/data/elasticsearch/client/reactive/DefaultReactiveElasticsearchClient.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -653,6 +653,15 @@ public Mono<Boolean> createIndex(HttpHeaders headers, CreateIndexRequest createI
653653
.next();
654654
}
655655

656+
@Override
657+
public Mono<Boolean> createIndex(HttpHeaders headers,
658+
org.elasticsearch.client.indices.CreateIndexRequest createIndexRequest) {
659+
660+
return sendRequest(createIndexRequest, requestCreator.createIndex(), AcknowledgedResponse.class, headers) //
661+
.map(AcknowledgedResponse::isAcknowledged) //
662+
.next();
663+
}
664+
656665
@Override
657666
public Mono<Void> closeIndex(HttpHeaders headers, CloseIndexRequest closeIndexRequest) {
658667

@@ -688,6 +697,14 @@ public Mono<GetMappingsResponse> getMapping(HttpHeaders headers, GetMappingsRequ
688697
return sendRequest(getMappingsRequest, requestCreator.getMapping(), GetMappingsResponse.class, headers).next();
689698
}
690699

700+
@Override
701+
public Mono<org.elasticsearch.client.indices.GetMappingsResponse> getMapping(HttpHeaders headers,
702+
org.elasticsearch.client.indices.GetMappingsRequest getMappingsRequest) {
703+
return sendRequest(getMappingsRequest, requestCreator.getMappingRequest(),
704+
org.elasticsearch.client.indices.GetMappingsResponse.class, headers) //
705+
.next();
706+
}
707+
691708
@Override
692709
public Mono<GetFieldMappingsResponse> getFieldMapping(HttpHeaders headers,
693710
GetFieldMappingsRequest getFieldMappingsRequest) {
@@ -708,6 +725,14 @@ public Mono<Boolean> putMapping(HttpHeaders headers, PutMappingRequest putMappin
708725
.next();
709726
}
710727

728+
@Override
729+
public Mono<Boolean> putMapping(HttpHeaders headers,
730+
org.elasticsearch.client.indices.PutMappingRequest putMappingRequest) {
731+
return sendRequest(putMappingRequest, requestCreator.putMappingRequest(), AcknowledgedResponse.class, headers) //
732+
.map(AcknowledgedResponse::isAcknowledged) //
733+
.next();
734+
}
735+
711736
@Override
712737
public Mono<Void> openIndex(HttpHeaders headers, OpenIndexRequest request) {
713738

src/main/java/org/springframework/data/elasticsearch/client/reactive/ReactiveElasticsearchClient.java

Lines changed: 142 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -834,7 +834,9 @@ default Mono<Boolean> deleteIndex(DeleteIndexRequest deleteIndexRequest) {
834834
* eg. the index already exist.
835835
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html"> Indices
836836
* Create API on elastic.co</a>
837+
* @deprecated since 4.2
837838
*/
839+
@Deprecated
838840
default Mono<Boolean> createIndex(Consumer<CreateIndexRequest> consumer) {
839841

840842
CreateIndexRequest request = new CreateIndexRequest();
@@ -850,7 +852,9 @@ default Mono<Boolean> createIndex(Consumer<CreateIndexRequest> consumer) {
850852
* eg. the index already exist.
851853
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html"> Indices
852854
* Create API on elastic.co</a>
855+
* @deprecated since 4.2, use {@link #createIndex(org.elasticsearch.client.indices.CreateIndexRequest)}
853856
*/
857+
@Deprecated
854858
default Mono<Boolean> createIndex(CreateIndexRequest createIndexRequest) {
855859
return createIndex(HttpHeaders.EMPTY, createIndexRequest);
856860
}
@@ -864,9 +868,69 @@ default Mono<Boolean> createIndex(CreateIndexRequest createIndexRequest) {
864868
* eg. the index already exist.
865869
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html"> Indices
866870
* Create API on elastic.co</a>
871+
* @deprecated since 4.2, use {@link #createIndex(HttpHeaders, org.elasticsearch.client.indices.CreateIndexRequest)}
867872
*/
873+
@Deprecated
868874
Mono<Boolean> createIndex(HttpHeaders headers, CreateIndexRequest createIndexRequest);
869875

876+
/**
877+
* Execute the given {@link org.elasticsearch.client.indices.CreateIndexRequest} against the {@literal indices} API.
878+
*
879+
* @param createIndexRequest must not be {@literal null}.
880+
* @return a {@link Mono} signalling successful operation completion or an {@link Mono#error(Throwable) error} if
881+
* eg. the index already exist.
882+
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html"> Indices
883+
* Create API on elastic.co</a>
884+
* @since 4.2
885+
*/
886+
default Mono<Boolean> createIndex(org.elasticsearch.client.indices.CreateIndexRequest createIndexRequest) {
887+
return createIndex(HttpHeaders.EMPTY, createIndexRequest);
888+
}
889+
890+
/**
891+
* Execute the given {@link org.elasticsearch.client.indices.CreateIndexRequest} against the {@literal indices} API.
892+
*
893+
* @param headers Use {@link HttpHeaders} to provide eg. authentication data. Must not be {@literal null}.
894+
* @param createIndexRequest must not be {@literal null}.
895+
* @return a {@link Mono} signalling successful operation completion or an {@link Mono#error(Throwable) error} if
896+
* eg. the index already exist.
897+
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html"> Indices
898+
* Create API on elastic.co</a>
899+
* @since 4.2
900+
*/
901+
Mono<Boolean> createIndex(HttpHeaders headers, org.elasticsearch.client.indices.CreateIndexRequest createIndexRequest);
902+
903+
/**
904+
* Execute the given {@link org.elasticsearch.client.indices.GetIndexRequest} against the {@literal indices} API.
905+
*
906+
* @param consumer never {@literal null}.
907+
* @return a {@link Mono} signalling operation completion or an {@link Mono#error(Throwable) error} if eg. the index
908+
* does not exist.
909+
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-index.html"> Indices
910+
* Get API on elastic.co</a>
911+
* @since 4.2
912+
*/
913+
default Mono<GetIndexResponse> getIndex(Consumer<org.elasticsearch.client.indices.GetIndexRequest> consumer) {
914+
915+
org.elasticsearch.client.indices.GetIndexRequest request = new org.elasticsearch.client.indices.GetIndexRequest();
916+
consumer.accept(request);
917+
return getIndex(request);
918+
}
919+
920+
/**
921+
* Execute the given {@link org.elasticsearch.client.indices.GetIndexRequest} against the {@literal indices} API.
922+
*
923+
* @param getIndexRequest must not be {@literal null}.
924+
* @return a {@link Mono} signalling successful operation completion or an {@link Mono#error(Throwable) error} if
925+
* eg. the index already exist.
926+
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-index.html"> Indices
927+
* Get API on elastic.co</a>
928+
* @since 4.2
929+
*/
930+
default Mono<GetIndexResponse> getIndex(org.elasticsearch.client.indices.GetIndexRequest getIndexRequest) {
931+
return getIndex(HttpHeaders.EMPTY, getIndexRequest);
932+
}
933+
870934
/**
871935
* Execute the given {@link OpenIndexRequest} against the {@literal indices} API.
872936
*
@@ -1029,7 +1093,7 @@ default Mono<Boolean> updateMapping(PutMappingRequest putMappingRequest) {
10291093
* does not exist.
10301094
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html"> Indices
10311095
* Put Mapping API on elastic.co</a>
1032-
* @deprecated since 4.1, use {@link #putMapping(HttpHeaders, PutMappingRequest)}
1096+
* @deprecated since 4.1, use {@link #putMapping(HttpHeaders, org.elasticsearch.client.indices.PutMappingRequest)}
10331097
*/
10341098
@Deprecated
10351099
default Mono<Boolean> updateMapping(HttpHeaders headers, PutMappingRequest putMappingRequest) {
@@ -1044,7 +1108,9 @@ default Mono<Boolean> updateMapping(HttpHeaders headers, PutMappingRequest putMa
10441108
* does not exist.
10451109
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html"> Indices
10461110
* Put Mapping API on elastic.co</a>
1111+
* @deprecated since 4.2
10471112
*/
1113+
@Deprecated
10481114
default Mono<Boolean> putMapping(Consumer<PutMappingRequest> consumer) {
10491115

10501116
PutMappingRequest request = new PutMappingRequest();
@@ -1060,7 +1126,9 @@ default Mono<Boolean> putMapping(Consumer<PutMappingRequest> consumer) {
10601126
* does not exist.
10611127
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html"> Indices
10621128
* Put Mapping API on elastic.co</a>
1129+
* @deprecated since 4.2, use {@link #putMapping(org.elasticsearch.client.indices.PutMappingRequest)}
10631130
*/
1131+
@Deprecated
10641132
default Mono<Boolean> putMapping(PutMappingRequest putMappingRequest) {
10651133
return putMapping(HttpHeaders.EMPTY, putMappingRequest);
10661134
}
@@ -1074,9 +1142,38 @@ default Mono<Boolean> putMapping(PutMappingRequest putMappingRequest) {
10741142
* does not exist.
10751143
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html"> Indices
10761144
* Put Mapping API on elastic.co</a>
1145+
* @deprecated since 4.2, use {@link #putMapping(HttpHeaders, org.elasticsearch.client.indices.PutMappingRequest)}
10771146
*/
1147+
@Deprecated
10781148
Mono<Boolean> putMapping(HttpHeaders headers, PutMappingRequest putMappingRequest);
10791149

1150+
/**
1151+
* Execute the given {@link org.elasticsearch.client.indices.PutMappingRequest} against the {@literal indices} API.
1152+
*
1153+
* @param putMappingRequest must not be {@literal null}.
1154+
* @return a {@link Mono} signalling operation completion or an {@link Mono#error(Throwable) error} if eg. the index
1155+
* does not exist.
1156+
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html"> Indices
1157+
* Put Mapping API on elastic.co</a>
1158+
* @since 4.2
1159+
*/
1160+
default Mono<Boolean> putMapping(org.elasticsearch.client.indices.PutMappingRequest putMappingRequest) {
1161+
return putMapping(HttpHeaders.EMPTY, putMappingRequest);
1162+
}
1163+
1164+
/**
1165+
* Execute the given {@link org.elasticsearch.client.indices.PutMappingRequest} against the {@literal indices} API.
1166+
*
1167+
* @param headers Use {@link HttpHeaders} to provide eg. authentication data. Must not be {@literal null}.
1168+
* @param putMappingRequest must not be {@literal null}.
1169+
* @return a {@link Mono} signalling operation completion or an {@link Mono#error(Throwable) error} if eg. the index
1170+
* does not exist.
1171+
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html"> Indices
1172+
* Put Mapping API on elastic.co</a>
1173+
* @since 4.2
1174+
*/
1175+
Mono<Boolean> putMapping(HttpHeaders headers, org.elasticsearch.client.indices.PutMappingRequest putMappingRequest);
1176+
10801177
/**
10811178
* Execute the given {@link FlushRequest} against the {@literal indices} API.
10821179
*
@@ -1171,7 +1268,9 @@ default Mono<GetSettingsResponse> getSettings(GetSettingsRequest getSettingsRequ
11711268
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html"> Indices
11721269
* Flush API on elastic.co</a>
11731270
* @since 4.1
1271+
* @deprecated since 4.2
11741272
*/
1273+
@Deprecated
11751274
default Mono<GetMappingsResponse> getMapping(Consumer<GetMappingsRequest> consumer) {
11761275

11771276
GetMappingsRequest request = new GetMappingsRequest();
@@ -1188,7 +1287,9 @@ default Mono<GetMappingsResponse> getMapping(Consumer<GetMappingsRequest> consum
11881287
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html"> Indices
11891288
* Flush API on elastic.co</a>
11901289
* @since 4.1
1290+
* @deprecated since 4.2, use {@link #getMapping(org.elasticsearch.client.indices.GetMappingsRequest)}
11911291
*/
1292+
@Deprecated
11921293
default Mono<GetMappingsResponse> getMapping(GetMappingsRequest getMappingsRequest) {
11931294
return getMapping(HttpHeaders.EMPTY, getMappingsRequest);
11941295
}
@@ -1203,9 +1304,38 @@ default Mono<GetMappingsResponse> getMapping(GetMappingsRequest getMappingsReque
12031304
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html"> Indices
12041305
* Flush API on elastic.co</a>
12051306
* @since 4.1
1307+
* @deprecated since 4.2, use {@link #getMapping(HttpHeaders, org.elasticsearch.client.indices.GetMappingsRequest)}
12061308
*/
1309+
@Deprecated
12071310
Mono<GetMappingsResponse> getMapping(HttpHeaders headers, GetMappingsRequest getMappingsRequest);
12081311

1312+
/**
1313+
* Execute the given {@link org.elasticsearch.client.indices.GetMappingsRequest} against the {@literal indices} API.
1314+
*
1315+
* @param getMappingsRequest must not be {@literal null}.
1316+
* @return a {@link Mono} signalling operation completion or an {@link Mono#error(Throwable) error} if eg. the index
1317+
* does not exist.
1318+
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html"> Indices
1319+
* Get mapping API on elastic.co</a>
1320+
* @since 4.2
1321+
*/
1322+
default Mono<org.elasticsearch.client.indices.GetMappingsResponse> getMapping(org.elasticsearch.client.indices.GetMappingsRequest getMappingsRequest) {
1323+
return getMapping(HttpHeaders.EMPTY, getMappingsRequest);
1324+
}
1325+
1326+
/**
1327+
* Execute the given {@link org.elasticsearch.client.indices.GetMappingsRequest} against the {@literal indices} API.
1328+
*
1329+
* @param headers Use {@link HttpHeaders} to provide eg. authentication data. Must not be {@literal null}.
1330+
* @param getMappingsRequest must not be {@literal null}.
1331+
* @return a {@link Mono} signalling operation completion or an {@link Mono#error(Throwable) error} if eg. the index
1332+
* does not exist.
1333+
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html"> Indices
1334+
* Get mapping API on elastic.co</a>
1335+
* @since 4.2
1336+
*/
1337+
Mono<org.elasticsearch.client.indices.GetMappingsResponse> getMapping(HttpHeaders headers, org.elasticsearch.client.indices.GetMappingsRequest getMappingsRequest);
1338+
12091339
/**
12101340
* Execute the given {@link GetFieldMappingsRequest} against the {@literal indices} API.
12111341
*
@@ -1458,6 +1588,17 @@ default Mono<Boolean> deleteTemplate(DeleteIndexTemplateRequest deleteIndexTempl
14581588
*/
14591589
Mono<Boolean> deleteTemplate(HttpHeaders headers, DeleteIndexTemplateRequest deleteIndexTemplateRequest);
14601590

1591+
/**
1592+
* Execute the given {@link org.elasticsearch.client.indices.GetIndexRequest} against the {@literal indices} API.
1593+
*
1594+
* @param headers Use {@link HttpHeaders} to provide eg. authentication data. Must not be {@literal null}.
1595+
* @param getIndexRequest must not be {@literal null}.
1596+
* @return a {@link Mono} signalling successful operation completion or an {@link Mono#error(Throwable) error} if
1597+
* eg. the index already exist.
1598+
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-index.html"> Indices
1599+
* Get API on elastic.co</a>
1600+
* @since 4.2
1601+
*/
14611602
Mono<GetIndexResponse> getIndex(HttpHeaders headers, org.elasticsearch.client.indices.GetIndexRequest getIndexRequest);
14621603
}
14631604
}

src/main/java/org/springframework/data/elasticsearch/client/reactive/RequestCreator.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,10 @@ default Function<CreateIndexRequest, Request> indexCreate() {
126126
return RequestConverters::indexCreate;
127127
}
128128

129+
default Function<org.elasticsearch.client.indices.CreateIndexRequest, Request> createIndex() {
130+
return RequestConverters::indexCreate;
131+
}
132+
129133
default Function<OpenIndexRequest, Request> indexOpen() {
130134
return RequestConverters::indexOpen;
131135
}
@@ -142,6 +146,13 @@ default Function<PutMappingRequest, Request> putMapping() {
142146
return RequestConverters::putMapping;
143147
}
144148

149+
/**
150+
* @since 4.2
151+
*/
152+
default Function<org.elasticsearch.client.indices.PutMappingRequest, Request> putMappingRequest() {
153+
return RequestConverters::putMapping;
154+
}
155+
145156
default Function<FlushRequest, Request> flushIndex() {
146157
return RequestConverters::flushIndex;
147158
}
@@ -165,6 +176,13 @@ default Function<GetMappingsRequest, Request> getMapping() {
165176
return RequestConverters::getMapping;
166177
}
167178

179+
/**
180+
* @since 4.2
181+
*/
182+
default Function<org.elasticsearch.client.indices.GetMappingsRequest, Request> getMappingRequest() {
183+
return RequestConverters::getMapping;
184+
}
185+
168186
/**
169187
* @since 4.1
170188
*/

src/main/java/org/springframework/data/elasticsearch/client/util/RequestConverters.java

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -771,6 +771,19 @@ public static Request indexCreate(CreateIndexRequest createIndexRequest) {
771771
return request;
772772
}
773773

774+
public static Request indexCreate(org.elasticsearch.client.indices.CreateIndexRequest createIndexRequest) {
775+
String endpoint = RequestConverters.endpoint(new String[]{createIndexRequest.index()});
776+
Request request = new Request(HttpMethod.PUT.name(), endpoint);
777+
778+
Params parameters = new Params(request);
779+
parameters.withTimeout(createIndexRequest.timeout());
780+
parameters.withMasterTimeout(createIndexRequest.masterNodeTimeout());
781+
parameters.withWaitForActiveShards(createIndexRequest.waitForActiveShards(), ActiveShardCount.DEFAULT);
782+
783+
request.setEntity(createEntity(createIndexRequest, RequestConverters.REQUEST_BODY_CONTENT_TYPE));
784+
return request;
785+
}
786+
774787
public static Request indexRefresh(RefreshRequest refreshRequest) {
775788

776789
String[] indices = refreshRequest.indices() == null ? Strings.EMPTY_ARRAY : refreshRequest.indices();
@@ -800,6 +813,18 @@ public static Request putMapping(PutMappingRequest putMappingRequest) {
800813
return request;
801814
}
802815

816+
public static Request putMapping(org.elasticsearch.client.indices.PutMappingRequest putMappingRequest) {
817+
Request request = new Request(HttpMethod.PUT.name(),
818+
RequestConverters.endpoint(putMappingRequest.indices(), "_mapping"));
819+
820+
RequestConverters.Params parameters = new RequestConverters.Params(request) //
821+
.withTimeout(putMappingRequest.timeout()) //
822+
.withMasterTimeout(putMappingRequest.masterNodeTimeout()) //
823+
.withIncludeTypeName(false);
824+
request.setEntity(RequestConverters.createEntity(putMappingRequest, RequestConverters.REQUEST_BODY_CONTENT_TYPE));
825+
return request;
826+
}
827+
803828
public static Request flushIndex(FlushRequest flushRequest) {
804829
String[] indices = flushRequest.indices() == null ? Strings.EMPTY_ARRAY : flushRequest.indices();
805830
Request request = new Request(HttpMethod.POST.name(), RequestConverters.endpoint(indices, "_flush"));
@@ -825,6 +850,19 @@ public static Request getMapping(GetMappingsRequest getMappingsRequest) {
825850
return request;
826851
}
827852

853+
public static Request getMapping(org.elasticsearch.client.indices.GetMappingsRequest getMappingsRequest) {
854+
String[] indices = getMappingsRequest.indices() == null ? Strings.EMPTY_ARRAY : getMappingsRequest.indices();
855+
856+
Request request = new Request(HttpMethod.GET.name(), RequestConverters.endpoint(indices, "_mapping"));
857+
858+
RequestConverters.Params parameters = new RequestConverters.Params(request);
859+
parameters.withMasterTimeout(getMappingsRequest.masterNodeTimeout());
860+
parameters.withIndicesOptions(getMappingsRequest.indicesOptions());
861+
parameters.withLocal(getMappingsRequest.local());
862+
parameters.withIncludeTypeName(false);
863+
return request;
864+
}
865+
828866
public static Request getSettings(GetSettingsRequest getSettingsRequest) {
829867
String[] indices = getSettingsRequest.indices() == null ? Strings.EMPTY_ARRAY : getSettingsRequest.indices();
830868
String[] names = getSettingsRequest.names() == null ? Strings.EMPTY_ARRAY : getSettingsRequest.names();

0 commit comments

Comments
 (0)