| // *************************************************************************************************************************** |
| // * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * |
| // * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * |
| // * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * |
| // * with the License. You may obtain a copy of the License at * |
| // * * |
| // * http://www.apache.org/licenses/LICENSE-2.0 * |
| // * * |
| // * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * |
| // * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * |
| // * specific language governing permissions and limitations under the License. * |
| // *************************************************************************************************************************** |
| package org.apache.juneau.rest.client; |
| |
| import static org.apache.juneau.internal.StringUtils.*; |
| import static org.apache.juneau.parser.InputStreamParser.*; |
| import static org.apache.juneau.parser.ReaderParser.*; |
| import static org.apache.juneau.rest.client.RestClient.*; |
| import static org.apache.juneau.BeanTraverseContext.*; |
| import static org.apache.juneau.serializer.OutputStreamSerializer.*; |
| import static org.apache.juneau.serializer.WriterSerializer.*; |
| import static org.apache.juneau.uon.UonSerializer.*; |
| |
| import java.lang.reflect.*; |
| import java.net.*; |
| import java.net.URI; |
| import java.security.*; |
| import java.util.*; |
| import java.util.concurrent.*; |
| import java.util.logging.*; |
| |
| import javax.net.ssl.*; |
| |
| import org.apache.http.*; |
| import org.apache.http.auth.*; |
| import org.apache.http.client.*; |
| import org.apache.http.client.CookieStore; |
| import org.apache.http.client.config.*; |
| import org.apache.http.client.entity.*; |
| import org.apache.http.config.*; |
| import org.apache.http.conn.*; |
| import org.apache.http.conn.routing.*; |
| import org.apache.http.conn.socket.*; |
| import org.apache.http.conn.ssl.*; |
| import org.apache.http.conn.util.*; |
| import org.apache.http.cookie.*; |
| import org.apache.http.impl.client.*; |
| import org.apache.http.impl.conn.*; |
| import org.apache.http.protocol.*; |
| import org.apache.juneau.*; |
| import org.apache.juneau.html.*; |
| import org.apache.juneau.http.*; |
| import org.apache.juneau.httppart.*; |
| import org.apache.juneau.internal.*; |
| import org.apache.juneau.json.*; |
| import org.apache.juneau.marshall.*; |
| import org.apache.juneau.msgpack.*; |
| import org.apache.juneau.oapi.*; |
| import org.apache.juneau.parser.*; |
| import org.apache.juneau.plaintext.*; |
| import org.apache.juneau.reflect.*; |
| import org.apache.juneau.serializer.*; |
| import org.apache.juneau.svl.*; |
| import org.apache.juneau.uon.*; |
| import org.apache.juneau.urlencoding.*; |
| import org.apache.juneau.xml.*; |
| |
| /** |
| * Builder class for the {@link RestClient} class. |
| * |
| * <p> |
| * Instances of this class are created by the following methods: |
| * <ul> |
| * <li>{@link RestClient#create()} - Create from scratch. |
| * <li>{@link RestClient#create(Serializer,Parser)} - Create from scratch using specified serializer/parser. |
| * <li>{@link RestClient#create(Class,Class)} - Create from scratch using specified serializer/parser classes. |
| * <li>{@link RestClient#builder()} - Copy settings from an existing client. |
| * </ul> |
| * |
| * <ul class='seealso'> |
| * <li class='link'>{@doc juneau-rest-client} |
| * </ul> |
| */ |
| public class RestClientBuilder extends BeanContextBuilder { |
| |
| private HttpClientBuilder httpClientBuilder; |
| private CloseableHttpClient httpClient; |
| |
| // 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. |
| * @param ps |
| * Initial configuration properties for this builder. |
| * <br>Can be <jk>null</jk>. |
| * @param httpClientBuilder |
| * The HTTP client builder to use for this REST client builder. |
| * <br>Can be <jk>null</jk> to just call {@link #createHttpClientBuilder()} to instantiate it again. |
| */ |
| protected RestClientBuilder(PropertyStore ps, HttpClientBuilder httpClientBuilder) { |
| super(ps); |
| this.httpClientBuilder = httpClientBuilder != null ? httpClientBuilder : createHttpClientBuilder(); |
| } |
| |
| @Override /* ContextBuilder */ |
| public RestClient build() { |
| return new RestClient(this); |
| } |
| |
| //------------------------------------------------------------------------------------------------------------------ |
| // Convenience marshalling support methods. |
| //------------------------------------------------------------------------------------------------------------------ |
| |
| /** |
| * Convenience method for specifying JSON as the transmission media type. |
| * |
| * <p> |
| * Identical to calling <code>serializer(JsonSerializer.<jk>class</jk>).parser(JsonParser.<jk>class</jk>)</code>. |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder json() { |
| return serializer(JsonSerializer.class).parser(JsonParser.class); |
| } |
| |
| /** |
| * Convenience method for specifying Simple JSON as the transmission media type. |
| * |
| * <p> |
| * Identical to calling <code>serializer(SimpleJsonSerializer.<jk>class</jk>).parser(JsonParser.<jk>class</jk>)</code>. |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder simpleJson() { |
| return serializer(SimpleJsonSerializer.class).parser(JsonParser.class); |
| } |
| |
| /** |
| * Convenience method for specifying XML as the transmission media type. |
| * |
| * <p> |
| * Identical to calling <code>serializer(XmlSerializer.<jk>class</jk>).parser(XmlParser.<jk>class</jk>)</code>. |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder xml() { |
| return serializer(XmlSerializer.class).parser(XmlParser.class); |
| } |
| |
| /** |
| * Convenience method for specifying HTML as the transmission media type. |
| * |
| * <p> |
| * Identical to calling <code>serializer(HtmlSerializer.<jk>class</jk>).parser(HtmlParser.<jk>class</jk>)</code>. |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder html() { |
| return serializer(HtmlSerializer.class).parser(HtmlParser.class); |
| } |
| |
| /** |
| * Convenience method for specifying plain-text as the transmission media type. |
| * |
| * <p> |
| * Identical to calling <code>serializer(PlainTextSerializer.<jk>class</jk>).parser(PlainTextParser.<jk>class</jk>)</code>. |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder plainText() { |
| return serializer(PlainTextSerializer.class).parser(PlainTextParser.class); |
| } |
| |
| /** |
| * Convenience method for specifying MessagePack as the transmission media type. |
| * |
| * <p> |
| * Identical to calling <code>serializer(MsgPackSerializer.<jk>class</jk>).parser(MsgPackParser.<jk>class</jk>)</code>. |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder msgpack() { |
| return serializer(MsgPackSerializer.class).parser(MsgPackParser.class); |
| } |
| |
| /** |
| * Convenience method for specifying UON as the transmission media type. |
| * |
| * <p> |
| * Identical to calling <code>serializer(UonSerializer.<jk>class</jk>).parser(UonParser.<jk>class</jk>)</code>. |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder uon() { |
| return serializer(UonSerializer.class).parser(UonParser.class); |
| } |
| |
| /** |
| * Convenience method for specifying URL-Encoding as the transmission media type. |
| * |
| * <p> |
| * Identical to calling <code>serializer(UrlEncodingSerializer.<jk>class</jk>).parser(UrlEncodingParser.<jk>class</jk>)</code>. |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder urlEnc() { |
| return serializer(UrlEncodingSerializer.class).parser(UrlEncodingParser.class); |
| } |
| |
| /** |
| * Convenience method for specifying URL-Encoding as the transmission media type. |
| * |
| * <p> |
| * Identical to calling <code>serializer(OpenApiSerializer.<jk>class</jk>).parser(OpenApiParser.<jk>class</jk>)</code>. |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder openapi() { |
| 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. |
| * |
| * <p> |
| * This HTTP client is used when the HTTP client is not specified through one of the constructors or the |
| * {@link #httpClient(CloseableHttpClient, boolean)} method. |
| * |
| * <p> |
| * Subclasses can override this method to provide specially-configured HTTP clients to handle stuff such as |
| * SSL/TLS certificate handling, authentication, etc. |
| * |
| * <p> |
| * The default implementation returns an instance of {@link HttpClient} using the client builder returned by |
| * {@link #createHttpClientBuilder()}. |
| * |
| * @return The HTTP client to use. |
| * @throws Exception Error occurred. |
| */ |
| protected CloseableHttpClient createHttpClient() throws Exception { |
| // Don't call createConnectionManager() if RestClient.setConnectionManager() was called. |
| if (httpClientConnectionManager == null) |
| httpClientBuilder.setConnectionManager(createConnectionManager()); |
| else |
| httpClientBuilder.setConnectionManager(httpClientConnectionManager); |
| return httpClientBuilder.build(); |
| } |
| |
| /** |
| * Returns the {@link HttpClient} to be used to handle all HTTP communications with the target server. |
| * |
| * @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> |
| * This can be used to bypass the client created by {@link #createHttpClient()} method. |
| * |
| * @param value The {@link HttpClient} to be used to handle all HTTP communications with the target server. |
| * @return This object (for method chaining). |
| */ |
| 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> |
| * Subclasses can override this method to provide their own connection manager. |
| * |
| * <p> |
| * The default implementation returns an instance of a {@link PoolingHttpClientConnectionManager}. |
| * |
| * @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) { |
| |
| HostnameVerifier hv = hostnameVerifier != null ? hostnameVerifier : new DefaultHostnameVerifier(); |
| TrustManager[] tm = trustManagers; |
| String[] sslp = sslProtocols == null ? getDefaultProtocols() : sslProtocols; |
| SecureRandom sr = secureRandom; |
| KeyManager[] km = keyManagers; |
| String[] cs = cipherSuites; |
| |
| RegistryBuilder<ConnectionSocketFactory> rb = RegistryBuilder.<ConnectionSocketFactory>create(); |
| rb.register("http", PlainConnectionSocketFactory.getSocketFactory()); |
| |
| SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom().build(); |
| sslContext.init(km, tm, sr); |
| |
| SSLConnectionSocketFactory sslcsf = new SSLConnectionSocketFactory(sslContext, sslp, cs, hv); |
| rb.register("https", sslcsf).build(); |
| |
| return (pooled ? new PoolingHttpClientConnectionManager(rb.build()) : new BasicHttpClientConnectionManager(rb.build())); |
| } |
| |
| // Using pooling connection so that this client is threadsafe. |
| 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. |
| * |
| * <p> |
| * Used in conjunction with the following methods for setting up SSL parameters: |
| * <ul class='javatree'> |
| * <li class='jf'>{@link #sslProtocols(String...)} |
| * <li class='jf'>{@link #cipherSuites(String...)} |
| * <li class='jf'>{@link #hostnameVerifier(HostnameVerifier)} |
| * <li class='jf'>{@link #keyManagers(KeyManager...)} |
| * <li class='jf'>{@link #trustManagers(TrustManager...)} |
| * <li class='jf'>{@link #secureRandom(SecureRandom)} |
| * </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; |
| } |
| |
| /** |
| * Enable LARestClientBuilder SSL support. |
| * |
| * <p> |
| * Same as calling the following: |
| * <p class='bcode w800'> |
| * builder |
| * .enableSSL() |
| * .hostnameVerifier(<jk>new</jk> NoopHostnameVerifier()) |
| * .trustManagers(<jk>new</jk> SimpleX509TrustManager(<jk>true</jk>)); |
| * </p> |
| * |
| * @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()); |
| trustManagers(new SimpleX509TrustManager(true)); |
| return this; |
| } |
| |
| /** |
| * Supported SSL protocols. |
| * |
| * <p> |
| * This is the value passed to the <c>supportedProtocols</c> parameter of the |
| * {@link SSLConnectionSocketFactory#SSLConnectionSocketFactory(SSLContext,String[],String[],HostnameVerifier)} |
| * constructor. |
| * |
| * <p> |
| * The default value is taken from the system property <js>"transport.client.protocol"</js>. |
| * <br>If system property is not defined, defaults to <code>{<js>"SSL_TLS"</js>,<js>"TLS"</js>,<js>"SSL"</js>}</code>. |
| * |
| * <p> |
| * This method is effectively ignored if {@link #enableSSL()} has not been called or the client connection manager |
| * has been defined via {@link #httpClientConnectionManager(HttpClientConnectionManager)}. |
| * |
| * @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; |
| } |
| |
| /** |
| * Supported cipher suites. |
| * |
| * <p> |
| * This is the value passed to the <c>supportedCipherSuites</c> parameter of the |
| * {@link SSLConnectionSocketFactory#SSLConnectionSocketFactory(SSLContext,String[],String[],HostnameVerifier)} |
| * constructor. |
| * |
| * <p> |
| * The default value is <jk>null</jk>. |
| * |
| * <p> |
| * This method is effectively ignored if {@link #enableSSL()} has not been called or the client connection manager |
| * has been defined via {@link #httpClientConnectionManager(HttpClientConnectionManager)}. |
| * |
| * @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; |
| } |
| |
| /** |
| * Hostname verifier. |
| * |
| * <p> |
| * This is the value passed to the <c>hostnameVerifier</c> parameter of the |
| * {@link SSLConnectionSocketFactory#SSLConnectionSocketFactory(SSLContext,String[],String[],HostnameVerifier)} |
| * constructor. |
| * |
| * <p> |
| * The default value is <jk>null</jk>. |
| * |
| * <p> |
| * This method is effectively ignored if {@link #enableSSL()} has not been called or the client connection manager |
| * has been defined via {@link #httpClientConnectionManager(HttpClientConnectionManager)}. |
| * |
| * @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; |
| } |
| |
| /** |
| * Key managers. |
| * |
| * <p> |
| * This is the value passed to the <c>keyManagers</c> parameter of the |
| * {@link SSLContext#init(KeyManager[],TrustManager[],SecureRandom)} method. |
| * |
| * <p> |
| * The default value is <jk>null</jk>. |
| * |
| * <p> |
| * This method is effectively ignored if {@link #enableSSL()} has not been called or the client connection manager |
| * has been defined via {@link #httpClientConnectionManager(HttpClientConnectionManager)}. |
| * |
| * @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; |
| } |
| |
| /** |
| * Trust managers. |
| * |
| * <p> |
| * This is the value passed to the <c>trustManagers</c> parameter of the |
| * {@link SSLContext#init(KeyManager[],TrustManager[],SecureRandom)} method. |
| * |
| * <p> |
| * The default value is <jk>null</jk>. |
| * |
| * <p> |
| * This method is effectively ignored if {@link #enableSSL()} has not been called or the client connection manager |
| * has been defined via {@link #httpClientConnectionManager(HttpClientConnectionManager)}. |
| * |
| * @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; |
| } |
| |
| /** |
| * Trust managers. |
| * |
| * <p> |
| * This is the value passed to the <c>random</c> parameter of the |
| * {@link SSLContext#init(KeyManager[],TrustManager[],SecureRandom)} method. |
| * |
| * <p> |
| * The default value is <jk>null</jk>. |
| * |
| * <p> |
| * This method is effectively ignored if {@link #enableSSL()} has not been called or the client connection manager |
| * has been defined via {@link #httpClientConnectionManager(HttpClientConnectionManager)}. |
| * |
| * @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; |
| } |
| |
| /** |
| * 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; |
| } |
| |
| /** |
| * Set up this client to use BASIC auth. |
| * |
| * @param host The auth scope hostname. |
| * @param port The auth scope port. |
| * @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); |
| CredentialsProvider p = new BasicCredentialsProvider(); |
| p.setCredentials(scope, up); |
| defaultCredentialsProvider(p); |
| return this; |
| } |
| |
| //----------------------------------------------------------------------------------------------------------------- |
| // HTTP headers |
| //----------------------------------------------------------------------------------------------------------------- |
| |
| /** |
| * Sets arbitrary request headers. |
| * |
| * @param headers The headers to set on requests. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder headers(Map<String,Object> headers) { |
| if (headers != null) |
| for (Map.Entry<String,Object> e : headers.entrySet()) |
| header(e.getKey(), e.getValue()); |
| return this; |
| } |
| |
| /** |
| * Sets the value for the <c>Accept</c> request header. |
| * |
| * <p> |
| * This overrides the media type specified on the parser, but is overridden by calling |
| * <code>header(<js>"Accept"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder accept(Object value) { |
| return header("Accept", value); |
| } |
| |
| /** |
| * Sets the value for the <c>Accept-Charset</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"Accept-Charset"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder acceptCharset(Object value) { |
| return header("Accept-Charset", value); |
| } |
| |
| /** |
| * Sets the value for the <c>Accept-Encoding</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"Accept-Encoding"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder acceptEncoding(Object value) { |
| return header("Accept-Encoding", value); |
| } |
| |
| /** |
| * Sets the value for the <c>Accept-Language</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"Accept-Language"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder acceptLanguage(Object value) { |
| return header("Accept-Language", value); |
| } |
| |
| /** |
| * Sets the value for the <c>Authorization</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"Authorization"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder authorization(Object value) { |
| return header("Authorization", value); |
| } |
| |
| /** |
| * Sets the value for the <c>Cache-Control</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"Cache-Control"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder cacheControl(Object value) { |
| return header("Cache-Control", value); |
| } |
| |
| /** |
| * 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> |
| * This is a shortcut for calling <code>header(<js>"Connection"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder connection(Object value) { |
| return header("Connection", value); |
| } |
| |
| /** |
| * Sets the value for the <c>Content-Length</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"Content-Length"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder contentLength(Object value) { |
| return header("Content-Length", value); |
| } |
| |
| /** |
| * Sets the value for the <c>Content-Type</c> request header. |
| * |
| * <p> |
| * This overrides the media type specified on the serializer, but is overridden by calling |
| * <code>header(<js>"Content-Type"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder contentType(Object value) { |
| return header("Content-Type", value); |
| } |
| |
| /** |
| * Sets the value for the <c>Date</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"Date"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder date(Object value) { |
| return header("Date", value); |
| } |
| |
| /** |
| * Sets the value for the <c>Expect</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"Expect"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder expect(Object value) { |
| return header("Expect", value); |
| } |
| |
| /** |
| * Sets the value for the <c>Forwarded</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"Forwarded"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder forwarded(Object value) { |
| return header("Forwarded", value); |
| } |
| |
| /** |
| * Sets the value for the <c>From</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"From"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder from(Object value) { |
| return header("From", value); |
| } |
| |
| /** |
| * Sets the value for the <c>Host</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"Host"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder host(Object value) { |
| return header("Host", value); |
| } |
| |
| /** |
| * Sets the value for the <c>If-Match</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"If-Match"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder ifMatch(Object value) { |
| return header("If-Match", value); |
| } |
| |
| /** |
| * Sets the value for the <c>If-Modified-Since</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"If-Modified-Since"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder ifModifiedSince(Object value) { |
| return header("If-Modified-Since", value); |
| } |
| |
| /** |
| * Sets the value for the <c>If-None-Match</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"If-None-Match"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder ifNoneMatch(Object value) { |
| return header("If-None-Match", value); |
| } |
| |
| /** |
| * Sets the value for the <c>If-Range</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"If-Range"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder ifRange(Object value) { |
| return header("If-Range", value); |
| } |
| |
| /** |
| * Sets the value for the <c>If-Unmodified-Since</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"If-Unmodified-Since"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder ifUnmodifiedSince(Object value) { |
| return header("If-Unmodified-Since", value); |
| } |
| |
| /** |
| * Sets the value for the <c>Max-Forwards</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"Max-Forwards"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder maxForwards(Object value) { |
| return header("If-Unmodified-Since", value); |
| } |
| |
| /** |
| * When called, <c>No-Trace: true</c> is added to requests. |
| * |
| * <p> |
| * This gives the opportunity for the servlet to not log errors on invalid requests. |
| * This is useful for testing purposes when you don't want your log file to show lots of errors that are simply the |
| * results of testing. |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder noTrace() { |
| return header("No-Trace", true); |
| } |
| |
| /** |
| * Sets the value for the <c>Origin</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"Origin"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder origin(Object value) { |
| return header("If-Unmodified-Since", value); |
| } |
| |
| /** |
| * Sets the value for the <c>Pragma</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"Pragma"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder pragma(Object value) { |
| return header("Pragma", value); |
| } |
| |
| /** |
| * Sets the value for the <c>Proxy-Authorization</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"Proxy-Authorization"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder proxyAuthorization(Object value) { |
| return header("Proxy-Authorization", value); |
| } |
| |
| /** |
| * Sets the value for the <c>Range</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"Range"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder range(Object value) { |
| return header("Range", value); |
| } |
| |
| /** |
| * Sets the value for the <c>Referer</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"Referer"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder referer(Object value) { |
| return header("Referer", value); |
| } |
| |
| /** |
| * Sets the value for the <c>TE</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"TE"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder te(Object value) { |
| return header("TE", value); |
| } |
| |
| /** |
| * Sets the value for the <c>User-Agent</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"User-Agent"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder userAgent(Object value) { |
| return header("User-Agent", value); |
| } |
| |
| /** |
| * Sets the value for the <c>Upgrade</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"Upgrade"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder upgrade(Object value) { |
| return header("Upgrade", value); |
| } |
| |
| /** |
| * Sets the value for the <c>Via</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"Via"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder via(Object value) { |
| return header("Via", value); |
| } |
| |
| /** |
| * Sets the value for the <c>Warning</c> request header. |
| * |
| * <p> |
| * This is a shortcut for calling <code>header(<js>"Warning"</js>, value);</code> |
| * |
| * @param value The new header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder warning(Object value) { |
| return header("Warning", value); |
| } |
| |
| //----------------------------------------------------------------------------------------------------------------- |
| // Properties |
| //----------------------------------------------------------------------------------------------------------------- |
| |
| /** |
| * Configuration property: Executor service. |
| * |
| * <p> |
| * Defines the executor service to use when calling future methods on the {@link RestCall} class. |
| * |
| * <p> |
| * This executor service is used to create {@link Future} objects on the following methods: |
| * <ul> |
| * <li>{@link RestCall#runFuture()} |
| * <li>{@link RestCall#getResponseFuture(Class)} |
| * <li>{@link RestCall#getResponseFuture(Type,Type...)} |
| * <li>{@link RestCall#getResponseAsString()} |
| * </ul> |
| * |
| * <p> |
| * The default executor service is a single-threaded {@link ThreadPoolExecutor} with a 30 second timeout |
| * and a queue size of 10. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link RestClient#RESTCLIENT_executorService} |
| * <li class='jf'>{@link RestClient#RESTCLIENT_executorServiceShutdownOnClose} |
| * </ul> |
| * |
| * @param executorService The executor service. |
| * @param shutdownOnClose Call {@link ExecutorService#shutdown()} when {@link RestClient#close()} is called. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder executorService(ExecutorService executorService, boolean shutdownOnClose) { |
| set(RESTCLIENT_executorService, executorService); |
| set(RESTCLIENT_executorServiceShutdownOnClose, shutdownOnClose); |
| return this; |
| } |
| |
| /** |
| * Configuration property: Request headers. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link RestClient#RESTCLIENT_headers} |
| * </ul> |
| * |
| * @param key The header name. |
| * @param value The header value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder header(String key, Object value) { |
| return addTo(RESTCLIENT_headers, key, value); |
| } |
| |
| /** |
| * 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> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default value is <jk>false</jk>. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder keepHttpClientOpen(boolean value) { |
| return set(RESTCLIENT_keepHttpClientOpen, value); |
| } |
| |
| /** |
| * 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> |
| * Adds an interceptor that gets called immediately after a connection is made. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link RestClient#RESTCLIENT_interceptors} |
| * </ul> |
| * |
| * @param value The values to add to this setting. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder interceptors(RestCallInterceptor...value) { |
| return addTo(RESTCLIENT_interceptors, value); |
| } |
| |
| /** |
| * Configuration property: Marshall |
| * |
| * <p> |
| * Shortcut for specifying the {@link RestClient#RESTCLIENT_serializer} and {@link RestClient#RESTCLIENT_parser} |
| * using the serializer and parser defined in a marshall. |
| * |
| * @param value The values to add to this setting. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder marshall(Marshall value) { |
| if (value == null) |
| serializer((Serializer)null).parser((Parser)null); |
| else |
| serializer(value.getSerializer()).parser(value.getParser()); |
| return this; |
| } |
| |
| /** |
| * Configuration property: Parser. |
| * |
| * <p> |
| * The parser to use for parsing POJOs in response bodies. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link RestClient#RESTCLIENT_parser} |
| * </ul> |
| * |
| * @param value |
| * The new value for this setting. |
| * <br>The default value is {@link JsonParser#DEFAULT}. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder parser(Class<? extends Parser> value) { |
| return set(RESTCLIENT_parser, value); |
| } |
| |
| /** |
| * Configuration property: Parser. |
| * |
| * <p> |
| * Same as {@link #parser(Parser)} except takes in a parser instance. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link RestClient#RESTCLIENT_parser} |
| * </ul> |
| * |
| * @param value |
| * The new value for this setting. |
| * <br>The default value is {@link JsonParser#DEFAULT}. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder parser(Parser value) { |
| return set(RESTCLIENT_parser, value); |
| } |
| |
| /** |
| * Configuration property: Part parser. |
| * |
| * <p> |
| * The parser to use for parsing POJOs from form data, query parameters, headers, and path variables. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link RestClient#RESTCLIENT_partParser} |
| * </ul> |
| * |
| * @param value |
| * The new value for this setting. |
| * <br>The default value is {@link OpenApiParser}. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder partParser(Class<? extends HttpPartParser> value) { |
| return set(RESTCLIENT_partParser, value); |
| } |
| |
| /** |
| * Configuration property: Part parser. |
| * |
| * <p> |
| * Same as {@link #partParser(Class)} but takes in a parser instance. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link RestClient#RESTCLIENT_partParser} |
| * </ul> |
| * |
| * @param value |
| * The new value for this setting. |
| * <br>The default value is {@link OpenApiParser}. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder partParser(HttpPartParser value) { |
| return set(RESTCLIENT_partParser, value); |
| } |
| |
| /** |
| * Configuration property: Part serializer. |
| * |
| * <p> |
| * The serializer to use for serializing POJOs in form data, query parameters, headers, and path variables. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link RestClient#RESTCLIENT_partSerializer} |
| * </ul> |
| * |
| * @param value |
| * The new value for this setting. |
| * <br>The default value is {@link OpenApiSerializer}. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder partSerializer(Class<? extends HttpPartSerializer> value) { |
| return set(RESTCLIENT_partSerializer, value); |
| } |
| |
| /** |
| * Configuration property: Part serializer. |
| * |
| * <p> |
| * Same as {@link #partSerializer(Class)} but takes in a parser instance. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link RestClient#RESTCLIENT_partSerializer} |
| * </ul> |
| * |
| * @param value |
| * The new value for this setting. |
| * <br>The default value is {@link OpenApiSerializer}. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder partSerializer(HttpPartSerializer value) { |
| return set(RESTCLIENT_partSerializer, value); |
| } |
| |
| /** |
| * Make HTTP calls retryable if an error response (>=400) is received. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link RestClient#RESTCLIENT_retries} |
| * <li class='jf'>{@link RestClient#RESTCLIENT_retryInterval} |
| * <li class='jf'>{@link RestClient#RESTCLIENT_retryOn} |
| * </ul> |
| * |
| * @param retries The number of retries to attempt. |
| * @param interval The time in milliseconds between attempts. |
| * @param retryOn |
| * Optional object used for determining whether a retry should be attempted. |
| * If <jk>null</jk>, uses {@link RetryOn#DEFAULT}. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder retryable(int retries, int interval, RetryOn retryOn) { |
| set(RESTCLIENT_retries, retries); |
| set(RESTCLIENT_retryInterval, interval); |
| set(RESTCLIENT_retryOn, retryOn); |
| return this; |
| } |
| |
| /** |
| * Configuration property: Root URI. |
| * |
| * <p> |
| * When set, relative URL strings passed in through the various rest call methods (e.g. {@link RestClient#doGet(Object)} |
| * will be prefixed with the specified root. |
| * <br>This root URL is ignored on those methods if you pass in a {@link URL}, {@link URI}, or an absolute URL string. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link RestClient#RESTCLIENT_rootUri} |
| * </ul> |
| * |
| * @param value |
| * The root URL to prefix to relative URL strings. |
| * <br>Trailing slashes are trimmed. |
| * <br>Usually a <c>String</c> but you can also pass in <c>URI</c> and <c>URL</c> objects as well. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder rootUrl(Object value) { |
| return set(RESTCLIENT_rootUri, value); |
| } |
| |
| /** |
| * Configuration property: Request query parameters. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link RestClient#RESTCLIENT_query} |
| * </ul> |
| * |
| * @param key The query parameter name. |
| * @param value The query parameter value value. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder query(String key, Object value) { |
| return addTo(RESTCLIENT_query, key, value); |
| } |
| |
| /** |
| * Configuration property: Serializer. |
| * |
| * <p> |
| * The serializer to use for serializing POJOs in request bodies. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link RestClient#RESTCLIENT_serializer} |
| * </ul> |
| * |
| * @param value |
| * The new value for this setting. |
| * <br>The default is {@link JsonSerializer}. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder serializer(Class<? extends Serializer> value) { |
| return set(RESTCLIENT_serializer, value); |
| } |
| |
| /** |
| * Configuration property: Serializer. |
| * |
| * <p> |
| * Same as {@link #serializer(Class)} but takes in a serializer instance. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link RestClient#RESTCLIENT_serializer} |
| * </ul> |
| * |
| * @param value |
| * The new value for this setting. |
| * <br>The default is {@link JsonSerializer}. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder serializer(Serializer value) { |
| return set(RESTCLIENT_serializer, value); |
| } |
| |
| /** |
| * Configuration property: Add <js>"_type"</js> properties when needed. |
| * |
| * <p> |
| * If <jk>true</jk>, then <js>"_type"</js> properties will be added to beans if their type cannot be inferred |
| * through reflection. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Serializer#SERIALIZER_addBeanTypes} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default is <jk>false</jk>. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder addBeanTypes(boolean value) { |
| return set(SERIALIZER_addBeanTypes, value); |
| } |
| |
| /** |
| * Configuration property: Add <js>"_type"</js> properties when needed. |
| * |
| * <p> |
| * Shortcut for calling <code>addBeanTypes(<jk>true</jk>)</code>. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Serializer#SERIALIZER_addBeanTypes} |
| * </ul> |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder addBeanTypes() { |
| return set(SERIALIZER_addBeanTypes, true); |
| } |
| |
| /** |
| * Configuration property: Add type attribute to root nodes. |
| * |
| * <p> |
| * When disabled, it is assumed that the parser knows the exact Java POJO type being parsed, and therefore top-level |
| * type information that might normally be included to determine the data type will not be serialized. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Serializer#SERIALIZER_addRootType} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default is <jk>false</jk>. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder addRootType(boolean value) { |
| return set(SERIALIZER_addRootType, value); |
| } |
| |
| /** |
| * Configuration property: Add type attribute to root nodes. |
| * |
| * <p> |
| * Shortcut for calling <code>addRootType(<jk>true</jk>)</code>. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Serializer#SERIALIZER_addRootType} |
| * </ul> |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder addRootType() { |
| return set(SERIALIZER_addRootType, true); |
| } |
| |
| /** |
| * Configuration property: Automatically detect POJO recursions. |
| * |
| * <p> |
| * Specifies that recursions should be checked for during serialization. |
| * |
| * <ul class='notes'> |
| * <li> |
| * Checking for recursion can cause a small performance penalty. |
| * </ul> |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link BeanTraverseContext#BEANTRAVERSE_detectRecursions} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default is <jk>false</jk>. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder detectRecursions(boolean value) { |
| return set(BEANTRAVERSE_detectRecursions, value); |
| } |
| |
| /** |
| * Configuration property: Automatically detect POJO recursions. |
| * |
| * <p> |
| * Shortcut for calling <code>detectRecursions(<jk>true</jk>)</code>. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link BeanTraverseContext#BEANTRAVERSE_detectRecursions} |
| * </ul> |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder detectRecursions() { |
| return set(BEANTRAVERSE_detectRecursions, true); |
| } |
| |
| /** |
| * Configuration property: Ignore recursion errors. |
| * |
| * <p> |
| * If <jk>true</jk>, when we encounter the same object when serializing a tree, we set the value to <jk>null</jk>. |
| * Otherwise, an exception is thrown. |
| * |
| * <ul class='notes'> |
| * <li> |
| * Checking for recursion can cause a small performance penalty. |
| * </ul> |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link BeanTraverseContext#BEANTRAVERSE_ignoreRecursions} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default is <jk>false</jk>. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder ignoreRecursions(boolean value) { |
| return set(BEANTRAVERSE_ignoreRecursions, value); |
| } |
| |
| /** |
| * Configuration property: Ignore recursion errors. |
| * |
| * <p> |
| * Shortcut for calling <code>ignoreRecursions(<jk>true</jk>)</code>. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link BeanTraverseContext#BEANTRAVERSE_ignoreRecursions} |
| * </ul> |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder ignoreRecursions() { |
| return set(BEANTRAVERSE_ignoreRecursions, true); |
| } |
| |
| /** |
| * Configuration property: Initial depth. |
| * |
| * <p> |
| * The initial indentation level at the root. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link BeanTraverseContext#BEANTRAVERSE_initialDepth} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default is <c>0</c>. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder initialDepth(int value) { |
| return set(BEANTRAVERSE_initialDepth, value); |
| } |
| |
| /** |
| * Configuration property: Serializer listener. |
| * |
| * <p> |
| * Class used to listen for errors and warnings that occur during serialization. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Serializer#SERIALIZER_listener} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder listenerS(Class<? extends SerializerListener> value) { |
| return set(SERIALIZER_listener, value); |
| } |
| |
| /** |
| * Configuration property: Max serialization depth. |
| * |
| * <p> |
| * Abort serialization if specified depth is reached in the POJO tree. |
| * <br>If this depth is exceeded, an exception is thrown. |
| * <br>This prevents stack overflows from occurring when trying to serialize models with recursive references. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link BeanTraverseContext#BEANTRAVERSE_maxDepth} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default is <c>100</c>. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder maxDepth(int value) { |
| return set(BEANTRAVERSE_maxDepth, value); |
| } |
| |
| /** |
| * Configuration property: Sort arrays and collections alphabetically. |
| * |
| * <p> |
| * Copies and sorts the contents of arrays and collections before serializing them. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Serializer#SERIALIZER_sortCollections} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default is <jk>false</jk>. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder sortCollections(boolean value) { |
| return set(SERIALIZER_sortCollections, value); |
| } |
| |
| /** |
| * Configuration property: Sort arrays and collections alphabetically. |
| * |
| * <p> |
| * Shortcut for calling <code>sortCollections(<jk>true</jk>)</code>. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Serializer#SERIALIZER_sortCollections} |
| * </ul> |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder sortCollections() { |
| return set(SERIALIZER_sortCollections, true); |
| } |
| |
| /** |
| * Sets the {@link Serializer#SERIALIZER_sortMaps} property on all serializers in this group. |
| * |
| * <p> |
| * Copies and sorts the contents of maps before serializing them. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Serializer#SERIALIZER_sortMaps} |
| * </ul> |
| * |
| * @param value The new value for this property. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder sortMaps(boolean value) { |
| return set(SERIALIZER_sortMaps, value); |
| } |
| |
| /** |
| * Configuration property: Sort maps alphabetically. |
| * |
| * <p> |
| * Shortcut for calling <code>sortMaps(<jk>true</jk>)</code>. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Serializer#SERIALIZER_sortMaps} |
| * </ul> |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder sortMaps() { |
| return set(SERIALIZER_sortMaps, true); |
| } |
| |
| /** |
| * Configuration property: Trim empty lists and arrays. |
| * |
| * <p> |
| * If <jk>true</jk>, empty list values will not be serialized to the output. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Serializer#SERIALIZER_trimEmptyCollections} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default is <jk>false</jk>. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder trimEmptyCollections(boolean value) { |
| return set(SERIALIZER_trimEmptyCollections, value); |
| } |
| |
| /** |
| * Configuration property: Trim empty lists and arrays. |
| * |
| * <p> |
| * Shortcut for calling <code>trimEmptyCollections(<jk>true</jk>)</code>. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Serializer#SERIALIZER_trimEmptyCollections} |
| * </ul> |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder trimEmptyCollections() { |
| return set(SERIALIZER_trimEmptyCollections, true); |
| } |
| |
| /** |
| * Configuration property: Trim empty maps. |
| * |
| * <p> |
| * If <jk>true</jk>, empty map values will not be serialized to the output. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Serializer#SERIALIZER_trimEmptyMaps} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default is <jk>false</jk>. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder trimEmptyMaps(boolean value) { |
| return set(SERIALIZER_trimEmptyMaps, value); |
| } |
| |
| /** |
| * Configuration property: Trim empty maps. |
| * |
| * <p> |
| * Shortcut for calling <code>trimEmptyMaps(<jk>true</jk>)</code>. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Serializer#SERIALIZER_trimEmptyMaps} |
| * </ul> |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder trimEmptyMaps() { |
| return set(SERIALIZER_trimEmptyMaps, true); |
| } |
| |
| /** |
| * Configuration property: Trim null bean property values. |
| * |
| * <p> |
| * If <jk>true</jk>, null bean values will not be serialized to the output. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Serializer#SERIALIZER_trimNullProperties} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default is <jk>true</jk>. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder trimNullProperties(boolean value) { |
| return set(SERIALIZER_trimNullProperties, value); |
| } |
| |
| /** |
| * Configuration property: Trim strings. |
| * |
| * <p> |
| * If <jk>true</jk>, string values will be trimmed of whitespace using {@link String#trim()} before being serialized. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Serializer#SERIALIZER_trimStrings} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default is <jk>false</jk>. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder trimStringsS(boolean value) { |
| return set(SERIALIZER_trimStrings, value); |
| } |
| |
| /** |
| * Configuration property: Trim strings. |
| * |
| * <p> |
| * Shortcut for calling <code>trimStrings(<jk>true</jk>)</code>. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Serializer#SERIALIZER_trimStrings} |
| * </ul> |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder trimStringsS() { |
| return set(SERIALIZER_trimStrings, true); |
| } |
| |
| /** |
| * Configuration property: URI context bean. |
| * |
| * <p> |
| * Bean used for resolution of URIs to absolute or root-relative form. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Serializer#SERIALIZER_uriContext} |
| * </ul> |
| * |
| * @param value The new value for this property. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder uriContext(UriContext value) { |
| return set(SERIALIZER_uriContext, value); |
| } |
| |
| /** |
| * Configuration property: URI relativity. |
| * |
| * <p> |
| * Defines what relative URIs are relative to when serializing URI/URL objects. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Serializer#SERIALIZER_uriRelativity} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default is {@link UriRelativity#RESOURCE} |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder uriRelativity(UriRelativity value) { |
| return set(SERIALIZER_uriRelativity, value); |
| } |
| |
| /** |
| * Configuration property: URI resolution. |
| * |
| * <p> |
| * Defines the resolution level for URIs when serializing URI/URL objects. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Serializer#SERIALIZER_uriResolution} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default is {@link UriResolution#NONE} |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder uriResolution(UriResolution value) { |
| return set(SERIALIZER_uriResolution, value); |
| } |
| |
| /** |
| * Configuration property: Maximum indentation. |
| * |
| * <p> |
| * Specifies the maximum indentation level in the serialized document. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link WriterSerializer#WSERIALIZER_maxIndent} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default is <c>100</c>. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder maxIndent(int value) { |
| return set(WSERIALIZER_maxIndent, value); |
| } |
| |
| /** |
| * Configuration property: Quote character. |
| * |
| * <p> |
| * This is the character used for quoting attributes and values. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link WriterSerializer#WSERIALIZER_quoteChar} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default is <js>'"'</js>. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder quoteChar(char value) { |
| return set(WSERIALIZER_quoteChar, value); |
| } |
| |
| /** |
| * Configuration property: Quote character. |
| * |
| * <p> |
| * Shortcut for calling <code>quoteChar(<js>'\''</js>)</code>. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link WriterSerializer#WSERIALIZER_quoteChar} |
| * </ul> |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder sq() { |
| return set(WSERIALIZER_quoteChar, '\''); |
| } |
| |
| /** |
| * Configuration property: Use whitespace. |
| * |
| * <p> |
| * If <jk>true</jk>, newlines and indentation and spaces are added to the output to improve readability. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link WriterSerializer#WSERIALIZER_useWhitespace} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default is <jk>false</jk>. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder useWhitespace(boolean value) { |
| return set(WSERIALIZER_useWhitespace, value); |
| } |
| |
| /** |
| * Configuration property: Use whitespace. |
| * |
| * <p> |
| * Shortcut for calling <code>useWhitespace(<jk>true</jk>)</code>. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link WriterSerializer#WSERIALIZER_useWhitespace} |
| * </ul> |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder useWhitespace() { |
| return set(WSERIALIZER_useWhitespace, true); |
| } |
| |
| /** |
| * Configuration property: Use whitespace. |
| * |
| * <p> |
| * Shortcut for calling <code>useWhitespace(<jk>true</jk>)</code>. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link WriterSerializer#WSERIALIZER_useWhitespace} |
| * </ul> |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder ws() { |
| return set(WSERIALIZER_useWhitespace, true); |
| } |
| |
| /** |
| * Configuration property: Binary string format. |
| * |
| * <p> |
| * When using the {@link Serializer#serializeToString(Object)} method on stream-based serializers, this defines the format to use |
| * when converting the resulting byte array to a string. |
| * |
| * <ul class='javatree'> |
| * <li class='jf'>{@link OutputStreamSerializer#OSSERIALIZER_binaryFormat} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default is {@link BinaryFormat#HEX}. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder binaryOutputFormat(BinaryFormat value) { |
| return set(OSSERIALIZER_binaryFormat, value); |
| } |
| |
| /** |
| * Configuration property: Auto-close streams. |
| * |
| * If <jk>true</jk>, <l>InputStreams</l> and <l>Readers</l> passed into parsers will be closed |
| * after parsing is complete. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Parser#PARSER_autoCloseStreams} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default value is <jk>false</jk>. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder autoCloseStreams(boolean value) { |
| return set(PARSER_autoCloseStreams, value); |
| } |
| |
| /** |
| * Configuration property: Auto-close streams. |
| * |
| * <p> |
| * Shortcut for calling <code>autoCloseStreams(<jk>true</jk>)</code>. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Parser#PARSER_autoCloseStreams} |
| * </ul> |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder autoCloseStreams() { |
| return set(PARSER_autoCloseStreams, true); |
| } |
| |
| /** |
| * Configuration property: Debug output lines. |
| * |
| * When parse errors occur, this specifies the number of lines of input before and after the |
| * error location to be printed as part of the exception message. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Parser#PARSER_debugOutputLines} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default value is <c>5</c>. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder debugOutputLines(int value) { |
| set(PARSER_debugOutputLines, value); |
| return this; |
| } |
| |
| /** |
| * Configuration property: Parser listener. |
| * |
| * <p> |
| * Class used to listen for errors and warnings that occur during parsing. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Parser#PARSER_listener} |
| * </ul> |
| * |
| * @param value The new value for this property. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder listenerP(Class<? extends ParserListener> value) { |
| return set(PARSER_listener, value); |
| } |
| |
| /** |
| * Configuration property: Strict mode. |
| * |
| * <p> |
| * If <jk>true</jk>, strict mode for the parser is enabled. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Parser#PARSER_strict} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default value is <jk>false</jk>. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder strict(boolean value) { |
| return set(PARSER_strict, value); |
| } |
| |
| /** |
| * Configuration property: Strict mode. |
| * |
| * <p> |
| * Shortcut for calling <code>strict(<jk>true</jk>)</code>. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Parser#PARSER_strict} |
| * </ul> |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder strict() { |
| return set(PARSER_strict, true); |
| } |
| |
| /** |
| * Configuration property: Trim parsed strings. |
| * |
| * <p> |
| * If <jk>true</jk>, string values will be trimmed of whitespace using {@link String#trim()} before being added to |
| * the POJO. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Parser#PARSER_trimStrings} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default value is <jk>false</jk>. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder trimStringsP(boolean value) { |
| return set(PARSER_trimStrings, value); |
| } |
| |
| /** |
| * Configuration property: Trim parsed strings. |
| * |
| * <p> |
| * Shortcut for calling <code>trimStrings(<jk>true</jk>)</code>. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Parser#PARSER_trimStrings} |
| * </ul> |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder trimStringsP() { |
| return set(PARSER_trimStrings, true); |
| } |
| |
| /** |
| * Configuration property: Unbuffered. |
| * |
| * If <jk>true</jk>, don't use internal buffering during parsing. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Parser#PARSER_unbuffered} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default value is <jk>false</jk>. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder unbuffered(boolean value) { |
| return set(PARSER_unbuffered, value); |
| } |
| |
| /** |
| * Configuration property: Unbuffered. |
| * |
| * <p> |
| * Shortcut for calling <code>unbuffered(<jk>true</jk>)</code>. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link Parser#PARSER_unbuffered} |
| * </ul> |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder unbuffered() { |
| return set(PARSER_unbuffered, true); |
| } |
| |
| /** |
| * Configuration property: File charset. |
| * |
| * <p> |
| * The character set to use for reading <c>Files</c> from the file system. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link ReaderParser#RPARSER_fileCharset} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default value is <js>"DEFAULT"</js> which causes the system default to be used. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder fileCharset(String value) { |
| return set(RPARSER_fileCharset, value); |
| } |
| |
| /** |
| * Configuration property: Input stream charset. |
| * |
| * <p> |
| * The character set to use for converting <c>InputStreams</c> and byte arrays to readers. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link ReaderParser#RPARSER_streamCharset} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default value is <js>"UTF-8"</js>. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder inputStreamCharset(String value) { |
| return set(RPARSER_streamCharset, value); |
| } |
| |
| /** |
| * Configuration property: Binary input format. |
| * |
| * <p> |
| * When using the {@link Parser#parse(Object,Class)} method on stream-based parsers and the input is a string, this defines the format to use |
| * when converting the string into a byte array. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link InputStreamParser#ISPARSER_binaryFormat} |
| * </ul> |
| * |
| * @param value |
| * The new value for this property. |
| * <br>The default value is {@link BinaryFormat#HEX}. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder binaryInputFormat(BinaryFormat value) { |
| return set(ISPARSER_binaryFormat, value); |
| } |
| |
| /** |
| * Configuration property: Parameter format. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link UonSerializer#UON_paramFormat} |
| * </ul> |
| * |
| * @param value The new value for this property. |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder paramFormat(String value) { |
| return set(UON_paramFormat, value); |
| } |
| |
| /** |
| * Configuration property: Parameter format. |
| * |
| * <ul class='seealso'> |
| * <li class='jf'>{@link UonSerializer#UON_paramFormat} |
| * </ul> |
| * |
| * @return This object (for method chaining). |
| */ |
| public RestClientBuilder paramFormatPlain() { |
| return set(UON_paramFormat, "PLAINTEXT"); |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder beanClassVisibility(Visibility value) { |
| super.beanClassVisibility(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder beanConstructorVisibility(Visibility value) { |
| super.beanConstructorVisibility(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| @Deprecated |
| public RestClientBuilder beanDictionary(Class<?>...values) { |
| super.beanDictionary(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| @Deprecated |
| public RestClientBuilder beanDictionary(Object...values) { |
| super.beanDictionary(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| @Deprecated |
| public RestClientBuilder beanDictionaryReplace(Class<?>...values) { |
| super.beanDictionaryReplace(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| @Deprecated |
| public RestClientBuilder beanDictionaryReplace(Object...values) { |
| super.beanDictionaryReplace(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| @Deprecated |
| public RestClientBuilder beanDictionaryRemove(Class<?>...values) { |
| super.beanDictionaryRemove(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| @Deprecated |
| public RestClientBuilder beanDictionaryRemove(Object...values) { |
| super.beanDictionaryRemove(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder beanFieldVisibility(Visibility value) { |
| super.beanFieldVisibility(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder beanFilters(Class<?>...values) { |
| super.beanFilters(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder beanFilters(Object...values) { |
| super.beanFilters(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder beanFiltersReplace(Class<?>...values) { |
| super.beanFiltersReplace(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder beanFiltersReplace(Object...values) { |
| super.beanFiltersReplace(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder beanFiltersRemove(Class<?>...values) { |
| super.beanFiltersRemove(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder beanFiltersRemove(Object...values) { |
| super.beanFiltersRemove(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder beanMapPutReturnsOldValue(boolean value) { |
| super.beanMapPutReturnsOldValue(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder beanMapPutReturnsOldValue() { |
| super.beanMapPutReturnsOldValue(); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder beanMethodVisibility(Visibility value) { |
| super.beanMethodVisibility(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder beansRequireDefaultConstructor(boolean value) { |
| super.beansRequireDefaultConstructor(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder beansRequireDefaultConstructor() { |
| super.beansRequireDefaultConstructor(); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder beansRequireSerializable(boolean value) { |
| super.beansRequireSerializable(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder beansRequireSerializable() { |
| super.beansRequireSerializable(); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder beansRequireSettersForGetters(boolean value) { |
| super.beansRequireSettersForGetters(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder beansRequireSettersForGetters() { |
| super.beansRequireSettersForGetters(); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder beansRequireSomeProperties(boolean value) { |
| super.beansRequireSomeProperties(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder beanTypePropertyName(String value) { |
| super.beanTypePropertyName(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder bpi(Class<?> beanClass, String value) { |
| super.bpi(beanClass, value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder bpi(Map<String,String> values) { |
| super.bpi(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder bpi(String beanClassName, String value) { |
| super.bpi(beanClassName, value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder bpx(Class<?> beanClass, String properties) { |
| super.bpx(beanClass, properties); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder bpx(Map<String,String> values) { |
| super.bpx(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder bpx(String beanClassName, String value) { |
| super.bpx(beanClassName, value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder debug() { |
| super.debug(); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder debug(boolean value) { |
| super.debug(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder dictionary(Class<?>...values) { |
| super.dictionary(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder dictionary(Object...values) { |
| super.dictionary(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder dictionaryReplace(Class<?>...values) { |
| super.dictionaryReplace(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder dictionaryReplace(Object...values) { |
| super.dictionaryReplace(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder dictionaryRemove(Class<?>...values) { |
| super.dictionaryRemove(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder dictionaryRemove(Object...values) { |
| super.dictionaryRemove(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public <T> RestClientBuilder example(Class<T> c, T o) { |
| super.example(c, o); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public <T> RestClientBuilder exampleJson(Class<T> c, String value) { |
| super.exampleJson(c, value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder ignoreInvocationExceptionsOnGetters(boolean value) { |
| super.ignoreInvocationExceptionsOnGetters(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder ignoreInvocationExceptionsOnGetters() { |
| super.ignoreInvocationExceptionsOnGetters(); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder ignoreInvocationExceptionsOnSetters(boolean value) { |
| super.ignoreInvocationExceptionsOnSetters(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder ignoreInvocationExceptionsOnSetters() { |
| super.ignoreInvocationExceptionsOnSetters(); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder ignorePropertiesWithoutSetters(boolean value) { |
| super.ignorePropertiesWithoutSetters(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder ignoreUnknownBeanProperties(boolean value) { |
| super.ignoreUnknownBeanProperties(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder ignoreUnknownBeanProperties() { |
| super.ignoreUnknownBeanProperties(); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder ignoreUnknownNullBeanProperties(boolean value) { |
| super.ignoreUnknownNullBeanProperties(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder implClass(Class<?> interfaceClass, Class<?> implClass) { |
| super.implClass(interfaceClass, implClass); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder implClasses(Map<String,Class<?>> values) { |
| super.implClasses(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder locale(Locale value) { |
| super.locale(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder mediaType(MediaType value) { |
| super.mediaType(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder notBeanClasses(Class<?>...values) { |
| super.notBeanClasses(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder notBeanClasses(Object...values) { |
| super.notBeanClasses(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder notBeanClassesReplace(Class<?>...values) { |
| super.notBeanClassesReplace(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder notBeanClassesReplace(Object...values) { |
| super.notBeanClassesReplace(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder notBeanClassesRemove(Class<?>...values) { |
| super.notBeanClassesRemove(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder notBeanClassesRemove(Object...values) { |
| super.notBeanClassesRemove(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder notBeanPackages(Object...values) { |
| super.notBeanPackages(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder notBeanPackages(String...values) { |
| super.notBeanPackages(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder notBeanPackagesReplace(String...values) { |
| super.notBeanPackagesReplace(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder notBeanPackagesReplace(Object...values) { |
| super.notBeanPackagesReplace(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder notBeanPackagesRemove(String...values) { |
| super.notBeanPackagesRemove(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder notBeanPackagesRemove(Object...values) { |
| super.notBeanPackagesRemove(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder pojoSwaps(Class<?>...values) { |
| super.pojoSwaps(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder pojoSwaps(Object...values) { |
| super.pojoSwaps(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder pojoSwapsReplace(Class<?>...values) { |
| super.pojoSwapsReplace(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder pojoSwapsReplace(Object...values) { |
| super.pojoSwapsReplace(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder pojoSwapsRemove(Class<?>...values) { |
| super.pojoSwapsRemove(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder pojoSwapsRemove(Object...values) { |
| super.pojoSwapsRemove(values); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder sortProperties(boolean value) { |
| super.sortProperties(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder sortProperties() { |
| super.sortProperties(); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder timeZone(TimeZone value) { |
| super.timeZone(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder useEnumNames(boolean value) { |
| super.useEnumNames(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder useEnumNames() { |
| super.useEnumNames(); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder useInterfaceProxies(boolean value) { |
| super.useInterfaceProxies(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder useJavaBeanIntrospector(boolean value) { |
| super.useJavaBeanIntrospector(value); |
| return this; |
| } |
| |
| @Override /* BeanContextBuilder */ |
| public RestClientBuilder useJavaBeanIntrospector() { |
| super.useJavaBeanIntrospector(); |
| return this; |
| } |
| |
| @Override /* ContextBuilder */ |
| public RestClientBuilder set(String name, Object value) { |
| super.set(name, value); |
| return this; |
| } |
| |
| @Override /* ContextBuilder */ |
| public RestClientBuilder set(Map<String,Object> properties) { |
| super.set(properties); |
| return this; |
| } |
| |
| @Override /* ContextBuilder */ |
| public RestClientBuilder add(Map<String,Object> properties) { |
| super.add(properties); |
| return this; |
| } |
| |
| @Override /* ContextBuilder */ |
| public RestClientBuilder addTo(String name, Object value) { |
| super.addTo(name, value); |
| return this; |
| } |
| |
| @Override /* ContextBuilder */ |
| public RestClientBuilder addTo(String name, String key, Object value) { |
| super.addTo(name, key, value); |
| return this; |
| } |
| |
| @Override /* ContextBuilder */ |
| public RestClientBuilder removeFrom(String name, Object value) { |
| super.removeFrom(name, value); |
| return this; |
| } |
| |
| @Override /* ContextBuilder */ |
| public RestClientBuilder apply(PropertyStore copyFrom) { |
| super.apply(copyFrom); |
| return this; |
| } |
| |
| @Override /* ContextBuilder */ |
| public RestClientBuilder applyAnnotations(AnnotationList al, VarResolverSession vrs) { |
| super.applyAnnotations(al, vrs); |
| return this; |
| } |
| |
| @Override /* ContextBuilder */ |
| public RestClientBuilder applyAnnotations(Class<?> fromClass) { |
| super.applyAnnotations(fromClass); |
| return this; |
| } |
| |
| @Override /* ContextBuilder */ |
| public RestClientBuilder applyAnnotations(Method fromMethod) { |
| super.applyAnnotations(fromMethod); |
| return this; |
| } |
| |
| //------------------------------------------------------------------------------------------------ |
| // Passthrough methods for HttpClientBuilder. |
| //------------------------------------------------------------------------------------------------ |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @param connTimeToLive New property value. |
| * @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; |
| } |
| |
| /** |
| * @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); |
| return this; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @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; |
| } |
| |
| /** |
| * @param maxIdleTime New property value. |
| * @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; |
| } |
| } |