Skip to content

Commit 2de7710

Browse files
committed
ReactiveElasticsearchClient should use the same request parameters as non reactive code
1 parent 863ac2f commit 2de7710

File tree

5 files changed

+310
-1
lines changed

5 files changed

+310
-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: 100 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,38 @@ 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+
870903
/**
871904
* Execute the given {@link OpenIndexRequest} against the {@literal indices} API.
872905
*
@@ -1029,7 +1062,7 @@ default Mono<Boolean> updateMapping(PutMappingRequest putMappingRequest) {
10291062
* does not exist.
10301063
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html"> Indices
10311064
* Put Mapping API on elastic.co</a>
1032-
* @deprecated since 4.1, use {@link #putMapping(HttpHeaders, PutMappingRequest)}
1065+
* @deprecated since 4.1, use {@link #putMapping(HttpHeaders, org.elasticsearch.client.indices.PutMappingRequest)}
10331066
*/
10341067
@Deprecated
10351068
default Mono<Boolean> updateMapping(HttpHeaders headers, PutMappingRequest putMappingRequest) {
@@ -1044,7 +1077,9 @@ default Mono<Boolean> updateMapping(HttpHeaders headers, PutMappingRequest putMa
10441077
* does not exist.
10451078
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html"> Indices
10461079
* Put Mapping API on elastic.co</a>
1080+
* @deprecated since 4.2
10471081
*/
1082+
@Deprecated
10481083
default Mono<Boolean> putMapping(Consumer<PutMappingRequest> consumer) {
10491084

10501085
PutMappingRequest request = new PutMappingRequest();
@@ -1060,7 +1095,9 @@ default Mono<Boolean> putMapping(Consumer<PutMappingRequest> consumer) {
10601095
* does not exist.
10611096
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html"> Indices
10621097
* Put Mapping API on elastic.co</a>
1098+
* @deprecated since 4.2, use {@link #putMapping(org.elasticsearch.client.indices.PutMappingRequest)}
10631099
*/
1100+
@Deprecated
10641101
default Mono<Boolean> putMapping(PutMappingRequest putMappingRequest) {
10651102
return putMapping(HttpHeaders.EMPTY, putMappingRequest);
10661103
}
@@ -1074,9 +1111,38 @@ default Mono<Boolean> putMapping(PutMappingRequest putMappingRequest) {
10741111
* does not exist.
10751112
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html"> Indices
10761113
* Put Mapping API on elastic.co</a>
1114+
* @deprecated since 4.2, use {@link #putMapping(HttpHeaders, org.elasticsearch.client.indices.PutMappingRequest)}
10771115
*/
1116+
@Deprecated
10781117
Mono<Boolean> putMapping(HttpHeaders headers, PutMappingRequest putMappingRequest);
10791118

1119+
/**
1120+
* Execute the given {@link org.elasticsearch.client.indices.PutMappingRequest} against the {@literal indices} API.
1121+
*
1122+
* @param putMappingRequest must not be {@literal null}.
1123+
* @return a {@link Mono} signalling operation completion or an {@link Mono#error(Throwable) error} if eg. the index
1124+
* does not exist.
1125+
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html"> Indices
1126+
* Put Mapping API on elastic.co</a>
1127+
* @since 4.2
1128+
*/
1129+
default Mono<Boolean> putMapping(org.elasticsearch.client.indices.PutMappingRequest putMappingRequest) {
1130+
return putMapping(HttpHeaders.EMPTY, putMappingRequest);
1131+
}
1132+
1133+
/**
1134+
* Execute the given {@link org.elasticsearch.client.indices.PutMappingRequest} against the {@literal indices} API.
1135+
*
1136+
* @param headers Use {@link HttpHeaders} to provide eg. authentication data. Must not be {@literal null}.
1137+
* @param putMappingRequest must not be {@literal null}.
1138+
* @return a {@link Mono} signalling operation completion or an {@link Mono#error(Throwable) error} if eg. the index
1139+
* does not exist.
1140+
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html"> Indices
1141+
* Put Mapping API on elastic.co</a>
1142+
* @since 4.2
1143+
*/
1144+
Mono<Boolean> putMapping(HttpHeaders headers, org.elasticsearch.client.indices.PutMappingRequest putMappingRequest);
1145+
10801146
/**
10811147
* Execute the given {@link FlushRequest} against the {@literal indices} API.
10821148
*
@@ -1171,7 +1237,9 @@ default Mono<GetSettingsResponse> getSettings(GetSettingsRequest getSettingsRequ
11711237
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html"> Indices
11721238
* Flush API on elastic.co</a>
11731239
* @since 4.1
1240+
* @deprecated since 4.2
11741241
*/
1242+
@Deprecated
11751243
default Mono<GetMappingsResponse> getMapping(Consumer<GetMappingsRequest> consumer) {
11761244

11771245
GetMappingsRequest request = new GetMappingsRequest();
@@ -1188,7 +1256,9 @@ default Mono<GetMappingsResponse> getMapping(Consumer<GetMappingsRequest> consum
11881256
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html"> Indices
11891257
* Flush API on elastic.co</a>
11901258
* @since 4.1
1259+
* @deprecated since 4.2, use {@link #getMapping(org.elasticsearch.client.indices.GetMappingsRequest)}
11911260
*/
1261+
@Deprecated
11921262
default Mono<GetMappingsResponse> getMapping(GetMappingsRequest getMappingsRequest) {
11931263
return getMapping(HttpHeaders.EMPTY, getMappingsRequest);
11941264
}
@@ -1203,9 +1273,38 @@ default Mono<GetMappingsResponse> getMapping(GetMappingsRequest getMappingsReque
12031273
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html"> Indices
12041274
* Flush API on elastic.co</a>
12051275
* @since 4.1
1276+
* @deprecated since 4.2, use {@link #getMapping(HttpHeaders, org.elasticsearch.client.indices.GetMappingsRequest)}
12061277
*/
1278+
@Deprecated
12071279
Mono<GetMappingsResponse> getMapping(HttpHeaders headers, GetMappingsRequest getMappingsRequest);
12081280

1281+
/**
1282+
* Execute the given {@link org.elasticsearch.client.indices.GetMappingsRequest} against the {@literal indices} API.
1283+
*
1284+
* @param getMappingsRequest must not be {@literal null}.
1285+
* @return a {@link Mono} signalling operation completion or an {@link Mono#error(Throwable) error} if eg. the index
1286+
* does not exist.
1287+
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html"> Indices
1288+
* Get mapping API on elastic.co</a>
1289+
* @since 4.2
1290+
*/
1291+
default Mono<org.elasticsearch.client.indices.GetMappingsResponse> getMapping(org.elasticsearch.client.indices.GetMappingsRequest getMappingsRequest) {
1292+
return getMapping(HttpHeaders.EMPTY, getMappingsRequest);
1293+
}
1294+
1295+
/**
1296+
* Execute the given {@link org.elasticsearch.client.indices.GetMappingsRequest} against the {@literal indices} API.
1297+
*
1298+
* @param headers Use {@link HttpHeaders} to provide eg. authentication data. Must not be {@literal null}.
1299+
* @param getMappingsRequest must not be {@literal null}.
1300+
* @return a {@link Mono} signalling operation completion or an {@link Mono#error(Throwable) error} if eg. the index
1301+
* does not exist.
1302+
* @see <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html"> Indices
1303+
* Get mapping API on elastic.co</a>
1304+
* @since 4.2
1305+
*/
1306+
Mono<org.elasticsearch.client.indices.GetMappingsResponse> getMapping(HttpHeaders headers, org.elasticsearch.client.indices.GetMappingsRequest getMappingsRequest);
1307+
12091308
/**
12101309
* Execute the given {@link GetFieldMappingsRequest} against the {@literal indices} API.
12111310
*

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
}
@@ -164,6 +175,13 @@ default Function<GetMappingsRequest, Request> getMapping() {
164175
return RequestConverters::getMapping;
165176
}
166177

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

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)