diff --git a/client/rest/src/main/java/org/elasticsearch/client/RestClient.java b/client/rest/src/main/java/org/elasticsearch/client/RestClient.java
index 934b952608674..a7afbc8ffbd6d 100644
--- a/client/rest/src/main/java/org/elasticsearch/client/RestClient.java
+++ b/client/rest/src/main/java/org/elasticsearch/client/RestClient.java
@@ -85,7 +85,7 @@
* The hosts that are part of the cluster need to be provided at creation time, but can also be replaced later
* by calling {@link #setNodes(Collection)}.
*
- * The method {@link #performRequest(String, String, Map, HttpEntity, Header...)} allows to send a request to the cluster. When
+ * The method {@link #performRequest(Request)} allows to send a request to the cluster. When
* sending a request, a host gets selected out of the provided ones in a round-robin fashion. Failing hosts are marked dead and
* retried after a certain amount of time (minimum 1 minute, maximum 30 minutes), depending on how many times they previously
* failed (the more failures, the later they will be retried). In case of failures all of the alive nodes (or dead nodes that
@@ -145,17 +145,6 @@ public static RestClientBuilder builder(HttpHost... hosts) {
return new RestClientBuilder(hostsToNodes(hosts));
}
- /**
- * Replaces the hosts with which the client communicates.
- *
- * @deprecated prefer {@link #setNodes(Collection)} because it allows you
- * to set metadata for use with {@link NodeSelector}s
- */
- @Deprecated
- public void setHosts(HttpHost... hosts) {
- setNodes(hostsToNodes(hosts));
- }
-
/**
* Replaces the nodes with which the client communicates.
*/
@@ -251,234 +240,6 @@ public void performRequestAsync(Request request, ResponseListener responseListen
}
}
- /**
- * Sends a request to the Elasticsearch cluster that the client points to and waits for the corresponding response
- * to be returned. Shortcut to {@link #performRequest(String, String, Map, HttpEntity, Header...)} but without parameters
- * and request body.
- *
- * @param method the http method
- * @param endpoint the path of the request (without host and port)
- * @param headers the optional request headers
- * @return the response returned by Elasticsearch
- * @throws IOException in case of a problem or the connection was aborted
- * @throws ClientProtocolException in case of an http protocol error
- * @throws ResponseException in case Elasticsearch responded with a status code that indicated an error
- * @deprecated prefer {@link #performRequest(Request)}
- */
- @Deprecated
- public Response performRequest(String method, String endpoint, Header... headers) throws IOException {
- Request request = new Request(method, endpoint);
- addHeaders(request, headers);
- return performRequest(request);
- }
-
- /**
- * Sends a request to the Elasticsearch cluster that the client points to and waits for the corresponding response
- * to be returned. Shortcut to {@link #performRequest(String, String, Map, HttpEntity, Header...)} but without request body.
- *
- * @param method the http method
- * @param endpoint the path of the request (without host and port)
- * @param params the query_string parameters
- * @param headers the optional request headers
- * @return the response returned by Elasticsearch
- * @throws IOException in case of a problem or the connection was aborted
- * @throws ClientProtocolException in case of an http protocol error
- * @throws ResponseException in case Elasticsearch responded with a status code that indicated an error
- * @deprecated prefer {@link #performRequest(Request)}
- */
- @Deprecated
- public Response performRequest(String method, String endpoint, Map params, Header... headers) throws IOException {
- Request request = new Request(method, endpoint);
- addParameters(request, params);
- addHeaders(request, headers);
- return performRequest(request);
- }
-
- /**
- * Sends a request to the Elasticsearch cluster that the client points to and waits for the corresponding response
- * to be returned. Shortcut to {@link #performRequest(String, String, Map, HttpEntity, HttpAsyncResponseConsumerFactory, Header...)}
- * which doesn't require specifying an {@link HttpAsyncResponseConsumerFactory} instance,
- * {@link HttpAsyncResponseConsumerFactory} will be used to create the needed instances of {@link HttpAsyncResponseConsumer}.
- *
- * @param method the http method
- * @param endpoint the path of the request (without host and port)
- * @param params the query_string parameters
- * @param entity the body of the request, null if not applicable
- * @param headers the optional request headers
- * @return the response returned by Elasticsearch
- * @throws IOException in case of a problem or the connection was aborted
- * @throws ClientProtocolException in case of an http protocol error
- * @throws ResponseException in case Elasticsearch responded with a status code that indicated an error
- * @deprecated prefer {@link #performRequest(Request)}
- */
- @Deprecated
- public Response performRequest(String method, String endpoint, Map params,
- HttpEntity entity, Header... headers) throws IOException {
- Request request = new Request(method, endpoint);
- addParameters(request, params);
- request.setEntity(entity);
- addHeaders(request, headers);
- return performRequest(request);
- }
-
- /**
- * Sends a request to the Elasticsearch cluster that the client points to. Blocks until the request is completed and returns
- * its response or fails by throwing an exception. Selects a host out of the provided ones in a round-robin fashion. Failing hosts
- * are marked dead and retried after a certain amount of time (minimum 1 minute, maximum 30 minutes), depending on how many times
- * they previously failed (the more failures, the later they will be retried). In case of failures all of the alive nodes (or dead
- * nodes that deserve a retry) are retried until one responds or none of them does, in which case an {@link IOException} will be thrown.
- *
- * This method works by performing an asynchronous call and waiting
- * for the result. If the asynchronous call throws an exception we wrap
- * it and rethrow it so that the stack trace attached to the exception
- * contains the call site. While we attempt to preserve the original
- * exception this isn't always possible and likely haven't covered all of
- * the cases. You can get the original exception from
- * {@link Exception#getCause()}.
- *
- * @param method the http method
- * @param endpoint the path of the request (without host and port)
- * @param params the query_string parameters
- * @param entity the body of the request, null if not applicable
- * @param httpAsyncResponseConsumerFactory the {@link HttpAsyncResponseConsumerFactory} used to create one
- * {@link HttpAsyncResponseConsumer} callback per retry. Controls how the response body gets streamed from a non-blocking HTTP
- * connection on the client side.
- * @param headers the optional request headers
- * @return the response returned by Elasticsearch
- * @throws IOException in case of a problem or the connection was aborted
- * @throws ClientProtocolException in case of an http protocol error
- * @throws ResponseException in case Elasticsearch responded with a status code that indicated an error
- * @deprecated prefer {@link #performRequest(Request)}
- */
- @Deprecated
- public Response performRequest(String method, String endpoint, Map params,
- HttpEntity entity, HttpAsyncResponseConsumerFactory httpAsyncResponseConsumerFactory,
- Header... headers) throws IOException {
- Request request = new Request(method, endpoint);
- addParameters(request, params);
- request.setEntity(entity);
- setOptions(request, httpAsyncResponseConsumerFactory, headers);
- return performRequest(request);
- }
-
- /**
- * Sends a request to the Elasticsearch cluster that the client points to. Doesn't wait for the response, instead
- * the provided {@link ResponseListener} will be notified upon completion or failure. Shortcut to
- * {@link #performRequestAsync(String, String, Map, HttpEntity, ResponseListener, Header...)} but without parameters and request body.
- *
- * @param method the http method
- * @param endpoint the path of the request (without host and port)
- * @param responseListener the {@link ResponseListener} to notify when the request is completed or fails
- * @param headers the optional request headers
- * @deprecated prefer {@link #performRequestAsync(Request, ResponseListener)}
- */
- @Deprecated
- public void performRequestAsync(String method, String endpoint, ResponseListener responseListener, Header... headers) {
- Request request;
- try {
- request = new Request(method, endpoint);
- addHeaders(request, headers);
- } catch (Exception e) {
- responseListener.onFailure(e);
- return;
- }
- performRequestAsync(request, responseListener);
- }
-
- /**
- * Sends a request to the Elasticsearch cluster that the client points to. Doesn't wait for the response, instead
- * the provided {@link ResponseListener} will be notified upon completion or failure. Shortcut to
- * {@link #performRequestAsync(String, String, Map, HttpEntity, ResponseListener, Header...)} but without request body.
- *
- * @param method the http method
- * @param endpoint the path of the request (without host and port)
- * @param params the query_string parameters
- * @param responseListener the {@link ResponseListener} to notify when the request is completed or fails
- * @param headers the optional request headers
- * @deprecated prefer {@link #performRequestAsync(Request, ResponseListener)}
- */
- @Deprecated
- public void performRequestAsync(String method, String endpoint, Map params,
- ResponseListener responseListener, Header... headers) {
- Request request;
- try {
- request = new Request(method, endpoint);
- addParameters(request, params);
- addHeaders(request, headers);
- } catch (Exception e) {
- responseListener.onFailure(e);
- return;
- }
- performRequestAsync(request, responseListener);
- }
-
- /**
- * Sends a request to the Elasticsearch cluster that the client points to. Doesn't wait for the response, instead
- * the provided {@link ResponseListener} will be notified upon completion or failure.
- * Shortcut to {@link #performRequestAsync(String, String, Map, HttpEntity, HttpAsyncResponseConsumerFactory, ResponseListener,
- * Header...)} which doesn't require specifying an {@link HttpAsyncResponseConsumerFactory} instance,
- * {@link HttpAsyncResponseConsumerFactory} will be used to create the needed instances of {@link HttpAsyncResponseConsumer}.
- *
- * @param method the http method
- * @param endpoint the path of the request (without host and port)
- * @param params the query_string parameters
- * @param entity the body of the request, null if not applicable
- * @param responseListener the {@link ResponseListener} to notify when the request is completed or fails
- * @param headers the optional request headers
- * @deprecated prefer {@link #performRequestAsync(Request, ResponseListener)}
- */
- @Deprecated
- public void performRequestAsync(String method, String endpoint, Map params,
- HttpEntity entity, ResponseListener responseListener, Header... headers) {
- Request request;
- try {
- request = new Request(method, endpoint);
- addParameters(request, params);
- request.setEntity(entity);
- addHeaders(request, headers);
- } catch (Exception e) {
- responseListener.onFailure(e);
- return;
- }
- performRequestAsync(request, responseListener);
- }
-
- /**
- * Sends a request to the Elasticsearch cluster that the client points to. The request is executed asynchronously
- * and the provided {@link ResponseListener} gets notified upon request completion or failure.
- * Selects a host out of the provided ones in a round-robin fashion. Failing hosts are marked dead and retried after a certain
- * amount of time (minimum 1 minute, maximum 30 minutes), depending on how many times they previously failed (the more failures,
- * the later they will be retried). In case of failures all of the alive nodes (or dead nodes that deserve a retry) are retried
- * until one responds or none of them does, in which case an {@link IOException} will be thrown.
- *
- * @param method the http method
- * @param endpoint the path of the request (without host and port)
- * @param params the query_string parameters
- * @param entity the body of the request, null if not applicable
- * @param httpAsyncResponseConsumerFactory the {@link HttpAsyncResponseConsumerFactory} used to create one
- * {@link HttpAsyncResponseConsumer} callback per retry. Controls how the response body gets streamed from a non-blocking HTTP
- * connection on the client side.
- * @param responseListener the {@link ResponseListener} to notify when the request is completed or fails
- * @param headers the optional request headers
- * @deprecated prefer {@link #performRequestAsync(Request, ResponseListener)}
- */
- @Deprecated
- public void performRequestAsync(String method, String endpoint, Map params,
- HttpEntity entity, HttpAsyncResponseConsumerFactory httpAsyncResponseConsumerFactory,
- ResponseListener responseListener, Header... headers) {
- Request request;
- try {
- request = new Request(method, endpoint);
- addParameters(request, params);
- request.setEntity(entity);
- setOptions(request, httpAsyncResponseConsumerFactory, headers);
- } catch (Exception e) {
- responseListener.onFailure(e);
- return;
- }
- performRequestAsync(request, responseListener);
- }
-
void performRequestAsyncNoCatch(Request request, ResponseListener listener) throws IOException {
Map requestParams = new HashMap<>(request.getParameters());
//ignore is a special parameter supported by the clients, shouldn't be sent to es
@@ -1035,42 +796,4 @@ public void remove() {
itr.remove();
}
}
-
- /**
- * Add all headers from the provided varargs argument to a {@link Request}. This only exists
- * to support methods that exist for backwards compatibility.
- */
- @Deprecated
- private static void addHeaders(Request request, Header... headers) {
- setOptions(request, RequestOptions.DEFAULT.getHttpAsyncResponseConsumerFactory(), headers);
- }
-
- /**
- * Add all headers from the provided varargs argument to a {@link Request}. This only exists
- * to support methods that exist for backwards compatibility.
- */
- @Deprecated
- private static void setOptions(Request request, HttpAsyncResponseConsumerFactory httpAsyncResponseConsumerFactory,
- Header... headers) {
- Objects.requireNonNull(headers, "headers cannot be null");
- RequestOptions.Builder options = request.getOptions().toBuilder();
- for (Header header : headers) {
- Objects.requireNonNull(header, "header cannot be null");
- options.addHeader(header.getName(), header.getValue());
- }
- options.setHttpAsyncResponseConsumerFactory(httpAsyncResponseConsumerFactory);
- request.setOptions(options);
- }
-
- /**
- * Add all parameters from a map to a {@link Request}. This only exists
- * to support methods that exist for backwards compatibility.
- */
- @Deprecated
- private static void addParameters(Request request, Map parameters) {
- Objects.requireNonNull(parameters, "parameters cannot be null");
- for (Map.Entry entry : parameters.entrySet()) {
- request.addParameter(entry.getKey(), entry.getValue());
- }
- }
}
diff --git a/client/rest/src/test/java/org/elasticsearch/client/RestClientSingleHostIntegTests.java b/client/rest/src/test/java/org/elasticsearch/client/RestClientSingleHostIntegTests.java
index 6b5bb3c98ee5b..fb58f18d42af0 100644
--- a/client/rest/src/test/java/org/elasticsearch/client/RestClientSingleHostIntegTests.java
+++ b/client/rest/src/test/java/org/elasticsearch/client/RestClientSingleHostIntegTests.java
@@ -45,7 +45,6 @@
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.util.Arrays;
-import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
@@ -215,9 +214,15 @@ public void testHeaders() throws IOException {
}
final Header[] requestHeaders = RestClientTestUtil.randomHeaders(getRandom(), "Header");
final int statusCode = randomStatusCode(getRandom());
+ Request request = new Request(method, "/" + statusCode);
+ RequestOptions.Builder options = request.getOptions().toBuilder();
+ for (Header header : requestHeaders) {
+ options.addHeader(header.getName(), header.getValue());
+ }
+ request.setOptions(options);
Response esResponse;
try {
- esResponse = restClient.performRequest(method, "/" + statusCode, Collections.emptyMap(), requestHeaders);
+ esResponse = restClient.performRequest(request);
} catch (ResponseException e) {
esResponse = e.getResponse();
}
diff --git a/client/rest/src/test/java/org/elasticsearch/client/RestClientSingleHostTests.java b/client/rest/src/test/java/org/elasticsearch/client/RestClientSingleHostTests.java
index cb326f4a24c8d..0c589e6a40c8a 100644
--- a/client/rest/src/test/java/org/elasticsearch/client/RestClientSingleHostTests.java
+++ b/client/rest/src/test/java/org/elasticsearch/client/RestClientSingleHostTests.java
@@ -59,7 +59,6 @@
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
-import java.util.Map;
import java.util.Set;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -69,7 +68,6 @@
import static org.elasticsearch.client.RestClientTestUtil.getAllErrorStatusCodes;
import static org.elasticsearch.client.RestClientTestUtil.getHttpMethods;
import static org.elasticsearch.client.RestClientTestUtil.getOkStatusCodes;
-import static org.elasticsearch.client.RestClientTestUtil.randomHttpMethod;
import static org.elasticsearch.client.RestClientTestUtil.randomStatusCode;
import static org.elasticsearch.client.SyncResponseListenerTests.assertExceptionStackContainsCallingMethod;
import static org.hamcrest.CoreMatchers.equalTo;
@@ -192,7 +190,7 @@ public void testInternalHttpRequest() throws Exception {
public void testOkStatusCodes() throws IOException {
for (String method : getHttpMethods()) {
for (int okStatusCode : getOkStatusCodes()) {
- Response response = performRequest(method, "/" + okStatusCode);
+ Response response = restClient.performRequest(new Request(method, "/" + okStatusCode));
assertThat(response.getStatusLine().getStatusCode(), equalTo(okStatusCode));
}
}
@@ -223,13 +221,11 @@ public void testErrorStatusCodes() throws IOException {
//error status codes should cause an exception to be thrown
for (int errorStatusCode : getAllErrorStatusCodes()) {
try {
- Map params;
- if (ignoreParam.isEmpty()) {
- params = Collections.emptyMap();
- } else {
- params = Collections.singletonMap("ignore", ignoreParam);
+ Request request = new Request(method, "/" + errorStatusCode);
+ if (false == ignoreParam.isEmpty()) {
+ request.addParameter("ignore", ignoreParam);
}
- Response response = performRequest(method, "/" + errorStatusCode, params);
+ Response response = restClient.performRequest(request);
if (expectedIgnores.contains(errorStatusCode)) {
//no exception gets thrown although we got an error status code, as it was configured to be ignored
assertEquals(errorStatusCode, response.getStatusLine().getStatusCode());
@@ -256,14 +252,14 @@ public void testIOExceptions() {
for (String method : getHttpMethods()) {
//IOExceptions should be let bubble up
try {
- performRequest(method, "/coe");
+ restClient.performRequest(new Request(method, "/coe"));
fail("request should have failed");
} catch(IOException e) {
assertThat(e, instanceOf(ConnectTimeoutException.class));
}
failureListener.assertCalled(singletonList(node));
try {
- performRequest(method, "/soe");
+ restClient.performRequest(new Request(method, "/soe"));
fail("request should have failed");
} catch(IOException e) {
assertThat(e, instanceOf(SocketTimeoutException.class));
@@ -313,48 +309,6 @@ public void testBody() throws IOException {
}
}
- /**
- * @deprecated will remove method in 7.0 but needs tests until then. Replaced by {@link RequestTests}.
- */
- @Deprecated
- public void tesPerformRequestOldStyleNullHeaders() throws IOException {
- String method = randomHttpMethod(getRandom());
- int statusCode = randomStatusCode(getRandom());
- try {
- performRequest(method, "/" + statusCode, (Header[])null);
- fail("request should have failed");
- } catch(NullPointerException e) {
- assertEquals("request headers must not be null", e.getMessage());
- }
- try {
- performRequest(method, "/" + statusCode, (Header)null);
- fail("request should have failed");
- } catch(NullPointerException e) {
- assertEquals("request header must not be null", e.getMessage());
- }
- }
-
- /**
- * @deprecated will remove method in 7.0 but needs tests until then. Replaced by {@link RequestTests#testAddParameters()}.
- */
- @Deprecated
- public void testPerformRequestOldStyleWithNullParams() throws IOException {
- String method = randomHttpMethod(getRandom());
- int statusCode = randomStatusCode(getRandom());
- try {
- restClient.performRequest(method, "/" + statusCode, (Map)null);
- fail("request should have failed");
- } catch(NullPointerException e) {
- assertEquals("parameters cannot be null", e.getMessage());
- }
- try {
- restClient.performRequest(method, "/" + statusCode, null, (HttpEntity)null);
- fail("request should have failed");
- } catch(NullPointerException e) {
- assertEquals("parameters cannot be null", e.getMessage());
- }
- }
-
/**
* End to end test for request and response headers. Exercises the mock http client ability to send back
* whatever headers it has received.
@@ -464,35 +418,4 @@ private HttpUriRequest performRandomRequest(String method) throws Exception {
}
return expectedRequest;
}
-
- /**
- * @deprecated prefer {@link RestClient#performRequest(Request)}.
- */
- @Deprecated
- private Response performRequest(String method, String endpoint, Header... headers) throws IOException {
- return performRequest(method, endpoint, Collections.emptyMap(), headers);
- }
-
- /**
- * @deprecated prefer {@link RestClient#performRequest(Request)}.
- */
- @Deprecated
- private Response performRequest(String method, String endpoint, Map params, Header... headers) throws IOException {
- int methodSelector;
- if (params.isEmpty()) {
- methodSelector = randomIntBetween(0, 2);
- } else {
- methodSelector = randomIntBetween(1, 2);
- }
- switch(methodSelector) {
- case 0:
- return restClient.performRequest(method, endpoint, headers);
- case 1:
- return restClient.performRequest(method, endpoint, params, headers);
- case 2:
- return restClient.performRequest(method, endpoint, params, (HttpEntity)null, headers);
- default:
- throw new UnsupportedOperationException();
- }
- }
}
diff --git a/client/rest/src/test/java/org/elasticsearch/client/RestClientTests.java b/client/rest/src/test/java/org/elasticsearch/client/RestClientTests.java
index ef94b70542f6c..4a037b18404a1 100644
--- a/client/rest/src/test/java/org/elasticsearch/client/RestClientTests.java
+++ b/client/rest/src/test/java/org/elasticsearch/client/RestClientTests.java
@@ -42,7 +42,6 @@
import java.util.concurrent.atomic.AtomicInteger;
import static java.util.Collections.singletonList;
-import static org.elasticsearch.client.RestClientTestUtil.getHttpMethods;
import static org.hamcrest.Matchers.instanceOf;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertSame;
@@ -90,88 +89,6 @@ public void onFailure(Exception exception) {
}
}
- /**
- * @deprecated will remove method in 7.0 but needs tests until then. Replaced by {@link #testPerformAsyncWithUnsupportedMethod()}.
- */
- @Deprecated
- public void testPerformAsyncOldStyleWithUnsupportedMethod() throws Exception {
- final CountDownLatch latch = new CountDownLatch(1);
- try (RestClient restClient = createRestClient()) {
- restClient.performRequestAsync("unsupported", randomAsciiLettersOfLength(5), new ResponseListener() {
- @Override
- public void onSuccess(Response response) {
- throw new UnsupportedOperationException("onSuccess cannot be called when using a mocked http client");
- }
-
- @Override
- public void onFailure(Exception exception) {
- try {
- assertThat(exception, instanceOf(UnsupportedOperationException.class));
- assertEquals("http method not supported: unsupported", exception.getMessage());
- } finally {
- latch.countDown();
- }
- }
- });
- assertTrue("time out waiting for request to return", latch.await(1000, TimeUnit.MILLISECONDS));
- }
- }
-
- /**
- * @deprecated will remove method in 7.0 but needs tests until then. Replaced by {@link RequestTests#testAddParameters()}.
- */
- @Deprecated
- public void testPerformOldStyleAsyncWithNullParams() throws Exception {
- final CountDownLatch latch = new CountDownLatch(1);
- try (RestClient restClient = createRestClient()) {
- restClient.performRequestAsync(randomAsciiLettersOfLength(5), randomAsciiLettersOfLength(5), null, new ResponseListener() {
- @Override
- public void onSuccess(Response response) {
- throw new UnsupportedOperationException("onSuccess cannot be called when using a mocked http client");
- }
-
- @Override
- public void onFailure(Exception exception) {
- try {
- assertThat(exception, instanceOf(NullPointerException.class));
- assertEquals("parameters cannot be null", exception.getMessage());
- } finally {
- latch.countDown();
- }
- }
- });
- assertTrue("time out waiting for request to return", latch.await(1000, TimeUnit.MILLISECONDS));
- }
- }
-
- /**
- * @deprecated will remove method in 7.0 but needs tests until then. Replaced by {@link RequestTests}.
- */
- @Deprecated
- public void testPerformOldStyleAsyncWithNullHeaders() throws Exception {
- final CountDownLatch latch = new CountDownLatch(1);
- try (RestClient restClient = createRestClient()) {
- ResponseListener listener = new ResponseListener() {
- @Override
- public void onSuccess(Response response) {
- throw new UnsupportedOperationException("onSuccess cannot be called when using a mocked http client");
- }
-
- @Override
- public void onFailure(Exception exception) {
- try {
- assertThat(exception, instanceOf(NullPointerException.class));
- assertEquals("header cannot be null", exception.getMessage());
- } finally {
- latch.countDown();
- }
- }
- };
- restClient.performRequestAsync("GET", randomAsciiLettersOfLength(5), listener, (Header) null);
- assertTrue("time out waiting for request to return", latch.await(1000, TimeUnit.MILLISECONDS));
- }
- }
-
public void testPerformAsyncWithWrongEndpoint() throws Exception {
final CountDownLatch latch = new CountDownLatch(1);
try (RestClient restClient = createRestClient()) {
@@ -195,33 +112,6 @@ public void onFailure(Exception exception) {
}
}
- /**
- * @deprecated will remove method in 7.0 but needs tests until then. Replaced by {@link #testPerformAsyncWithWrongEndpoint()}.
- */
- @Deprecated
- public void testPerformAsyncOldStyleWithWrongEndpoint() throws Exception {
- final CountDownLatch latch = new CountDownLatch(1);
- try (RestClient restClient = createRestClient()) {
- restClient.performRequestAsync("GET", "::http:///", new ResponseListener() {
- @Override
- public void onSuccess(Response response) {
- throw new UnsupportedOperationException("onSuccess cannot be called when using a mocked http client");
- }
-
- @Override
- public void onFailure(Exception exception) {
- try {
- assertThat(exception, instanceOf(IllegalArgumentException.class));
- assertEquals("Expected scheme name at index 0: ::http:///", exception.getMessage());
- } finally {
- latch.countDown();
- }
- }
- });
- assertTrue("time out waiting for request to return", latch.await(1000, TimeUnit.MILLISECONDS));
- }
- }
-
public void testBuildUriLeavesPathUntouched() {
final Map emptyMap = Collections.emptyMap();
{
@@ -259,34 +149,6 @@ public void testBuildUriLeavesPathUntouched() {
}
}
- @Deprecated
- public void testSetHostsWrongArguments() throws IOException {
- try (RestClient restClient = createRestClient()) {
- restClient.setHosts((HttpHost[]) null);
- fail("setHosts should have failed");
- } catch (IllegalArgumentException e) {
- assertEquals("hosts must not be null nor empty", e.getMessage());
- }
- try (RestClient restClient = createRestClient()) {
- restClient.setHosts();
- fail("setHosts should have failed");
- } catch (IllegalArgumentException e) {
- assertEquals("hosts must not be null nor empty", e.getMessage());
- }
- try (RestClient restClient = createRestClient()) {
- restClient.setHosts((HttpHost) null);
- fail("setHosts should have failed");
- } catch (IllegalArgumentException e) {
- assertEquals("host cannot be null", e.getMessage());
- }
- try (RestClient restClient = createRestClient()) {
- restClient.setHosts(new HttpHost("localhost", 9200), null, new HttpHost("localhost", 9201));
- fail("setHosts should have failed");
- } catch (IllegalArgumentException e) {
- assertEquals("host cannot be null", e.getMessage());
- }
- }
-
public void testSetNodesWrongArguments() throws IOException {
try (RestClient restClient = createRestClient()) {
restClient.setNodes(null);
@@ -348,23 +210,6 @@ public void testSetNodesDuplicatedHosts() throws Exception {
}
}
- /**
- * @deprecated will remove method in 7.0 but needs tests until then. Replaced by {@link RequestTests#testConstructor()}.
- */
- @Deprecated
- public void testNullPath() throws IOException {
- try (RestClient restClient = createRestClient()) {
- for (String method : getHttpMethods()) {
- try {
- restClient.performRequest(method, null);
- fail("path set to null should fail!");
- } catch (NullPointerException e) {
- assertEquals("endpoint cannot be null", e.getMessage());
- }
- }
- }
- }
-
public void testSelectHosts() throws IOException {
Node n1 = new Node(new HttpHost("1"), null, null, "1", null, null);
Node n2 = new Node(new HttpHost("2"), null, null, "2", null, null);
diff --git a/docs/reference/migration/migrate_7_0.asciidoc b/docs/reference/migration/migrate_7_0.asciidoc
index 42fd6b7afbe73..924a6984dc044 100644
--- a/docs/reference/migration/migrate_7_0.asciidoc
+++ b/docs/reference/migration/migrate_7_0.asciidoc
@@ -39,6 +39,7 @@ Elasticsearch 6.x in order to be readable by Elasticsearch 7.x.
* <>
* <>
* <>
+* <>
include::migrate_7_0/aggregations.asciidoc[]
include::migrate_7_0/analysis.asciidoc[]
@@ -53,4 +54,5 @@ include::migrate_7_0/java.asciidoc[]
include::migrate_7_0/settings.asciidoc[]
include::migrate_7_0/scripting.asciidoc[]
include::migrate_7_0/snapshotstats.asciidoc[]
-include::migrate_7_0/restclient.asciidoc[]
\ No newline at end of file
+include::migrate_7_0/restclient.asciidoc[]
+include::migrate_7_0/low_level_restclient.asciidoc[]
diff --git a/docs/reference/migration/migrate_7_0/low_level_restclient.asciidoc b/docs/reference/migration/migrate_7_0/low_level_restclient.asciidoc
new file mode 100644
index 0000000000000..77f5266763ffe
--- /dev/null
+++ b/docs/reference/migration/migrate_7_0/low_level_restclient.asciidoc
@@ -0,0 +1,14 @@
+[[breaking_70_low_level_restclient_changes]]
+=== Low-level REST client changes
+
+==== Deprecated flavors of performRequest have been removed
+
+We deprecated the flavors of `performRequest` and `performRequestAsync` that
+do not take `Request` objects in 6.4.0 in favor of the flavors that take
+`Request` objects because those methods can be extended without breaking
+backwards compatibility.
+
+==== Removed setHosts
+
+We deprecated `setHosts` in 6.4.0 in favor of `setNodes` because it supports
+host metadata used by the `NodeSelector`.