You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2018/10/17 21:40:40 UTC

[6/6] httpcomponents-client git commit: Javadocs; renamed some methods (no functional changes)

Javadocs; renamed some methods (no functional changes)


Project: http://git-wip-us.apache.org/repos/asf/httpcomponents-client/repo
Commit: http://git-wip-us.apache.org/repos/asf/httpcomponents-client/commit/37c80064
Tree: http://git-wip-us.apache.org/repos/asf/httpcomponents-client/tree/37c80064
Diff: http://git-wip-us.apache.org/repos/asf/httpcomponents-client/diff/37c80064

Branch: refs/heads/master
Commit: 37c80064726f0e4ae547c14ad73129483a81a67c
Parents: c446639
Author: Oleg Kalnichevski <ol...@apache.org>
Authored: Sat Oct 13 19:08:47 2018 +0200
Committer: Oleg Kalnichevski <ol...@apache.org>
Committed: Wed Oct 17 23:40:12 2018 +0200

----------------------------------------------------------------------
 .../hc/client5/http/cache/HeaderConstants.java  |   5 +-
 .../http/cache/HttpAsyncCacheStorage.java       |   6 +
 .../cache/HttpAsyncCacheStorageAdaptor.java     |   3 +
 .../http/cache/HttpCacheCASOperation.java       |   4 +
 .../hc/client5/http/cache/HttpCacheContext.java |   3 +
 .../http/cache/HttpCacheEntrySerializer.java    |   4 +
 .../http/cache/HttpCacheInvalidator.java        |   3 +
 .../client5/http/cache/HttpCacheResponse.java   | 140 -------------------
 .../hc/client5/http/cache/HttpCacheStorage.java |   7 +
 .../http/cache/HttpCacheStorageEntry.java       |   8 ++
 .../apache/hc/client5/http/cache/Resource.java  |   7 +
 .../hc/client5/http/cache/ResourceFactory.java  |   4 +
 .../hc/client5/http/cache/package-info.java     |  32 +++++
 .../apache/hc/client5/http/cache/package.html   |  78 -----------
 .../http/impl/cache/AsyncCachingExec.java       |   8 +-
 .../http/impl/cache/BasicIdGenerator.java       |   4 -
 .../cache/ByteArrayCacheEntrySerializer.java    |   2 +-
 .../http/impl/cache/CacheKeyGenerator.java      |   2 +-
 .../http/impl/cache/CacheUpdateHandler.java     |   5 -
 .../http/impl/cache/CacheValidityPolicy.java    |   6 -
 .../http/impl/cache/CacheableRequestPolicy.java |   5 -
 .../impl/cache/CachedHttpResponseGenerator.java |   5 -
 .../cache/CachedResponseSuitabilityChecker.java |   5 -
 .../hc/client5/http/impl/cache/CachingExec.java |   9 +-
 .../impl/cache/CachingHttpAsyncClients.java     |   5 +-
 .../http/impl/cache/CachingHttpClients.java     |   5 +-
 .../impl/cache/ConditionalRequestBuilder.java   |   6 -
 .../cache/DefaultAsyncCacheInvalidator.java     |   2 +-
 .../impl/cache/DefaultCacheInvalidator.java     |   2 +-
 .../http/impl/cache/FileResourceFactory.java    |   2 +-
 .../http/impl/cache/HeapResourceFactory.java    |   2 +-
 .../client5/http/impl/cache/HttpAsyncCache.java |   5 -
 .../hc/client5/http/impl/cache/HttpCache.java   |   3 -
 .../impl/cache/ManagedHttpCacheStorage.java     |   2 +-
 .../impl/cache/NoopCacheEntrySerializer.java    |   5 +-
 .../impl/cache/RequestProtocolCompliance.java   |   6 -
 .../http/impl/cache/RequestProtocolError.java   |   3 -
 .../http/impl/cache/ResourceReference.java      |   3 -
 .../http/impl/cache/ResponseCachingPolicy.java  |   8 --
 .../impl/cache/ResponseProtocolCompliance.java  |   6 -
 .../http/impl/cache/ehcache/package-info.java   |  31 ++++
 .../http/impl/cache/ehcache/package.html        |  40 ------
 .../impl/cache/memcached/KeyHashingScheme.java  |   2 +
 .../memcached/MemcachedKeyHashingException.java |   4 +-
 .../MemcachedOperationTimeoutException.java     |   6 +-
 .../cache/memcached/PrefixKeyHashingScheme.java |   2 +
 .../cache/memcached/SHA256KeyHashingScheme.java |   2 +
 .../http/impl/cache/memcached/package-info.java |  32 +++++
 .../http/impl/cache/memcached/package.html      |  40 ------
 .../client5/http/impl/cache/package-info.java   |  32 +++++
 .../hc/client5/http/impl/cache/package.html     |  42 ------
 .../ExponentialBackOffSchedulingStrategy.java   |   4 +-
 .../http/impl/schedule/package-info.java        |  31 ++++
 .../http/schedule/ConcurrentCountMap.java       |   7 +
 .../http/schedule/SchedulingStrategy.java       |   3 +
 .../hc/client5/http/schedule/package-info.java  |  31 ++++
 .../apache/hc/client5/http/fluent/Async.java    |   5 +
 .../apache/hc/client5/http/fluent/Content.java  |   4 +-
 .../apache/hc/client5/http/fluent/Executor.java |   4 +-
 .../org/apache/hc/client5/http/fluent/Form.java |   5 +
 .../apache/hc/client5/http/fluent/Request.java  |   5 +
 .../apache/hc/client5/http/fluent/Response.java |   5 +
 .../http/impl/win/WindowsNTLMSchemeFactory.java |   7 +-
 .../http/impl/win/WindowsNegotiateScheme.java   |   7 +-
 .../impl/win/WindowsNegotiateSchemeFactory.java |   7 +-
 .../http/examples/ClientWithRequestFuture.java  |  10 +-
 .../hc/client5/http/AuthenticationStrategy.java |   3 +
 .../client5/http/CircularRedirectException.java |   1 -
 .../client5/http/ConnectTimeoutException.java   |   1 -
 .../http/ConnectionKeepAliveStrategy.java       |   3 +
 .../org/apache/hc/client5/http/DnsResolver.java |   4 +
 .../client5/http/HttpRequestRetryHandler.java   |   3 +
 .../org/apache/hc/client5/http/HttpRoute.java   |   2 +-
 .../hc/client5/http/RedirectException.java      |   1 -
 .../org/apache/hc/client5/http/RouteInfo.java   |   2 +-
 .../hc/client5/http/SchemePortResolver.java     |   3 +
 .../http/ServiceUnavailableRetryStrategy.java   |   3 +
 .../apache/hc/client5/http/StandardMethods.java |   5 +
 .../hc/client5/http/UserTokenHandler.java       |   3 +
 .../client5/http/async/AsyncExecCallback.java   |  29 ++++
 .../hc/client5/http/async/AsyncExecChain.java   |  22 +++
 .../http/async/AsyncExecChainHandler.java       |  24 ++++
 .../hc/client5/http/async/AsyncExecRuntime.java |  88 ++++++++++--
 .../async/methods/AbstractBinPushConsumer.java  |  14 +-
 .../methods/AbstractBinResponseConsumer.java    |  21 ++-
 .../async/methods/AbstractCharPushConsumer.java |  14 +-
 .../methods/AbstractCharResponseConsumer.java   |  21 ++-
 .../http/async/methods/AsyncRequestBuilder.java |   1 +
 .../async/methods/ConfigurableHttpRequest.java  |   5 +
 .../http/async/methods/HttpRequests.java        |   4 +-
 .../client5/http/async/methods/SimpleBody.java  |   5 +
 .../http/async/methods/SimpleHttpRequest.java   |   7 +
 .../http/async/methods/SimpleHttpRequests.java  |   4 +-
 .../http/async/methods/SimpleHttpResponse.java  |   7 +
 .../async/methods/SimpleRequestProducer.java    |   8 ++
 .../async/methods/SimpleResponseConsumer.java   |   8 ++
 .../http/async/methods/package-info.java        |  31 ++++
 .../hc/client5/http/async/package-info.java     |  31 ++++
 .../apache/hc/client5/http/auth/AuthCache.java  |   5 +-
 .../apache/hc/client5/http/auth/AuthScheme.java |   8 ++
 .../apache/hc/client5/http/auth/AuthScope.java  |   2 +-
 .../client5/http/auth/AuthStateCacheable.java   |   6 +
 .../http/auth/AuthenticationException.java      |   1 -
 .../client5/http/auth/BasicUserPrincipal.java   |   2 +-
 .../client5/http/auth/CredentialsProvider.java  |   1 +
 .../hc/client5/http/auth/CredentialsStore.java  |   1 +
 .../http/auth/InvalidCredentialsException.java  |   5 -
 .../client5/http/auth/KerberosCredentials.java  |   2 +-
 .../http/auth/MalformedChallengeException.java  |   1 -
 .../hc/client5/http/auth/NTCredentials.java     |   2 +-
 .../http/auth/UsernamePasswordCredentials.java  |   2 +-
 .../hc/client5/http/classic/BackoffManager.java |   1 -
 .../hc/client5/http/classic/ExecChain.java      |   8 ++
 .../client5/http/classic/ExecChainHandler.java  |  19 ++-
 .../hc/client5/http/classic/ExecRuntime.java    | 103 ++++++++++++--
 .../hc/client5/http/classic/HttpClient.java     |  24 ++--
 .../classic/methods/ClassicHttpRequests.java    |   4 +-
 .../http/classic/methods/HttpDelete.java        |  12 +-
 .../client5/http/classic/methods/HttpGet.java   |  11 --
 .../client5/http/classic/methods/HttpHead.java  |  14 --
 .../http/classic/methods/HttpOptions.java       |  12 --
 .../client5/http/classic/methods/HttpPatch.java |  14 --
 .../client5/http/classic/methods/HttpPost.java  |  18 ---
 .../client5/http/classic/methods/HttpPut.java   |  10 --
 .../client5/http/classic/methods/HttpTrace.java |  13 --
 .../http/classic/methods/RequestBuilder.java    |   7 +-
 .../http/classic/methods/package-info.java      |   2 +-
 .../hc/client5/http/classic/package-info.java   |   2 +-
 .../hc/client5/http/config/package-info.java    |   2 +-
 .../client5/http/cookie/BasicCookieStore.java   |   1 -
 .../apache/hc/client5/http/cookie/Cookie.java   |   3 -
 .../http/cookie/CookieAttributeHandler.java     |   8 +-
 .../http/cookie/CookieIdentityComparator.java   |   7 +-
 .../http/cookie/CookiePathComparator.java       |   4 +-
 .../http/cookie/CookiePriorityComparator.java   |   2 +-
 .../hc/client5/http/cookie/CookieSpec.java      |   3 -
 .../client5/http/cookie/CookieSpecProvider.java |   3 +
 .../http/cookie/MalformedCookieException.java   |   1 -
 .../hc/client5/http/cookie/SetCookie.java       |   3 -
 .../http/entity/DeflateInputStreamFactory.java  |   2 +-
 .../http/entity/GZIPInputStreamFactory.java     |   2 +-
 .../hc/client5/http/impl/AuthSupport.java       |   4 +
 .../hc/client5/http/impl/ChainElements.java     |   5 +
 .../hc/client5/http/impl/ConnPoolSupport.java   |   5 +
 .../client5/http/impl/CookieSpecRegistries.java |  79 -----------
 .../hc/client5/http/impl/CookieSpecSupport.java |  83 +++++++++++
 .../impl/DefaultAuthenticationStrategy.java     |   4 +-
 .../DefaultConnectionKeepAliveStrategy.java     |   5 +-
 .../impl/DefaultHttpRequestRetryHandler.java    |   2 +-
 .../http/impl/DefaultSchemePortResolver.java    |   2 +-
 .../DefaultServiceUnavailableRetryStrategy.java |   2 +-
 .../http/impl/DefaultUserTokenHandler.java      |   3 +-
 .../hc/client5/http/impl/ExecSupport.java       |   8 ++
 .../http/impl/IdleConnectionEvictor.java        |   3 +
 .../client5/http/impl/InMemoryDnsResolver.java  |   3 +
 .../hc/client5/http/impl/MessageCopier.java     |   2 +-
 .../client5/http/impl/NoopUserTokenHandler.java |   2 +-
 .../apache/hc/client5/http/impl/Operations.java |  25 ++++
 .../hc/client5/http/impl/RequestCopier.java     |   5 +
 .../http/impl/async/AsyncConnectExec.java       |  22 +--
 .../http/impl/async/AsyncProtocolExec.java      |  17 ++-
 .../http/impl/async/AsyncRedirectExec.java      |  20 ++-
 .../client5/http/impl/async/AsyncRetryExec.java |  21 ++-
 .../impl/async/CloseableHttpAsyncClient.java    |   4 +-
 .../impl/async/Http2AsyncClientBuilder.java     |  12 +-
 .../Http2AsyncClientEventHandlerFactory.java    |   6 -
 .../impl/async/Http2AsyncMainClientExec.java    |  14 +-
 .../http/impl/async/HttpAsyncClientBuilder.java |  13 +-
 .../HttpAsyncClientEventHandlerFactory.java     |   6 -
 .../http/impl/async/HttpAsyncClients.java       |   2 +-
 .../impl/async/HttpAsyncMainClientExec.java     |  12 ++
 .../async/InternalAbstractHttpAsyncClient.java  |   4 +-
 .../impl/async/InternalHttp2AsyncClient.java    |  17 ++-
 .../async/InternalHttp2AsyncExecRuntime.java    |  12 +-
 .../impl/async/InternalHttpAsyncClient.java     |  18 ++-
 .../async/InternalHttpAsyncExecRuntime.java     |  14 +-
 .../client5/http/impl/async/LogAppendable.java  |   2 +-
 .../impl/async/MinimalHttp2AsyncClient.java     |  16 +++
 .../http/impl/async/MinimalHttpAsyncClient.java |  15 ++
 .../client5/http/impl/async/package-info.java   |  32 +++++
 .../http/impl/auth/AuthChallengeParser.java     |  16 ++-
 .../http/impl/auth/BasicSchemeFactory.java      |   2 +-
 .../client5/http/impl/auth/CredSspScheme.java   |   4 +-
 .../http/impl/auth/CredSspSchemeFactory.java    |   9 ++
 .../http/impl/auth/DigestSchemeFactory.java     |   2 +-
 .../client5/http/impl/auth/GGSSchemeBase.java   |   2 +
 .../http/impl/auth/HttpAuthenticator.java       |  43 +++++-
 .../client5/http/impl/auth/KerberosScheme.java  |   6 +
 .../http/impl/auth/KerberosSchemeFactory.java   |   8 +-
 .../http/impl/auth/NTLMEngineException.java     |   1 -
 .../hc/client5/http/impl/auth/NTLMScheme.java   |   2 +-
 .../http/impl/auth/NTLMSchemeFactory.java       |   2 +-
 .../hc/client5/http/impl/auth/SPNegoScheme.java |   6 +
 .../http/impl/auth/SPNegoSchemeFactory.java     |   8 +-
 .../UnsupportedDigestAlgorithmException.java    |   1 -
 .../hc/client5/http/impl/auth/package-info.java |   3 +-
 .../http/impl/classic/AIMDBackoffManager.java   |   2 +
 .../AbstractHttpClientResponseHandler.java      |   2 +-
 .../http/impl/classic/BackoffStrategyExec.java  |  14 +-
 .../classic/BasicHttpClientResponseHandler.java |   2 +-
 .../http/impl/classic/ClassicRequestCopier.java |   5 +
 .../hc/client5/http/impl/classic/Clock.java     |   6 -
 .../http/impl/classic/CloseableHttpClient.java  |  48 +++----
 .../impl/classic/CloseableHttpResponse.java     |   6 +-
 .../client5/http/impl/classic/ConnectExec.java  |  26 ++--
 .../impl/classic/ContentCompressionExec.java    |   8 +-
 .../impl/classic/DefaultBackoffStrategy.java    |   2 +
 .../classic/FutureRequestExecutionService.java  |   9 +-
 .../http/impl/classic/HttpClientBuilder.java    |   6 +-
 .../client5/http/impl/classic/HttpClients.java  |   3 +-
 .../impl/classic/HttpRequestFutureTask.java     |  14 +-
 .../impl/classic/HttpRequestTaskCallable.java   |   2 +-
 .../http/impl/classic/InternalExecRuntime.java  |  16 +--
 .../http/impl/classic/InternalHttpClient.java   |   8 +-
 .../http/impl/classic/MainClientExec.java       |  18 +--
 .../http/impl/classic/MinimalHttpClient.java    |  27 ++--
 .../client5/http/impl/classic/ProtocolExec.java |  20 +--
 .../client5/http/impl/classic/ProxyClient.java  |   4 +-
 .../client5/http/impl/classic/RedirectExec.java |  10 +-
 .../http/impl/classic/RequestEntityProxy.java   |   5 -
 .../http/impl/classic/ResponseEntityProxy.java  |  17 +--
 .../hc/client5/http/impl/classic/RetryExec.java |  12 +-
 .../classic/ServiceUnavailableRetryExec.java    |   6 +-
 .../client5/http/impl/classic/SystemClock.java  |   5 -
 .../client5/http/impl/classic/package-info.java |  25 +---
 .../cookie/AbstractCookieAttributeHandler.java  |   2 +-
 .../http/impl/cookie/AbstractCookieSpec.java    |   1 -
 .../http/impl/cookie/BasicClientCookie.java     |   2 +-
 .../http/impl/cookie/BasicDomainHandler.java    |   3 +-
 .../http/impl/cookie/BasicExpiresHandler.java   |   3 +-
 .../http/impl/cookie/BasicMaxAgeHandler.java    |   3 +-
 .../http/impl/cookie/BasicPathHandler.java      |   3 +-
 .../http/impl/cookie/BasicSecureHandler.java    |   3 +-
 .../http/impl/cookie/CookieSpecBase.java        |   2 +-
 .../hc/client5/http/impl/cookie/IgnoreSpec.java |   2 +-
 .../http/impl/cookie/IgnoreSpecProvider.java    |   4 +-
 .../http/impl/cookie/LaxExpiresHandler.java     |   4 +-
 .../http/impl/cookie/LaxMaxAgeHandler.java      |   4 +-
 .../impl/cookie/PublicSuffixDomainFilter.java   |  10 +-
 .../http/impl/cookie/RFC6265CookieSpec.java     |   2 +-
 .../impl/cookie/RFC6265CookieSpecProvider.java  |   8 +-
 .../http/impl/cookie/RFC6265LaxSpec.java        |   4 +-
 .../http/impl/cookie/RFC6265StrictSpec.java     |   6 +-
 .../client5/http/impl/cookie/package-info.java  |   3 +-
 .../io/DefaultHttpClientConnectionOperator.java |   2 +-
 .../io/DefaultHttpResponseParserFactory.java    |   2 +-
 .../io/DefaultManagedHttpClientConnection.java  |   5 -
 .../http/impl/io/LoggingOutputStream.java       |   5 -
 .../io/ManagedHttpClientConnectionFactory.java  |   2 +-
 .../hc/client5/http/impl/io/package-info.java   |   4 +-
 .../DefaultAsyncClientConnectionOperator.java   |   7 -
 .../DefaultManagedAsyncClientConnection.java    |   7 -
 .../impl/nio/MultuhomeConnectionInitiator.java  |   3 +
 .../hc/client5/http/impl/nio/package-info.java  |  32 +++++
 .../http/impl/routing/BasicRouteDirector.java   |   2 +-
 .../impl/routing/DefaultProxyRoutePlanner.java  |   2 +-
 .../http/impl/routing/DefaultRoutePlanner.java  |   2 +-
 .../impl/routing/SystemDefaultRoutePlanner.java |   2 +-
 .../client5/http/impl/routing/package-info.java |  31 ++++
 .../hc/client5/http/io/ConnectionEndpoint.java  |  24 +++-
 .../http/io/HttpClientConnectionManager.java    |   6 +-
 .../http/io/HttpClientConnectionOperator.java   |  27 +++-
 .../http/io/ManagedHttpClientConnection.java    |   1 -
 .../apache/hc/client5/http/io/package-info.java |  31 ++++
 .../http/nio/AsyncClientConnectionManager.java  |   7 +-
 .../http/nio/AsyncClientConnectionOperator.java |  29 +++-
 .../http/nio/AsyncConnectionEndpoint.java       |  63 ++++++++-
 .../http/nio/ManagedAsyncClientConnection.java  |  12 ++
 .../hc/client5/http/nio/package-info.java       |  31 ++++
 .../apache/hc/client5/http/package-info.java    |  34 +++++
 .../client5/http/protocol/RedirectStrategy.java |   4 +
 .../http/protocol/RequestAddCookies.java        |   2 +-
 .../client5/http/protocol/RequestAuthCache.java |   2 +-
 .../http/protocol/RequestClientConnControl.java |   2 +-
 .../http/protocol/RequestDefaultHeaders.java    |   2 +-
 .../http/protocol/RequestExpectContinue.java    |   2 +-
 .../http/protocol/ResponseProcessCookies.java   |   2 +-
 .../hc/client5/http/protocol/package-info.java  |   3 +-
 .../hc/client5/http/psl/PublicSuffixList.java   |   1 +
 .../http/psl/PublicSuffixListParser.java        |   2 +-
 .../client5/http/psl/PublicSuffixMatcher.java   |   1 +
 .../hc/client5/http/psl/package-info.java       |  31 ++++
 .../client5/http/routing/HttpRouteDirector.java |   3 +
 .../client5/http/routing/HttpRoutePlanner.java  |   3 +
 .../http/socket/ConnectionSocketFactory.java    |   3 +
 .../socket/LayeredConnectionSocketFactory.java  |   3 +
 .../socket/PlainConnectionSocketFactory.java    |   2 +-
 .../http/ssl/DefaultHostnameVerifier.java       |   2 +-
 .../http/ssl/DistinguishedNameParser.java       |   3 -
 .../hc/client5/http/ssl/H2TlsStrategy.java      |   3 +
 .../http/ssl/HttpClientHostnameVerifier.java    |  11 ++
 .../client5/http/ssl/NoopHostnameVerifier.java  |   2 +-
 .../http/ssl/SSLConnectionSocketFactory.java    |   2 +-
 .../hc/client5/http/ssl/TrustAllStrategy.java   |   5 +-
 .../http/ssl/TrustSelfSignedStrategy.java       |   3 +
 .../hc/client5/http/utils/ByteArrayBuilder.java |   4 -
 .../apache/hc/client5/http/utils/DateUtils.java |   3 -
 .../http/impl/auth/TestHttpAuthenticator.java   |  22 +--
 .../http/impl/classic/TestConnectExec.java      |  54 +++----
 .../TestFutureRequestExecutionService.java      |   7 +-
 .../impl/classic/TestInternalExecRuntime.java   |  70 +++++-----
 .../http/impl/classic/TestMainClientExec.java   |  40 +++---
 .../http/impl/classic/TestProtocolExec.java     |   8 +-
 .../impl/classic/TestResponseEntityWrapper.java |  18 +--
 304 files changed, 2044 insertions(+), 1206 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HeaderConstants.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HeaderConstants.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HeaderConstants.java
