45
45
import org .apache .http .util .EntityUtils ;
46
46
import org .elasticsearch .ElasticsearchException ;
47
47
import org .elasticsearch .ElasticsearchStatusException ;
48
+ import org .elasticsearch .action .admin .cluster .health .ClusterHealthRequest ;
49
+ import org .elasticsearch .action .admin .cluster .health .ClusterHealthResponse ;
48
50
import org .elasticsearch .action .admin .indices .alias .IndicesAliasesRequest ;
49
51
import org .elasticsearch .action .admin .indices .alias .get .GetAliasesRequest ;
50
52
import org .elasticsearch .action .admin .indices .close .CloseIndexRequest ;
105
107
import org .springframework .data .elasticsearch .client .ElasticsearchHost ;
106
108
import org .springframework .data .elasticsearch .client .NoReachableHostException ;
107
109
import org .springframework .data .elasticsearch .client .reactive .HostProvider .Verification ;
110
+ import org .springframework .data .elasticsearch .client .reactive .ReactiveElasticsearchClient .Cluster ;
108
111
import org .springframework .data .elasticsearch .client .reactive .ReactiveElasticsearchClient .Indices ;
109
112
import org .springframework .data .elasticsearch .client .util .NamedXContents ;
110
113
import org .springframework .data .elasticsearch .client .util .ScrollState ;
142
145
* @see ClientConfiguration
143
146
* @see ReactiveRestClients
144
147
*/
145
- public class DefaultReactiveElasticsearchClient implements ReactiveElasticsearchClient , Indices {
148
+ public class DefaultReactiveElasticsearchClient implements ReactiveElasticsearchClient , Indices , Cluster {
146
149
147
150
private final HostProvider <?> hostProvider ;
148
151
private final RequestCreator requestCreator ;
@@ -297,10 +300,6 @@ public void setHeadersSupplier(Supplier<HttpHeaders> headersSupplier) {
297
300
this .headersSupplier = headersSupplier ;
298
301
}
299
302
300
- /*
301
- * (non-Javadoc)
302
- * @see org.springframework.data.elasticsearch.client.reactive.ReactiveElasticsearchClient#ping(org.springframework.http.HttpHeaders)
303
- */
304
303
@ Override
305
304
public Mono <Boolean > ping (HttpHeaders headers ) {
306
305
@@ -309,21 +308,13 @@ public Mono<Boolean> ping(HttpHeaders headers) {
309
308
.onErrorResume (NoReachableHostException .class , error -> Mono .just (false )).next ();
310
309
}
311
310
312
- /*
313
- * (non-Javadoc)
314
- * @see org.springframework.data.elasticsearch.client.reactive.ReactiveElasticsearchClient#info(org.springframework.http.HttpHeaders)
315
- */
316
311
@ Override
317
312
public Mono <MainResponse > info (HttpHeaders headers ) {
318
313
319
314
return sendRequest (new MainRequest (), requestCreator .info (), MainResponse .class , headers ) //
320
315
.next ();
321
316
}
322
317
323
- /*
324
- * (non-Javadoc)
325
- * @see org.springframework.data.elasticsearch.client.reactive.ReactiveElasticsearchClient#get(org.springframework.http.HttpHeaders, org.elasticsearch.action.get.GetRequest)
326
- */
327
318
@ Override
328
319
public Mono <GetResult > get (HttpHeaders headers , GetRequest getRequest ) {
329
320
@@ -341,10 +332,6 @@ public Flux<MultiGetItemResponse> multiGet(HttpHeaders headers, MultiGetRequest
341
332
.flatMap (Flux ::fromArray ); //
342
333
}
343
334
344
- /*
345
- * (non-Javadoc)
346
- * @see org.springframework.data.elasticsearch.client.reactive.ReactiveElasticsearchClient#exists(org.springframework.http.HttpHeaders, org.elasticsearch.action.get.GetRequest)
347
- */
348
335
@ Override
349
336
public Mono <Boolean > exists (HttpHeaders headers , GetRequest getRequest ) {
350
337
@@ -353,48 +340,33 @@ public Mono<Boolean> exists(HttpHeaders headers, GetRequest getRequest) {
353
340
.next ();
354
341
}
355
342
356
- /*
357
- * (non-Javadoc)
358
- * @see org.springframework.data.elasticsearch.client.reactive.ReactiveElasticsearchClient#ping(org.springframework.http.HttpHeaders, org.elasticsearch.action.index.IndexRequest)
359
- */
360
343
@ Override
361
344
public Mono <IndexResponse > index (HttpHeaders headers , IndexRequest indexRequest ) {
362
345
return sendRequest (indexRequest , requestCreator .index (), IndexResponse .class , headers ).next ();
363
346
}
364
347
365
- /*
366
- * (non-Javadoc)
367
- * @see org.springframework.data.elasticsearch.client.reactive.ReactiveElasticsearchClient#indices()
368
- */
369
348
@ Override
370
349
public Indices indices () {
371
350
return this ;
372
351
}
373
352
374
- /*
375
- * (non-Javadoc)
376
- * @see org.springframework.data.elasticsearch.client.reactive.ReactiveElasticsearchClient#ping(org.springframework.http.HttpHeaders, org.elasticsearch.action.update.UpdateRequest)
377
- */
353
+ @ Override
354
+ public Cluster cluster () {
355
+ return this ;
356
+ }
357
+
378
358
@ Override
379
359
public Mono <UpdateResponse > update (HttpHeaders headers , UpdateRequest updateRequest ) {
380
360
return sendRequest (updateRequest , requestCreator .update (), UpdateResponse .class , headers ).next ();
381
361
}
382
362
383
- /*
384
- * (non-Javadoc)
385
- * @see org.springframework.data.elasticsearch.client.reactive.ReactiveElasticsearchClient#ping(org.springframework.http.HttpHeaders, org.elasticsearch.action.delete.DeleteRequest)
386
- */
387
363
@ Override
388
364
public Mono <DeleteResponse > delete (HttpHeaders headers , DeleteRequest deleteRequest ) {
389
365
390
366
return sendRequest (deleteRequest , requestCreator .delete (), DeleteResponse .class , headers ) //
391
367
.next ();
392
368
}
393
369
394
- /*
395
- * (non-Javadoc)
396
- * @see org.springframework.data.elasticsearch.client.reactive.ReactiveElasticsearchClient#count(org.springframework.http.HttpHeaders, org.elasticsearch.action.search.SearchRequest)
397
- */
398
370
@ Override
399
371
public Mono <Long > count (HttpHeaders headers , SearchRequest searchRequest ) {
400
372
searchRequest .source ().trackTotalHits (true );
@@ -412,10 +384,6 @@ public Flux<SearchHit> searchTemplate(HttpHeaders headers, SearchTemplateRequest
412
384
.map (response -> response .getResponse ().getHits ()).flatMap (Flux ::fromIterable );
413
385
}
414
386
415
- /*
416
- * (non-Javadoc)
417
- * @see org.springframework.data.elasticsearch.client.reactive.ReactiveElasticsearchClient#ping(org.springframework.http.HttpHeaders, org.elasticsearch.action.search.SearchRequest)
418
- */
419
387
@ Override
420
388
public Flux <SearchHit > search (HttpHeaders headers , SearchRequest searchRequest ) {
421
389
@@ -435,10 +403,6 @@ public Flux<Suggest> suggest(HttpHeaders headers, SearchRequest searchRequest) {
435
403
.map (SearchResponse ::getSuggest );
436
404
}
437
405
438
- /*
439
- * (non-Javadoc)
440
- * @see org.springframework.data.elasticsearch.client.reactive.ReactiveElasticsearchClient#aggregate(org.springframework.http.HttpHeaders, org.elasticsearch.action.search.SearchRequest)
441
- */
442
406
@ Override
443
407
public Flux <Aggregation > aggregate (HttpHeaders headers , SearchRequest searchRequest ) {
444
408
@@ -453,10 +417,6 @@ public Flux<Aggregation> aggregate(HttpHeaders headers, SearchRequest searchRequ
453
417
.flatMap (Flux ::fromIterable );
454
418
}
455
419
456
- /*
457
- * (non-Javadoc)
458
- * @see org.springframework.data.elasticsearch.client.reactive.ReactiveElasticsearchClient#scroll(org.springframework.http.HttpHeaders, org.elasticsearch.action.search.SearchRequest)
459
- */
460
420
@ Override
461
421
public Flux <SearchHit > scroll (HttpHeaders headers , SearchRequest searchRequest ) {
462
422
@@ -506,10 +466,6 @@ private Publisher<?> cleanupScroll(HttpHeaders headers, ScrollState state) {
506
466
return sendRequest (clearScrollRequest , requestCreator .clearScroll (), ClearScrollResponse .class , headers );
507
467
}
508
468
509
- /*
510
- * (non-Javadoc)
511
- * @see org.springframework.data.elasticsearch.client.reactive.ReactiveElasticsearchClient#ping(org.springframework.http.HttpHeaders, org.elasticsearch.index.reindex.DeleteByQueryRequest)
512
- */
513
469
@ Override
514
470
public Mono <BulkByScrollResponse > deleteBy (HttpHeaders headers , DeleteByQueryRequest deleteRequest ) {
515
471
@@ -524,10 +480,6 @@ public Mono<ByQueryResponse> updateBy(HttpHeaders headers, UpdateByQueryRequest
524
480
.map (ByQueryResponse ::of );
525
481
}
526
482
527
- /*
528
- * (non-Javadoc)
529
- * @see org.springframework.data.elasticsearch.client.reactive.ReactiveElasticsearchClient#bulk(org.springframework.http.HttpHeaders, org.elasticsearch.action.bulk.BulkRequest)
530
- */
531
483
@ Override
532
484
public Mono <BulkResponse > bulk (HttpHeaders headers , BulkRequest bulkRequest ) {
533
485
return sendRequest (bulkRequest , requestCreator .bulk (), BulkResponse .class , headers ) //
@@ -812,6 +764,14 @@ public Mono<GetIndexResponse> getIndex(HttpHeaders headers, GetIndexRequest getI
812
764
813
765
// endregion
814
766
767
+ // region cluster operations
768
+ @ Override
769
+ public Mono <ClusterHealthResponse > health (HttpHeaders headers , ClusterHealthRequest clusterHealthRequest ) {
770
+ return sendRequest (clusterHealthRequest , requestCreator .clusterHealth (), ClusterHealthResponse .class , headers )
771
+ .next ();
772
+ }
773
+ // endregion
774
+
815
775
// region helper functions
816
776
private <T > Publisher <? extends T > readResponseBody (String logId , Request request , ClientResponse response ,
817
777
Class <T > responseType ) {
@@ -965,7 +925,7 @@ private static ElasticsearchException getElasticsearchException(String content,
965
925
} while (token == XContentParser .Token .FIELD_NAME );
966
926
967
927
return null ;
968
- } catch (IOException e ) {
928
+ } catch (Exception e ) {
969
929
return new ElasticsearchStatusException (content , status );
970
930
}
971
931
}
0 commit comments