You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2019/11/17 13:55:06 UTC
[juneau] branch master updated: JUNEAU-162 RestClient class should
be subclassible.
This is an automated email from the ASF dual-hosted git repository.
jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git
The following commit(s) were added to refs/heads/master by this push:
new 9669df2 JUNEAU-162 RestClient class should be subclassible.
9669df2 is described below
commit 9669df2a0ad8765e63d7ecffe6e9a1dceef716f5
Author: JamesBognar <ja...@apache.org>
AuthorDate: Sun Nov 17 08:54:47 2019 -0500
JUNEAU-162 RestClient class should be subclassible.
---
juneau-doc/docs/ReleaseNotes/8.1.2.html | 7 +
.../juneau/examples/rest/ContentComboTestBase.java | 2 +-
.../org/apache/juneau/rest/test/RestTestcase.java | 2 +-
.../apache/juneau/rest/test/TestMicroservice.java | 11 +-
.../org/apache/juneau/rest/client/RestCall.java | 10 +-
.../org/apache/juneau/rest/client/RestClient.java | 48 ++-
.../juneau/rest/client/RestClientBuilder.java | 400 +++++++++++++++------
7 files changed, 338 insertions(+), 142 deletions(-)
diff --git a/juneau-doc/docs/ReleaseNotes/8.1.2.html b/juneau-doc/docs/ReleaseNotes/8.1.2.html
index 76c23a8..02cb465 100644
--- a/juneau-doc/docs/ReleaseNotes/8.1.2.html
+++ b/juneau-doc/docs/ReleaseNotes/8.1.2.html
@@ -41,6 +41,13 @@
<h5 class='topic w800'>juneau-rest-client</h5>
<ul class='spaced-list'>
+ <li>
+ {@link oajr.RestClient} is now extendible. The constructor has been made public and simplified to:
+ {@link oajr.RestClient(RestClientBuilder)}.
+ <li>
+ Duplicate methods between {@link oajr.RestClientBuilder} and {@link org.apache.http.impl.client.HttpClientBuilder}
+ have been made deprecated on the former. This eliminates the need to try to keep the two builder classes in
+ sync.
</ul>
<h5 class='topic w800'>juneau-examples</h5>
diff --git a/juneau-examples/juneau-examples-rest-jetty-ftest/src/test/java/org/apache/juneau/examples/rest/ContentComboTestBase.java b/juneau-examples/juneau-examples-rest-jetty-ftest/src/test/java/org/apache/juneau/examples/rest/ContentComboTestBase.java
index 4203744..50e5bd4 100644
--- a/juneau-examples/juneau-examples-rest-jetty-ftest/src/test/java/org/apache/juneau/examples/rest/ContentComboTestBase.java
+++ b/juneau-examples/juneau-examples-rest-jetty-ftest/src/test/java/org/apache/juneau/examples/rest/ContentComboTestBase.java
@@ -59,7 +59,7 @@ public class ContentComboTestBase extends RestTestcase {
protected RestClient getClient(String label, Serializer serializer, Parser parser) {
if (! clients.containsKey(label))
- clients.put(label, SamplesMicroservice.client(serializer, parser).pooled().build());
+ clients.put(label, SamplesMicroservice.client(serializer, parser).build());
return clients.get(label);
}
diff --git a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/RestTestcase.java b/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/RestTestcase.java
index 1c897a3..ee1faa2 100644
--- a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/RestTestcase.java
+++ b/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/RestTestcase.java
@@ -46,7 +46,7 @@ public class RestTestcase {
*/
protected RestClient getClient(String label, Serializer serializer, Parser parser) {
if (! clients.containsKey(label))
- clients.put(label, TestMicroservice.client(serializer, parser).pooled().build());
+ clients.put(label, TestMicroservice.client(serializer, parser).build());
return clients.get(label);
}
diff --git a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/TestMicroservice.java b/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/TestMicroservice.java
index 6349d9c..8c77e5f 100644
--- a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/TestMicroservice.java
+++ b/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/TestMicroservice.java
@@ -105,10 +105,12 @@ public class TestMicroservice {
try {
final RequestLine[] currentRequest = new RequestLine[1];
final StatusLine[] currentResponse = new StatusLine[1];
- return RestClient.create()
+ RestClientBuilder rc = RestClient.create()
.json()
.rootUrl(microserviceURI)
- .retryHandler(
+ .noTrace();
+ rc.getHttpClientBuilder()
+ .setRetryHandler(
new HttpRequestRetryHandler() {
@Override
public boolean retryRequest(IOException exception, int executionCount, HttpContext context) {
@@ -129,9 +131,8 @@ public class TestMicroservice {
public void process(HttpResponse r, HttpContext c) throws HttpException, IOException {
currentResponse[0] = r.getStatusLine();
}
- })
- .noTrace()
- ;
+ });
+ return rc;
} catch (Exception e) {
throw new RuntimeException(e);
}
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java
index 99d074b..52b2e29 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java
@@ -1609,6 +1609,7 @@ public final class RestCall extends BeanSession implements Closeable {
isConnected = true;
try {
+ HttpEntityEnclosingRequestBase request2 = request instanceof HttpEntityEnclosingRequestBase ? (HttpEntityEnclosingRequestBase)request : null;
request.setURI(uriBuilder.build());
@@ -1617,7 +1618,7 @@ public final class RestCall extends BeanSession implements Closeable {
if (hasInput && formData != null)
throw new RestCallException("Both input and form data found on same request.");
- if (! (request instanceof HttpEntityEnclosingRequestBase))
+ if (request2 == null)
throw new RestCallException(0, "Method does not support content entity.", request.getMethod(), request.getURI(), null);
HttpEntity entity = null;
@@ -1641,7 +1642,7 @@ public final class RestCall extends BeanSession implements Closeable {
if (retries > 1 && ! entity.isRepeatable())
throw new RestCallException("Rest call set to retryable, but entity is not repeatable.");
- ((HttpEntityEnclosingRequestBase)request).setEntity(entity);
+ request2.setEntity(entity);
}
int sc = 0;
@@ -1649,7 +1650,10 @@ public final class RestCall extends BeanSession implements Closeable {
retries--;
Exception ex = null;
try {
- response = client.execute(request);
+ if (request2 != null)
+ response = client.execute(request2);
+ else
+ response = client.execute(request);
sc = (response == null || response.getStatusLine() == null) ? -1 : response.getStatusLine().getStatusCode();
} catch (Exception e) {
ex = e;
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
index f2162e2..60d52d8 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
@@ -163,7 +163,6 @@ public class RestClient extends BeanContext implements Closeable {
* <li><b>Default:</b> empty map
* <li><b>Methods:</b>
* <ul>
- * <li class='jm'>{@link RestClientBuilder#defaultHeaders(Collection)}
* <li class='jm'>{@link RestClientBuilder#header(String, Object)}
* </ul>
* </ul>
@@ -480,26 +479,14 @@ public class RestClient extends BeanContext implements Closeable {
/**
* Constructor.
*
- * @param ps
- * Configuration properties for this client.
- * <br>Can be <jk>null</jk>.
- * @param httpClientBuilder
- * The HTTP client builder to use to create the HTTP client.
- * <br>Can be <jk>null</jk>.
- * @param httpClient
- * The HTTP client.
- * <br>Must not be <jk>null</jk>.
+ * @param builder The REST client builder.
*/
@SuppressWarnings("unchecked")
- protected RestClient(
- PropertyStore ps,
- HttpClientBuilder httpClientBuilder,
- CloseableHttpClient httpClient) {
- super(ps);
- if (ps == null)
- ps = PropertyStore.DEFAULT;
- this.httpClientBuilder = httpClientBuilder;
- this.httpClient = httpClient;
+ protected RestClient(RestClientBuilder builder) {
+ super(builder.getPropertyStore());
+ PropertyStore ps = getPropertyStore();
+ this.httpClientBuilder = builder.getHttpClientBuilder();
+ this.httpClient = builder.getHttpClient();
this.keepHttpClientOpen = getBooleanProperty(RESTCLIENT_keepHttpClientOpen, false);
this.headers = getMapProperty(RESTCLIENT_headers, String.class);
this.query = getMapProperty(RESTCLIENT_query, String.class);
@@ -591,7 +578,7 @@ public class RestClient extends BeanContext implements Closeable {
}
/**
- * Execute the specified request.
+ * Execute the specified no-body request (e.g. GET/DELETE).
*
* <p>
* Subclasses can override this method to provide specialized handling.
@@ -601,7 +588,22 @@ public class RestClient extends BeanContext implements Closeable {
* @throws IOException Stream exception occurred.
* @throws ClientProtocolException ignals an error in the HTTP protocol.
*/
- protected HttpResponse execute(HttpUriRequest req) throws ClientProtocolException, IOException {
+ protected HttpResponse execute(HttpRequestBase req) throws ClientProtocolException, IOException {
+ return httpClient.execute(req);
+ }
+
+ /**
+ * Execute the specified body request (e.g. POST/PUT).
+ *
+ * <p>
+ * Subclasses can override this method to provide specialized handling.
+ *
+ * @param req The HTTP request.
+ * @return The HTTP response.
+ * @throws IOException Stream exception occurred.
+ * @throws ClientProtocolException ignals an error in the HTTP protocol.
+ */
+ protected HttpResponse execute(HttpEntityEnclosingRequestBase req) throws ClientProtocolException, IOException {
return httpClient.execute(req);
}
@@ -1055,8 +1057,6 @@ public class RestClient extends BeanContext implements Closeable {
* <li>
* If you plan on using your proxy in a multi-threaded environment, you'll want to use an underlying
* pooling client connection manager.
- * The easiest way to do this is to use the {@link RestClientBuilder#pooled()} method.
- * If you don't do this, you may end up seeing "Connection still allocated" exceptions.
* </ul>
*
* @param interfaceClass The interface to create a proxy for.
@@ -1242,8 +1242,6 @@ public class RestClient extends BeanContext implements Closeable {
* <li>
* If you plan on using your proxy in a multi-threaded environment, you'll want to use an underlying
* pooling client connection manager.
- * The easiest way to do this is to use the {@link RestClientBuilder#pooled()} method.
- * If you don't do this, you may end up seeing "Connection still allocated" exceptions.
* </ul>
*
* @param interfaceClass The interface to create a proxy for.
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
index 9958fb8..984749c 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClientBuilder.java
@@ -83,16 +83,18 @@ import org.apache.juneau.xml.*;
*/
public class RestClientBuilder extends BeanContextBuilder {
- private HttpClientConnectionManager httpClientConnectionManager;
private HttpClientBuilder httpClientBuilder;
private CloseableHttpClient httpClient;
- private boolean enableSsl = false;
- private HostnameVerifier hostnameVerifier;
- private KeyManager[] keyManagers;
- private TrustManager[] trustManagers;
- private SecureRandom secureRandom;
- private String[] sslProtocols, cipherSuites;
- private boolean pooled;
+
+ // Deprecated
+ @Deprecated private HttpClientConnectionManager httpClientConnectionManager;
+ @Deprecated private boolean enableSsl = false;
+ @Deprecated private HostnameVerifier hostnameVerifier;
+ @Deprecated private KeyManager[] keyManagers;
+ @Deprecated private TrustManager[] trustManagers;
+ @Deprecated private SecureRandom secureRandom;
+ @Deprecated private String[] sslProtocols, cipherSuites;
+ @Deprecated private boolean pooled;
/**
* Constructor.
@@ -108,19 +110,15 @@ public class RestClientBuilder extends BeanContextBuilder {
this.httpClientBuilder = httpClientBuilder != null ? httpClientBuilder : createHttpClientBuilder();
}
- @SuppressWarnings("resource")
@Override /* ContextBuilder */
public RestClient build() {
- try {
- CloseableHttpClient c = httpClient != null ? httpClient : createHttpClient();
- PropertyStore ps = psb.build();
-
- return new RestClient(ps, httpClientBuilder, c);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
+ return new RestClient(this);
}
+ //------------------------------------------------------------------------------------------------------------------
+ // Convenience marshalling support methods.
+ //------------------------------------------------------------------------------------------------------------------
+
/**
* Convenience method for specifying JSON as the transmission media type.
*
@@ -229,6 +227,64 @@ public class RestClientBuilder extends BeanContextBuilder {
return serializer(OpenApiSerializer.class).parser(OpenApiParser.class);
}
+ //------------------------------------------------------------------------------------------------------------------
+ // HttpClientBuilder
+ //------------------------------------------------------------------------------------------------------------------
+
+ /**
+ * Creates an instance of an {@link HttpClientBuilder} to be used to create the {@link HttpClient}.
+ *
+ * <p>
+ * Subclasses can override this method to provide their own client builder.
+ * The builder can also be specified using the {@link #httpClientBuilder(HttpClientBuilder)} method.
+ *
+ * <p>
+ * The predefined method returns an {@link HttpClientBuilder} with the following settings:
+ * <ul>
+ * <li>Lax redirect strategy.
+ * </ul>
+ *
+ * @return The HTTP client builder to use to create the HTTP client.
+ */
+ protected HttpClientBuilder createHttpClientBuilder() {
+ return HttpClientBuilder.create().setRedirectStrategy(new AllowAllRedirects());
+ }
+
+ /**
+ * Returns the {@link HttpClientBuilder} that will be used to create the {@link HttpClient} used by {@link RestClient}.
+ *
+ * <p>
+ * This method can be used to make customizations to the {@link HttpClient}.
+ *
+ * <p>
+ * If not set via {@link #httpClientBuilder(HttpClientBuilder)}, then this object is the one created by {@link #createHttpClientBuilder()}.
+ *
+ * @return The {@link HttpClientBuilder} that will be used to create the {@link HttpClient} used by {@link RestClient}.
+ */
+ public HttpClientBuilder getHttpClientBuilder() {
+ if (httpClientBuilder == null)
+ httpClientBuilder = createHttpClientBuilder();
+ return httpClientBuilder;
+ }
+
+ /**
+ * Sets the {@link HttpClientBuilder} that will be used to create the {@link HttpClient} used by {@link RestClient}.
+ *
+ * <p>
+ * This can be used to bypass the builder created by {@link #createHttpClientBuilder()} method.
+ *
+ * @param value The {@link HttpClientBuilder} that will be used to create the {@link HttpClient} used by {@link RestClient}.
+ * @return This object (for method chaining).
+ */
+ public RestClientBuilder httpClientBuilder(HttpClientBuilder value) {
+ this.httpClientBuilder = value;
+ return this;
+ }
+
+ //------------------------------------------------------------------------------------------------------------------
+ // HttpClient
+ //------------------------------------------------------------------------------------------------------------------
+
/**
* Creates an instance of an {@link HttpClient} to be used to handle all HTTP communications with the target server.
*
@@ -257,27 +313,78 @@ public class RestClientBuilder extends BeanContextBuilder {
}
/**
- * Creates an instance of an {@link HttpClientBuilder} to be used to create the {@link HttpClient}.
+ * Returns the {@link HttpClient} to be used to handle all HTTP communications with the target server.
*
- * <p>
- * Subclasses can override this method to provide their own client builder.
+ * @return The {@link HttpClient} to be used to handle all HTTP communications with the target server.
+ */
+ public CloseableHttpClient getHttpClient() {
+ try {
+ return httpClient != null ? httpClient : createHttpClient();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ /**
+ * Sets the {@link HttpClient} to be used to handle all HTTP communications with the target server.
*
* <p>
- * The predefined method returns an {@link HttpClientBuilder} with the following settings:
- * <ul>
- * <li>Lax redirect strategy.
- * <li>The connection manager returned by {@link #createConnectionManager()}.
- * </ul>
+ * This can be used to bypass the client created by {@link #createHttpClient()} method.
*
- * @return The HTTP client builder to use to create the HTTP client.
+ * @param value The {@link HttpClient} to be used to handle all HTTP communications with the target server.
+ * @return This object (for method chaining).
*/
- protected HttpClientBuilder createHttpClientBuilder() {
- HttpClientBuilder b = HttpClientBuilder.create();
- b.setRedirectStrategy(new AllowAllRedirects());
- return b;
+ public RestClientBuilder httpClient(CloseableHttpClient value) {
+ this.httpClient = value;
+ return this;
}
/**
+ * Sets the internal {@link HttpClient} to use for handling HTTP communications.
+ *
+ * @param httpClient The HTTP client.
+ * @param keepHttpClientOpen Don't close this client when the {@link RestClient#close()} method is called.
+ * @return This object (for method chaining).
+ * @deprecated Use {@link #httpClient(CloseableHttpClient)} and {@link #keepHttpClientOpen(boolean)}.
+ */
+ @Deprecated
+ public RestClientBuilder httpClient(CloseableHttpClient httpClient, boolean keepHttpClientOpen) {
+ this.httpClient = httpClient;
+ set(RESTCLIENT_keepHttpClientOpen, keepHttpClientOpen);
+ return this;
+ }
+
+ //------------------------------------------------------------------------------------------------------------------
+ // Logging.
+ //------------------------------------------------------------------------------------------------------------------
+
+ /**
+ * Adds a {@link RestCallLogger} to the list of interceptors on this class.
+ *
+ * @param level The log level to log messages at.
+ * @param log The logger to log messages to.
+ * @return This object (for method chaining).
+ */
+ public RestClientBuilder logTo(Level level, Logger log) {
+ return interceptors(new RestCallLogger(level, log));
+ }
+
+ /**
+ * Sets the internal {@link HttpClientConnectionManager}.
+ *
+ * @param httpClientConnectionManager The HTTP client connection manager.
+ * @return This object (for method chaining).
+ */
+ public RestClientBuilder httpClientConnectionManager(HttpClientConnectionManager httpClientConnectionManager) {
+ this.httpClientConnectionManager = httpClientConnectionManager;
+ return this;
+ }
+
+ //------------------------------------------------------------------------------------------------------------------
+ // Deprecated HttpClientBuilder methods.
+ //------------------------------------------------------------------------------------------------------------------
+
+ /**
* Creates the {@link HttpClientConnectionManager} returned by {@link #createConnectionManager()}.
*
* <p>
@@ -289,8 +396,10 @@ public class RestClientBuilder extends BeanContextBuilder {
* @return The HTTP client builder to use to create the HTTP client.
* @throws NoSuchAlgorithmException Unknown cryptographic algorithm.
* @throws KeyManagementException General key management exception.
+ * @deprecated Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@Link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}.
*/
@SuppressWarnings("resource")
+ @Deprecated
protected HttpClientConnectionManager createConnectionManager() throws KeyManagementException, NoSuchAlgorithmException {
if (enableSsl) {
@@ -317,6 +426,13 @@ public class RestClientBuilder extends BeanContextBuilder {
return (pooled ? new PoolingHttpClientConnectionManager() : new BasicHttpClientConnectionManager());
}
+ private static String[] getDefaultProtocols() {
+ String sp = System.getProperty("transport.client.protocol");
+ if (isEmpty(sp))
+ return new String[] {"SSL_TLS","TLS","SSL"};
+ return StringUtils.split(sp, ',');
+ }
+
/**
* Enable SSL support on this client.
*
@@ -332,7 +448,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* </ul>
*
* @return This object (for method chaining).
+ * @deprecated Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@Link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}.
*/
+ @Deprecated
public RestClientBuilder enableSSL() {
this.enableSsl = true;
return this;
@@ -353,7 +471,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @return This object (for method chaining).
* @throws KeyStoreException Generic keystore exception.
* @throws NoSuchAlgorithmException Unknown cryptographic algorithm.
+ * @deprecated Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@Link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}.
*/
+ @Deprecated
public RestClientBuilder enableLaxSSL() throws KeyStoreException, NoSuchAlgorithmException {
this.enableSsl = true;
hostnameVerifier(new NoopHostnameVerifier());
@@ -379,7 +499,9 @@ public class RestClientBuilder extends BeanContextBuilder {
*
* @param sslProtocols The supported SSL protocols.
* @return This object (for method chaining).
+ * @deprecated Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@Link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}.
*/
+ @Deprecated
public RestClientBuilder sslProtocols(String...sslProtocols) {
this.sslProtocols = sslProtocols;
return this;
@@ -402,7 +524,9 @@ public class RestClientBuilder extends BeanContextBuilder {
*
* @param cipherSuites The supported cipher suites.
* @return This object (for method chaining).
+ * @deprecated Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@Link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}.
*/
+ @Deprecated
public RestClientBuilder cipherSuites(String...cipherSuites) {
this.cipherSuites = cipherSuites;
return this;
@@ -425,7 +549,9 @@ public class RestClientBuilder extends BeanContextBuilder {
*
* @param hostnameVerifier The hostname verifier.
* @return This object (for method chaining).
+ * @deprecated Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@Link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}.
*/
+ @Deprecated
public RestClientBuilder hostnameVerifier(HostnameVerifier hostnameVerifier) {
this.hostnameVerifier = hostnameVerifier;
return this;
@@ -447,7 +573,9 @@ public class RestClientBuilder extends BeanContextBuilder {
*
* @param keyManagers The key managers.
* @return This object (for method chaining).
+ * @deprecated Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@Link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}.
*/
+ @Deprecated
public RestClientBuilder keyManagers(KeyManager...keyManagers) {
this.keyManagers = keyManagers;
return this;
@@ -469,7 +597,9 @@ public class RestClientBuilder extends BeanContextBuilder {
*
* @param trustManagers The trust managers.
* @return This object (for method chaining).
+ * @deprecated Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@Link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}.
*/
+ @Deprecated
public RestClientBuilder trustManagers(TrustManager...trustManagers) {
this.trustManagers = trustManagers;
return this;
@@ -491,39 +621,22 @@ public class RestClientBuilder extends BeanContextBuilder {
*
* @param secureRandom The random number generator.
* @return This object (for method chaining).
+ * @deprecated Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@Link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}.
*/
+ @Deprecated
public RestClientBuilder secureRandom(SecureRandom secureRandom) {
this.secureRandom = secureRandom;
return this;
}
/**
- * Sets the client version by setting the value for the <js>"X-Client-Version"</js> header.
- *
- * @param version The version string (e.g. <js>"1.2.3"</js>)
- * @return This object (for method chaining).
- */
- public RestClientBuilder clientVersion(String version) {
- return header("X-Client-Version", version);
- }
-
- /**
- * Adds a {@link RestCallLogger} to the list of interceptors on this class.
- *
- * @param level The log level to log messages at.
- * @param log The logger to log messages to.
- * @return This object (for method chaining).
- */
- public RestClientBuilder logTo(Level level, Logger log) {
- return interceptors(new RestCallLogger(level, log));
- }
-
- /**
* When called, the {@link #createConnectionManager()} method will return a {@link PoolingHttpClientConnectionManager}
* instead of a {@link BasicHttpClientConnectionManager}.
*
* @return This object (for method chaining).
+ * @deprecated Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@Link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}.
*/
+ @Deprecated
public RestClientBuilder pooled() {
this.pooled = true;
return this;
@@ -537,7 +650,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param user The username.
* @param pw The password.
* @return This object (for method chaining).
+ * @deprecated Use {@link #getHttpClientBuilder()} and modify the client builder directly using {@Link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}.
*/
+ @Deprecated
public RestClientBuilder basicAuth(String host, int port, String user, String pw) {
AuthScope scope = new AuthScope(host, port);
Credentials up = new UsernamePasswordCredentials(user, pw);
@@ -547,46 +662,6 @@ public class RestClientBuilder extends BeanContextBuilder {
return this;
}
- /**
- * Sets the internal {@link HttpClient} to use for handling HTTP communications.
- *
- * @param httpClient The HTTP client.
- * @param keepHttpClientOpen Don't close this client when the {@link RestClient#close()} method is called.
- * @return This object (for method chaining).
- */
- public RestClientBuilder httpClient(CloseableHttpClient httpClient, boolean keepHttpClientOpen) {
- this.httpClient = httpClient;
- set(RESTCLIENT_keepHttpClientOpen, keepHttpClientOpen);
- return this;
- }
-
- /**
- * Sets the internal {@link HttpClientConnectionManager}.
- *
- * @param httpClientConnectionManager The HTTP client connection manager.
- * @return This object (for method chaining).
- */
- public RestClientBuilder httpClientConnectionManager(HttpClientConnectionManager httpClientConnectionManager) {
- this.httpClientConnectionManager = httpClientConnectionManager;
- return this;
- }
-
- /**
- * Sets a mock connection used to construct a connection manager for working against mocked REST interfaces.
- *
- * <ul class='seealso'>
- * <li class='link'>{@doc juneau-rest-client.UnitTesting}
- * </ul>
- *
- * @param c The mock connection.
- * @return This object (for method chaining).
- */
-// public RestClientBuilder mockHttpConnection(MockHttpConnection c) {
-// rootUrl("http://localhost");
-// return httpClientConnectionManager(new MockHttpClientConnectionManager(c));
-// }
-
-
//-----------------------------------------------------------------------------------------------------------------
// HTTP headers
//-----------------------------------------------------------------------------------------------------------------
@@ -684,6 +759,16 @@ public class RestClientBuilder extends BeanContextBuilder {
}
/**
+ * Sets the client version by setting the value for the <js>"X-Client-Version"</js> header.
+ *
+ * @param version The version string (e.g. <js>"1.2.3"</js>)
+ * @return This object (for method chaining).
+ */
+ public RestClientBuilder clientVersion(String version) {
+ return header("X-Client-Version", version);
+ }
+
+ /**
* Sets the value for the <c>Connection</c> request header.
*
* <p>
@@ -1083,6 +1168,22 @@ public class RestClientBuilder extends BeanContextBuilder {
}
/**
+ * Configuration property: Keep HttpClient open.
+ *
+ * <p>
+ * Don't close this client when the {@link RestClient#close()} method is called.
+ *
+ * <ul class='seealso'>
+ * <li class='jf'>{@link RestClient#RESTCLIENT_keepHttpClientOpen}
+ * </ul>
+ *
+ * @return This object (for method chaining).
+ */
+ public RestClientBuilder keepHttpClientOpen() {
+ return keepHttpClientOpen(true);
+ }
+
+ /**
* Configuration property: Call interceptors.
*
* <p>
@@ -2646,10 +2747,21 @@ public class RestClientBuilder extends BeanContextBuilder {
//------------------------------------------------------------------------------------------------
/**
+ * @return This object (for method chaining).
+ * @see HttpClientBuilder#disableRedirectHandling()
+ */
+ public RestClientBuilder disableRedirectHandling() {
+ httpClientBuilder.disableRedirectHandling();
+ return this;
+ }
+
+ /**
* @param redirectStrategy New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setRedirectStrategy(RedirectStrategy)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setRedirectStrategy(RedirectStrategy)}.
*/
+ @Deprecated
public RestClientBuilder redirectStrategy(RedirectStrategy redirectStrategy) {
httpClientBuilder.setRedirectStrategy(redirectStrategy);
return this;
@@ -2659,7 +2771,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param cookieSpecRegistry New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setDefaultCookieSpecRegistry(Lookup)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setDefaultCookieSpecRegistry(Lookup)}.
*/
+ @Deprecated
public RestClientBuilder defaultCookieSpecRegistry(Lookup<CookieSpecProvider> cookieSpecRegistry) {
httpClientBuilder.setDefaultCookieSpecRegistry(cookieSpecRegistry);
return this;
@@ -2669,7 +2783,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param requestExec New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setRequestExecutor(HttpRequestExecutor)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setRequestExecutor(HttpRequestExecutor)}.
*/
+ @Deprecated
public RestClientBuilder requestExecutor(HttpRequestExecutor requestExec) {
httpClientBuilder.setRequestExecutor(requestExec);
return this;
@@ -2679,7 +2795,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param hostnameVerifier New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setSSLHostnameVerifier(HostnameVerifier)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setSSLHostnameVerifier(HostnameVerifier)}.
*/
+ @Deprecated
public RestClientBuilder sslHostnameVerifier(HostnameVerifier hostnameVerifier) {
httpClientBuilder.setSSLHostnameVerifier(hostnameVerifier);
return this;
@@ -2689,7 +2807,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param publicSuffixMatcher New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setPublicSuffixMatcher(PublicSuffixMatcher)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setPublicSuffixMatcher(PublicSuffixMatcher)}.
*/
+ @Deprecated
public RestClientBuilder publicSuffixMatcher(PublicSuffixMatcher publicSuffixMatcher) {
httpClientBuilder.setPublicSuffixMatcher(publicSuffixMatcher);
return this;
@@ -2699,7 +2819,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param sslContext New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setSSLContext(SSLContext)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setSSLContext(SSLContext)}.
*/
+ @Deprecated
public RestClientBuilder sslContext(SSLContext sslContext) {
httpClientBuilder.setSSLContext(sslContext);
return this;
@@ -2709,7 +2831,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param sslSocketFactory New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setSSLSocketFactory(LayeredConnectionSocketFactory)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setSSLSocketFactory(LayeredConnectionSocketFactory)}.
*/
+ @Deprecated
public RestClientBuilder sslSocketFactory(LayeredConnectionSocketFactory sslSocketFactory) {
httpClientBuilder.setSSLSocketFactory(sslSocketFactory);
return this;
@@ -2719,7 +2843,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param maxConnTotal New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setMaxConnTotal(int)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setMaxConnTotal(int)}.
*/
+ @Deprecated
public RestClientBuilder maxConnTotal(int maxConnTotal) {
httpClientBuilder.setMaxConnTotal(maxConnTotal);
return this;
@@ -2729,7 +2855,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param maxConnPerRoute New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setMaxConnPerRoute(int)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setMaxConnPerRoute(int)}.
*/
+ @Deprecated
public RestClientBuilder maxConnPerRoute(int maxConnPerRoute) {
httpClientBuilder.setMaxConnPerRoute(maxConnPerRoute);
return this;
@@ -2739,7 +2867,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param config New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setDefaultSocketConfig(SocketConfig)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setDefaultSocketConfig(SocketConfig)}.
*/
+ @Deprecated
public RestClientBuilder defaultSocketConfig(SocketConfig config) {
httpClientBuilder.setDefaultSocketConfig(config);
return this;
@@ -2749,7 +2879,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param config New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setDefaultConnectionConfig(ConnectionConfig)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setDefaultConnectionConfig(ConnectionConfig)}.
*/
+ @Deprecated
public RestClientBuilder defaultConnectionConfig(ConnectionConfig config) {
httpClientBuilder.setDefaultConnectionConfig(config);
return this;
@@ -2760,7 +2892,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param connTimeToLiveTimeUnit New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setConnectionTimeToLive(long,TimeUnit)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setConnectionTimeToLive(long, TimeUnit)}.
*/
+ @Deprecated
public RestClientBuilder connectionTimeToLive(long connTimeToLive, TimeUnit connTimeToLiveTimeUnit) {
httpClientBuilder.setConnectionTimeToLive(connTimeToLive, connTimeToLiveTimeUnit);
return this;
@@ -2770,7 +2904,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param connManager New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setConnectionManager(HttpClientConnectionManager)}.
*/
+ @Deprecated
public RestClientBuilder connectionManager(HttpClientConnectionManager connManager) {
this.httpClientConnectionManager = connManager;
httpClientBuilder.setConnectionManager(connManager);
@@ -2781,7 +2917,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param shared New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setConnectionManagerShared(boolean)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setConnectionManagerShared(boolean)}.
*/
+ @Deprecated
public RestClientBuilder connectionManagerShared(boolean shared) {
httpClientBuilder.setConnectionManagerShared(shared);
return this;
@@ -2791,7 +2929,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param reuseStrategy New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setConnectionReuseStrategy(ConnectionReuseStrategy)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setConnectionReuseStrategy(ConnectionReuseStrategy)}.
*/
+ @Deprecated
public RestClientBuilder connectionReuseStrategy(ConnectionReuseStrategy reuseStrategy) {
httpClientBuilder.setConnectionReuseStrategy(reuseStrategy);
return this;
@@ -2801,7 +2941,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param keepAliveStrategy New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setKeepAliveStrategy(ConnectionKeepAliveStrategy)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setKeepAliveStrategy(ConnectionKeepAliveStrategy)}.
*/
+ @Deprecated
public RestClientBuilder keepAliveStrategy(ConnectionKeepAliveStrategy keepAliveStrategy) {
httpClientBuilder.setKeepAliveStrategy(keepAliveStrategy);
return this;
@@ -2811,7 +2953,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param targetAuthStrategy New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setTargetAuthenticationStrategy(AuthenticationStrategy)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setTargetAuthenticationStrategy(AuthenticationStrategy)}.
*/
+ @Deprecated
public RestClientBuilder targetAuthenticationStrategy(AuthenticationStrategy targetAuthStrategy) {
httpClientBuilder.setTargetAuthenticationStrategy(targetAuthStrategy);
return this;
@@ -2821,7 +2965,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param proxyAuthStrategy New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setProxyAuthenticationStrategy(AuthenticationStrategy)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setProxyAuthenticationStrategy(AuthenticationStrategy)}.
*/
+ @Deprecated
public RestClientBuilder proxyAuthenticationStrategy(AuthenticationStrategy proxyAuthStrategy) {
httpClientBuilder.setProxyAuthenticationStrategy(proxyAuthStrategy);
return this;
@@ -2831,7 +2977,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param userTokenHandler New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setUserTokenHandler(UserTokenHandler)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setUserTokenHandler(UserTokenHandler)}.
*/
+ @Deprecated
public RestClientBuilder userTokenHandler(UserTokenHandler userTokenHandler) {
httpClientBuilder.setUserTokenHandler(userTokenHandler);
return this;
@@ -2840,7 +2988,9 @@ public class RestClientBuilder extends BeanContextBuilder {
/**
* @return This object (for method chaining).
* @see HttpClientBuilder#disableConnectionState()
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#disableConnectionState()}.
*/
+ @Deprecated
public RestClientBuilder disableConnectionState() {
httpClientBuilder.disableConnectionState();
return this;
@@ -2850,7 +3000,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param schemePortResolver New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setSchemePortResolver(SchemePortResolver)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setSchemePortResolver(SchemePortResolver)}.
*/
+ @Deprecated
public RestClientBuilder schemePortResolver(SchemePortResolver schemePortResolver) {
httpClientBuilder.setSchemePortResolver(schemePortResolver);
return this;
@@ -2860,7 +3012,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param userAgent New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setUserAgent(String)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setUserAgent(String)}.
*/
+ @Deprecated
public RestClientBuilder userAgent(String userAgent) {
httpClientBuilder.setUserAgent(userAgent);
return this;
@@ -2870,7 +3024,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param defaultHeaders New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setDefaultHeaders(Collection)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setDefaultHeaders(Collection)}.
*/
+ @Deprecated
public RestClientBuilder defaultHeaders(Collection<? extends Header> defaultHeaders) {
httpClientBuilder.setDefaultHeaders(defaultHeaders);
return this;
@@ -2880,7 +3036,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param itcp New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#addInterceptorFirst(HttpResponseInterceptor)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#addInterceptorFirst(HttpResponseInterceptor)}.
*/
+ @Deprecated
public RestClientBuilder addInterceptorFirst(HttpResponseInterceptor itcp) {
httpClientBuilder.addInterceptorFirst(itcp);
return this;
@@ -2890,7 +3048,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param itcp New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#addInterceptorLast(HttpResponseInterceptor)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#addInterceptorLast(HttpResponseInterceptor)}.
*/
+ @Deprecated
public RestClientBuilder addInterceptorLast(HttpResponseInterceptor itcp) {
httpClientBuilder.addInterceptorLast(itcp);
return this;
@@ -2900,7 +3060,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param itcp New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#addInterceptorFirst(HttpRequestInterceptor)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#addInterceptorFirst(HttpRequestInterceptor)}.
*/
+ @Deprecated
public RestClientBuilder addInterceptorFirst(HttpRequestInterceptor itcp) {
httpClientBuilder.addInterceptorFirst(itcp);
return this;
@@ -2910,7 +3072,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param itcp New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#addInterceptorLast(HttpRequestInterceptor)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#addInterceptorLast(HttpRequestInterceptor)}.
*/
+ @Deprecated
public RestClientBuilder addInterceptorLast(HttpRequestInterceptor itcp) {
httpClientBuilder.addInterceptorLast(itcp);
return this;
@@ -2919,7 +3083,9 @@ public class RestClientBuilder extends BeanContextBuilder {
/**
* @return This object (for method chaining).
* @see HttpClientBuilder#disableCookieManagement()
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#disableCookieManagement()}.
*/
+ @Deprecated
public RestClientBuilder disableCookieManagement() {
httpClientBuilder.disableCookieManagement();
return this;
@@ -2928,7 +3094,9 @@ public class RestClientBuilder extends BeanContextBuilder {
/**
* @return This object (for method chaining).
* @see HttpClientBuilder#disableContentCompression()
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#disableContentCompression()}.
*/
+ @Deprecated
public RestClientBuilder disableContentCompression() {
httpClientBuilder.disableContentCompression();
return this;
@@ -2937,7 +3105,9 @@ public class RestClientBuilder extends BeanContextBuilder {
/**
* @return This object (for method chaining).
* @see HttpClientBuilder#disableAuthCaching()
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#disableAuthCaching()}.
*/
+ @Deprecated
public RestClientBuilder disableAuthCaching() {
httpClientBuilder.disableAuthCaching();
return this;
@@ -2947,7 +3117,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param httpprocessor New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setHttpProcessor(HttpProcessor)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setHttpProcessor(HttpProcessor)}.
*/
+ @Deprecated
public RestClientBuilder httpProcessor(HttpProcessor httpprocessor) {
httpClientBuilder.setHttpProcessor(httpprocessor);
return this;
@@ -2957,7 +3129,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param retryHandler New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setRetryHandler(HttpRequestRetryHandler)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setRetryHandler(HttpRequestRetryHandler)}.
*/
+ @Deprecated
public RestClientBuilder retryHandler(HttpRequestRetryHandler retryHandler) {
httpClientBuilder.setRetryHandler(retryHandler);
return this;
@@ -2966,7 +3140,9 @@ public class RestClientBuilder extends BeanContextBuilder {
/**
* @return This object (for method chaining).
* @see HttpClientBuilder#disableAutomaticRetries()
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#disableAutomaticRetries()}.
*/
+ @Deprecated
public RestClientBuilder disableAutomaticRetries() {
httpClientBuilder.disableAutomaticRetries();
return this;
@@ -2976,7 +3152,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param proxy New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setProxy(HttpHost)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setProxy(HttpHost)}.
*/
+ @Deprecated
public RestClientBuilder proxy(HttpHost proxy) {
httpClientBuilder.setProxy(proxy);
return this;
@@ -2986,26 +3164,21 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param routePlanner New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setRoutePlanner(HttpRoutePlanner)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setRoutePlanner(HttpRoutePlanner)}.
*/
+ @Deprecated
public RestClientBuilder routePlanner(HttpRoutePlanner routePlanner) {
httpClientBuilder.setRoutePlanner(routePlanner);
return this;
}
/**
- * @return This object (for method chaining).
- * @see HttpClientBuilder#disableRedirectHandling()
- */
- public RestClientBuilder disableRedirectHandling() {
- httpClientBuilder.disableRedirectHandling();
- return this;
- }
-
- /**
* @param connectionBackoffStrategy New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setConnectionBackoffStrategy(ConnectionBackoffStrategy)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setConnectionBackoffStrategy(ConnectionBackoffStrategy)}.
*/
+ @Deprecated
public RestClientBuilder connectionBackoffStrategy(ConnectionBackoffStrategy connectionBackoffStrategy) {
httpClientBuilder.setConnectionBackoffStrategy(connectionBackoffStrategy);
return this;
@@ -3015,7 +3188,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param backoffManager New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setBackoffManager(BackoffManager)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setBackoffManager(BackoffManager)}.
*/
+ @Deprecated
public RestClientBuilder backoffManager(BackoffManager backoffManager) {
httpClientBuilder.setBackoffManager(backoffManager);
return this;
@@ -3025,7 +3200,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param serviceUnavailStrategy New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setServiceUnavailableRetryStrategy(ServiceUnavailableRetryStrategy)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setServiceUnavailableRetryStrategy(ServiceUnavailableRetryStrategy)}.
*/
+ @Deprecated
public RestClientBuilder serviceUnavailableRetryStrategy(ServiceUnavailableRetryStrategy serviceUnavailStrategy) {
httpClientBuilder.setServiceUnavailableRetryStrategy(serviceUnavailStrategy);
return this;
@@ -3035,7 +3212,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param cookieStore New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setDefaultCookieStore(CookieStore)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setDefaultCookieStore(CookieStore)}.
*/
+ @Deprecated
public RestClientBuilder defaultCookieStore(CookieStore cookieStore) {
httpClientBuilder.setDefaultCookieStore(cookieStore);
return this;
@@ -3045,7 +3224,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param credentialsProvider New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setDefaultCredentialsProvider(CredentialsProvider)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setDefaultCredentialsProvider(CredentialsProvider)}.
*/
+ @Deprecated
public RestClientBuilder defaultCredentialsProvider(CredentialsProvider credentialsProvider) {
httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
return this;
@@ -3055,7 +3236,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param authSchemeRegistry New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setDefaultAuthSchemeRegistry(Lookup)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setDefaultAuthSchemeRegistry(Lookup)}.
*/
+ @Deprecated
public RestClientBuilder defaultAuthSchemeRegistry(Lookup<AuthSchemeProvider> authSchemeRegistry) {
httpClientBuilder.setDefaultAuthSchemeRegistry(authSchemeRegistry);
return this;
@@ -3065,7 +3248,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param contentDecoderMap New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setContentDecoderRegistry(Map)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setContentDecoderRegistry(Map)}.
*/
+ @Deprecated
public RestClientBuilder contentDecoderRegistry(Map<String,InputStreamFactory> contentDecoderMap) {
httpClientBuilder.setContentDecoderRegistry(contentDecoderMap);
return this;
@@ -3075,7 +3260,9 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param config New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#setDefaultRequestConfig(RequestConfig)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#setDefaultRequestConfig(RequestConfig)}.
*/
+ @Deprecated
public RestClientBuilder defaultRequestConfig(RequestConfig config) {
httpClientBuilder.setDefaultRequestConfig(config);
return this;
@@ -3084,7 +3271,9 @@ public class RestClientBuilder extends BeanContextBuilder {
/**
* @return This object (for method chaining).
* @see HttpClientBuilder#useSystemProperties()
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#useSystemProperties()}.
*/
+ @Deprecated
public RestClientBuilder useSystemProperties() {
httpClientBuilder.useSystemProperties();
return this;
@@ -3093,7 +3282,9 @@ public class RestClientBuilder extends BeanContextBuilder {
/**
* @return This object (for method chaining).
* @see HttpClientBuilder#evictExpiredConnections()
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#evictExpiredConnections()}.
*/
+ @Deprecated
public RestClientBuilder evictExpiredConnections() {
httpClientBuilder.evictExpiredConnections();
return this;
@@ -3104,16 +3295,11 @@ public class RestClientBuilder extends BeanContextBuilder {
* @param maxIdleTimeUnit New property value.
* @return This object (for method chaining).
* @see HttpClientBuilder#evictIdleConnections(long,TimeUnit)
+ * @deprecated Use {@link #getHttpClientBuilder()} and {@link HttpClientBuilder#evictIdleConnections(long, TimeUnit)}.
*/
+ @Deprecated
public RestClientBuilder evictIdleConnections(long maxIdleTime, TimeUnit maxIdleTimeUnit) {
httpClientBuilder.evictIdleConnections(maxIdleTime, maxIdleTimeUnit);
return this;
}
-
- private static String[] getDefaultProtocols() {
- String sp = System.getProperty("transport.client.protocol");
- if (isEmpty(sp))
- return new String[] {"SSL_TLS","TLS","SSL"};
- return StringUtils.split(sp, ',');
- }
}