index 1dbaaf3..e2c6cdb 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HeaderConstants.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HeaderConstants.java
@@ -26,14 +26,11 @@
  */
 package org.apache.hc.client5.http.cache;
 
-import org.apache.hc.core5.annotation.Contract;
-import org.apache.hc.core5.annotation.ThreadingBehavior;
-
 /**
  * Records static constants for various HTTP header names.
+ *
  * @since 4.1
  */
-@Contract(threading = ThreadingBehavior.IMMUTABLE)
 public class HeaderConstants {
 
     public static final String GET_METHOD = "GET";

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpAsyncCacheStorage.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpAsyncCacheStorage.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpAsyncCacheStorage.java
index 6fdf1f8..447af80 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpAsyncCacheStorage.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpAsyncCacheStorage.java
@@ -29,6 +29,8 @@ package org.apache.hc.client5.http.cache;
 import java.util.Collection;
 import java.util.Map;
 
+import org.apache.hc.core5.annotation.Contract;
+import org.apache.hc.core5.annotation.ThreadingBehavior;
 import org.apache.hc.core5.concurrent.Cancellable;
 import org.apache.hc.core5.concurrent.FutureCallback;
 
@@ -37,9 +39,13 @@ import org.apache.hc.core5.concurrent.FutureCallback;
  * storage backend that can then be plugged into the  asynchronous
  * (non-blocking ) request execution
  * pipeline.
+ * <p>
+ * Implementations of this interface are expected to be threading-safe.
+ * </p>
  *
  * @since 5.0
  */
+@Contract(threading = ThreadingBehavior.SAFE)
 public interface HttpAsyncCacheStorage {
 
     /**

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpAsyncCacheStorageAdaptor.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpAsyncCacheStorageAdaptor.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpAsyncCacheStorageAdaptor.java
index baa8497..7f1e525 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpAsyncCacheStorageAdaptor.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpAsyncCacheStorageAdaptor.java
@@ -30,6 +30,8 @@ import java.util.Collection;
 import java.util.Map;
 
 import org.apache.hc.client5.http.impl.Operations;
+import org.apache.hc.core5.annotation.Contract;
+import org.apache.hc.core5.annotation.ThreadingBehavior;
 import org.apache.hc.core5.concurrent.Cancellable;
 import org.apache.hc.core5.concurrent.FutureCallback;
 import org.apache.hc.core5.util.Args;
@@ -40,6 +42,7 @@ import org.apache.hc.core5.util.Args;
  *
  * @since 5.0
  */
+@Contract(threading = ThreadingBehavior.SAFE_CONDITIONAL)
 public final class HttpAsyncCacheStorageAdaptor implements HttpAsyncCacheStorage {
 
     private final HttpCacheStorage cacheStorage;

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheCASOperation.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheCASOperation.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheCASOperation.java
index 722b116..4b59bb3 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheCASOperation.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheCASOperation.java
@@ -26,11 +26,15 @@
  */
 package org.apache.hc.client5.http.cache;
 
+import org.apache.hc.core5.annotation.Contract;
+import org.apache.hc.core5.annotation.ThreadingBehavior;
+
 /**
  * Atomic Compare-And-Swap (CAS) cache operation.
  *
  * @since 5.0
  */
+@Contract(threading = ThreadingBehavior.STATELESS)
 public interface HttpCacheCASOperation {
 
     /**

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheContext.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheContext.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheContext.java
index f1e4e8f..435bc86 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheContext.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheContext.java
@@ -31,6 +31,9 @@ import org.apache.hc.core5.http.protocol.BasicHttpContext;
 import org.apache.hc.core5.http.protocol.HttpContext;
 
 /**
+ * Adaptor class that provides convenience type safe setters and getters
+ * for caching {@link HttpContext} attributes.
+ *
  * @since 4.3
  */
 public class HttpCacheContext extends HttpClientContext {

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheEntrySerializer.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheEntrySerializer.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheEntrySerializer.java
index 70f57c6..e08a08d 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheEntrySerializer.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheEntrySerializer.java
@@ -26,11 +26,15 @@
  */
 package org.apache.hc.client5.http.cache;
 
+import org.apache.hc.core5.annotation.Contract;
+import org.apache.hc.core5.annotation.ThreadingBehavior;
+
 /**
  * Serializer / deserializer for {@link HttpCacheStorageEntry} entries.
  *
  * @since 5.0
  */
+@Contract(threading = ThreadingBehavior.STATELESS)
 public interface HttpCacheEntrySerializer<T> {
 
     /**

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheInvalidator.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheInvalidator.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheInvalidator.java
index e373d22..df80379 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheInvalidator.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheInvalidator.java
@@ -28,7 +28,9 @@ package org.apache.hc.client5.http.cache;
 
 import java.net.URI;
 
+import org.apache.hc.core5.annotation.Contract;
 import org.apache.hc.core5.annotation.Internal;
+import org.apache.hc.core5.annotation.ThreadingBehavior;
 import org.apache.hc.core5.function.Resolver;
 import org.apache.hc.core5.http.HttpHost;
 import org.apache.hc.core5.http.HttpRequest;
@@ -40,6 +42,7 @@ import org.apache.hc.core5.http.HttpResponse;
  *
  * @since 4.3
  */
+@Contract(threading = ThreadingBehavior.STATELESS)
 @Internal
 public interface HttpCacheInvalidator {
 

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheResponse.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheResponse.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheResponse.java
deleted file mode 100644
index 68a6dba..0000000
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheResponse.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * ====================================================================
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation.  For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- */
-
-package org.apache.hc.client5.http.cache;
-
-import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
-import java.util.Set;
-
-import org.apache.hc.core5.http.ContentType;
-import org.apache.hc.core5.http.EntityDetails;
-import org.apache.hc.core5.util.Args;
-
-public final class HttpCacheResponse implements EntityDetails {
-
-    private final int code;
-    private final String reasonPhrase;
-    private final byte[] body;
-    private final ContentType contentType;
-
-    public static HttpCacheResponse create(
-            final int code,
-            final String reasonPhrase,
-            final byte[] body,
-            final ContentType contentType) {
-        return new HttpCacheResponse(code, reasonPhrase, body, contentType);
-    }
-
-    public static HttpCacheResponse create(
-            final int code,
-            final byte[] body,
-            final ContentType contentType) {
-        return new HttpCacheResponse(code, null, body, contentType);
-    }
-
-    public static HttpCacheResponse create(
-            final int code,
-            final String reasonPhrase) {
-        return new HttpCacheResponse(code, reasonPhrase, null, null);
-    }
-
-    public static HttpCacheResponse create(final int code) {
-        return new HttpCacheResponse(code, null, null, null);
-    }
-
-    public static HttpCacheResponse create(
-            final int code,
-            final String reasonPhrase,
-            final String body,
-            final ContentType contentType) {
-        if (body != null) {
-            final Charset charset = contentType != null ? contentType.getCharset() : null;
-            final byte[] b = body.getBytes(charset != null ? charset : StandardCharsets.US_ASCII);
-            return new HttpCacheResponse(code, reasonPhrase, b, contentType);
-        } else {
-            return create(code, reasonPhrase);
-        }
-    }
-
-    public static HttpCacheResponse create(
-            final int code,
-            final String body,
-            final ContentType contentType) {
-        return create(code, null, body, contentType);
-    }
-
-    private HttpCacheResponse(
-            final int code,
-            final String reasonPhrase,
-            final byte[] body,
-            final ContentType contentType) {
-        this.code = Args.checkRange(code, 200, 599, "HTTP status");
-        this.reasonPhrase = reasonPhrase;
-        this.body = body;
-        this.contentType = contentType;
-    }
-
-    public int getCode() {
-        return code;
-    }
-
-    public String getReasonPhrase() {
-        return reasonPhrase;
-    }
-
-    public byte[] getBody() {
-        return body;
-    }
-
-    @Override
-    public long getContentLength() {
-        return body != null ? body.length : 0;
-    }
-
-    @Override
-    public String getContentType() {
-        return contentType != null ? contentType.toString() : null;
-    }
-
-    @Override
-    public String getContentEncoding() {
-        return null;
-    }
-
-    @Override
-    public boolean isChunked() {
-        return false;
-    }
-
-    @Override
-    public Set<String> getTrailerNames() {
-        return null;
-    }
-
-}
-

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheStorage.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheStorage.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheStorage.java
index b4a459e..0e0ac72 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheStorage.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheStorage.java
@@ -29,13 +29,20 @@ package org.apache.hc.client5.http.cache;
 import java.util.Collection;
 import java.util.Map;
 
+import org.apache.hc.core5.annotation.Contract;
+import org.apache.hc.core5.annotation.ThreadingBehavior;
+
 /**
  * {@literal HttpCacheStorage} represents an abstract HTTP cache
  * storage backend that can then be plugged into the classic
  * (blocking) request execution pipeline.
+ * <p>
+ * Implementations of this interface are expected to be threading-safe.
+ * </p>
  *
  * @since 4.1
  */
+@Contract(threading = ThreadingBehavior.SAFE)
 public interface HttpCacheStorage {
 
     /**

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheStorageEntry.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheStorageEntry.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheStorageEntry.java
index 5e3cb7a..1031d01 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheStorageEntry.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/HttpCacheStorageEntry.java
@@ -28,8 +28,16 @@ package org.apache.hc.client5.http.cache;
 
 import java.io.Serializable;
 
+import org.apache.hc.core5.annotation.Contract;
+import org.apache.hc.core5.annotation.ThreadingBehavior;
 import org.apache.hc.core5.util.Args;
 
+/**
+ * This class contains a {@link HttpCacheEntry} along with its key.
+ *
+ * @since 5.0
+ */
+@Contract(threading = ThreadingBehavior.IMMUTABLE)
 public final class HttpCacheStorageEntry implements Serializable {
 
     private static final long serialVersionUID = 1L;

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/Resource.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/Resource.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/Resource.java
index 1a986e2..b2cf028 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/Resource.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/Resource.java
@@ -30,12 +30,19 @@ import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 import java.io.Serializable;
 
+import org.apache.hc.core5.annotation.Contract;
+import org.apache.hc.core5.annotation.ThreadingBehavior;
+
 /**
  * Represents a disposable system resource used for handling
  * cached response bodies.
+ * <p>
+ * Implementations of this interface are expected to be threading-safe.
+ * </p>
  *
  * @since 4.1
  */
+@Contract(threading = ThreadingBehavior.SAFE)
 public abstract class Resource implements Serializable {
 
     private static final long serialVersionUID = 1L;

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/ResourceFactory.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/ResourceFactory.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/ResourceFactory.java
index e94a82b..2ef204a 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/ResourceFactory.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/ResourceFactory.java
@@ -26,12 +26,16 @@
  */
 package org.apache.hc.client5.http.cache;
 
+import org.apache.hc.core5.annotation.Contract;
+import org.apache.hc.core5.annotation.ThreadingBehavior;
+
 /**
  * Generates {@link Resource} instances for handling cached
  * HTTP response bodies.
  *
  * @since 4.1
  */
+@Contract(threading = ThreadingBehavior.STATELESS)
 public interface ResourceFactory {
 
     /**

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/package-info.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/package-info.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/package-info.java
new file mode 100644
index 0000000..9e9b2a5
--- /dev/null
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/package-info.java
@@ -0,0 +1,32 @@
+/*
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation.  For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+
+/**
+ * Caching APIs for both the classic and the asynchronous
+ * HTTP transports.
+ */
+package org.apache.hc.client5.http.cache;

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/package.html
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/package.html b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/package.html
deleted file mode 100644
index 3ef03e2..0000000
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/package.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<!--
-====================================================================
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
-====================================================================
-
-This software consists of voluntary contributions made by many
-individuals on behalf of the Apache Software Foundation.  For more
-information on the Apache Software Foundation, please see
-<http://www.apache.org/>.
--->
-</head>
-<body bgcolor="white">
-
-<p>
-    This package consists largely of constants and interfaces that are
-    necessary for building new storage backends for the
-    {@link org.apache.hc.client5.http.impl.client.cache.CachingHttpClient} or for
-    those clients wanting to get a little more behavioral information
-    out of the cache module (for example, whether a particular response
-    was a cache hit or not). Developers that simply want to instantiate
-    and make use of the caching module will be better off looking at
-    the {@code CachingHttpClient} documentation itself.
-</p>
-<p>
-    The classes in this package can be divided into two main groups:
-    reference constants and interfaces needed for storage backends. In
-    the former group,
-    {@link org.apache.hc.client5.http.client.cache.HeaderConstants} contains a list
-    of HTTP header names encoded as static fields, and the
-    {@link org.apache.hc.client5.http.client.cache.CacheResponseStatus} enumeration
-    values are set in an {@link org.apache.hc.client5.http.protocol.HttpContext} by
-    the {@code CachingHttpClient} to indicate how the request was
-    processed by the caching module itself.
-</p>
-<p>
-    New storage backends will need to implement the
-    {@link org.apache.hc.client5.http.client.cache.HttpCacheStorage}
-    interface; they can then be passed to one of the {@code CachingHttpClient}
-    constructors, which will happily make use of the new storage mechanism.
-    The {@link org.apache.hc.client5.http.client.cache.HttpCacheEntry} class shows the
-    datastructure for a cache entry that must be stored by the
-    {@code HttpCacheStorage}.
-    There is, in addition, the notion of a
-    {@link org.apache.hc.client5.http.client.cache.Resource} and an associated
-    {@link org.apache.hc.client5.http.client.cache.ResourceFactory}, which are used for
-    managing the handling of cached response bodies. The default implementation
-    used by the {@code CachingHttpClient} stores response bodies in memory;
-    alternative implementations might involve storing these in a filesystem. A new
-    {@code ResourceFactory} can be provided along with a {@code HttpCacheStorage}
-    in one of the constructors to the {@code CachingHttpClient}. Finally, some
-    of the additional storage backends we provide, like the
-    {@link org.apache.hc.client5.http.impl.client.cache.ehcache.EhcacheHttpCacheStorage} and
-    {@link org.apache.hc.client5.http.impl.client.cache.memcached.MemcachedHttpCacheStorage},
-    can be provided with different serializers for the cache entry metadata;
-    developers wanting to experiment with different serialization techniques
-    should implement the
-    {@link org.apache.hc.client5.http.client.cache.HttpCacheEntrySerializer} interface.
-</p>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/AsyncCachingExec.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/AsyncCachingExec.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/AsyncCachingExec.java
index 2cb66f1..beecb4d 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/AsyncCachingExec.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/AsyncCachingExec.java
@@ -88,7 +88,7 @@ import org.apache.hc.core5.util.ByteArrayBuffer;
  * @since 5.0
  */
 @Contract(threading = ThreadingBehavior.SAFE) // So long as the responseCache implementation is threadsafe
-public class AsyncCachingExec extends CachingExecBase implements AsyncExecChainHandler {
+class AsyncCachingExec extends CachingExecBase implements AsyncExecChainHandler {
 
     private final HttpAsyncCache responseCache;
     private final DefaultAsyncCacheRevalidator cacheRevalidator;
@@ -120,7 +120,7 @@ public class AsyncCachingExec extends CachingExecBase implements AsyncExecChainH
         this.conditionalRequestBuilder = conditionalRequestBuilder;
     }
 
-    public AsyncCachingExec(
+    AsyncCachingExec(
             final HttpAsyncCache cache,
             final ScheduledExecutorService executorService,
             final SchedulingStrategy schedulingStrategy,
@@ -130,7 +130,7 @@ public class AsyncCachingExec extends CachingExecBase implements AsyncExecChainH
                 config);
     }
 
-    public AsyncCachingExec(
+    AsyncCachingExec(
             final ResourceFactory resourceFactory,
             final HttpAsyncCacheStorage storage,
             final ScheduledExecutorService executorService,
@@ -144,7 +144,7 @@ public class AsyncCachingExec extends CachingExecBase implements AsyncExecChainH
             final AsyncExecChain.Scope scope,
             final AsyncExecCallback asyncExecCallback) {
         scope.clientContext.setAttribute(HttpCoreContext.HTTP_RESPONSE, cacheResponse);
-        scope.execRuntime.releaseConnection();
+        scope.execRuntime.releaseEndpoint();
 
         final SimpleBody body = cacheResponse.getBody();
         final byte[] content = body != null ? body.getBodyBytes() : null;

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/BasicIdGenerator.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/BasicIdGenerator.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/BasicIdGenerator.java
index 5c48ed7..cfa28ac 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/BasicIdGenerator.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/BasicIdGenerator.java
@@ -33,13 +33,9 @@ import java.security.SecureRandom;
 import java.util.Formatter;
 import java.util.Locale;
 
-import org.apache.hc.core5.annotation.Contract;
-import org.apache.hc.core5.annotation.ThreadingBehavior;
-
 /**
  * Should produce reasonably unique tokens.
  */
-@Contract(threading = ThreadingBehavior.SAFE)
 class BasicIdGenerator {
 
     private final String hostname;

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ByteArrayCacheEntrySerializer.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ByteArrayCacheEntrySerializer.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ByteArrayCacheEntrySerializer.java
index e5f653c..7b7f457 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ByteArrayCacheEntrySerializer.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ByteArrayCacheEntrySerializer.java
@@ -46,7 +46,7 @@ import org.apache.hc.core5.annotation.ThreadingBehavior;
  *
  * @since 4.1
  */
-@Contract(threading = ThreadingBehavior.IMMUTABLE)
+@Contract(threading = ThreadingBehavior.STATELESS)
 public final class ByteArrayCacheEntrySerializer implements HttpCacheEntrySerializer<byte[]> {
 
     public static final ByteArrayCacheEntrySerializer INSTANCE = new ByteArrayCacheEntrySerializer();

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheKeyGenerator.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheKeyGenerator.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheKeyGenerator.java
index 2ea3e1f..bb84aee 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheKeyGenerator.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheKeyGenerator.java
@@ -50,7 +50,7 @@ import org.apache.hc.core5.http.message.MessageSupport;
 /**
  * @since 4.1
  */
-@Contract(threading = ThreadingBehavior.IMMUTABLE)
+@Contract(threading = ThreadingBehavior.STATELESS)
 public class CacheKeyGenerator implements Resolver<URI, String> {
 
     public static final CacheKeyGenerator INSTANCE = new CacheKeyGenerator();

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheUpdateHandler.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheUpdateHandler.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheUpdateHandler.java
index 2db7bea..3ee2fe9 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheUpdateHandler.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheUpdateHandler.java
@@ -37,8 +37,6 @@ import org.apache.hc.client5.http.cache.Resource;
 import org.apache.hc.client5.http.cache.ResourceFactory;
 import org.apache.hc.client5.http.cache.ResourceIOException;
 import org.apache.hc.client5.http.utils.DateUtils;
-import org.apache.hc.core5.annotation.Contract;
-import org.apache.hc.core5.annotation.ThreadingBehavior;
 import org.apache.hc.core5.http.Header;
 import org.apache.hc.core5.http.HttpHeaders;
 import org.apache.hc.core5.http.HttpRequest;
@@ -51,10 +49,7 @@ import org.apache.hc.core5.util.ByteArrayBuffer;
 /**
  * Creates new {@link HttpCacheEntry}s and updates existing ones with new or updated information
  * based on the response from the origin server.
- *
- * @since 5.0
  */
-@Contract(threading = ThreadingBehavior.IMMUTABLE)
 class CacheUpdateHandler {
 
     private final ResourceFactory resourceFactory;

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheValidityPolicy.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheValidityPolicy.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheValidityPolicy.java
index 7930d43..2d469ca 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheValidityPolicy.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheValidityPolicy.java
@@ -33,8 +33,6 @@ import org.apache.hc.client5.http.cache.HeaderConstants;
 import org.apache.hc.client5.http.cache.HttpCacheEntry;
 import org.apache.hc.client5.http.cache.Resource;
 import org.apache.hc.client5.http.utils.DateUtils;
-import org.apache.hc.core5.annotation.Contract;
-import org.apache.hc.core5.annotation.ThreadingBehavior;
 import org.apache.hc.core5.http.Header;
 import org.apache.hc.core5.http.HeaderElement;
 import org.apache.hc.core5.http.HttpHeaders;
@@ -42,10 +40,6 @@ import org.apache.hc.core5.http.HttpRequest;
 import org.apache.hc.core5.http.MessageHeaders;
 import org.apache.hc.core5.http.message.MessageSupport;
 
-/**
- * @since 4.1
- */
-@Contract(threading = ThreadingBehavior.IMMUTABLE)
 class CacheValidityPolicy {
 
     public static final long MAX_AGE = 2147483648L;

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheableRequestPolicy.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheableRequestPolicy.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheableRequestPolicy.java
index 620ad9b..45f8180 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheableRequestPolicy.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheableRequestPolicy.java
@@ -29,8 +29,6 @@ package org.apache.hc.client5.http.impl.cache;
 import java.util.Iterator;
 
 import org.apache.hc.client5.http.cache.HeaderConstants;
-import org.apache.hc.core5.annotation.Contract;
-import org.apache.hc.core5.annotation.ThreadingBehavior;
 import org.apache.hc.core5.http.HeaderElement;
 import org.apache.hc.core5.http.HttpRequest;
 import org.apache.hc.core5.http.HttpVersion;
@@ -41,10 +39,7 @@ import org.slf4j.LoggerFactory;
 
 /**
  * Determines if an HttpRequest is allowed to be served from the cache.
- *
- * @since 4.1
  */
-@Contract(threading = ThreadingBehavior.IMMUTABLE)
 class CacheableRequestPolicy {
 
     private final Logger log = LoggerFactory.getLogger(getClass());

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachedHttpResponseGenerator.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachedHttpResponseGenerator.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachedHttpResponseGenerator.java
index d558837..f3a0002 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachedHttpResponseGenerator.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachedHttpResponseGenerator.java
@@ -34,8 +34,6 @@ import org.apache.hc.client5.http.cache.HttpCacheEntry;
 import org.apache.hc.client5.http.cache.Resource;
 import org.apache.hc.client5.http.cache.ResourceIOException;
 import org.apache.hc.client5.http.utils.DateUtils;
-import org.apache.hc.core5.annotation.Contract;
-import org.apache.hc.core5.annotation.ThreadingBehavior;
 import org.apache.hc.core5.http.ContentType;
 import org.apache.hc.core5.http.Header;
 import org.apache.hc.core5.http.HttpHeaders;
@@ -47,10 +45,7 @@ import org.apache.hc.core5.http.message.BasicHeader;
 
 /**
  * Rebuilds an {@link HttpResponse} from a {@link HttpCacheEntry}
- *
- * @since 4.1
  */
-@Contract(threading = ThreadingBehavior.IMMUTABLE)
 class CachedHttpResponseGenerator {
 
     private final CacheValidityPolicy validityStrategy;

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachedResponseSuitabilityChecker.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachedResponseSuitabilityChecker.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachedResponseSuitabilityChecker.java
index f191778..dc6b4d1 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachedResponseSuitabilityChecker.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachedResponseSuitabilityChecker.java
@@ -32,8 +32,6 @@ import java.util.Iterator;
 import org.apache.hc.client5.http.cache.HeaderConstants;
 import org.apache.hc.client5.http.cache.HttpCacheEntry;
 import org.apache.hc.client5.http.utils.DateUtils;
-import org.apache.hc.core5.annotation.Contract;
-import org.apache.hc.core5.annotation.ThreadingBehavior;
 import org.apache.hc.core5.http.Header;
 import org.apache.hc.core5.http.HeaderElement;
 import org.apache.hc.core5.http.HttpHost;
@@ -46,10 +44,7 @@ import org.slf4j.LoggerFactory;
 /**
  * Determines whether a given {@link HttpCacheEntry} is suitable to be
  * used as a response for a given {@link HttpRequest}.
- *
- * @since 4.1
  */
-@Contract(threading = ThreadingBehavior.IMMUTABLE)
 class CachedResponseSuitabilityChecker {
 
     private final Logger log = LoggerFactory.getLogger(getClass());

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachingExec.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachingExec.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachingExec.java
index a515094..10a0f8d 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachingExec.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachingExec.java
@@ -49,8 +49,6 @@ import org.apache.hc.client5.http.impl.classic.ClassicRequestCopier;
 import org.apache.hc.client5.http.protocol.HttpClientContext;
 import org.apache.hc.client5.http.schedule.SchedulingStrategy;
 import org.apache.hc.client5.http.utils.DateUtils;
-import org.apache.hc.core5.annotation.Contract;
-import org.apache.hc.core5.annotation.ThreadingBehavior;
 import org.apache.hc.core5.http.ClassicHttpRequest;
 import org.apache.hc.core5.http.ClassicHttpResponse;
 import org.apache.hc.core5.http.Header;
@@ -100,8 +98,7 @@ import org.slf4j.LoggerFactory;
  *
  * @since 4.3
  */
-@Contract(threading = ThreadingBehavior.SAFE) // So long as the responseCache implementation is threadsafe
-public class CachingExec extends CachingExecBase implements ExecChainHandler {
+class CachingExec extends CachingExecBase implements ExecChainHandler {
 
     private final HttpCache responseCache;
     private final DefaultCacheRevalidator cacheRevalidator;
@@ -135,7 +132,7 @@ public class CachingExec extends CachingExecBase implements ExecChainHandler {
         this.conditionalRequestBuilder = conditionalRequestBuilder;
     }
 
-    public CachingExec(
+    CachingExec(
             final HttpCache cache,
             final ScheduledExecutorService executorService,
             final SchedulingStrategy schedulingStrategy,
@@ -145,7 +142,7 @@ public class CachingExec extends CachingExecBase implements ExecChainHandler {
                 config);
     }
 
-    public CachingExec(
+    CachingExec(
             final ResourceFactory resourceFactory,
             final HttpCacheStorage storage,
             final ScheduledExecutorService executorService,

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachingHttpAsyncClients.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachingHttpAsyncClients.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachingHttpAsyncClients.java
index 230791b..4742b00 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachingHttpAsyncClients.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachingHttpAsyncClients.java
@@ -30,8 +30,6 @@ package org.apache.hc.client5.http.impl.cache;
 import java.io.File;
 
 import org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient;
-import org.apache.hc.core5.annotation.Contract;
-import org.apache.hc.core5.annotation.ThreadingBehavior;
 
 /**
  * Factory methods for {@link CloseableHttpAsyncClient} instances
@@ -39,8 +37,7 @@ import org.apache.hc.core5.annotation.ThreadingBehavior;
  *
  * @since 5.0
  */
-@Contract(threading = ThreadingBehavior.IMMUTABLE)
-public class CachingHttpAsyncClients {
+public final class CachingHttpAsyncClients {
 
     private CachingHttpAsyncClients() {
         super();

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachingHttpClients.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachingHttpClients.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachingHttpClients.java
index 0ea8eed..c8cf99a 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachingHttpClients.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachingHttpClients.java
@@ -30,8 +30,6 @@ package org.apache.hc.client5.http.impl.cache;
 import java.io.File;
 
 import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
-import org.apache.hc.core5.annotation.Contract;
-import org.apache.hc.core5.annotation.ThreadingBehavior;
 
 /**
  * Factory methods for {@link CloseableHttpClient} instances
@@ -39,8 +37,7 @@ import org.apache.hc.core5.annotation.ThreadingBehavior;
  *
  * @since 4.3
  */
-@Contract(threading = ThreadingBehavior.IMMUTABLE)
-public class CachingHttpClients {
+public final class CachingHttpClients {
 
     private CachingHttpClients() {
         super();

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ConditionalRequestBuilder.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ConditionalRequestBuilder.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ConditionalRequestBuilder.java
index b6eeb9e..b5cc5fe 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ConditionalRequestBuilder.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ConditionalRequestBuilder.java
@@ -32,17 +32,11 @@ import java.util.Map;
 import org.apache.hc.client5.http.cache.HeaderConstants;
 import org.apache.hc.client5.http.cache.HttpCacheEntry;
 import org.apache.hc.client5.http.impl.MessageCopier;
-import org.apache.hc.core5.annotation.Contract;
-import org.apache.hc.core5.annotation.ThreadingBehavior;
 import org.apache.hc.core5.http.Header;
 import org.apache.hc.core5.http.HeaderElement;
 import org.apache.hc.core5.http.HttpRequest;
 import org.apache.hc.core5.http.message.MessageSupport;
 
-/**
- * @since 4.1
- */
-@Contract(threading = ThreadingBehavior.IMMUTABLE)
 class ConditionalRequestBuilder<T extends HttpRequest> {
 
     private final MessageCopier<T> messageCopier;

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/DefaultAsyncCacheInvalidator.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/DefaultAsyncCacheInvalidator.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/DefaultAsyncCacheInvalidator.java
index 246a11a..91aab39 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/DefaultAsyncCacheInvalidator.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/DefaultAsyncCacheInvalidator.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  *
  * @since 5.0
  */
-@Contract(threading = ThreadingBehavior.IMMUTABLE)
+@Contract(threading = ThreadingBehavior.STATELESS)
 @Internal
 public class DefaultAsyncCacheInvalidator extends CacheInvalidatorBase implements HttpAsyncCacheInvalidator {
 

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/DefaultCacheInvalidator.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/DefaultCacheInvalidator.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/DefaultCacheInvalidator.java
index c305b91..12bd68a 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/DefaultCacheInvalidator.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/DefaultCacheInvalidator.java
@@ -50,7 +50,7 @@ import org.slf4j.LoggerFactory;
  *
  * @since 4.1
  */
-@Contract(threading = ThreadingBehavior.IMMUTABLE)
+@Contract(threading = ThreadingBehavior.STATELESS)
 @Internal
 public class DefaultCacheInvalidator extends CacheInvalidatorBase implements HttpCacheInvalidator {
 

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/FileResourceFactory.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/FileResourceFactory.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/FileResourceFactory.java
index 99f1ddb..4b5c671 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/FileResourceFactory.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/FileResourceFactory.java
@@ -45,7 +45,7 @@ import org.apache.hc.core5.util.Args;
  *
  * @since 4.1
  */
-@Contract(threading = ThreadingBehavior.IMMUTABLE)
+@Contract(threading = ThreadingBehavior.STATELESS)
 public class FileResourceFactory implements ResourceFactory {
 
     private final File cacheDir;

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/HeapResourceFactory.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/HeapResourceFactory.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/HeapResourceFactory.java
index bb656e0..78e965b 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/HeapResourceFactory.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/HeapResourceFactory.java
@@ -38,7 +38,7 @@ import org.apache.hc.core5.util.Args;
  *
  * @since 4.1
  */
-@Contract(threading = ThreadingBehavior.IMMUTABLE)
+@Contract(threading = ThreadingBehavior.STATELESS)
 public class HeapResourceFactory implements ResourceFactory {
 
     public static final HeapResourceFactory INSTANCE = new HeapResourceFactory();

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/HttpAsyncCache.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/HttpAsyncCache.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/HttpAsyncCache.java
index dc4b2e6..6ba9262 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/HttpAsyncCache.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/HttpAsyncCache.java
@@ -30,7 +30,6 @@ import java.util.Date;
 import java.util.Map;
 
 import org.apache.hc.client5.http.cache.HttpCacheEntry;
-import org.apache.hc.core5.annotation.Internal;
 import org.apache.hc.core5.concurrent.Cancellable;
 import org.apache.hc.core5.concurrent.FutureCallback;
 import org.apache.hc.core5.http.HttpHost;
@@ -38,10 +37,6 @@ import org.apache.hc.core5.http.HttpRequest;
 import org.apache.hc.core5.http.HttpResponse;
 import org.apache.hc.core5.util.ByteArrayBuffer;
 
-/**
- * @since 5.0
- */
-@Internal
 interface HttpAsyncCache {
 
     String generateKey (HttpHost host, HttpRequest request, HttpCacheEntry cacheEntry);

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/HttpCache.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/HttpCache.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/HttpCache.java
index d2c6e66..66f4af9 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/HttpCache.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/HttpCache.java
@@ -35,9 +35,6 @@ import org.apache.hc.core5.http.HttpRequest;
 import org.apache.hc.core5.http.HttpResponse;
 import org.apache.hc.core5.util.ByteArrayBuffer;
 
-/**
- * @since 4.1
- */
 interface HttpCache {
 
     String generateKey (HttpHost host, HttpRequest request, HttpCacheEntry cacheEntry);

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ManagedHttpCacheStorage.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ManagedHttpCacheStorage.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ManagedHttpCacheStorage.java
index a89c667..0623171 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ManagedHttpCacheStorage.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ManagedHttpCacheStorage.java
@@ -35,9 +35,9 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicBoolean;
 
+import org.apache.hc.client5.http.cache.HttpCacheCASOperation;
 import org.apache.hc.client5.http.cache.HttpCacheEntry;
 import org.apache.hc.client5.http.cache.HttpCacheStorage;
-import org.apache.hc.client5.http.cache.HttpCacheCASOperation;
 import org.apache.hc.client5.http.cache.Resource;
 import org.apache.hc.client5.http.cache.ResourceIOException;
 import org.apache.hc.core5.annotation.Contract;

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/NoopCacheEntrySerializer.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/NoopCacheEntrySerializer.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/NoopCacheEntrySerializer.java
index 76f1716..a3f555b 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/NoopCacheEntrySerializer.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/NoopCacheEntrySerializer.java
@@ -33,9 +33,12 @@ import org.apache.hc.core5.annotation.Contract;
 import org.apache.hc.core5.annotation.ThreadingBehavior;
 
 /**
+ * {@link HttpCacheEntrySerializer} that uses {@link HttpCacheStorageEntry}
+ * as its cache content representation.
+ *
  * @since 5.0
  */
-@Contract(threading = ThreadingBehavior.IMMUTABLE)
+@Contract(threading = ThreadingBehavior.STATELESS)
 public class NoopCacheEntrySerializer implements HttpCacheEntrySerializer<HttpCacheStorageEntry> {
 
     public static final NoopCacheEntrySerializer INSTANCE = new NoopCacheEntrySerializer();

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/RequestProtocolCompliance.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/RequestProtocolCompliance.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/RequestProtocolCompliance.java
index 99affcb..89674e4 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/RequestProtocolCompliance.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/RequestProtocolCompliance.java
@@ -32,8 +32,6 @@ import java.util.Iterator;
 import java.util.List;
 
 import org.apache.hc.client5.http.cache.HeaderConstants;
-import org.apache.hc.core5.annotation.Contract;
-import org.apache.hc.core5.annotation.ThreadingBehavior;
 import org.apache.hc.core5.http.Header;
 import org.apache.hc.core5.http.HeaderElement;
 import org.apache.hc.core5.http.HttpRequest;
@@ -41,10 +39,6 @@ import org.apache.hc.core5.http.HttpVersion;
 import org.apache.hc.core5.http.ProtocolVersion;
 import org.apache.hc.core5.http.message.MessageSupport;
 
-/**
- * @since 4.1
- */
-@Contract(threading = ThreadingBehavior.IMMUTABLE)
 class RequestProtocolCompliance {
     private final boolean weakETagOnPutDeleteAllowed;
 

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/RequestProtocolError.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/RequestProtocolError.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/RequestProtocolError.java
index 38ffa7a..9e8829e 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/RequestProtocolError.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/RequestProtocolError.java
@@ -26,9 +26,6 @@
  */
 package org.apache.hc.client5.http.impl.cache;
 
-/**
- * @since 4.1
- */
 enum RequestProtocolError {
 
     UNKNOWN,

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ResourceReference.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ResourceReference.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ResourceReference.java
index 502e13e..7ada578 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ResourceReference.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ResourceReference.java
@@ -31,11 +31,8 @@ import java.lang.ref.ReferenceQueue;
 
 import org.apache.hc.client5.http.cache.HttpCacheEntry;
 import org.apache.hc.client5.http.cache.Resource;
-import org.apache.hc.core5.annotation.Contract;
-import org.apache.hc.core5.annotation.ThreadingBehavior;
 import org.apache.hc.core5.util.Args;
 
-@Contract(threading = ThreadingBehavior.IMMUTABLE)
 class ResourceReference extends PhantomReference<HttpCacheEntry> {
 
     private final Resource resource;

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ResponseCachingPolicy.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ResponseCachingPolicy.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ResponseCachingPolicy.java
index e862274..9564645 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ResponseCachingPolicy.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ResponseCachingPolicy.java
@@ -34,8 +34,6 @@ import java.util.Set;
 
 import org.apache.hc.client5.http.cache.HeaderConstants;
 import org.apache.hc.client5.http.utils.DateUtils;
-import org.apache.hc.core5.annotation.Contract;
-import org.apache.hc.core5.annotation.ThreadingBehavior;
 import org.apache.hc.core5.http.Header;
 import org.apache.hc.core5.http.HeaderElement;
 import org.apache.hc.core5.http.HttpHeaders;
@@ -49,12 +47,6 @@ import org.apache.hc.core5.http.message.MessageSupport;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-/**
- * Determines if an HttpResponse can be cached.
- *
- * @since 4.1
- */
-@Contract(threading = ThreadingBehavior.IMMUTABLE)
 class ResponseCachingPolicy {
 
     private static final String[] AUTH_CACHEABLE_PARAMS = {

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ResponseProtocolCompliance.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ResponseProtocolCompliance.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ResponseProtocolCompliance.java
index ff5f0cc..f0e714e 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ResponseProtocolCompliance.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ResponseProtocolCompliance.java
@@ -34,8 +34,6 @@ import java.util.List;
 import org.apache.hc.client5.http.ClientProtocolException;
 import org.apache.hc.client5.http.cache.HeaderConstants;
 import org.apache.hc.client5.http.utils.DateUtils;
-import org.apache.hc.core5.annotation.Contract;
-import org.apache.hc.core5.annotation.ThreadingBehavior;
 import org.apache.hc.core5.http.Header;
 import org.apache.hc.core5.http.HeaderElement;
 import org.apache.hc.core5.http.HeaderElements;
@@ -48,10 +46,6 @@ import org.apache.hc.core5.http.ProtocolVersion;
 import org.apache.hc.core5.http.message.BasicHeader;
 import org.apache.hc.core5.http.message.MessageSupport;
 
-/**
- * @since 4.1
- */
-@Contract(threading = ThreadingBehavior.IMMUTABLE)
 class ResponseProtocolCompliance {
 
     private static final String UNEXPECTED_100_CONTINUE = "The incoming request did not contain a "

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ehcache/package-info.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ehcache/package-info.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ehcache/package-info.java
new file mode 100644
index 0000000..818b710
--- /dev/null
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ehcache/package-info.java
@@ -0,0 +1,31 @@
+/*
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation.  For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+
+/**
+ * <a href="http://ehcache.org/">Ehcache</a> based caching backend implementation.
+ */
+package org.apache.hc.client5.http.impl.cache.ehcache;

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ehcache/package.html
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ehcache/package.html b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ehcache/package.html
deleted file mode 100644
index 9a27360..0000000
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ehcache/package.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<!--
-====================================================================
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
-====================================================================
-
-This software consists of voluntary contributions made by many
-individuals on behalf of the Apache Software Foundation.  For more
-information on the Apache Software Foundation, please see
-<http://www.apache.org/>.
--->
-</head>
-<body bgcolor="white">
-
-<p>
-This package contains a storage backend based on
-<a href="http://ehcache.org/">Ehcache</a>
-that can be plugged into
-a {@link org.apache.http.impl.client.cache.CachingHttpClient} and
-used for storing cache entries.
-</p>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/KeyHashingScheme.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/KeyHashingScheme.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/KeyHashingScheme.java
index d24faab..a087b89 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/KeyHashingScheme.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/KeyHashingScheme.java
@@ -58,6 +58,8 @@
  * keys. Clients can implement this interface to change the way the mapping
  * is done (for example, to add a prefix to all cache keys to provide a form
  * of memcached namespacing).
+ *
+ * @since 4.1
  */
 public interface KeyHashingScheme {
 

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/MemcachedKeyHashingException.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/MemcachedKeyHashingException.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/MemcachedKeyHashingException.java
index 8b2fd14..4499d98 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/MemcachedKeyHashingException.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/MemcachedKeyHashingException.java
@@ -27,9 +27,11 @@
 package org.apache.hc.client5.http.impl.cache.memcached;
 
 /**
- * Indicates a problem encountered when trying to map a
+ * Signals a problem encountered when trying to map a
  * logical "storage key" to a "cache key" suitable for use with
  * memcached.
+ *
+ * @since 4.1
  */
 public class MemcachedKeyHashingException extends RuntimeException {
 

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/MemcachedOperationTimeoutException.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/MemcachedOperationTimeoutException.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/MemcachedOperationTimeoutException.java
index 054753c..d221d3e 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/MemcachedOperationTimeoutException.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/MemcachedOperationTimeoutException.java
@@ -29,9 +29,11 @@ package org.apache.hc.client5.http.impl.cache.memcached;
 import org.apache.hc.client5.http.cache.ResourceIOException;
 
 /**
- * Raised when memcached times out on us.
+ * Signals memcached operation timeout.
+ *
+ * @since 4.1
  */
-class MemcachedOperationTimeoutException extends ResourceIOException {
+public class MemcachedOperationTimeoutException extends ResourceIOException {
 
     private static final long serialVersionUID = 1L;
 

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/PrefixKeyHashingScheme.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/PrefixKeyHashingScheme.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/PrefixKeyHashingScheme.java
index b7a1fd4..ad2dfe2 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/PrefixKeyHashingScheme.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/PrefixKeyHashingScheme.java
@@ -32,6 +32,8 @@ package org.apache.hc.client5.http.impl.cache.memcached;
  * a known prefix to the results of another {@code KeyHashingScheme}.
  * Primarily useful for namespacing a shared memcached cluster, for
  * example.
+ *
+ * @since 4.1
  */
 public final class PrefixKeyHashingScheme implements KeyHashingScheme {
 

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/SHA256KeyHashingScheme.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/SHA256KeyHashingScheme.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/SHA256KeyHashingScheme.java
index dd23b3c..c54938d 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/SHA256KeyHashingScheme.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/SHA256KeyHashingScheme.java
@@ -39,6 +39,8 @@ import org.slf4j.LoggerFactory;
  * algorithm. The hashes produced are hex-encoded SHA-256
  * digests and hence are always 64-character hexadecimal
  * strings.
+ *
+ * @since 4.1
  */
 public final class SHA256KeyHashingScheme implements KeyHashingScheme {
 

http://git-wip-us.apache.org/repos/asf/httpcomponents-client/blob/37c80064/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/package-info.java
----------------------------------------------------------------------
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/package-info.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/package-info.java
new file mode 100644
index 0000000..87618b2
--- /dev/null
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/memcached/package-info.java
@@ -0,0 +1,32 @@
+/*
+ * ====================================================================
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation.  For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+
+/**
+ * <a href="http://memcached.org/">Memcached</a> based caching backend
+ * implementation.
+ */
+package org.apache.hc.client5.http.impl.cache.memcached;