Skip to content

Commit c41ea16

Browse files
committed
Merge remote-tracking branch 'elastic/master' into pr/31512
* elastic/master: (57 commits) HLRest: Fix test for explain API [TEST] Fix RemoteClusterConnectionTests Add Create Snapshot to High-Level Rest Client (elastic#31215) Remove legacy MetaDataStateFormat (elastic#31603) Add explain API to high-level REST client (elastic#31387) Preserve thread context when connecting to remote cluster (elastic#31574) Unify headers for full text queries Remove redundant 'minimum_should_match' JDBC driver prepared statement set* methods (elastic#31494) [TEST] call yaml client close method from test suite (elastic#31591) ingest: Add ignore_missing property to foreach filter (elastic#22147) (elastic#31578) Fix a formatting issue in the docvalue_fields documentation. (elastic#31563) reduce log level at gradle configuration time [TEST] Close additional clients created while running yaml tests (elastic#31575) Docs: Clarify sensitive fields watcher encryption (elastic#31551) Watcher: Remove never executed code (elastic#31135) Add support for switching distribution for all integration tests (elastic#30874) Improve robustness of geo shape parser for malformed shapes (elastic#31449) QA: Create xpack yaml features (elastic#31403) Improve test times for tests using `RandomObjects::addFields` (elastic#31556) ...
2 parents 7cb4c20 + ce1d0f5 commit c41ea16

File tree

765 files changed

+10043
-3680
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

765 files changed

+10043
-3680
lines changed

buildSrc/src/main/groovy/org/elasticsearch/gradle/plugin/PluginBuildPlugin.groovy

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,9 @@ public class PluginBuildPlugin extends BuildPlugin {
7171
if (isModule) {
7272
project.integTestCluster.module(project)
7373
project.tasks.run.clusterConfig.module(project)
74-
project.tasks.run.clusterConfig.distribution = 'integ-test-zip'
74+
project.tasks.run.clusterConfig.distribution = System.getProperty(
75+
'run.distribution', 'integ-test-zip'
76+
)
7577
} else {
7678
project.integTestCluster.plugin(project.path)
7779
project.tasks.run.clusterConfig.plugin(project.path)
@@ -111,7 +113,7 @@ public class PluginBuildPlugin extends BuildPlugin {
111113
private static void createIntegTestTask(Project project) {
112114
RestIntegTestTask integTest = project.tasks.create('integTest', RestIntegTestTask.class)
113115
integTest.mustRunAfter(project.precommit, project.test)
114-
project.integTestCluster.distribution = 'integ-test-zip'
116+
project.integTestCluster.distribution = System.getProperty('tests.distribution', 'integ-test-zip')
115117
project.check.dependsOn(integTest)
116118
}
117119

buildSrc/src/main/groovy/org/elasticsearch/gradle/test/ClusterFormationTasks.groovy

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,9 @@ class ClusterFormationTasks {
8888
Configuration currentDistro = project.configurations.create("${prefix}_elasticsearchDistro")
8989
Configuration bwcDistro = project.configurations.create("${prefix}_elasticsearchBwcDistro")
9090
Configuration bwcPlugins = project.configurations.create("${prefix}_elasticsearchBwcPlugins")
91+
if (System.getProperty('tests.distribution', 'oss-zip') == 'integ-test-zip') {
92+
throw new Exception("tests.distribution=integ-test-zip is not supported")
93+
}
9194
configureDistributionDependency(project, config.distribution, currentDistro, VersionProperties.elasticsearch)
9295
if (config.numBwcNodes > 0) {
9396
if (config.bwcVersion == null) {
@@ -533,7 +536,8 @@ class ClusterFormationTasks {
533536

534537
static Task configureInstallModuleTask(String name, Project project, Task setup, NodeInfo node, Project module) {
535538
if (node.config.distribution != 'integ-test-zip') {
536-
throw new GradleException("Module ${module.path} not allowed be installed distributions other than integ-test-zip because they should already have all modules bundled!")
539+
project.logger.info("Not installing modules for $name, ${node.config.distribution} already has them")
540+
return setup
537541
}
538542
if (module.plugins.hasPlugin(PluginBuildPlugin) == false) {
539543
throw new GradleException("Task ${name} cannot include module ${module.path} which is not an esplugin")
@@ -643,6 +647,9 @@ class ClusterFormationTasks {
643647
BuildPlugin.requireJavaHome(start, node.javaVersion)
644648
}
645649
start.doLast(elasticsearchRunner)
650+
start.doFirst {
651+
project.logger.info("Starting node in ${node.clusterName} distribution: ${node.config.distribution}")
652+
}
646653
return start
647654
}
648655

buildSrc/version.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
elasticsearch = 7.0.0-alpha1
2-
lucene = 7.4.0-snapshot-518d303506
2+
lucene = 7.4.0
33

44
# optional dependencies
55
spatial4j = 0.7

client/client-benchmark-noop-api-plugin/src/main/java/org/elasticsearch/plugin/noop/action/bulk/TransportNoopBulkAction.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
package org.elasticsearch.plugin.noop.action.bulk;
2020

2121
import org.elasticsearch.action.ActionListener;
22-
import org.elasticsearch.action.DocWriteResponse;
2322
import org.elasticsearch.action.DocWriteRequest;
23+
import org.elasticsearch.action.DocWriteResponse;
2424
import org.elasticsearch.action.bulk.BulkItemResponse;
2525
import org.elasticsearch.action.bulk.BulkRequest;
2626
import org.elasticsearch.action.bulk.BulkResponse;
@@ -30,21 +30,20 @@
3030
import org.elasticsearch.common.inject.Inject;
3131
import org.elasticsearch.common.settings.Settings;
3232
import org.elasticsearch.index.shard.ShardId;
33-
import org.elasticsearch.threadpool.ThreadPool;
33+
import org.elasticsearch.tasks.Task;
3434
import org.elasticsearch.transport.TransportService;
3535

3636
public class TransportNoopBulkAction extends HandledTransportAction<BulkRequest, BulkResponse> {
3737
private static final BulkItemResponse ITEM_RESPONSE = new BulkItemResponse(1, DocWriteRequest.OpType.UPDATE,
3838
new UpdateResponse(new ShardId("mock", "", 1), "mock_type", "1", 1L, DocWriteResponse.Result.CREATED));
3939

4040
@Inject
41-
public TransportNoopBulkAction(Settings settings, ThreadPool threadPool, TransportService transportService,
42-
ActionFilters actionFilters) {
43-
super(settings, NoopBulkAction.NAME, threadPool, transportService, actionFilters, BulkRequest::new);
41+
public TransportNoopBulkAction(Settings settings, TransportService transportService, ActionFilters actionFilters) {
42+
super(settings, NoopBulkAction.NAME, transportService, actionFilters, BulkRequest::new);
4443
}
4544

4645
@Override
47-
protected void doExecute(BulkRequest request, ActionListener<BulkResponse> listener) {
46+
protected void doExecute(Task task, BulkRequest request, ActionListener<BulkResponse> listener) {
4847
final int itemCount = request.requests().size();
4948
// simulate at least a realistic amount of data that gets serialized
5049
BulkItemResponse[] bulkItemResponses = new BulkItemResponse[itemCount];

client/client-benchmark-noop-api-plugin/src/main/java/org/elasticsearch/plugin/noop/action/search/NoopSearchRequestBuilder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,7 @@ public NoopSearchRequestBuilder addSort(String field, SortOrder order) {
329329
*
330330
* @see org.elasticsearch.search.sort.SortBuilders
331331
*/
332-
public NoopSearchRequestBuilder addSort(SortBuilder sort) {
332+
public NoopSearchRequestBuilder addSort(SortBuilder<?> sort) {
333333
sourceBuilder().sort(sort);
334334
return this;
335335
}
@@ -415,7 +415,7 @@ public NoopSearchRequestBuilder setRescorer(RescorerBuilder<?> rescorer) {
415415
* @param window rescore window
416416
* @return this for chaining
417417
*/
418-
public NoopSearchRequestBuilder setRescorer(RescorerBuilder rescorer, int window) {
418+
public NoopSearchRequestBuilder setRescorer(RescorerBuilder<?> rescorer, int window) {
419419
sourceBuilder().clearRescorers();
420420
return addRescorer(rescorer.windowSize(window));
421421
}

client/client-benchmark-noop-api-plugin/src/main/java/org/elasticsearch/plugin/noop/action/search/TransportNoopSearchAction.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,27 +27,25 @@
2727
import org.elasticsearch.common.inject.Inject;
2828
import org.elasticsearch.common.io.stream.Writeable;
2929
import org.elasticsearch.common.settings.Settings;
30-
import org.elasticsearch.search.aggregations.InternalAggregations;
3130
import org.elasticsearch.search.SearchHit;
3231
import org.elasticsearch.search.SearchHits;
32+
import org.elasticsearch.search.aggregations.InternalAggregations;
3333
import org.elasticsearch.search.internal.InternalSearchResponse;
3434
import org.elasticsearch.search.profile.SearchProfileShardResults;
3535
import org.elasticsearch.search.suggest.Suggest;
36-
import org.elasticsearch.threadpool.ThreadPool;
36+
import org.elasticsearch.tasks.Task;
3737
import org.elasticsearch.transport.TransportService;
3838

3939
import java.util.Collections;
4040

4141
public class TransportNoopSearchAction extends HandledTransportAction<SearchRequest, SearchResponse> {
4242
@Inject
43-
public TransportNoopSearchAction(Settings settings, ThreadPool threadPool, TransportService transportService,
44-
ActionFilters actionFilters) {
45-
super(settings, NoopSearchAction.NAME, threadPool, transportService, actionFilters,
46-
(Writeable.Reader<SearchRequest>) SearchRequest::new);
43+
public TransportNoopSearchAction(Settings settings, TransportService transportService, ActionFilters actionFilters) {
44+
super(settings, NoopSearchAction.NAME, transportService, actionFilters, (Writeable.Reader<SearchRequest>) SearchRequest::new);
4745
}
4846

4947
@Override
50-
protected void doExecute(SearchRequest request, ActionListener<SearchResponse> listener) {
48+
protected void doExecute(Task task, SearchRequest request, ActionListener<SearchResponse> listener) {
5149
listener.onResponse(new SearchResponse(new InternalSearchResponse(
5250
new SearchHits(
5351
new SearchHit[0], 0L, 0.0f),

client/rest-high-level/src/main/java/org/elasticsearch/client/IndicesClient.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@
3737
import org.elasticsearch.action.admin.indices.forcemerge.ForceMergeRequest;
3838
import org.elasticsearch.action.admin.indices.forcemerge.ForceMergeResponse;
3939
import org.elasticsearch.action.admin.indices.get.GetIndexRequest;
40+
import org.elasticsearch.action.admin.indices.mapping.get.GetFieldMappingsRequest;
41+
import org.elasticsearch.action.admin.indices.mapping.get.GetFieldMappingsResponse;
4042
import org.elasticsearch.action.admin.indices.mapping.get.GetMappingsRequest;
4143
import org.elasticsearch.action.admin.indices.mapping.get.GetMappingsResponse;
4244
import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
@@ -188,6 +190,35 @@ public void getMappingsAsync(GetMappingsRequest getMappingsRequest, RequestOptio
188190
GetMappingsResponse::fromXContent, listener, emptySet());
189191
}
190192

193+
/**
194+
* Retrieves the field mappings on an index or indices using the Get Field Mapping API.
195+
* See <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-field-mapping.html">
196+
* Get Field Mapping API on elastic.co</a>
197+
* @param getFieldMappingsRequest the request
198+
* @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized
199+
* @return the response
200+
* @throws IOException in case there is a problem sending the request or parsing back the response
201+
*/
202+
public GetFieldMappingsResponse getFieldMapping(GetFieldMappingsRequest getFieldMappingsRequest,
203+
RequestOptions options) throws IOException {
204+
return restHighLevelClient.performRequestAndParseEntity(getFieldMappingsRequest, RequestConverters::getFieldMapping, options,
205+
GetFieldMappingsResponse::fromXContent, emptySet());
206+
}
207+
208+
/**
209+
* Asynchronously retrieves the field mappings on an index on indices using the Get Field Mapping API.
210+
* See <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-field-mapping.html">
211+
* Get Field Mapping API on elastic.co</a>
212+
* @param getFieldMappingsRequest the request
213+
* @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized
214+
* @param listener the listener to be notified upon request completion
215+
*/
216+
public void getFieldMappingAsync(GetFieldMappingsRequest getFieldMappingsRequest, RequestOptions options,
217+
ActionListener<GetFieldMappingsResponse> listener) {
218+
restHighLevelClient.performRequestAsyncAndParseEntity(getFieldMappingsRequest, RequestConverters::getFieldMapping, options,
219+
GetFieldMappingsResponse::fromXContent, listener, emptySet());
220+
}
221+
191222
/**
192223
* Updates aliases using the Index Aliases API.
193224
* See <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html">

client/rest-high-level/src/main/java/org/elasticsearch/client/IngestClient.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
import org.elasticsearch.action.ingest.GetPipelineRequest;
2525
import org.elasticsearch.action.ingest.GetPipelineResponse;
2626
import org.elasticsearch.action.ingest.PutPipelineRequest;
27+
import org.elasticsearch.action.ingest.SimulatePipelineRequest;
28+
import org.elasticsearch.action.ingest.SimulatePipelineResponse;
2729
import org.elasticsearch.action.ingest.WritePipelineResponse;
2830

2931
import java.io.IOException;
@@ -125,4 +127,37 @@ public void deletePipelineAsync(DeletePipelineRequest request, RequestOptions op
125127
restHighLevelClient.performRequestAsyncAndParseEntity( request, RequestConverters::deletePipeline, options,
126128
WritePipelineResponse::fromXContent, listener, emptySet());
127129
}
130+
131+
/**
132+
* Simulate a pipeline on a set of documents provided in the request
133+
* <p>
134+
* See
135+
* <a href="https://www.elastic.co/guide/en/elasticsearch/reference/master/simulate-pipeline-api.html">
136+
* Simulate Pipeline API on elastic.co</a>
137+
* @param request the request
138+
* @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized
139+
* @return the response
140+
* @throws IOException in case there is a problem sending the request or parsing back the response
141+
*/
142+
public SimulatePipelineResponse simulatePipeline(SimulatePipelineRequest request, RequestOptions options) throws IOException {
143+
return restHighLevelClient.performRequestAndParseEntity( request, RequestConverters::simulatePipeline, options,
144+
SimulatePipelineResponse::fromXContent, emptySet());
145+
}
146+
147+
/**
148+
* Asynchronously simulate a pipeline on a set of documents provided in the request
149+
* <p>
150+
* See
151+
* <a href="https://www.elastic.co/guide/en/elasticsearch/reference/master/simulate-pipeline-api.html">
152+
* Simulate Pipeline API on elastic.co</a>
153+
* @param request the request
154+
* @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized
155+
* @param listener the listener to be notified upon request completion
156+
*/
157+
public void simulatePipelineAsync(SimulatePipelineRequest request,
158+
RequestOptions options,
159+
ActionListener<SimulatePipelineResponse> listener) {
160+
restHighLevelClient.performRequestAsyncAndParseEntity( request, RequestConverters::simulatePipeline, options,
161+
SimulatePipelineResponse::fromXContent, listener, emptySet());
162+
}
128163
}

client/rest-high-level/src/main/java/org/elasticsearch/client/RequestConverters.java

Lines changed: 64 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import org.elasticsearch.action.admin.cluster.repositories.put.PutRepositoryRequest;
3838
import org.elasticsearch.action.admin.cluster.repositories.verify.VerifyRepositoryRequest;
3939
import org.elasticsearch.action.admin.cluster.settings.ClusterUpdateSettingsRequest;
40+
import org.elasticsearch.action.admin.cluster.snapshots.create.CreateSnapshotRequest;
4041
import org.elasticsearch.action.admin.cluster.storedscripts.DeleteStoredScriptRequest;
4142
import org.elasticsearch.action.admin.cluster.storedscripts.GetStoredScriptRequest;
4243
import org.elasticsearch.action.admin.cluster.snapshots.delete.DeleteSnapshotRequest;
@@ -50,6 +51,7 @@
5051
import org.elasticsearch.action.admin.indices.flush.SyncedFlushRequest;
5152
import org.elasticsearch.action.admin.indices.forcemerge.ForceMergeRequest;
5253
import org.elasticsearch.action.admin.indices.get.GetIndexRequest;
54+
import org.elasticsearch.action.admin.indices.mapping.get.GetFieldMappingsRequest;
5355
import org.elasticsearch.action.admin.indices.mapping.get.GetMappingsRequest;
5456
import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
5557
import org.elasticsearch.action.admin.indices.open.OpenIndexRequest;
@@ -64,13 +66,15 @@
6466
import org.elasticsearch.action.admin.indices.validate.query.ValidateQueryRequest;
6567
import org.elasticsearch.action.bulk.BulkRequest;
6668
import org.elasticsearch.action.delete.DeleteRequest;
69+
import org.elasticsearch.action.explain.ExplainRequest;
6770
import org.elasticsearch.action.fieldcaps.FieldCapabilitiesRequest;
6871
import org.elasticsearch.action.get.GetRequest;
6972
import org.elasticsearch.action.get.MultiGetRequest;
7073
import org.elasticsearch.action.index.IndexRequest;
7174
import org.elasticsearch.action.ingest.DeletePipelineRequest;
72-
import org.elasticsearch.action.ingest.PutPipelineRequest;
7375
import org.elasticsearch.action.ingest.GetPipelineRequest;
76+
import org.elasticsearch.action.ingest.SimulatePipelineRequest;
77+
import org.elasticsearch.action.ingest.PutPipelineRequest;
7478
import org.elasticsearch.action.search.ClearScrollRequest;
7579
import org.elasticsearch.action.search.MultiSearchRequest;
7680
import org.elasticsearch.action.search.SearchRequest;
@@ -229,6 +233,25 @@ static Request getMappings(GetMappingsRequest getMappingsRequest) throws IOExcep
229233
return request;
230234
}
231235

236+
static Request getFieldMapping(GetFieldMappingsRequest getFieldMappingsRequest) throws IOException {
237+
String[] indices = getFieldMappingsRequest.indices() == null ? Strings.EMPTY_ARRAY : getFieldMappingsRequest.indices();
238+
String[] types = getFieldMappingsRequest.types() == null ? Strings.EMPTY_ARRAY : getFieldMappingsRequest.types();
239+
String[] fields = getFieldMappingsRequest.fields() == null ? Strings.EMPTY_ARRAY : getFieldMappingsRequest.fields();
240+
241+
String endpoint = new EndpointBuilder().addCommaSeparatedPathParts(indices)
242+
.addPathPartAsIs("_mapping").addCommaSeparatedPathParts(types)
243+
.addPathPartAsIs("field").addCommaSeparatedPathParts(fields)
244+
.build();
245+
246+
Request request = new Request(HttpGet.METHOD_NAME, endpoint);
247+
248+
Params parameters = new Params(request);
249+
parameters.withIndicesOptions(getFieldMappingsRequest.indicesOptions());
250+
parameters.withIncludeDefaults(getFieldMappingsRequest.includeDefaults());
251+
parameters.withLocal(getFieldMappingsRequest.local());
252+
return request;
253+
}
254+
232255
static Request refresh(RefreshRequest refreshRequest) {
233256
String[] indices = refreshRequest.indices() == null ? Strings.EMPTY_ARRAY : refreshRequest.indices();
234257
Request request = new Request(HttpPost.METHOD_NAME, endpoint(indices, "_refresh"));
@@ -597,6 +620,19 @@ static Request existsAlias(GetAliasesRequest getAliasesRequest) {
597620
return request;
598621
}
599622

623+
static Request explain(ExplainRequest explainRequest) throws IOException {
624+
Request request = new Request(HttpGet.METHOD_NAME,
625+
endpoint(explainRequest.index(), explainRequest.type(), explainRequest.id(), "_explain"));
626+
627+
Params params = new Params(request);
628+
params.withStoredFields(explainRequest.storedFields());
629+
params.withFetchSourceContext(explainRequest.fetchSourceContext());
630+
params.withRouting(explainRequest.routing());
631+
params.withPreference(explainRequest.preference());
632+
request.setEntity(createEntity(explainRequest, REQUEST_BODY_CONTENT_TYPE));
633+
return request;
634+
}
635+
600636
static Request fieldCaps(FieldCapabilitiesRequest fieldCapabilitiesRequest) {
601637
Request request = new Request(HttpGet.METHOD_NAME, endpoint(fieldCapabilitiesRequest.indices(), "_field_caps"));
602638

@@ -845,6 +881,19 @@ static Request verifyRepository(VerifyRepositoryRequest verifyRepositoryRequest)
845881
return request;
846882
}
847883

884+
static Request createSnapshot(CreateSnapshotRequest createSnapshotRequest) throws IOException {
885+
String endpoint = new EndpointBuilder().addPathPart("_snapshot")
886+
.addPathPart(createSnapshotRequest.repository())
887+
.addPathPart(createSnapshotRequest.snapshot())
888+
.build();
889+
Request request = new Request(HttpPut.METHOD_NAME, endpoint);
890+
Params params = new Params(request);
891+
params.withMasterTimeout(createSnapshotRequest.masterNodeTimeout());
892+
params.withWaitForCompletion(createSnapshotRequest.waitForCompletion());
893+
request.setEntity(createEntity(createSnapshotRequest, REQUEST_BODY_CONTENT_TYPE));
894+
return request;
895+
}
896+
848897
static Request deleteSnapshot(DeleteSnapshotRequest deleteSnapshotRequest) {
849898
String endpoint = new EndpointBuilder().addPathPartAsIs("_snapshot")
850899
.addPathPart(deleteSnapshotRequest.repository())
@@ -886,6 +935,20 @@ static Request validateQuery(ValidateQueryRequest validateQueryRequest) throws I
886935
return request;
887936
}
888937

938+
static Request simulatePipeline(SimulatePipelineRequest simulatePipelineRequest) throws IOException {
939+
EndpointBuilder builder = new EndpointBuilder().addPathPartAsIs("_ingest/pipeline");
940+
if (simulatePipelineRequest.getId() != null && !simulatePipelineRequest.getId().isEmpty()) {
941+
builder.addPathPart(simulatePipelineRequest.getId());
942+
}
943+
builder.addPathPartAsIs("_simulate");
944+
String endpoint = builder.build();
945+
Request request = new Request(HttpPost.METHOD_NAME, endpoint);
946+
Params params = new Params(request);
947+
params.putParam("verbose", Boolean.toString(simulatePipelineRequest.isVerbose()));
948+
request.setEntity(createEntity(simulatePipelineRequest, REQUEST_BODY_CONTENT_TYPE));
949+
return request;
950+
}
951+
889952
static Request getAlias(GetAliasesRequest getAliasesRequest) {
890953
String[] indices = getAliasesRequest.indices() == null ? Strings.EMPTY_ARRAY : getAliasesRequest.indices();
891954
String[] aliases = getAliasesRequest.aliases() == null ? Strings.EMPTY_ARRAY : getAliasesRequest.aliases();

0 commit comments

Comments
 (0)