From b98e7e2b4677d29962a3320727fbaf35f4ab9a31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Ko=C5=82odziejczyk?= Date: Tue, 16 Jan 2018 23:23:49 +0100 Subject: [PATCH 1/3] added: properties async http client config --- .../DefaultAsyncHttpClientConfig.java | 14 - .../PropertiesAsyncHttpClientConfig.java | 360 ++++++++++++++++++ .../config/AsyncHttpClientConfigDefaults.java | 162 +++++--- .../config/AsyncHttpClientConfigHelper.java | 48 +++ 4 files changed, 522 insertions(+), 62 deletions(-) create mode 100644 client/src/main/java/org/asynchttpclient/PropertiesAsyncHttpClientConfig.java diff --git a/client/src/main/java/org/asynchttpclient/DefaultAsyncHttpClientConfig.java b/client/src/main/java/org/asynchttpclient/DefaultAsyncHttpClientConfig.java index 8567079e1d..2905a36388 100644 --- a/client/src/main/java/org/asynchttpclient/DefaultAsyncHttpClientConfig.java +++ b/client/src/main/java/org/asynchttpclient/DefaultAsyncHttpClientConfig.java @@ -17,8 +17,6 @@ import static org.asynchttpclient.config.AsyncHttpClientConfigDefaults.*; -import java.io.IOException; -import java.io.InputStream; import java.util.*; import java.util.concurrent.ThreadFactory; import java.util.function.Consumer; @@ -50,18 +48,6 @@ */ public class DefaultAsyncHttpClientConfig implements AsyncHttpClientConfig { - private static final String AHC_VERSION; - - static { - try (InputStream is = DefaultAsyncHttpClientConfig.class.getResourceAsStream("/ahc-version.properties")) { - Properties prop = new Properties(); - prop.load(is); - AHC_VERSION = prop.getProperty("ahc.version", "UNKNOWN"); - } catch (IOException e) { - throw new ExceptionInInitializerError(e); - } - } - // http private final boolean followRedirect; private final int maxRedirects; diff --git a/client/src/main/java/org/asynchttpclient/PropertiesAsyncHttpClientConfig.java b/client/src/main/java/org/asynchttpclient/PropertiesAsyncHttpClientConfig.java new file mode 100644 index 0000000000..5189a57a40 --- /dev/null +++ b/client/src/main/java/org/asynchttpclient/PropertiesAsyncHttpClientConfig.java @@ -0,0 +1,360 @@ +package org.asynchttpclient; + +import io.netty.buffer.ByteBufAllocator; +import io.netty.channel.Channel; +import io.netty.channel.ChannelOption; +import io.netty.channel.EventLoopGroup; +import io.netty.handler.ssl.SslContext; +import io.netty.util.Timer; +import org.asynchttpclient.channel.ChannelPool; +import org.asynchttpclient.channel.DefaultKeepAliveStrategy; +import org.asynchttpclient.channel.KeepAliveStrategy; +import org.asynchttpclient.config.AsyncHttpClientConfigDefaults; +import org.asynchttpclient.config.AsyncHttpClientConfigHelper; +import org.asynchttpclient.cookie.CookieStore; +import org.asynchttpclient.cookie.ThreadSafeCookieStore; +import org.asynchttpclient.filter.IOExceptionFilter; +import org.asynchttpclient.filter.RequestFilter; +import org.asynchttpclient.filter.ResponseFilter; +import org.asynchttpclient.proxy.ProxyServerSelector; + +import java.util.*; +import java.util.concurrent.ThreadFactory; +import java.util.function.Consumer; + +import static org.asynchttpclient.config.AsyncHttpClientConfigDefaults.*; + +public class PropertiesAsyncHttpClientConfig implements AsyncHttpClientConfig { + + private final AsyncHttpClientConfigHelper.Config config; + + public PropertiesAsyncHttpClientConfig(Properties properties) { + this.config = new AsyncHttpClientConfigHelper.Config(properties); + } + + @Override + public String getAhcVersion() { + return AsyncHttpClientConfigDefaults.AHC_VERSION; + } + + @Override + public String getThreadPoolName() { + return config.getStringOpt(THREAD_POOL_NAME_CONFIG).orElse(defaultThreadPoolName()); + } + + @Override + public int getMaxConnections() { + return config.getIntOpt(MAX_CONNECTIONS_CONFIG).orElse(defaultMaxConnections()); + } + + @Override + public int getMaxConnectionsPerHost() { + return config.getIntOpt(MAX_CONNECTIONS_PER_HOST_CONFIG).orElse(defaultMaxConnectionsPerHost()); + } + + @Override + public int getConnectTimeout() { + return config.getIntOpt(CONNECTION_TIMEOUT_CONFIG).orElse(defaultConnectTimeout()); + } + + @Override + public int getReadTimeout() { + return config.getIntOpt(READ_TIMEOUT_CONFIG).orElse(defaultReadTimeout()); + } + + @Override + public int getPooledConnectionIdleTimeout() { + return config.getIntOpt(POOLED_CONNECTION_IDLE_TIMEOUT_CONFIG).orElse(defaultPooledConnectionIdleTimeout()); + } + + @Override + public int getConnectionPoolCleanerPeriod() { + return config.getIntOpt(CONNECTION_POOL_CLEANER_PERIOD_CONFIG).orElse(defaultConnectionPoolCleanerPeriod()); + } + + @Override + public int getRequestTimeout() { + return config.getIntOpt(READ_TIMEOUT_CONFIG).orElse(defaultReadTimeout()); + } + + @Override + public boolean isFollowRedirect() { + return config.getBooleanOpt(FOLLOW_REDIRECT_CONFIG).orElse(defaultFollowRedirect()); + } + + @Override + public int getMaxRedirects() { + return config.getIntOpt(MAX_REDIRECT_CONFIG).orElse(defaultMaxRedirects()); + } + + @Override + public boolean isKeepAlive() { + return config.getBooleanOpt(KEEP_ALIVE_CONFIG).orElse(defaultKeepAlive()); + } + + @Override + public String getUserAgent() { + return config.getStringOpt(USER_AGENT_CONFIG).orElse(defaultUserAgent()); + } + + @Override + public boolean isCompressionEnforced() { + return config.getBooleanOpt(COMPRESSION_ENFORCED_CONFIG).orElse(defaultCompressionEnforced()); + } + + @Override + public ThreadFactory getThreadFactory() { + return null; + } + + @Override + public ProxyServerSelector getProxyServerSelector() { + return ProxyServerSelector.NO_PROXY_SELECTOR; + } + + @Override + public SslContext getSslContext() { + return null; + } + + @Override + public Realm getRealm() { + return null; + } + + @Override + public List getRequestFilters() { + return new LinkedList<>(); + } + + @Override + public List getResponseFilters() { + return new LinkedList<>(); + } + + @Override + public List getIoExceptionFilters() { + return new LinkedList<>(); + } + + @Override + public CookieStore getCookieStore() { + return new ThreadSafeCookieStore(); + } + + @Override + public int getMaxRequestRetry() { + return config.getIntOpt(MAX_REQUEST_RETRY_CONFIG).orElse(defaultMaxRequestRetry()); + } + + @Override + public boolean isDisableUrlEncodingForBoundRequests() { + return config.getBooleanOpt(DISABLE_URL_ENCODING_FOR_BOUND_REQUESTS_CONFIG).orElse(defaultDisableUrlEncodingForBoundRequests()); + } + + @Override + public boolean isUseLaxCookieEncoder() { + return config.getBooleanOpt(USE_LAX_COOKIE_ENCODER_CONFIG).orElse(defaultUseLaxCookieEncoder()); + } + + @Override + public boolean isStrict302Handling() { + return config.getBooleanOpt(STRICT_302_HANDLING_CONFIG).orElse(defaultStrict302Handling()); + } + + @Override + public int getConnectionTtl() { + return config.getIntOpt(CONNECTION_TTL_CONFIG).orElse(defaultConnectionTtl()); + } + + @Override + public boolean isUseOpenSsl() { + return config.getBooleanOpt(USE_OPEN_SSL_CONFIG).orElse(defaultUseOpenSsl()); + } + + @Override + public boolean isUseInsecureTrustManager() { + return config.getBooleanOpt(USE_INSECURE_TRUST_MANAGER_CONFIG).orElse(defaultUseInsecureTrustManager()); + } + + @Override + public boolean isDisableHttpsEndpointIdentificationAlgorithm() { + return config.getBooleanOpt(DISABLE_HTTPS_ENDPOINT_IDENTIFICATION_ALGORITHM_CONFIG).orElse(defaultDisableHttpsEndpointIdentificationAlgorithm()); + } + + @Override + public String[] getEnabledProtocols() { + return config.getStringArrayOpt(ENABLED_PROTOCOLS_CONFIG).orElse(defaultEnabledProtocols()); + } + + @Override + public String[] getEnabledCipherSuites() { + return config.getStringArrayOpt(ENABLED_CIPHER_SUITES_CONFIG).orElse(defaultEnabledCipherSuites()); + } + + @Override + public int getSslSessionCacheSize() { + return config.getIntOpt(SSL_SESSION_CACHE_SIZE_CONFIG).orElse(defaultSslSessionCacheSize()); + } + + @Override + public int getSslSessionTimeout() { + return config.getIntOpt(SSL_SESSION_TIMEOUT_CONFIG).orElse(defaultSslSessionTimeout()); + } + + @Override + public int getHttpClientCodecMaxInitialLineLength() { + return config.getIntOpt(HTTP_CLIENT_CODEC_MAX_INITIAL_LINE_LENGTH_CONFIG).orElse(defaultHttpClientCodecMaxInitialLineLength()); + } + + @Override + public int getHttpClientCodecMaxHeaderSize() { + return config.getIntOpt(HTTP_CLIENT_CODEC_MAX_HEADER_SIZE_CONFIG).orElse(defaultHttpClientCodecMaxHeaderSize()); + } + + @Override + public int getHttpClientCodecMaxChunkSize() { + return config.getIntOpt(HTTP_CLIENT_CODEC_MAX_CHUNK_SIZE_CONFIG).orElse(defaultHttpClientCodecMaxChunkSize()); + } + + @Override + public int getHttpClientCodecInitialBufferSize() { + return config.getIntOpt(HTTP_CLIENT_CODEC_INITIAL_BUFFER_SIZE_CONFIG).orElse(defaultHttpClientCodecInitialBufferSize()); + } + + @Override + public boolean isDisableZeroCopy() { + return config.getBooleanOpt(DISABLE_ZERO_COPY_CONFIG).orElse(defaultDisableZeroCopy()); + } + + @Override + public int getHandshakeTimeout() { + return config.getIntOpt(HANDSHAKE_TIMEOUT_CONFIG).orElse(defaultHandshakeTimeout()); + } + + @Override + public SslEngineFactory getSslEngineFactory() { + return null; + } + + @Override + public int getChunkedFileChunkSize() { + return config.getIntOpt(CHUNKED_FILE_CHUNK_SIZE_CONFIG).orElse(defaultChunkedFileChunkSize()); + } + + @Override + public int getWebSocketMaxBufferSize() { + return config.getIntOpt(WEB_SOCKET_MAX_BUFFER_SIZE_CONFIG).orElse(defaultWebSocketMaxBufferSize()); + } + + @Override + public int getWebSocketMaxFrameSize() { + return config.getIntOpt(WEB_SOCKET_MAX_FRAME_SIZE_CONFIG).orElse(defaultWebSocketMaxFrameSize()); + } + + @Override + public boolean isKeepEncodingHeader() { + return config.getBooleanOpt(KEEP_ENCODING_HEADER_CONFIG).orElse(defaultKeepEncodingHeader()); + } + + @Override + public int getShutdownQuietPeriod() { + return config.getIntOpt(SHUTDOWN_QUIET_PERIOD_CONFIG).orElse(defaultShutdownQuietPeriod()); + } + + @Override + public int getShutdownTimeout() { + return config.getIntOpt(SHUTDOWN_TIMEOUT_CONFIG).orElse(defaultShutdownTimeout()); + } + + @Override + public Map, Object> getChannelOptions() { + return Collections.emptyMap(); + } + + @Override + public EventLoopGroup getEventLoopGroup() { + return null; + } + + @Override + public boolean isUseNativeTransport() { + return config.getBooleanOpt(USE_NATIVE_TRANSPORT_CONFIG).orElse(defaultUseNativeTransport()); + } + + @Override + public Consumer getHttpAdditionalChannelInitializer() { + return null; + } + + @Override + public Consumer getWsAdditionalChannelInitializer() { + return null; + } + + @Override + public ResponseBodyPartFactory getResponseBodyPartFactory() { + return ResponseBodyPartFactory.EAGER; + } + + @Override + public ChannelPool getChannelPool() { + return null; + } + + @Override + public Timer getNettyTimer() { + return null; + } + + @Override + public KeepAliveStrategy getKeepAliveStrategy() { + return new DefaultKeepAliveStrategy(); + } + + @Override + public boolean isValidateResponseHeaders() { + return config.getBooleanOpt(VALIDATE_RESPONSE_HEADERS_CONFIG).orElse(defaultValidateResponseHeaders()); + } + + @Override + public boolean isAggregateWebSocketFrameFragments() { + return config.getBooleanOpt(AGGREGATE_WEB_SOCKET_FRAME_FRAGMENTS_CONFIG).orElse(defaultAggregateWebSocketFrameFragments()); + } + + @Override + public boolean isTcpNoDelay() { + return config.getBooleanOpt(TCP_NO_DELAY_CONFIG).orElse(defaultTcpNoDelay()); + } + + @Override + public boolean isSoReuseAddress() { + return config.getBooleanOpt(SO_REUSE_ADDRESS_CONFIG).orElse(defaultSoReuseAddress()); + } + + @Override + public int getSoLinger() { + return config.getIntOpt(SO_LINGER_CONFIG).orElse(defaultSoLinger()); + } + + @Override + public int getSoSndBuf() { + return config.getIntOpt(SO_SND_BUF_CONFIG).orElse(defaultSoSndBuf()); + } + + @Override + public int getSoRcvBuf() { + return config.getIntOpt(SO_RCV_BUF_CONFIG).orElse(defaultSoRcvBuf()); + } + + @Override + public ByteBufAllocator getAllocator() { + return null; + } + + @Override + public int getIoThreadsCount() { + return config.getIntOpt(IO_THREADS_COUNT_CONFIG).orElse(defaultIoThreadsCount()); + } + +} diff --git a/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigDefaults.java b/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigDefaults.java index df1c4cfb8b..55661aeb29 100644 --- a/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigDefaults.java +++ b/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigDefaults.java @@ -12,202 +12,268 @@ */ package org.asynchttpclient.config; +import org.asynchttpclient.DefaultAsyncHttpClientConfig; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Properties; + public final class AsyncHttpClientConfigDefaults { + public static final String AHC_VERSION; + + static { + try (InputStream is = DefaultAsyncHttpClientConfig.class.getResourceAsStream("/ahc-version.properties")) { + Properties prop = new Properties(); + prop.load(is); + AHC_VERSION = prop.getProperty("ahc.version", "UNKNOWN"); + } catch (IOException e) { + throw new ExceptionInInitializerError(e); + } + } + private AsyncHttpClientConfigDefaults() { } public static final String ASYNC_CLIENT_CONFIG_ROOT = "org.asynchttpclient."; + public static final String THREAD_POOL_NAME_CONFIG = "threadPoolName"; + public static final String MAX_CONNECTIONS_CONFIG = "maxConnections"; + public static final String MAX_CONNECTIONS_PER_HOST_CONFIG = "maxConnectionsPerHost"; + public static final String CONNECTION_TIMEOUT_CONFIG = "connectTimeout"; + public static final String POOLED_CONNECTION_IDLE_TIMEOUT_CONFIG = "pooledConnectionIdleTimeout"; + public static final String CONNECTION_POOL_CLEANER_PERIOD_CONFIG = "connectionPoolCleanerPeriod"; + public static final String READ_TIMEOUT_CONFIG = "readTimeout"; + public static final String REQUEST_TIMEOUT_CONFIG = "requestTimeout"; + public static final String CONNECTION_TTL_CONFIG = "connectionTtl"; + public static final String FOLLOW_REDIRECT_CONFIG = "followRedirect"; + public static final String MAX_REDIRECT_CONFIG = "maxRedirects"; + public static final String COMPRESSION_ENFORCED_CONFIG = "compressionEnforced"; + public static final String USER_AGENT_CONFIG = "userAgent"; + public static final String ENABLED_PROTOCOLS_CONFIG = "enabledProtocols"; + public static final String ENABLED_CIPHER_SUITES_CONFIG = "enabledCipherSuites"; + public static final String USE_PROXY_SELECTOR_CONFIG = "useProxySelector"; + public static final String USE_PROXY_PROPERTIES_CONFIG = "useProxyProperties"; + public static final String VALIDATE_RESPONSE_HEADERS_CONFIG = "validateResponseHeaders"; + public static final String AGGREGATE_WEB_SOCKET_FRAME_FRAGMENTS_CONFIG = "aggregateWebSocketFrameFragments"; + public static final String STRICT_302_HANDLING_CONFIG = "strict302Handling"; + public static final String KEEP_ALIVE_CONFIG = "keepAlive"; + public static final String MAX_REQUEST_RETRY_CONFIG = "maxRequestRetry"; + public static final String DISABLE_URL_ENCODING_FOR_BOUND_REQUESTS_CONFIG = "disableUrlEncodingForBoundRequests"; + public static final String USE_LAX_COOKIE_ENCODER_CONFIG = "useLaxCookieEncoder"; + public static final String USE_OPEN_SSL_CONFIG = "useOpenSsl"; + public static final String USE_INSECURE_TRUST_MANAGER_CONFIG = "useInsecureTrustManager"; + public static final String DISABLE_HTTPS_ENDPOINT_IDENTIFICATION_ALGORITHM_CONFIG = "disableHttpsEndpointIdentificationAlgorithm"; + public static final String SSL_SESSION_CACHE_SIZE_CONFIG = "sslSessionCacheSize"; + public static final String SSL_SESSION_TIMEOUT_CONFIG = "sslSessionTimeout"; + public static final String TCP_NO_DELAY_CONFIG = "tcpNoDelay"; + public static final String SO_REUSE_ADDRESS_CONFIG = "soReuseAddress"; + public static final String SO_LINGER_CONFIG = "soLinger"; + public static final String SO_SND_BUF_CONFIG = "soSndBuf"; + public static final String SO_RCV_BUF_CONFIG = "soRcvBuf"; + public static final String HTTP_CLIENT_CODEC_MAX_INITIAL_LINE_LENGTH_CONFIG = "httpClientCodecMaxInitialLineLength"; + public static final String HTTP_CLIENT_CODEC_MAX_HEADER_SIZE_CONFIG = "httpClientCodecMaxHeaderSize"; + public static final String HTTP_CLIENT_CODEC_MAX_CHUNK_SIZE_CONFIG = "httpClientCodecMaxChunkSize"; + public static final String HTTP_CLIENT_CODEC_INITIAL_BUFFER_SIZE_CONFIG = "httpClientCodecInitialBufferSize"; + public static final String DISABLE_ZERO_COPY_CONFIG = "disableZeroCopy"; + public static final String HANDSHAKE_TIMEOUT_CONFIG = "handshakeTimeout"; + public static final String CHUNKED_FILE_CHUNK_SIZE_CONFIG = "chunkedFileChunkSize"; + public static final String WEB_SOCKET_MAX_BUFFER_SIZE_CONFIG = "webSocketMaxBufferSize"; + public static final String WEB_SOCKET_MAX_FRAME_SIZE_CONFIG = "webSocketMaxFrameSize"; + public static final String KEEP_ENCODING_HEADER_CONFIG = "keepEncodingHeader"; + public static final String SHUTDOWN_QUIET_PERIOD_CONFIG = "shutdownQuietPeriod"; + public static final String SHUTDOWN_TIMEOUT_CONFIG = "shutdownTimeout"; + public static final String USE_NATIVE_TRANSPORT_CONFIG = "useNativeTransport"; + public static final String IO_THREADS_COUNT_CONFIG = "ioThreadsCount"; public static String defaultThreadPoolName() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getString(ASYNC_CLIENT_CONFIG_ROOT + "threadPoolName"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getString(ASYNC_CLIENT_CONFIG_ROOT + THREAD_POOL_NAME_CONFIG); } public static int defaultMaxConnections() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "maxConnections"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + MAX_CONNECTIONS_CONFIG); } public static int defaultMaxConnectionsPerHost() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "maxConnectionsPerHost"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + MAX_CONNECTIONS_PER_HOST_CONFIG); } public static int defaultConnectTimeout() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "connectTimeout"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + CONNECTION_TIMEOUT_CONFIG); } public static int defaultPooledConnectionIdleTimeout() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "pooledConnectionIdleTimeout"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + POOLED_CONNECTION_IDLE_TIMEOUT_CONFIG); } public static int defaultConnectionPoolCleanerPeriod() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "connectionPoolCleanerPeriod"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + CONNECTION_POOL_CLEANER_PERIOD_CONFIG); } public static int defaultReadTimeout() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "readTimeout"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + READ_TIMEOUT_CONFIG); } public static int defaultRequestTimeout() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "requestTimeout"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + REQUEST_TIMEOUT_CONFIG); } public static int defaultConnectionTtl() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "connectionTtl"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + CONNECTION_TTL_CONFIG); } public static boolean defaultFollowRedirect() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + "followRedirect"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + FOLLOW_REDIRECT_CONFIG); } public static int defaultMaxRedirects() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "maxRedirects"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + MAX_REDIRECT_CONFIG); } public static boolean defaultCompressionEnforced() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + "compressionEnforced"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + COMPRESSION_ENFORCED_CONFIG); } public static String defaultUserAgent() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getString(ASYNC_CLIENT_CONFIG_ROOT + "userAgent"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getString(ASYNC_CLIENT_CONFIG_ROOT + USER_AGENT_CONFIG); } public static String[] defaultEnabledProtocols() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getStringArray(ASYNC_CLIENT_CONFIG_ROOT + "enabledProtocols"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getStringArray(ASYNC_CLIENT_CONFIG_ROOT + ENABLED_PROTOCOLS_CONFIG); } public static String[] defaultEnabledCipherSuites() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getStringArray(ASYNC_CLIENT_CONFIG_ROOT + "enabledCipherSuites"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getStringArray(ASYNC_CLIENT_CONFIG_ROOT + ENABLED_CIPHER_SUITES_CONFIG); } public static boolean defaultUseProxySelector() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + "useProxySelector"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_PROXY_SELECTOR_CONFIG); } public static boolean defaultUseProxyProperties() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + "useProxyProperties"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_PROXY_PROPERTIES_CONFIG); } public static boolean defaultValidateResponseHeaders() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + "validateResponseHeaders"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + VALIDATE_RESPONSE_HEADERS_CONFIG); } public static boolean defaultAggregateWebSocketFrameFragments() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + "aggregateWebSocketFrameFragments"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + AGGREGATE_WEB_SOCKET_FRAME_FRAGMENTS_CONFIG); } public static boolean defaultStrict302Handling() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + "strict302Handling"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + STRICT_302_HANDLING_CONFIG); } public static boolean defaultKeepAlive() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + "keepAlive"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + KEEP_ALIVE_CONFIG); } public static int defaultMaxRequestRetry() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "maxRequestRetry"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + MAX_REQUEST_RETRY_CONFIG); } public static boolean defaultDisableUrlEncodingForBoundRequests() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + "disableUrlEncodingForBoundRequests"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + DISABLE_URL_ENCODING_FOR_BOUND_REQUESTS_CONFIG); } public static boolean defaultUseLaxCookieEncoder() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + "useLaxCookieEncoder"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_LAX_COOKIE_ENCODER_CONFIG); } public static boolean defaultUseOpenSsl() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + "useOpenSsl"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_OPEN_SSL_CONFIG); } public static boolean defaultUseInsecureTrustManager() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + "useInsecureTrustManager"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_INSECURE_TRUST_MANAGER_CONFIG); } public static boolean defaultDisableHttpsEndpointIdentificationAlgorithm() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + "disableHttpsEndpointIdentificationAlgorithm"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + DISABLE_HTTPS_ENDPOINT_IDENTIFICATION_ALGORITHM_CONFIG); } public static int defaultSslSessionCacheSize() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "sslSessionCacheSize"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SSL_SESSION_CACHE_SIZE_CONFIG); } public static int defaultSslSessionTimeout() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "sslSessionTimeout"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SSL_SESSION_TIMEOUT_CONFIG); } public static boolean defaultTcpNoDelay() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + "tcpNoDelay"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + TCP_NO_DELAY_CONFIG); } public static boolean defaultSoReuseAddress() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + "soReuseAddress"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + SO_REUSE_ADDRESS_CONFIG); } public static int defaultSoLinger() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "soLinger"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SO_LINGER_CONFIG); } public static int defaultSoSndBuf() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "soSndBuf"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SO_SND_BUF_CONFIG); } public static int defaultSoRcvBuf() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "soRcvBuf"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SO_RCV_BUF_CONFIG); } public static int defaultHttpClientCodecMaxInitialLineLength() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "httpClientCodecMaxInitialLineLength"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HTTP_CLIENT_CODEC_MAX_INITIAL_LINE_LENGTH_CONFIG); } public static int defaultHttpClientCodecMaxHeaderSize() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "httpClientCodecMaxHeaderSize"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HTTP_CLIENT_CODEC_MAX_HEADER_SIZE_CONFIG); } public static int defaultHttpClientCodecMaxChunkSize() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "httpClientCodecMaxChunkSize"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HTTP_CLIENT_CODEC_MAX_CHUNK_SIZE_CONFIG); } public static int defaultHttpClientCodecInitialBufferSize() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "httpClientCodecInitialBufferSize"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HTTP_CLIENT_CODEC_INITIAL_BUFFER_SIZE_CONFIG); } public static boolean defaultDisableZeroCopy() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + "disableZeroCopy"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + DISABLE_ZERO_COPY_CONFIG); } public static int defaultHandshakeTimeout() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "handshakeTimeout"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HANDSHAKE_TIMEOUT_CONFIG); } public static int defaultChunkedFileChunkSize() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "chunkedFileChunkSize"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + CHUNKED_FILE_CHUNK_SIZE_CONFIG); } public static int defaultWebSocketMaxBufferSize() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "webSocketMaxBufferSize"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + WEB_SOCKET_MAX_BUFFER_SIZE_CONFIG); } public static int defaultWebSocketMaxFrameSize() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "webSocketMaxFrameSize"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + WEB_SOCKET_MAX_FRAME_SIZE_CONFIG); } public static boolean defaultKeepEncodingHeader() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + "keepEncodingHeader"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + KEEP_ENCODING_HEADER_CONFIG); } public static int defaultShutdownQuietPeriod() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "shutdownQuietPeriod"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SHUTDOWN_QUIET_PERIOD_CONFIG); } public static int defaultShutdownTimeout() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "shutdownTimeout"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SHUTDOWN_TIMEOUT_CONFIG); } public static boolean defaultUseNativeTransport() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + "useNativeTransport"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_NATIVE_TRANSPORT_CONFIG); } public static int defaultIoThreadsCount() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "ioThreadsCount"); + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + IO_THREADS_COUNT_CONFIG); } } diff --git a/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigHelper.java b/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigHelper.java index 80ebd712aa..f6a7e7fa19 100644 --- a/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigHelper.java +++ b/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigHelper.java @@ -4,6 +4,7 @@ import java.io.InputStream; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import java.util.Properties; import java.util.concurrent.ConcurrentHashMap; @@ -37,6 +38,13 @@ public static class Config { private final Properties defaultProperties = parsePropertiesFile(DEFAULT_AHC_PROPERTIES, true); private volatile Properties customProperties = parsePropertiesFile(CUSTOM_AHC_PROPERTIES, false); + public Config() { + } + + public Config(Properties properties) { + customProperties = properties; + } + public void reload() { customProperties = parsePropertiesFile(CUSTOM_AHC_PROPERTIES, false); propsCache.clear(); @@ -92,6 +100,14 @@ public String getString(String key) { }); } + public Optional getStringOpt(String key) { + try { + return Optional.ofNullable(getString(key)); + } catch (Exception ex) { + return Optional.empty(); + } + } + public String[] getStringArray(String key) { String s = getString(key); s = s.trim(); @@ -105,14 +121,38 @@ public String[] getStringArray(String key) { return array; } + public Optional getStringArrayOpt(String key) { + try { + return Optional.ofNullable(getStringArray(key)); + } catch (Exception ex) { + return Optional.empty(); + } + } + public int getInt(String key) { return Integer.parseInt(getString(key)); } + public Optional getIntOpt(String key) { + try { + return Optional.of(getInt(key)); + } catch (Exception ex) { + return Optional.empty(); + } + } + public long getLong(String key) { return Long.parseLong(getString(key)); } + public Optional getLongOpt(String key) { + try { + return Optional.of(getLong(key)); + } catch (Exception ex) { + return Optional.empty(); + } + } + public Integer getInteger(String key) { String s = getString(key); return s != null ? Integer.valueOf(s) : null; @@ -121,5 +161,13 @@ public Integer getInteger(String key) { public boolean getBoolean(String key) { return Boolean.parseBoolean(getString(key)); } + + public Optional getBooleanOpt(String key) { + try { + return Optional.of(getBoolean(key)); + } catch (Exception ex) { + return Optional.empty(); + } + } } } From 3ace675202bfaaf3305fdbcb045d4411c53c7629 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Ko=C5=82odziejczyk?= Date: Wed, 17 Jan 2018 22:28:26 +0100 Subject: [PATCH 2/3] added: test for properties async http client config --- .../PropertiesAsyncHttpClientConfig.java | 2 +- .../config/AsyncHttpClientConfigHelper.java | 6 +- .../PropertiesAsyncHttpClientConfigTest.java | 86 +++++++++++++++++++ 3 files changed, 88 insertions(+), 6 deletions(-) create mode 100644 client/src/test/java/org/asynchttpclient/PropertiesAsyncHttpClientConfigTest.java diff --git a/client/src/main/java/org/asynchttpclient/PropertiesAsyncHttpClientConfig.java b/client/src/main/java/org/asynchttpclient/PropertiesAsyncHttpClientConfig.java index 5189a57a40..3c712717f4 100644 --- a/client/src/main/java/org/asynchttpclient/PropertiesAsyncHttpClientConfig.java +++ b/client/src/main/java/org/asynchttpclient/PropertiesAsyncHttpClientConfig.java @@ -74,7 +74,7 @@ public int getConnectionPoolCleanerPeriod() { @Override public int getRequestTimeout() { - return config.getIntOpt(READ_TIMEOUT_CONFIG).orElse(defaultReadTimeout()); + return config.getIntOpt(REQUEST_TIMEOUT_CONFIG).orElse(defaultReadTimeout()); } @Override diff --git a/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigHelper.java b/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigHelper.java index f6a7e7fa19..0796b362e4 100644 --- a/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigHelper.java +++ b/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigHelper.java @@ -163,11 +163,7 @@ public boolean getBoolean(String key) { } public Optional getBooleanOpt(String key) { - try { - return Optional.of(getBoolean(key)); - } catch (Exception ex) { - return Optional.empty(); - } + return Optional.ofNullable(getString(key)).map(Boolean::parseBoolean); } } } diff --git a/client/src/test/java/org/asynchttpclient/PropertiesAsyncHttpClientConfigTest.java b/client/src/test/java/org/asynchttpclient/PropertiesAsyncHttpClientConfigTest.java new file mode 100644 index 0000000000..5ea3eaeb3a --- /dev/null +++ b/client/src/test/java/org/asynchttpclient/PropertiesAsyncHttpClientConfigTest.java @@ -0,0 +1,86 @@ +package org.asynchttpclient; + +import org.testng.Assert; +import org.testng.annotations.Test; + +import java.util.Properties; +import java.util.function.Function; + +@Test +public class PropertiesAsyncHttpClientConfigTest { + + public void testMaxTotalConnections() { + testProperty(PropertiesAsyncHttpClientConfig::getMaxConnections, "maxConnections", 100, -1); + } + + public void testMaxConnectionPerHost() { + testProperty(PropertiesAsyncHttpClientConfig::getMaxConnectionsPerHost, "maxConnectionsPerHost", 100, -1); + } + + public void testConnectTimeOut() { + testProperty(PropertiesAsyncHttpClientConfig::getConnectTimeout, "connectTimeout", 100, 5 * 1000); + } + + public void testPooledConnectionIdleTimeout() { + testProperty(PropertiesAsyncHttpClientConfig::getPooledConnectionIdleTimeout, "pooledConnectionIdleTimeout", 200,6 * 10000); + } + + public void testReadTimeout() { + testProperty(PropertiesAsyncHttpClientConfig::getReadTimeout, "readTimeout", 100,60 * 1000); + } + + public void testRequestTimeout() { + testProperty(PropertiesAsyncHttpClientConfig::getRequestTimeout, "requestTimeout",200,6 * 10000); + } + + public void testConnectionTtl() { + testProperty(PropertiesAsyncHttpClientConfig::getConnectionTtl, "connectionTtl", 100, -1); + } + + public void testFollowRedirect() { + testProperty(PropertiesAsyncHttpClientConfig::isFollowRedirect, "followRedirect", true, false); + } + + public void testMaxRedirects() { + testProperty(PropertiesAsyncHttpClientConfig::getMaxRedirects, "maxRedirects", 100, 5); + } + + public void testCompressionEnforced() { + testProperty(PropertiesAsyncHttpClientConfig::isCompressionEnforced, "compressionEnforced", true, false); + } + + public void testUserAgent() { + testProperty(PropertiesAsyncHttpClientConfig::getUserAgent, "userAgent", "MyAHC", "AHC/2.1"); + } + + public void testStrict302Handling() { + testProperty(PropertiesAsyncHttpClientConfig::isStrict302Handling, "strict302Handling", true, false); + } + + public void testAllowPoolingConnection() { + testProperty(PropertiesAsyncHttpClientConfig::isKeepAlive, "keepAlive", false, true); + } + + public void testMaxRequestRetry() { + testProperty(PropertiesAsyncHttpClientConfig::getMaxRequestRetry, "maxRequestRetry", 100, 5); + } + + public void testDisableUrlEncodingForBoundRequests() { + testProperty(PropertiesAsyncHttpClientConfig::isDisableUrlEncodingForBoundRequests, "disableUrlEncodingForBoundRequests", true, false); + } + + public void testUseInsecureTrustManager() { + testProperty(PropertiesAsyncHttpClientConfig::isUseInsecureTrustManager, "useInsecureTrustManager", true, false); + } + + private void testProperty(Function func, String propertyName, T value, T defaultValue) { + PropertiesAsyncHttpClientConfig defaultConfig = new PropertiesAsyncHttpClientConfig(new Properties()); + Assert.assertEquals(func.apply(defaultConfig), defaultValue); + + Properties properties = new Properties(); + properties.setProperty(propertyName, value.toString()); + PropertiesAsyncHttpClientConfig config = new PropertiesAsyncHttpClientConfig(properties); + Assert.assertEquals(func.apply(config), value); + } + +} From 3200edaa3fff4e472bbfe1729b5f63b80b5b9c14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Ko=C5=82odziejczyk?= Date: Thu, 18 Jan 2018 08:33:35 +0100 Subject: [PATCH 3/3] changed: formatting + license headers --- .../PropertiesAsyncHttpClientConfig.java | 673 +++++++++--------- .../config/AsyncHttpClientConfigDefaults.java | 466 ++++++------ .../config/AsyncHttpClientConfigHelper.java | 39 +- .../PropertiesAsyncHttpClientConfigTest.java | 125 ++-- 4 files changed, 671 insertions(+), 632 deletions(-) diff --git a/client/src/main/java/org/asynchttpclient/PropertiesAsyncHttpClientConfig.java b/client/src/main/java/org/asynchttpclient/PropertiesAsyncHttpClientConfig.java index 3c712717f4..997cb76b65 100644 --- a/client/src/main/java/org/asynchttpclient/PropertiesAsyncHttpClientConfig.java +++ b/client/src/main/java/org/asynchttpclient/PropertiesAsyncHttpClientConfig.java @@ -1,3 +1,16 @@ +/* + * Copyright (c) 2015 AsyncHttpClient Project. All rights reserved. + * + * This program is licensed to you under the Apache License Version 2.0, + * and you may not use this file except in compliance with the Apache License Version 2.0. + * You may obtain a copy of the Apache License Version 2.0 at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the Apache License Version 2.0 is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Apache License Version 2.0 for the specific language governing permissions and limitations there under. + */ package org.asynchttpclient; import io.netty.buffer.ByteBufAllocator; @@ -26,335 +39,335 @@ public class PropertiesAsyncHttpClientConfig implements AsyncHttpClientConfig { - private final AsyncHttpClientConfigHelper.Config config; - - public PropertiesAsyncHttpClientConfig(Properties properties) { - this.config = new AsyncHttpClientConfigHelper.Config(properties); - } - - @Override - public String getAhcVersion() { - return AsyncHttpClientConfigDefaults.AHC_VERSION; - } - - @Override - public String getThreadPoolName() { - return config.getStringOpt(THREAD_POOL_NAME_CONFIG).orElse(defaultThreadPoolName()); - } - - @Override - public int getMaxConnections() { - return config.getIntOpt(MAX_CONNECTIONS_CONFIG).orElse(defaultMaxConnections()); - } - - @Override - public int getMaxConnectionsPerHost() { - return config.getIntOpt(MAX_CONNECTIONS_PER_HOST_CONFIG).orElse(defaultMaxConnectionsPerHost()); - } - - @Override - public int getConnectTimeout() { - return config.getIntOpt(CONNECTION_TIMEOUT_CONFIG).orElse(defaultConnectTimeout()); - } - - @Override - public int getReadTimeout() { - return config.getIntOpt(READ_TIMEOUT_CONFIG).orElse(defaultReadTimeout()); - } - - @Override - public int getPooledConnectionIdleTimeout() { - return config.getIntOpt(POOLED_CONNECTION_IDLE_TIMEOUT_CONFIG).orElse(defaultPooledConnectionIdleTimeout()); - } - - @Override - public int getConnectionPoolCleanerPeriod() { - return config.getIntOpt(CONNECTION_POOL_CLEANER_PERIOD_CONFIG).orElse(defaultConnectionPoolCleanerPeriod()); - } - - @Override - public int getRequestTimeout() { - return config.getIntOpt(REQUEST_TIMEOUT_CONFIG).orElse(defaultReadTimeout()); - } - - @Override - public boolean isFollowRedirect() { - return config.getBooleanOpt(FOLLOW_REDIRECT_CONFIG).orElse(defaultFollowRedirect()); - } - - @Override - public int getMaxRedirects() { - return config.getIntOpt(MAX_REDIRECT_CONFIG).orElse(defaultMaxRedirects()); - } - - @Override - public boolean isKeepAlive() { - return config.getBooleanOpt(KEEP_ALIVE_CONFIG).orElse(defaultKeepAlive()); - } - - @Override - public String getUserAgent() { - return config.getStringOpt(USER_AGENT_CONFIG).orElse(defaultUserAgent()); - } - - @Override - public boolean isCompressionEnforced() { - return config.getBooleanOpt(COMPRESSION_ENFORCED_CONFIG).orElse(defaultCompressionEnforced()); - } - - @Override - public ThreadFactory getThreadFactory() { - return null; - } - - @Override - public ProxyServerSelector getProxyServerSelector() { - return ProxyServerSelector.NO_PROXY_SELECTOR; - } - - @Override - public SslContext getSslContext() { - return null; - } - - @Override - public Realm getRealm() { - return null; - } - - @Override - public List getRequestFilters() { - return new LinkedList<>(); - } - - @Override - public List getResponseFilters() { - return new LinkedList<>(); - } - - @Override - public List getIoExceptionFilters() { - return new LinkedList<>(); - } - - @Override - public CookieStore getCookieStore() { - return new ThreadSafeCookieStore(); - } - - @Override - public int getMaxRequestRetry() { - return config.getIntOpt(MAX_REQUEST_RETRY_CONFIG).orElse(defaultMaxRequestRetry()); - } - - @Override - public boolean isDisableUrlEncodingForBoundRequests() { - return config.getBooleanOpt(DISABLE_URL_ENCODING_FOR_BOUND_REQUESTS_CONFIG).orElse(defaultDisableUrlEncodingForBoundRequests()); - } - - @Override - public boolean isUseLaxCookieEncoder() { - return config.getBooleanOpt(USE_LAX_COOKIE_ENCODER_CONFIG).orElse(defaultUseLaxCookieEncoder()); - } - - @Override - public boolean isStrict302Handling() { - return config.getBooleanOpt(STRICT_302_HANDLING_CONFIG).orElse(defaultStrict302Handling()); - } - - @Override - public int getConnectionTtl() { - return config.getIntOpt(CONNECTION_TTL_CONFIG).orElse(defaultConnectionTtl()); - } - - @Override - public boolean isUseOpenSsl() { - return config.getBooleanOpt(USE_OPEN_SSL_CONFIG).orElse(defaultUseOpenSsl()); - } - - @Override - public boolean isUseInsecureTrustManager() { - return config.getBooleanOpt(USE_INSECURE_TRUST_MANAGER_CONFIG).orElse(defaultUseInsecureTrustManager()); - } - - @Override - public boolean isDisableHttpsEndpointIdentificationAlgorithm() { - return config.getBooleanOpt(DISABLE_HTTPS_ENDPOINT_IDENTIFICATION_ALGORITHM_CONFIG).orElse(defaultDisableHttpsEndpointIdentificationAlgorithm()); - } - - @Override - public String[] getEnabledProtocols() { - return config.getStringArrayOpt(ENABLED_PROTOCOLS_CONFIG).orElse(defaultEnabledProtocols()); - } - - @Override - public String[] getEnabledCipherSuites() { - return config.getStringArrayOpt(ENABLED_CIPHER_SUITES_CONFIG).orElse(defaultEnabledCipherSuites()); - } - - @Override - public int getSslSessionCacheSize() { - return config.getIntOpt(SSL_SESSION_CACHE_SIZE_CONFIG).orElse(defaultSslSessionCacheSize()); - } - - @Override - public int getSslSessionTimeout() { - return config.getIntOpt(SSL_SESSION_TIMEOUT_CONFIG).orElse(defaultSslSessionTimeout()); - } - - @Override - public int getHttpClientCodecMaxInitialLineLength() { - return config.getIntOpt(HTTP_CLIENT_CODEC_MAX_INITIAL_LINE_LENGTH_CONFIG).orElse(defaultHttpClientCodecMaxInitialLineLength()); - } - - @Override - public int getHttpClientCodecMaxHeaderSize() { - return config.getIntOpt(HTTP_CLIENT_CODEC_MAX_HEADER_SIZE_CONFIG).orElse(defaultHttpClientCodecMaxHeaderSize()); - } - - @Override - public int getHttpClientCodecMaxChunkSize() { - return config.getIntOpt(HTTP_CLIENT_CODEC_MAX_CHUNK_SIZE_CONFIG).orElse(defaultHttpClientCodecMaxChunkSize()); - } - - @Override - public int getHttpClientCodecInitialBufferSize() { - return config.getIntOpt(HTTP_CLIENT_CODEC_INITIAL_BUFFER_SIZE_CONFIG).orElse(defaultHttpClientCodecInitialBufferSize()); - } - - @Override - public boolean isDisableZeroCopy() { - return config.getBooleanOpt(DISABLE_ZERO_COPY_CONFIG).orElse(defaultDisableZeroCopy()); - } - - @Override - public int getHandshakeTimeout() { - return config.getIntOpt(HANDSHAKE_TIMEOUT_CONFIG).orElse(defaultHandshakeTimeout()); - } - - @Override - public SslEngineFactory getSslEngineFactory() { - return null; - } - - @Override - public int getChunkedFileChunkSize() { - return config.getIntOpt(CHUNKED_FILE_CHUNK_SIZE_CONFIG).orElse(defaultChunkedFileChunkSize()); - } - - @Override - public int getWebSocketMaxBufferSize() { - return config.getIntOpt(WEB_SOCKET_MAX_BUFFER_SIZE_CONFIG).orElse(defaultWebSocketMaxBufferSize()); - } - - @Override - public int getWebSocketMaxFrameSize() { - return config.getIntOpt(WEB_SOCKET_MAX_FRAME_SIZE_CONFIG).orElse(defaultWebSocketMaxFrameSize()); - } - - @Override - public boolean isKeepEncodingHeader() { - return config.getBooleanOpt(KEEP_ENCODING_HEADER_CONFIG).orElse(defaultKeepEncodingHeader()); - } - - @Override - public int getShutdownQuietPeriod() { - return config.getIntOpt(SHUTDOWN_QUIET_PERIOD_CONFIG).orElse(defaultShutdownQuietPeriod()); - } - - @Override - public int getShutdownTimeout() { - return config.getIntOpt(SHUTDOWN_TIMEOUT_CONFIG).orElse(defaultShutdownTimeout()); - } - - @Override - public Map, Object> getChannelOptions() { - return Collections.emptyMap(); - } - - @Override - public EventLoopGroup getEventLoopGroup() { - return null; - } - - @Override - public boolean isUseNativeTransport() { - return config.getBooleanOpt(USE_NATIVE_TRANSPORT_CONFIG).orElse(defaultUseNativeTransport()); - } - - @Override - public Consumer getHttpAdditionalChannelInitializer() { - return null; - } - - @Override - public Consumer getWsAdditionalChannelInitializer() { - return null; - } - - @Override - public ResponseBodyPartFactory getResponseBodyPartFactory() { - return ResponseBodyPartFactory.EAGER; - } - - @Override - public ChannelPool getChannelPool() { - return null; - } - - @Override - public Timer getNettyTimer() { - return null; - } - - @Override - public KeepAliveStrategy getKeepAliveStrategy() { - return new DefaultKeepAliveStrategy(); - } - - @Override - public boolean isValidateResponseHeaders() { - return config.getBooleanOpt(VALIDATE_RESPONSE_HEADERS_CONFIG).orElse(defaultValidateResponseHeaders()); - } - - @Override - public boolean isAggregateWebSocketFrameFragments() { - return config.getBooleanOpt(AGGREGATE_WEB_SOCKET_FRAME_FRAGMENTS_CONFIG).orElse(defaultAggregateWebSocketFrameFragments()); - } - - @Override - public boolean isTcpNoDelay() { - return config.getBooleanOpt(TCP_NO_DELAY_CONFIG).orElse(defaultTcpNoDelay()); - } - - @Override - public boolean isSoReuseAddress() { - return config.getBooleanOpt(SO_REUSE_ADDRESS_CONFIG).orElse(defaultSoReuseAddress()); - } - - @Override - public int getSoLinger() { - return config.getIntOpt(SO_LINGER_CONFIG).orElse(defaultSoLinger()); - } - - @Override - public int getSoSndBuf() { - return config.getIntOpt(SO_SND_BUF_CONFIG).orElse(defaultSoSndBuf()); - } - - @Override - public int getSoRcvBuf() { - return config.getIntOpt(SO_RCV_BUF_CONFIG).orElse(defaultSoRcvBuf()); - } - - @Override - public ByteBufAllocator getAllocator() { - return null; - } - - @Override - public int getIoThreadsCount() { - return config.getIntOpt(IO_THREADS_COUNT_CONFIG).orElse(defaultIoThreadsCount()); - } + private final AsyncHttpClientConfigHelper.Config config; + + public PropertiesAsyncHttpClientConfig(Properties properties) { + this.config = new AsyncHttpClientConfigHelper.Config(properties); + } + + @Override + public String getAhcVersion() { + return AsyncHttpClientConfigDefaults.AHC_VERSION; + } + + @Override + public String getThreadPoolName() { + return config.getStringOpt(THREAD_POOL_NAME_CONFIG).orElse(defaultThreadPoolName()); + } + + @Override + public int getMaxConnections() { + return config.getIntOpt(MAX_CONNECTIONS_CONFIG).orElse(defaultMaxConnections()); + } + + @Override + public int getMaxConnectionsPerHost() { + return config.getIntOpt(MAX_CONNECTIONS_PER_HOST_CONFIG).orElse(defaultMaxConnectionsPerHost()); + } + + @Override + public int getConnectTimeout() { + return config.getIntOpt(CONNECTION_TIMEOUT_CONFIG).orElse(defaultConnectTimeout()); + } + + @Override + public int getReadTimeout() { + return config.getIntOpt(READ_TIMEOUT_CONFIG).orElse(defaultReadTimeout()); + } + + @Override + public int getPooledConnectionIdleTimeout() { + return config.getIntOpt(POOLED_CONNECTION_IDLE_TIMEOUT_CONFIG).orElse(defaultPooledConnectionIdleTimeout()); + } + + @Override + public int getConnectionPoolCleanerPeriod() { + return config.getIntOpt(CONNECTION_POOL_CLEANER_PERIOD_CONFIG).orElse(defaultConnectionPoolCleanerPeriod()); + } + + @Override + public int getRequestTimeout() { + return config.getIntOpt(REQUEST_TIMEOUT_CONFIG).orElse(defaultReadTimeout()); + } + + @Override + public boolean isFollowRedirect() { + return config.getBooleanOpt(FOLLOW_REDIRECT_CONFIG).orElse(defaultFollowRedirect()); + } + + @Override + public int getMaxRedirects() { + return config.getIntOpt(MAX_REDIRECT_CONFIG).orElse(defaultMaxRedirects()); + } + + @Override + public boolean isKeepAlive() { + return config.getBooleanOpt(KEEP_ALIVE_CONFIG).orElse(defaultKeepAlive()); + } + + @Override + public String getUserAgent() { + return config.getStringOpt(USER_AGENT_CONFIG).orElse(defaultUserAgent()); + } + + @Override + public boolean isCompressionEnforced() { + return config.getBooleanOpt(COMPRESSION_ENFORCED_CONFIG).orElse(defaultCompressionEnforced()); + } + + @Override + public ThreadFactory getThreadFactory() { + return null; + } + + @Override + public ProxyServerSelector getProxyServerSelector() { + return ProxyServerSelector.NO_PROXY_SELECTOR; + } + + @Override + public SslContext getSslContext() { + return null; + } + + @Override + public Realm getRealm() { + return null; + } + + @Override + public List getRequestFilters() { + return new LinkedList<>(); + } + + @Override + public List getResponseFilters() { + return new LinkedList<>(); + } + + @Override + public List getIoExceptionFilters() { + return new LinkedList<>(); + } + + @Override + public CookieStore getCookieStore() { + return new ThreadSafeCookieStore(); + } + + @Override + public int getMaxRequestRetry() { + return config.getIntOpt(MAX_REQUEST_RETRY_CONFIG).orElse(defaultMaxRequestRetry()); + } + + @Override + public boolean isDisableUrlEncodingForBoundRequests() { + return config.getBooleanOpt(DISABLE_URL_ENCODING_FOR_BOUND_REQUESTS_CONFIG).orElse(defaultDisableUrlEncodingForBoundRequests()); + } + + @Override + public boolean isUseLaxCookieEncoder() { + return config.getBooleanOpt(USE_LAX_COOKIE_ENCODER_CONFIG).orElse(defaultUseLaxCookieEncoder()); + } + + @Override + public boolean isStrict302Handling() { + return config.getBooleanOpt(STRICT_302_HANDLING_CONFIG).orElse(defaultStrict302Handling()); + } + + @Override + public int getConnectionTtl() { + return config.getIntOpt(CONNECTION_TTL_CONFIG).orElse(defaultConnectionTtl()); + } + + @Override + public boolean isUseOpenSsl() { + return config.getBooleanOpt(USE_OPEN_SSL_CONFIG).orElse(defaultUseOpenSsl()); + } + + @Override + public boolean isUseInsecureTrustManager() { + return config.getBooleanOpt(USE_INSECURE_TRUST_MANAGER_CONFIG).orElse(defaultUseInsecureTrustManager()); + } + + @Override + public boolean isDisableHttpsEndpointIdentificationAlgorithm() { + return config.getBooleanOpt(DISABLE_HTTPS_ENDPOINT_IDENTIFICATION_ALGORITHM_CONFIG).orElse(defaultDisableHttpsEndpointIdentificationAlgorithm()); + } + + @Override + public String[] getEnabledProtocols() { + return config.getStringArrayOpt(ENABLED_PROTOCOLS_CONFIG).orElse(defaultEnabledProtocols()); + } + + @Override + public String[] getEnabledCipherSuites() { + return config.getStringArrayOpt(ENABLED_CIPHER_SUITES_CONFIG).orElse(defaultEnabledCipherSuites()); + } + + @Override + public int getSslSessionCacheSize() { + return config.getIntOpt(SSL_SESSION_CACHE_SIZE_CONFIG).orElse(defaultSslSessionCacheSize()); + } + + @Override + public int getSslSessionTimeout() { + return config.getIntOpt(SSL_SESSION_TIMEOUT_CONFIG).orElse(defaultSslSessionTimeout()); + } + + @Override + public int getHttpClientCodecMaxInitialLineLength() { + return config.getIntOpt(HTTP_CLIENT_CODEC_MAX_INITIAL_LINE_LENGTH_CONFIG).orElse(defaultHttpClientCodecMaxInitialLineLength()); + } + + @Override + public int getHttpClientCodecMaxHeaderSize() { + return config.getIntOpt(HTTP_CLIENT_CODEC_MAX_HEADER_SIZE_CONFIG).orElse(defaultHttpClientCodecMaxHeaderSize()); + } + + @Override + public int getHttpClientCodecMaxChunkSize() { + return config.getIntOpt(HTTP_CLIENT_CODEC_MAX_CHUNK_SIZE_CONFIG).orElse(defaultHttpClientCodecMaxChunkSize()); + } + + @Override + public int getHttpClientCodecInitialBufferSize() { + return config.getIntOpt(HTTP_CLIENT_CODEC_INITIAL_BUFFER_SIZE_CONFIG).orElse(defaultHttpClientCodecInitialBufferSize()); + } + + @Override + public boolean isDisableZeroCopy() { + return config.getBooleanOpt(DISABLE_ZERO_COPY_CONFIG).orElse(defaultDisableZeroCopy()); + } + + @Override + public int getHandshakeTimeout() { + return config.getIntOpt(HANDSHAKE_TIMEOUT_CONFIG).orElse(defaultHandshakeTimeout()); + } + + @Override + public SslEngineFactory getSslEngineFactory() { + return null; + } + + @Override + public int getChunkedFileChunkSize() { + return config.getIntOpt(CHUNKED_FILE_CHUNK_SIZE_CONFIG).orElse(defaultChunkedFileChunkSize()); + } + + @Override + public int getWebSocketMaxBufferSize() { + return config.getIntOpt(WEB_SOCKET_MAX_BUFFER_SIZE_CONFIG).orElse(defaultWebSocketMaxBufferSize()); + } + + @Override + public int getWebSocketMaxFrameSize() { + return config.getIntOpt(WEB_SOCKET_MAX_FRAME_SIZE_CONFIG).orElse(defaultWebSocketMaxFrameSize()); + } + + @Override + public boolean isKeepEncodingHeader() { + return config.getBooleanOpt(KEEP_ENCODING_HEADER_CONFIG).orElse(defaultKeepEncodingHeader()); + } + + @Override + public int getShutdownQuietPeriod() { + return config.getIntOpt(SHUTDOWN_QUIET_PERIOD_CONFIG).orElse(defaultShutdownQuietPeriod()); + } + + @Override + public int getShutdownTimeout() { + return config.getIntOpt(SHUTDOWN_TIMEOUT_CONFIG).orElse(defaultShutdownTimeout()); + } + + @Override + public Map, Object> getChannelOptions() { + return Collections.emptyMap(); + } + + @Override + public EventLoopGroup getEventLoopGroup() { + return null; + } + + @Override + public boolean isUseNativeTransport() { + return config.getBooleanOpt(USE_NATIVE_TRANSPORT_CONFIG).orElse(defaultUseNativeTransport()); + } + + @Override + public Consumer getHttpAdditionalChannelInitializer() { + return null; + } + + @Override + public Consumer getWsAdditionalChannelInitializer() { + return null; + } + + @Override + public ResponseBodyPartFactory getResponseBodyPartFactory() { + return ResponseBodyPartFactory.EAGER; + } + + @Override + public ChannelPool getChannelPool() { + return null; + } + + @Override + public Timer getNettyTimer() { + return null; + } + + @Override + public KeepAliveStrategy getKeepAliveStrategy() { + return new DefaultKeepAliveStrategy(); + } + + @Override + public boolean isValidateResponseHeaders() { + return config.getBooleanOpt(VALIDATE_RESPONSE_HEADERS_CONFIG).orElse(defaultValidateResponseHeaders()); + } + + @Override + public boolean isAggregateWebSocketFrameFragments() { + return config.getBooleanOpt(AGGREGATE_WEB_SOCKET_FRAME_FRAGMENTS_CONFIG).orElse(defaultAggregateWebSocketFrameFragments()); + } + + @Override + public boolean isTcpNoDelay() { + return config.getBooleanOpt(TCP_NO_DELAY_CONFIG).orElse(defaultTcpNoDelay()); + } + + @Override + public boolean isSoReuseAddress() { + return config.getBooleanOpt(SO_REUSE_ADDRESS_CONFIG).orElse(defaultSoReuseAddress()); + } + + @Override + public int getSoLinger() { + return config.getIntOpt(SO_LINGER_CONFIG).orElse(defaultSoLinger()); + } + + @Override + public int getSoSndBuf() { + return config.getIntOpt(SO_SND_BUF_CONFIG).orElse(defaultSoSndBuf()); + } + + @Override + public int getSoRcvBuf() { + return config.getIntOpt(SO_RCV_BUF_CONFIG).orElse(defaultSoRcvBuf()); + } + + @Override + public ByteBufAllocator getAllocator() { + return null; + } + + @Override + public int getIoThreadsCount() { + return config.getIntOpt(IO_THREADS_COUNT_CONFIG).orElse(defaultIoThreadsCount()); + } } diff --git a/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigDefaults.java b/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigDefaults.java index 55661aeb29..847a28a9d2 100644 --- a/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigDefaults.java +++ b/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigDefaults.java @@ -20,260 +20,260 @@ public final class AsyncHttpClientConfigDefaults { - public static final String AHC_VERSION; - - static { - try (InputStream is = DefaultAsyncHttpClientConfig.class.getResourceAsStream("/ahc-version.properties")) { - Properties prop = new Properties(); - prop.load(is); - AHC_VERSION = prop.getProperty("ahc.version", "UNKNOWN"); - } catch (IOException e) { - throw new ExceptionInInitializerError(e); - } - } - - private AsyncHttpClientConfigDefaults() { - } - - public static final String ASYNC_CLIENT_CONFIG_ROOT = "org.asynchttpclient."; - public static final String THREAD_POOL_NAME_CONFIG = "threadPoolName"; - public static final String MAX_CONNECTIONS_CONFIG = "maxConnections"; - public static final String MAX_CONNECTIONS_PER_HOST_CONFIG = "maxConnectionsPerHost"; - public static final String CONNECTION_TIMEOUT_CONFIG = "connectTimeout"; - public static final String POOLED_CONNECTION_IDLE_TIMEOUT_CONFIG = "pooledConnectionIdleTimeout"; - public static final String CONNECTION_POOL_CLEANER_PERIOD_CONFIG = "connectionPoolCleanerPeriod"; - public static final String READ_TIMEOUT_CONFIG = "readTimeout"; - public static final String REQUEST_TIMEOUT_CONFIG = "requestTimeout"; - public static final String CONNECTION_TTL_CONFIG = "connectionTtl"; - public static final String FOLLOW_REDIRECT_CONFIG = "followRedirect"; - public static final String MAX_REDIRECT_CONFIG = "maxRedirects"; - public static final String COMPRESSION_ENFORCED_CONFIG = "compressionEnforced"; - public static final String USER_AGENT_CONFIG = "userAgent"; - public static final String ENABLED_PROTOCOLS_CONFIG = "enabledProtocols"; - public static final String ENABLED_CIPHER_SUITES_CONFIG = "enabledCipherSuites"; - public static final String USE_PROXY_SELECTOR_CONFIG = "useProxySelector"; - public static final String USE_PROXY_PROPERTIES_CONFIG = "useProxyProperties"; - public static final String VALIDATE_RESPONSE_HEADERS_CONFIG = "validateResponseHeaders"; - public static final String AGGREGATE_WEB_SOCKET_FRAME_FRAGMENTS_CONFIG = "aggregateWebSocketFrameFragments"; - public static final String STRICT_302_HANDLING_CONFIG = "strict302Handling"; - public static final String KEEP_ALIVE_CONFIG = "keepAlive"; - public static final String MAX_REQUEST_RETRY_CONFIG = "maxRequestRetry"; - public static final String DISABLE_URL_ENCODING_FOR_BOUND_REQUESTS_CONFIG = "disableUrlEncodingForBoundRequests"; - public static final String USE_LAX_COOKIE_ENCODER_CONFIG = "useLaxCookieEncoder"; - public static final String USE_OPEN_SSL_CONFIG = "useOpenSsl"; - public static final String USE_INSECURE_TRUST_MANAGER_CONFIG = "useInsecureTrustManager"; - public static final String DISABLE_HTTPS_ENDPOINT_IDENTIFICATION_ALGORITHM_CONFIG = "disableHttpsEndpointIdentificationAlgorithm"; - public static final String SSL_SESSION_CACHE_SIZE_CONFIG = "sslSessionCacheSize"; - public static final String SSL_SESSION_TIMEOUT_CONFIG = "sslSessionTimeout"; - public static final String TCP_NO_DELAY_CONFIG = "tcpNoDelay"; - public static final String SO_REUSE_ADDRESS_CONFIG = "soReuseAddress"; - public static final String SO_LINGER_CONFIG = "soLinger"; - public static final String SO_SND_BUF_CONFIG = "soSndBuf"; - public static final String SO_RCV_BUF_CONFIG = "soRcvBuf"; - public static final String HTTP_CLIENT_CODEC_MAX_INITIAL_LINE_LENGTH_CONFIG = "httpClientCodecMaxInitialLineLength"; - public static final String HTTP_CLIENT_CODEC_MAX_HEADER_SIZE_CONFIG = "httpClientCodecMaxHeaderSize"; - public static final String HTTP_CLIENT_CODEC_MAX_CHUNK_SIZE_CONFIG = "httpClientCodecMaxChunkSize"; - public static final String HTTP_CLIENT_CODEC_INITIAL_BUFFER_SIZE_CONFIG = "httpClientCodecInitialBufferSize"; - public static final String DISABLE_ZERO_COPY_CONFIG = "disableZeroCopy"; - public static final String HANDSHAKE_TIMEOUT_CONFIG = "handshakeTimeout"; - public static final String CHUNKED_FILE_CHUNK_SIZE_CONFIG = "chunkedFileChunkSize"; - public static final String WEB_SOCKET_MAX_BUFFER_SIZE_CONFIG = "webSocketMaxBufferSize"; - public static final String WEB_SOCKET_MAX_FRAME_SIZE_CONFIG = "webSocketMaxFrameSize"; - public static final String KEEP_ENCODING_HEADER_CONFIG = "keepEncodingHeader"; - public static final String SHUTDOWN_QUIET_PERIOD_CONFIG = "shutdownQuietPeriod"; - public static final String SHUTDOWN_TIMEOUT_CONFIG = "shutdownTimeout"; - public static final String USE_NATIVE_TRANSPORT_CONFIG = "useNativeTransport"; - public static final String IO_THREADS_COUNT_CONFIG = "ioThreadsCount"; - - public static String defaultThreadPoolName() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getString(ASYNC_CLIENT_CONFIG_ROOT + THREAD_POOL_NAME_CONFIG); - } - - public static int defaultMaxConnections() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + MAX_CONNECTIONS_CONFIG); - } - - public static int defaultMaxConnectionsPerHost() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + MAX_CONNECTIONS_PER_HOST_CONFIG); - } - - public static int defaultConnectTimeout() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + CONNECTION_TIMEOUT_CONFIG); - } - - public static int defaultPooledConnectionIdleTimeout() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + POOLED_CONNECTION_IDLE_TIMEOUT_CONFIG); - } - - public static int defaultConnectionPoolCleanerPeriod() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + CONNECTION_POOL_CLEANER_PERIOD_CONFIG); - } - - public static int defaultReadTimeout() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + READ_TIMEOUT_CONFIG); - } - - public static int defaultRequestTimeout() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + REQUEST_TIMEOUT_CONFIG); - } - - public static int defaultConnectionTtl() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + CONNECTION_TTL_CONFIG); - } - - public static boolean defaultFollowRedirect() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + FOLLOW_REDIRECT_CONFIG); - } - - public static int defaultMaxRedirects() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + MAX_REDIRECT_CONFIG); - } - - public static boolean defaultCompressionEnforced() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + COMPRESSION_ENFORCED_CONFIG); - } - - public static String defaultUserAgent() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getString(ASYNC_CLIENT_CONFIG_ROOT + USER_AGENT_CONFIG); - } - - public static String[] defaultEnabledProtocols() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getStringArray(ASYNC_CLIENT_CONFIG_ROOT + ENABLED_PROTOCOLS_CONFIG); - } - - public static String[] defaultEnabledCipherSuites() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getStringArray(ASYNC_CLIENT_CONFIG_ROOT + ENABLED_CIPHER_SUITES_CONFIG); - } - - public static boolean defaultUseProxySelector() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_PROXY_SELECTOR_CONFIG); - } - - public static boolean defaultUseProxyProperties() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_PROXY_PROPERTIES_CONFIG); - } - - public static boolean defaultValidateResponseHeaders() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + VALIDATE_RESPONSE_HEADERS_CONFIG); - } - - public static boolean defaultAggregateWebSocketFrameFragments() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + AGGREGATE_WEB_SOCKET_FRAME_FRAGMENTS_CONFIG); - } - - public static boolean defaultStrict302Handling() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + STRICT_302_HANDLING_CONFIG); - } + public static final String AHC_VERSION; + + static { + try (InputStream is = DefaultAsyncHttpClientConfig.class.getResourceAsStream("/ahc-version.properties")) { + Properties prop = new Properties(); + prop.load(is); + AHC_VERSION = prop.getProperty("ahc.version", "UNKNOWN"); + } catch (IOException e) { + throw new ExceptionInInitializerError(e); + } + } + + private AsyncHttpClientConfigDefaults() { + } + + public static final String ASYNC_CLIENT_CONFIG_ROOT = "org.asynchttpclient."; + public static final String THREAD_POOL_NAME_CONFIG = "threadPoolName"; + public static final String MAX_CONNECTIONS_CONFIG = "maxConnections"; + public static final String MAX_CONNECTIONS_PER_HOST_CONFIG = "maxConnectionsPerHost"; + public static final String CONNECTION_TIMEOUT_CONFIG = "connectTimeout"; + public static final String POOLED_CONNECTION_IDLE_TIMEOUT_CONFIG = "pooledConnectionIdleTimeout"; + public static final String CONNECTION_POOL_CLEANER_PERIOD_CONFIG = "connectionPoolCleanerPeriod"; + public static final String READ_TIMEOUT_CONFIG = "readTimeout"; + public static final String REQUEST_TIMEOUT_CONFIG = "requestTimeout"; + public static final String CONNECTION_TTL_CONFIG = "connectionTtl"; + public static final String FOLLOW_REDIRECT_CONFIG = "followRedirect"; + public static final String MAX_REDIRECT_CONFIG = "maxRedirects"; + public static final String COMPRESSION_ENFORCED_CONFIG = "compressionEnforced"; + public static final String USER_AGENT_CONFIG = "userAgent"; + public static final String ENABLED_PROTOCOLS_CONFIG = "enabledProtocols"; + public static final String ENABLED_CIPHER_SUITES_CONFIG = "enabledCipherSuites"; + public static final String USE_PROXY_SELECTOR_CONFIG = "useProxySelector"; + public static final String USE_PROXY_PROPERTIES_CONFIG = "useProxyProperties"; + public static final String VALIDATE_RESPONSE_HEADERS_CONFIG = "validateResponseHeaders"; + public static final String AGGREGATE_WEB_SOCKET_FRAME_FRAGMENTS_CONFIG = "aggregateWebSocketFrameFragments"; + public static final String STRICT_302_HANDLING_CONFIG = "strict302Handling"; + public static final String KEEP_ALIVE_CONFIG = "keepAlive"; + public static final String MAX_REQUEST_RETRY_CONFIG = "maxRequestRetry"; + public static final String DISABLE_URL_ENCODING_FOR_BOUND_REQUESTS_CONFIG = "disableUrlEncodingForBoundRequests"; + public static final String USE_LAX_COOKIE_ENCODER_CONFIG = "useLaxCookieEncoder"; + public static final String USE_OPEN_SSL_CONFIG = "useOpenSsl"; + public static final String USE_INSECURE_TRUST_MANAGER_CONFIG = "useInsecureTrustManager"; + public static final String DISABLE_HTTPS_ENDPOINT_IDENTIFICATION_ALGORITHM_CONFIG = "disableHttpsEndpointIdentificationAlgorithm"; + public static final String SSL_SESSION_CACHE_SIZE_CONFIG = "sslSessionCacheSize"; + public static final String SSL_SESSION_TIMEOUT_CONFIG = "sslSessionTimeout"; + public static final String TCP_NO_DELAY_CONFIG = "tcpNoDelay"; + public static final String SO_REUSE_ADDRESS_CONFIG = "soReuseAddress"; + public static final String SO_LINGER_CONFIG = "soLinger"; + public static final String SO_SND_BUF_CONFIG = "soSndBuf"; + public static final String SO_RCV_BUF_CONFIG = "soRcvBuf"; + public static final String HTTP_CLIENT_CODEC_MAX_INITIAL_LINE_LENGTH_CONFIG = "httpClientCodecMaxInitialLineLength"; + public static final String HTTP_CLIENT_CODEC_MAX_HEADER_SIZE_CONFIG = "httpClientCodecMaxHeaderSize"; + public static final String HTTP_CLIENT_CODEC_MAX_CHUNK_SIZE_CONFIG = "httpClientCodecMaxChunkSize"; + public static final String HTTP_CLIENT_CODEC_INITIAL_BUFFER_SIZE_CONFIG = "httpClientCodecInitialBufferSize"; + public static final String DISABLE_ZERO_COPY_CONFIG = "disableZeroCopy"; + public static final String HANDSHAKE_TIMEOUT_CONFIG = "handshakeTimeout"; + public static final String CHUNKED_FILE_CHUNK_SIZE_CONFIG = "chunkedFileChunkSize"; + public static final String WEB_SOCKET_MAX_BUFFER_SIZE_CONFIG = "webSocketMaxBufferSize"; + public static final String WEB_SOCKET_MAX_FRAME_SIZE_CONFIG = "webSocketMaxFrameSize"; + public static final String KEEP_ENCODING_HEADER_CONFIG = "keepEncodingHeader"; + public static final String SHUTDOWN_QUIET_PERIOD_CONFIG = "shutdownQuietPeriod"; + public static final String SHUTDOWN_TIMEOUT_CONFIG = "shutdownTimeout"; + public static final String USE_NATIVE_TRANSPORT_CONFIG = "useNativeTransport"; + public static final String IO_THREADS_COUNT_CONFIG = "ioThreadsCount"; + + public static String defaultThreadPoolName() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getString(ASYNC_CLIENT_CONFIG_ROOT + THREAD_POOL_NAME_CONFIG); + } + + public static int defaultMaxConnections() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + MAX_CONNECTIONS_CONFIG); + } + + public static int defaultMaxConnectionsPerHost() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + MAX_CONNECTIONS_PER_HOST_CONFIG); + } + + public static int defaultConnectTimeout() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + CONNECTION_TIMEOUT_CONFIG); + } + + public static int defaultPooledConnectionIdleTimeout() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + POOLED_CONNECTION_IDLE_TIMEOUT_CONFIG); + } + + public static int defaultConnectionPoolCleanerPeriod() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + CONNECTION_POOL_CLEANER_PERIOD_CONFIG); + } + + public static int defaultReadTimeout() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + READ_TIMEOUT_CONFIG); + } + + public static int defaultRequestTimeout() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + REQUEST_TIMEOUT_CONFIG); + } + + public static int defaultConnectionTtl() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + CONNECTION_TTL_CONFIG); + } + + public static boolean defaultFollowRedirect() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + FOLLOW_REDIRECT_CONFIG); + } + + public static int defaultMaxRedirects() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + MAX_REDIRECT_CONFIG); + } + + public static boolean defaultCompressionEnforced() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + COMPRESSION_ENFORCED_CONFIG); + } + + public static String defaultUserAgent() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getString(ASYNC_CLIENT_CONFIG_ROOT + USER_AGENT_CONFIG); + } + + public static String[] defaultEnabledProtocols() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getStringArray(ASYNC_CLIENT_CONFIG_ROOT + ENABLED_PROTOCOLS_CONFIG); + } + + public static String[] defaultEnabledCipherSuites() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getStringArray(ASYNC_CLIENT_CONFIG_ROOT + ENABLED_CIPHER_SUITES_CONFIG); + } + + public static boolean defaultUseProxySelector() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_PROXY_SELECTOR_CONFIG); + } + + public static boolean defaultUseProxyProperties() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_PROXY_PROPERTIES_CONFIG); + } + + public static boolean defaultValidateResponseHeaders() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + VALIDATE_RESPONSE_HEADERS_CONFIG); + } + + public static boolean defaultAggregateWebSocketFrameFragments() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + AGGREGATE_WEB_SOCKET_FRAME_FRAGMENTS_CONFIG); + } + + public static boolean defaultStrict302Handling() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + STRICT_302_HANDLING_CONFIG); + } + + public static boolean defaultKeepAlive() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + KEEP_ALIVE_CONFIG); + } + + public static int defaultMaxRequestRetry() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + MAX_REQUEST_RETRY_CONFIG); + } + + public static boolean defaultDisableUrlEncodingForBoundRequests() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + DISABLE_URL_ENCODING_FOR_BOUND_REQUESTS_CONFIG); + } + + public static boolean defaultUseLaxCookieEncoder() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_LAX_COOKIE_ENCODER_CONFIG); + } + + public static boolean defaultUseOpenSsl() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_OPEN_SSL_CONFIG); + } - public static boolean defaultKeepAlive() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + KEEP_ALIVE_CONFIG); - } + public static boolean defaultUseInsecureTrustManager() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_INSECURE_TRUST_MANAGER_CONFIG); + } - public static int defaultMaxRequestRetry() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + MAX_REQUEST_RETRY_CONFIG); - } + public static boolean defaultDisableHttpsEndpointIdentificationAlgorithm() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + DISABLE_HTTPS_ENDPOINT_IDENTIFICATION_ALGORITHM_CONFIG); + } - public static boolean defaultDisableUrlEncodingForBoundRequests() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + DISABLE_URL_ENCODING_FOR_BOUND_REQUESTS_CONFIG); - } - - public static boolean defaultUseLaxCookieEncoder() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_LAX_COOKIE_ENCODER_CONFIG); - } + public static int defaultSslSessionCacheSize() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SSL_SESSION_CACHE_SIZE_CONFIG); + } - public static boolean defaultUseOpenSsl() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_OPEN_SSL_CONFIG); - } - - public static boolean defaultUseInsecureTrustManager() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_INSECURE_TRUST_MANAGER_CONFIG); - } - - public static boolean defaultDisableHttpsEndpointIdentificationAlgorithm() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + DISABLE_HTTPS_ENDPOINT_IDENTIFICATION_ALGORITHM_CONFIG); - } - - public static int defaultSslSessionCacheSize() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SSL_SESSION_CACHE_SIZE_CONFIG); - } - - public static int defaultSslSessionTimeout() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SSL_SESSION_TIMEOUT_CONFIG); - } + public static int defaultSslSessionTimeout() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SSL_SESSION_TIMEOUT_CONFIG); + } - public static boolean defaultTcpNoDelay() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + TCP_NO_DELAY_CONFIG); - } + public static boolean defaultTcpNoDelay() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + TCP_NO_DELAY_CONFIG); + } - public static boolean defaultSoReuseAddress() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + SO_REUSE_ADDRESS_CONFIG); - } + public static boolean defaultSoReuseAddress() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + SO_REUSE_ADDRESS_CONFIG); + } - public static int defaultSoLinger() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SO_LINGER_CONFIG); - } + public static int defaultSoLinger() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SO_LINGER_CONFIG); + } - public static int defaultSoSndBuf() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SO_SND_BUF_CONFIG); - } + public static int defaultSoSndBuf() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SO_SND_BUF_CONFIG); + } - public static int defaultSoRcvBuf() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SO_RCV_BUF_CONFIG); - } + public static int defaultSoRcvBuf() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SO_RCV_BUF_CONFIG); + } - public static int defaultHttpClientCodecMaxInitialLineLength() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HTTP_CLIENT_CODEC_MAX_INITIAL_LINE_LENGTH_CONFIG); - } + public static int defaultHttpClientCodecMaxInitialLineLength() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HTTP_CLIENT_CODEC_MAX_INITIAL_LINE_LENGTH_CONFIG); + } - public static int defaultHttpClientCodecMaxHeaderSize() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HTTP_CLIENT_CODEC_MAX_HEADER_SIZE_CONFIG); - } + public static int defaultHttpClientCodecMaxHeaderSize() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HTTP_CLIENT_CODEC_MAX_HEADER_SIZE_CONFIG); + } - public static int defaultHttpClientCodecMaxChunkSize() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HTTP_CLIENT_CODEC_MAX_CHUNK_SIZE_CONFIG); - } + public static int defaultHttpClientCodecMaxChunkSize() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HTTP_CLIENT_CODEC_MAX_CHUNK_SIZE_CONFIG); + } - public static int defaultHttpClientCodecInitialBufferSize() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HTTP_CLIENT_CODEC_INITIAL_BUFFER_SIZE_CONFIG); - } + public static int defaultHttpClientCodecInitialBufferSize() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HTTP_CLIENT_CODEC_INITIAL_BUFFER_SIZE_CONFIG); + } - public static boolean defaultDisableZeroCopy() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + DISABLE_ZERO_COPY_CONFIG); - } + public static boolean defaultDisableZeroCopy() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + DISABLE_ZERO_COPY_CONFIG); + } - public static int defaultHandshakeTimeout() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HANDSHAKE_TIMEOUT_CONFIG); - } + public static int defaultHandshakeTimeout() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + HANDSHAKE_TIMEOUT_CONFIG); + } - public static int defaultChunkedFileChunkSize() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + CHUNKED_FILE_CHUNK_SIZE_CONFIG); - } + public static int defaultChunkedFileChunkSize() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + CHUNKED_FILE_CHUNK_SIZE_CONFIG); + } - public static int defaultWebSocketMaxBufferSize() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + WEB_SOCKET_MAX_BUFFER_SIZE_CONFIG); - } + public static int defaultWebSocketMaxBufferSize() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + WEB_SOCKET_MAX_BUFFER_SIZE_CONFIG); + } - public static int defaultWebSocketMaxFrameSize() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + WEB_SOCKET_MAX_FRAME_SIZE_CONFIG); - } + public static int defaultWebSocketMaxFrameSize() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + WEB_SOCKET_MAX_FRAME_SIZE_CONFIG); + } - public static boolean defaultKeepEncodingHeader() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + KEEP_ENCODING_HEADER_CONFIG); - } + public static boolean defaultKeepEncodingHeader() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + KEEP_ENCODING_HEADER_CONFIG); + } - public static int defaultShutdownQuietPeriod() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SHUTDOWN_QUIET_PERIOD_CONFIG); - } + public static int defaultShutdownQuietPeriod() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SHUTDOWN_QUIET_PERIOD_CONFIG); + } - public static int defaultShutdownTimeout() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SHUTDOWN_TIMEOUT_CONFIG); - } + public static int defaultShutdownTimeout() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + SHUTDOWN_TIMEOUT_CONFIG); + } - public static boolean defaultUseNativeTransport() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_NATIVE_TRANSPORT_CONFIG); - } + public static boolean defaultUseNativeTransport() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + USE_NATIVE_TRANSPORT_CONFIG); + } - public static int defaultIoThreadsCount() { - return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + IO_THREADS_COUNT_CONFIG); - } + public static int defaultIoThreadsCount() { + return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + IO_THREADS_COUNT_CONFIG); + } } diff --git a/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigHelper.java b/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigHelper.java index f35d6e609e..2cce75d074 100644 --- a/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigHelper.java +++ b/client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigHelper.java @@ -1,3 +1,16 @@ +/* + * Copyright (c) 2015 AsyncHttpClient Project. All rights reserved. + * + * This program is licensed to you under the Apache License Version 2.0, + * and you may not use this file except in compliance with the Apache License Version 2.0. + * You may obtain a copy of the Apache License Version 2.0 at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the Apache License Version 2.0 is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Apache License Version 2.0 for the specific language governing permissions and limitations there under. + */ package org.asynchttpclient.config; import java.io.IOException; @@ -110,15 +123,15 @@ public Optional getStringOpt(String key) { public String[] getStringArray(String key) { String s = getString(key); - s = s.trim(); - if (s.isEmpty()) { - return null; - } - String[] rawArray = s.split(","); - String[] array = new String[rawArray.length]; - for (int i = 0; i < rawArray.length; i++) - array[i] = rawArray[i].trim(); - return array; + s = s.trim(); + if (s.isEmpty()) { + return null; + } + String[] rawArray = s.split(","); + String[] array = new String[rawArray.length]; + for (int i = 0; i < rawArray.length; i++) + array[i] = rawArray[i].trim(); + return array; } public Optional getStringArrayOpt(String key) { @@ -130,8 +143,8 @@ public Optional getStringArrayOpt(String key) { } public int getInt(String key) { - return Integer.parseInt(getString(key)); - } + return Integer.parseInt(getString(key)); + } public Optional getIntOpt(String key) { try { @@ -142,8 +155,8 @@ public Optional getIntOpt(String key) { } public long getLong(String key) { - return Long.parseLong(getString(key)); - } + return Long.parseLong(getString(key)); + } public Optional getLongOpt(String key) { try { diff --git a/client/src/test/java/org/asynchttpclient/PropertiesAsyncHttpClientConfigTest.java b/client/src/test/java/org/asynchttpclient/PropertiesAsyncHttpClientConfigTest.java index 3fff010aa1..947b09c235 100644 --- a/client/src/test/java/org/asynchttpclient/PropertiesAsyncHttpClientConfigTest.java +++ b/client/src/test/java/org/asynchttpclient/PropertiesAsyncHttpClientConfigTest.java @@ -1,3 +1,16 @@ +/* + * Copyright (c) 2015 AsyncHttpClient Project. All rights reserved. + * + * This program is licensed to you under the Apache License Version 2.0, + * and you may not use this file except in compliance with the Apache License Version 2.0. + * You may obtain a copy of the Apache License Version 2.0 at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the Apache License Version 2.0 is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Apache License Version 2.0 for the specific language governing permissions and limitations there under. + */ package org.asynchttpclient; import org.testng.Assert; @@ -9,78 +22,78 @@ @Test public class PropertiesAsyncHttpClientConfigTest { - public void testThreadPoolName() { - testProperty(PropertiesAsyncHttpClientConfig::getThreadPoolName, "threadPoolName", "MyHttpClient", "AsyncHttpClient"); - } + public void testThreadPoolName() { + testProperty(PropertiesAsyncHttpClientConfig::getThreadPoolName, "threadPoolName", "MyHttpClient", "AsyncHttpClient"); + } - public void testMaxTotalConnections() { - testProperty(PropertiesAsyncHttpClientConfig::getMaxConnections, "maxConnections", 100, -1); - } + public void testMaxTotalConnections() { + testProperty(PropertiesAsyncHttpClientConfig::getMaxConnections, "maxConnections", 100, -1); + } - public void testMaxConnectionPerHost() { - testProperty(PropertiesAsyncHttpClientConfig::getMaxConnectionsPerHost, "maxConnectionsPerHost", 100, -1); - } + public void testMaxConnectionPerHost() { + testProperty(PropertiesAsyncHttpClientConfig::getMaxConnectionsPerHost, "maxConnectionsPerHost", 100, -1); + } - public void testConnectTimeOut() { - testProperty(PropertiesAsyncHttpClientConfig::getConnectTimeout, "connectTimeout", 100, 5 * 1000); - } + public void testConnectTimeOut() { + testProperty(PropertiesAsyncHttpClientConfig::getConnectTimeout, "connectTimeout", 100, 5 * 1000); + } - public void testPooledConnectionIdleTimeout() { - testProperty(PropertiesAsyncHttpClientConfig::getPooledConnectionIdleTimeout, "pooledConnectionIdleTimeout", 200, 6 * 10000); - } + public void testPooledConnectionIdleTimeout() { + testProperty(PropertiesAsyncHttpClientConfig::getPooledConnectionIdleTimeout, "pooledConnectionIdleTimeout", 200, 6 * 10000); + } - public void testReadTimeout() { - testProperty(PropertiesAsyncHttpClientConfig::getReadTimeout, "readTimeout", 100, 60 * 1000); - } + public void testReadTimeout() { + testProperty(PropertiesAsyncHttpClientConfig::getReadTimeout, "readTimeout", 100, 60 * 1000); + } - public void testRequestTimeout() { - testProperty(PropertiesAsyncHttpClientConfig::getRequestTimeout, "requestTimeout", 200, 6 * 10000); - } + public void testRequestTimeout() { + testProperty(PropertiesAsyncHttpClientConfig::getRequestTimeout, "requestTimeout", 200, 6 * 10000); + } - public void testConnectionTtl() { - testProperty(PropertiesAsyncHttpClientConfig::getConnectionTtl, "connectionTtl", 100, -1); - } + public void testConnectionTtl() { + testProperty(PropertiesAsyncHttpClientConfig::getConnectionTtl, "connectionTtl", 100, -1); + } - public void testFollowRedirect() { - testProperty(PropertiesAsyncHttpClientConfig::isFollowRedirect, "followRedirect", true, false); - } + public void testFollowRedirect() { + testProperty(PropertiesAsyncHttpClientConfig::isFollowRedirect, "followRedirect", true, false); + } - public void testMaxRedirects() { - testProperty(PropertiesAsyncHttpClientConfig::getMaxRedirects, "maxRedirects", 100, 5); - } + public void testMaxRedirects() { + testProperty(PropertiesAsyncHttpClientConfig::getMaxRedirects, "maxRedirects", 100, 5); + } - public void testCompressionEnforced() { - testProperty(PropertiesAsyncHttpClientConfig::isCompressionEnforced, "compressionEnforced", true, false); - } + public void testCompressionEnforced() { + testProperty(PropertiesAsyncHttpClientConfig::isCompressionEnforced, "compressionEnforced", true, false); + } - public void testStrict302Handling() { - testProperty(PropertiesAsyncHttpClientConfig::isStrict302Handling, "strict302Handling", true, false); - } + public void testStrict302Handling() { + testProperty(PropertiesAsyncHttpClientConfig::isStrict302Handling, "strict302Handling", true, false); + } - public void testAllowPoolingConnection() { - testProperty(PropertiesAsyncHttpClientConfig::isKeepAlive, "keepAlive", false, true); - } + public void testAllowPoolingConnection() { + testProperty(PropertiesAsyncHttpClientConfig::isKeepAlive, "keepAlive", false, true); + } - public void testMaxRequestRetry() { - testProperty(PropertiesAsyncHttpClientConfig::getMaxRequestRetry, "maxRequestRetry", 100, 5); - } + public void testMaxRequestRetry() { + testProperty(PropertiesAsyncHttpClientConfig::getMaxRequestRetry, "maxRequestRetry", 100, 5); + } - public void testDisableUrlEncodingForBoundRequests() { - testProperty(PropertiesAsyncHttpClientConfig::isDisableUrlEncodingForBoundRequests, "disableUrlEncodingForBoundRequests", true, false); - } + public void testDisableUrlEncodingForBoundRequests() { + testProperty(PropertiesAsyncHttpClientConfig::isDisableUrlEncodingForBoundRequests, "disableUrlEncodingForBoundRequests", true, false); + } - public void testUseInsecureTrustManager() { - testProperty(PropertiesAsyncHttpClientConfig::isUseInsecureTrustManager, "useInsecureTrustManager", true, false); - } + public void testUseInsecureTrustManager() { + testProperty(PropertiesAsyncHttpClientConfig::isUseInsecureTrustManager, "useInsecureTrustManager", true, false); + } - private void testProperty(Function func, String propertyName, T value, T defaultValue) { - PropertiesAsyncHttpClientConfig defaultConfig = new PropertiesAsyncHttpClientConfig(new Properties()); - Assert.assertEquals(func.apply(defaultConfig), defaultValue); + private void testProperty(Function func, String propertyName, T value, T defaultValue) { + PropertiesAsyncHttpClientConfig defaultConfig = new PropertiesAsyncHttpClientConfig(new Properties()); + Assert.assertEquals(func.apply(defaultConfig), defaultValue); - Properties properties = new Properties(); - properties.setProperty(propertyName, value.toString()); - PropertiesAsyncHttpClientConfig config = new PropertiesAsyncHttpClientConfig(properties); - Assert.assertEquals(func.apply(config), value); - } + Properties properties = new Properties(); + properties.setProperty(propertyName, value.toString()); + PropertiesAsyncHttpClientConfig config = new PropertiesAsyncHttpClientConfig(properties); + Assert.assertEquals(func.apply(config), value); + } }