@@ -1275,6 +1275,11 @@ protected final <Req extends ActionRequest, Resp> Resp performRequestAndParseEnt
1275
1275
return performRequest (request , requestConverter , (response ) -> parseEntity (response .getEntity (), entityParser ), ignores , headers );
1276
1276
}
1277
1277
1278
+ /**
1279
+ * @deprecated If creating a new HLRC ReST API call, consider creating new actions instead of reusing server actions. The Validation
1280
+ * layer has been added to the ReST client, and requests should extend {@link Validatable} instead of {@link ActionRequest}.
1281
+ */
1282
+ @ Deprecated
1278
1283
protected final <Req extends ActionRequest , Resp > Resp performRequestAndParseEntity (Req request ,
1279
1284
CheckedFunction <Req , Request , IOException > requestConverter ,
1280
1285
RequestOptions options ,
@@ -1284,6 +1289,18 @@ protected final <Req extends ActionRequest, Resp> Resp performRequestAndParseEnt
1284
1289
response -> parseEntity (response .getEntity (), entityParser ), ignores );
1285
1290
}
1286
1291
1292
+ /**
1293
+ * Defines a helper method for performing a request and then parsing the returned entity using the provided entityParser.
1294
+ */
1295
+ protected final <Req extends Validatable , Resp > Resp performRequestAndParseEntity (Req request ,
1296
+ CheckedFunction <Req , Request , IOException > requestConverter ,
1297
+ RequestOptions options ,
1298
+ CheckedFunction <XContentParser , Resp , IOException > entityParser ,
1299
+ Set <Integer > ignores ) throws IOException {
1300
+ return performRequest (request , requestConverter , options ,
1301
+ response -> parseEntity (response .getEntity (), entityParser ), ignores );
1302
+ }
1303
+
1287
1304
@ Deprecated
1288
1305
protected final <Req extends ActionRequest , Resp > Resp performRequest (Req request ,
1289
1306
CheckedFunction <Req , Request , IOException > requestConverter ,
@@ -1292,15 +1309,46 @@ protected final <Req extends ActionRequest, Resp> Resp performRequest(Req reques
1292
1309
return performRequest (request , requestConverter , optionsForHeaders (headers ), responseConverter , ignores );
1293
1310
}
1294
1311
1312
+ /**
1313
+ * @deprecated If creating a new HLRC ReST API call, consider creating new actions instead of reusing server actions. The Validation
1314
+ * layer has been added to the ReST client, and requests should extend {@link Validatable} instead of {@link ActionRequest}.
1315
+ */
1316
+ @ Deprecated
1295
1317
protected final <Req extends ActionRequest , Resp > Resp performRequest (Req request ,
1296
- CheckedFunction <Req , Request , IOException > requestConverter ,
1297
- RequestOptions options ,
1298
- CheckedFunction <Response , Resp , IOException > responseConverter ,
1299
- Set <Integer > ignores ) throws IOException {
1318
+ CheckedFunction <Req , Request , IOException > requestConverter ,
1319
+ RequestOptions options ,
1320
+ CheckedFunction <Response , Resp , IOException > responseConverter ,
1321
+ Set <Integer > ignores ) throws IOException {
1300
1322
ActionRequestValidationException validationException = request .validate ();
1301
- if (validationException != null ) {
1323
+ if (validationException != null && validationException . validationErrors (). isEmpty () == false ) {
1302
1324
throw validationException ;
1303
1325
}
1326
+ return internalPerformRequest (request , requestConverter , options , responseConverter , ignores );
1327
+ }
1328
+
1329
+ /**
1330
+ * Defines a helper method for performing a request.
1331
+ */
1332
+ protected final <Req extends Validatable , Resp > Resp performRequest (Req request ,
1333
+ CheckedFunction <Req , Request , IOException > requestConverter ,
1334
+ RequestOptions options ,
1335
+ CheckedFunction <Response , Resp , IOException > responseConverter ,
1336
+ Set <Integer > ignores ) throws IOException {
1337
+ ValidationException validationException = request .validate ();
1338
+ if (validationException != null && validationException .validationErrors ().isEmpty () == false ) {
1339
+ throw validationException ;
1340
+ }
1341
+ return internalPerformRequest (request , requestConverter , options , responseConverter , ignores );
1342
+ }
1343
+
1344
+ /**
1345
+ * Provides common functionality for performing a request.
1346
+ */
1347
+ private <Req , Resp > Resp internalPerformRequest (Req request ,
1348
+ CheckedFunction <Req , Request , IOException > requestConverter ,
1349
+ RequestOptions options ,
1350
+ CheckedFunction <Response , Resp , IOException > responseConverter ,
1351
+ Set <Integer > ignores ) throws IOException {
1304
1352
Request req = requestConverter .apply (request );
1305
1353
req .setOptions (options );
1306
1354
Response response ;
@@ -1337,15 +1385,32 @@ protected final <Req extends ActionRequest, Resp> void performRequestAsyncAndPar
1337
1385
listener , ignores , headers );
1338
1386
}
1339
1387
1388
+ /**
1389
+ * @deprecated If creating a new HLRC ReST API call, consider creating new actions instead of reusing server actions. The Validation
1390
+ * layer has been added to the ReST client, and requests should extend {@link Validatable} instead of {@link ActionRequest}.
1391
+ */
1392
+ @ Deprecated
1340
1393
protected final <Req extends ActionRequest , Resp > void performRequestAsyncAndParseEntity (Req request ,
1341
- CheckedFunction <Req , Request , IOException > requestConverter ,
1342
- RequestOptions options ,
1343
- CheckedFunction <XContentParser , Resp , IOException > entityParser ,
1344
- ActionListener <Resp > listener , Set <Integer > ignores ) {
1394
+ CheckedFunction <Req , Request , IOException > requestConverter ,
1395
+ RequestOptions options ,
1396
+ CheckedFunction <XContentParser , Resp , IOException > entityParser ,
1397
+ ActionListener <Resp > listener , Set <Integer > ignores ) {
1345
1398
performRequestAsync (request , requestConverter , options ,
1346
1399
response -> parseEntity (response .getEntity (), entityParser ), listener , ignores );
1347
1400
}
1348
1401
1402
+ /**
1403
+ * Defines a helper method for asynchronously performing a request.
1404
+ */
1405
+ protected final <Req extends Validatable , Resp > void performRequestAsyncAndParseEntity (Req request ,
1406
+ CheckedFunction <Req , Request , IOException > requestConverter ,
1407
+ RequestOptions options ,
1408
+ CheckedFunction <XContentParser , Resp , IOException > entityParser ,
1409
+ ActionListener <Resp > listener , Set <Integer > ignores ) {
1410
+ performRequestAsync (request , requestConverter , options ,
1411
+ response -> parseEntity (response .getEntity (), entityParser ), listener , ignores );
1412
+ }
1413
+
1349
1414
@ Deprecated
1350
1415
protected final <Req extends ActionRequest , Resp > void performRequestAsync (Req request ,
1351
1416
CheckedFunction <Req , Request , IOException > requestConverter ,
@@ -1354,16 +1419,48 @@ protected final <Req extends ActionRequest, Resp> void performRequestAsync(Req r
1354
1419
performRequestAsync (request , requestConverter , optionsForHeaders (headers ), responseConverter , listener , ignores );
1355
1420
}
1356
1421
1422
+ /**
1423
+ * @deprecated If creating a new HLRC ReST API call, consider creating new actions instead of reusing server actions. The Validation
1424
+ * layer has been added to the ReST client, and requests should extend {@link Validatable} instead of {@link ActionRequest}.
1425
+ */
1426
+ @ Deprecated
1357
1427
protected final <Req extends ActionRequest , Resp > void performRequestAsync (Req request ,
1358
- CheckedFunction <Req , Request , IOException > requestConverter ,
1359
- RequestOptions options ,
1360
- CheckedFunction <Response , Resp , IOException > responseConverter ,
1361
- ActionListener <Resp > listener , Set <Integer > ignores ) {
1428
+ CheckedFunction <Req , Request , IOException > requestConverter ,
1429
+ RequestOptions options ,
1430
+ CheckedFunction <Response , Resp , IOException > responseConverter ,
1431
+ ActionListener <Resp > listener , Set <Integer > ignores ) {
1362
1432
ActionRequestValidationException validationException = request .validate ();
1363
- if (validationException != null ) {
1433
+ if (validationException != null && validationException . validationErrors (). isEmpty () == false ) {
1364
1434
listener .onFailure (validationException );
1365
1435
return ;
1366
1436
}
1437
+ internalPerformRequestAsync (request , requestConverter , options , responseConverter , listener , ignores );
1438
+ }
1439
+
1440
+ /**
1441
+ * Defines a helper method for asynchronously performing a request.
1442
+ */
1443
+ protected final <Req extends Validatable , Resp > void performRequestAsync (Req request ,
1444
+ CheckedFunction <Req , Request , IOException > requestConverter ,
1445
+ RequestOptions options ,
1446
+ CheckedFunction <Response , Resp , IOException > responseConverter ,
1447
+ ActionListener <Resp > listener , Set <Integer > ignores ) {
1448
+ ValidationException validationException = request .validate ();
1449
+ if (validationException != null && validationException .validationErrors ().isEmpty () == false ) {
1450
+ listener .onFailure (validationException );
1451
+ return ;
1452
+ }
1453
+ internalPerformRequestAsync (request , requestConverter , options , responseConverter , listener , ignores );
1454
+ }
1455
+
1456
+ /**
1457
+ * Provides common functionality for asynchronously performing a request.
1458
+ */
1459
+ private <Req , Resp > void internalPerformRequestAsync (Req request ,
1460
+ CheckedFunction <Req , Request , IOException > requestConverter ,
1461
+ RequestOptions options ,
1462
+ CheckedFunction <Response , Resp , IOException > responseConverter ,
1463
+ ActionListener <Resp > listener , Set <Integer > ignores ) {
1367
1464
Request req ;
1368
1465
try {
1369
1466
req = requestConverter .apply (request );
@@ -1377,6 +1474,7 @@ protected final <Req extends ActionRequest, Resp> void performRequestAsync(Req r
1377
1474
client .performRequestAsync (req , responseListener );
1378
1475
}
1379
1476
1477
+
1380
1478
final <Resp > ResponseListener wrapResponseListener (CheckedFunction <Response , Resp , IOException > responseConverter ,
1381
1479
ActionListener <Resp > actionListener , Set <Integer > ignores ) {
1382
1480
return new ResponseListener () {
0 commit comments