"Fossies" - the Fresh Open Source Software Archive

Member "RELEASE_NOTES.txt" (13 Nov 2021, 125337 Bytes) of package /linux/www/httpcomponents-client-5.1.2-src.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "RELEASE_NOTES.txt": 5.1.1_vs_5.1.2.

    1 Release 5.1.2
    2 -----------
    3 
    4 This is an emergency release that fixes a regression introduced in the previous release
    5 that can lead to a connection leak when executing requests with a non-repeatable streaming
    6 entity with the classic (blocking) HttpClient. Async and minimal HttpClient implementations
    7 are not affected by the regression.
    8 
    9 Change Log
   10 -------------------
   11 
   12 * HTTPCLIENT-2184: Fixed regression in the connection reuse logic of the classic (blocking)
   13   request execution pipeline.
   14 
   15 
   16 Release 5.1.1
   17 -----------
   18 
   19 This release upgrades HttpCore to the latest 5.1 version and fixes a number of issues found
   20 since release 5.1.
   21 
   22 
   23 Change Log
   24 -------------------
   25 
   26 * Don't initialize AtomicReference to its default value.
   27   Contributed by Gary Gregory <ggregory at apache.org>
   28 
   29 * Corrected resolution of the target host in DefaultUserTokenHandler.
   30   Contributed by Oleg Kalnichevski <olegk at apache.org>
   31 
   32 * HTTPCLIENT-2177: automatically force HTTP/1.1 protocol policy when executing requests
   33   via a proxy tunnel.
   34   Contributed by Oleg Kalnichevski <olegk at apache.org>
   35 
   36 * HTTPCLIENT-2177: fixed incorrect route state tracking by the async connect executor
   37   when negotiating a tunnel via a proxy.
   38   Contributed by Oleg Kalnichevski <olegk at apache.org>
   39 
   40 * HTTPCLIENT-2177: keep successful tunnel connections alive regardless of `Connection: close`.
   41   Contributed by Oleg Kalnichevski <olegk at apache.org>
   42 
   43 * HTTPCLIENT-2173: async pooling connection manager to close half-open connection gracefully.
   44   Contributed by Oleg Kalnichevski <olegk at apache.org>
   45 
   46 * Don't retry a request for NoRouteToHostException.
   47   Contributed by Jaikiran Pai <jaikiran.pai at gmail.com>
   48 
   49 * HTTPCLIENT-2170: Classic protocol layer no longer releases the underlying connection back
   50   to the pool prematurely while the NTLM handshake is still ongoing.
   51   Contributed by Oleg Kalnichevski <olegk at apache.org>
   52 
   53 * Fixed connection lease request cancellation race in both classic and asyc pooling connection
   54   managers.
   55   Contributed by Oleg Kalnichevski <olegk at apache.org>
   56 
   57 
   58 
   59 Release 5.1
   60 -----------
   61 
   62 This is the first GA release in the 5.1 release series.
   63 
   64 Notable changes and features included in the 5.1 series:
   65 
   66 * Conditional conformance with RFC 3986 (Uniform Resource Identifier (URI): Generic Syntax).
   67 
   68 * Improved support for out of sequence response message handing by the the classic (blocking)
   69   HTTP transport.
   70 
   71 * Improved message builders.
   72 
   73 
   74 Please note that 5.1 is going to be the last release series compatible with Java 1.7. 
   75 HttpClient will require Java 1.8 as of 5.2.
   76 
   77 
   78 Change Log
   79 -------------------
   80 
   81 * HTTPCLIENT-2157: Response object generated by the classic caching backend is missing
   82   the original content encoding.
   83   Contributed by Oleg Kalnichevski <olegk at apache.org>
   84 
   85 * HTTPCLIENT-2152: Fixed handling of unexpected unchecked exception by the async request
   86   retry exec interceptor.
   87   Contributed by Oleg Kalnichevski <olegk at apache.org>
   88 
   89 * Async clients to support scheduled (delayed) re-execution of requests.
   90   Contributed by Oleg Kalnichevski <olegk at apache.org>
   91 
   92 * HTTPCLIENT-2148: fluent Executor volatile access thread safety (#301).
   93   Contributed by Carter Kozak <ckozak at apache.org>
   94 
   95 * HTTPCLIENT-2149: When no dNSName, match against CN.
   96   Contributed by Peter Dettman <peter.dettman at bouncycastle.org>
   97 
   98 * HTTPCLIENT-2147: fixed broken preemptive auth in HC Fluent.
   99   Contributed by Robert Rodewald <robert.rodewald at kopsis.com>
  100 
  101 * HTTPCORE-672: cleanup of H2 connection validation code.
  102   Contributed by Oleg Kalnichevski <olegk at apache.org>
  103 
  104 * HttpAsyncClientBuilder: Make IOReactor exception callback configurable
  105   Contributed by Ryan Schmitt <ryansch at amazon.com>
  106 
  107 * HTTPCLIENT-2141: HttpClient to not retry requests if the retry interval exceeds the response
  108   timeout.
  109   Contributed by Oleg Kalnichevski <olegk at apache.org>
  110 
  111 * Fixed NPE during dispose in Response if entity is null
  112   Contributed by Sandeep Kulkarni <sandeep at snk.local>
  113 
  114 * Blocking connection managers to validate connections after inactivity of more than 2s
  115   by default.
  116   Contributed by Oleg Kalnichevski <olegk at apache.org>
  117 
  118 * Deprecated request factory classes in favor of request builders.
  119   Contributed by Oleg Kalnichevski <olegk at apache.org>
  120 
  121 * HTTPCLIENT-2140: Upgraded Commons Codec to version 1.15.
  122   Contributed by Oleg Kalnichevski <olegk at apache.org>
  123 
  124 * Deprecated message copiers in favor of generic message builders.
  125   Contributed by Oleg Kalnichevski <olegk at apache.org>
  126 
  127 * Kerberos/SPNego fixes
  128   Contributed by Carey Lin <careylin1111 at gmail.com>
  129 
  130 
  131 
  132 Release 5.1 BETA1
  133 ------------------
  134 
  135 This is the first BETA release in the 5.1 release series that includes a number of
  136 new features as well performance optimizations in the classic HTTP transport.
  137 
  138 Notable changes and features included in the 5.1 series:
  139 
  140 * Conditional conformance with RFC 3986 (Uniform Resource Identifier (URI): Generic Syntax).
  141 
  142 * Improved support for out of sequence response message handing by the the classic (blocking)
  143   HTTP transport.
  144 
  145 
  146 Changelog:
  147 -------------------
  148 
  149 * RFC 3986 conformance: URIUtils to re-use URIBuilder functionality.
  150   Contributed by Oleg Kalnichevski <olegk at apache.org>
  151 
  152 * Improved I/O session and wire logging.
  153   Contributed by Oleg Kalnichevski <olegk at apache.org>
  154 
  155 * Add interceptors before MAIN_TRANSPORT so they won't be ignored (#272)
  156   Contributed by Rob Spoor <robtimus at users.noreply.github.com>
  157 
  158 * HTTPCLIENT-2104: ManagedHttpClientConnectionFactory to support ResponseOutOfOrderStrategy configuration.
  159   Contributed by Carter Kozak <ckozak at apache.org>
  160 
  161 * Fixed NPE when H2/Async client interceptors are added using first/last (#268).
  162   Contributed by Koji Lin <koji.lin at gmail.com>
  163 
  164 * HTTPCLIENT-2126: `InternalAbstractHttpAsyncClient` incorrectly handles response messages with no enclosed
  165   entity.
  166   Contributed by Oleg Kalnichevski <olegk at apache.org>
  167 
  168 * HTTPCLIENT-2124: Fixed NOE  in MinimalHttpClient#doExecute (#261).
  169   Contributed by Gary Gregory <ggregory at apache.org>
  170 
  171 * HTTPCLIENT-2122: async client to throw `HTTP/2 tunneling not supported` protocol exception in case of
  172   `force HTTP/2` version policy used along with request proxy routing.
  173   Contributed by Oleg Kalnichevski <olegk at apache.org>
  174 
  175 * HTTPCLIENT-2123: H2AsyncClientBuilder incorrectly adds last request interceptors to the head of
  176   the interceptor list.
  177   Contributed by Oleg Kalnichevski <olegk at apache.org>
  178 
  179 * Use decimal numbers for endpoint/execution IDs (#249).
  180   Contributed by Michael Osipov <michaelo@apache.org>
  181 
  182 * HTTPCLIENT-2106: Added charset parameter for DigestScheme.
  183   Contributed by Oleg Kalnichevski <olegk at apache.org>
  184 
  185 * HTTPCLIENT-2103: ManagedHttpClientConnectionFactory provides a fluent builder
  186   Contributed by Carter Kozak <ckozak at apache.org>
  187 
  188 
  189 
  190 Release 5.0.3
  191 -----------------
  192 
  193 This release upgrades HttpCore to the latest version, improves conformance to RFC 7235
  194 (Hypertext Transfer Protocol (HTTP/1.1): Authentication) and addresses a number of
  195 issues found since 5.0.2 release.
  196 
  197 Changelog:
  198 -------------------
  199 
  200 * PR #270: Master try w res and more.
  201   - Use try-with-resources.
  202   - Use Arrays.fill().
  203   - Add missing @override.
  204   - Simplify if/else.
  205   - Remove redundant modifiers. …
  206   - Remove redundant returns.
  207   Contributed by Gary Gregory <ggregory at apache.org>
  208 
  209 
  210 
  211 Release 5.0.2
  212 -----------------
  213 
  214 This release upgrades HttpCore to the latest version, improves conformance to RFC 7235
  215 (Hypertext Transfer Protocol (HTTP/1.1): Authentication) and addresses a number of
  216 issues found since 5.0.1 release.
  217 
  218 Changelog:
  219 -------------------
  220 
  221 * HTTPCLIENT-2116: Incorrect request message composition when routing requests
  222   via a proxy.
  223   Contributed by Oleg Kalnichevski <olegk at apache.org>
  224 
  225 * PoolingAsyncClientConnectionManager incorrectly emits Ping commands to HTTP/1.1
  226   endpoints (#255).
  227   Contributed by 滕杰1 <tengjie1 at xdf.cn>
  228 
  229 * HTTPCLIENT-2115: HttpAsyncClientBuilder and H2AsyncClientBuilder fail to take
  230   `replaceExecInterceptor()` into account.
  231   Contributed by Oleg Kalnichevski <olegk at apache.org>
  232 
  233 * HTTPCLIENT-2112: AbstractMultipartFormat respects ByteBuffer.arrayOffset (#253).
  234   Contributed by Carter Kozak <ckozak at apache.org>
  235 
  236 * Avoid updating Content-Length header in a 304 response.
  237   Contributed by Dirk Henselin <dirk.henselin at vwgis.de>
  238 
  239 * HTTPCLIENT-2105: Async clients incorrectly handle redirects of requests with enclosed
  240   entity.
  241   Contributed by Oleg Kalnichevski <olegk at apache.org>
  242 
  243 * HTTPCLIENT-2100: Incorrect handling of EXTENDED mode by MultipartEntityBuilder
  244   Contributed by Oleg Kalnichevski <olegk at apache.org>
  245 
  246 * HTTPCLIENT-2099, HTTPCLIENT-2091: SSLConnectionSocketFactory connect timeout fix (#241).
  247   Contributed by Carter Kozak <ckozak at apache.org>
  248 
  249 * Bug fix: BasicExpiresHandler is annotated as immutable but is not (#240).
  250   Contributed by Gary Gregory <ggregory at apache.org>
  251 
  252 * HTTPCLIENT-2096: Migrate instance loggers to static fields
  253   Contributed by Carter Kozak <ckozak at apache.org>
  254 
  255 * Added Automatic-Module-Name to the artefact manifests.
  256   Contributed by Niels Basjes <niels at basjes.nl>
  257 
  258 * MultipartEntityBuilder#generateBoundary optimization (#233)
  259   Contributed by slisaasquatch <slisaasquatch at users.noreply.github.com>
  260 
  261 * HTTPCLIENT-2094: ConnectionManager validateAfterInactivity zero duration agreement
  262   Contributed by Carter Kozak <ckozak at apache.org>
  263 
  264 * RFC 7235 compliance, HTTPCLIENT-2086: Fixed parsing of token68 based (base64-encoded)
  265   auth schemes.
  266   Contributed by Oleg Kalnichevski <olegk at apache.org>
  267 
  268 * HTTPCLIENT-2091: Connect timeout is used instead of socket timeout after a tls upgrade
  269   Contributed by Oleg Kalnichevski <olegk at apache.org>
  270 
  271 * HTTPCLIENT-2084: Client builders incorrectly add message interceptors with LAST position
  272   to the head of the list.
  273   Contributed by Oleg Kalnichevski <olegk at apache.org>
  274 
  275 * HTTPCLIENT-2083: Fix NPE when classic client interceptors are added.
  276   Contributed by Carter Kozak <ckozak at apache.org>
  277 
  278 
  279 Release 5.0.1
  280 -----------------
  281 
  282 This release upgrades HttpCore to the latest version and addresses a number of issues found
  283 since 5.0 release.
  284 
  285 Changelog:
  286 -------------------
  287 
  288 * Bug fix: Classic connection managers fail to take #isConsistent() flag into account when
  289   re-using persistent connections.
  290 7  Contributed by Oleg Kalnichevski <olegk at apache.org>
  291 
  292 * HTTPCLIENT-2077: Authentication failure due to incorrect NTLM auth value check.
  293   Contributed by vonahok <64310078+vonahok at users.noreply.github.com>
  294 
  295 * HTTPCLIENT-2051: Corrected handling of 303 redirects.
  296   Contributed by Oleg Kalnichevski <olegk at apache.org>
  297 
  298 * HTTPASYNC-160: HttpAsyncClient in INACTIVE or STOPPED state throws a IllegalStateException
  299   causing the current thread to terminate.
  300   Contributed by Oleg Kalnichevski <olegk at apache.org>
  301 
  302 * HTTPCLIENT-2076: Fixed NPE in LaxExpiresHandler.
  303   Contributed by heejeongkim <aprilhjk at gmail.com>
  304 
  305 * HTTPCLIENT-2074: Disallow direct execution of CONNECT methods by standard client implementations.
  306   Contributed by Oleg Kalnichevski <olegk at apache.org>
  307 
  308 * HTTPCLIENT-2075: New method Request.responseTimeout(Timeout) in Fluent HC.
  309   Contributed by Ralph <ralph.geerkens at rwth-aachen.de>
  310 
  311 * HTTPCLIENT-2073: (regression) WindowsNegotiateScheme incorrectly rejects empty NTLM challenge.
  312   Contributed by Oleg Kalnichevski <olegk at apache.org>
  313 
  314 * HTTPCLIENT-2069: RequestConfig#copy does not copy #responseTimeout.
  315   Contributed by Oleg Kalnichevski <olegk at apache.org>
  316 
  317 * HTTPCLIENT-2061: Corrected sequence of request execution interceptors in classic HttpClient.
  318   Contributed by Oleg Kalnichevski <olegk at apache.org>
  319 
  320 * Fixed NPE for null HttpContext in minimal async clients.
  321   Contributed by slisaasquatch <sli at saasquat.ch>
  322 
  323 
  324 
  325 Release 5.0
  326 -----------------
  327 
  328 This is the first stable (GA) release of HttpClient 5.0.
  329 
  330 Notable changes and features included in the 5.0 series are:
  331 
  332 * Support for the HTTP/2 protocol and conformance to requirements and
  333   recommendations of the latest HTTP/2 protocol specification documents
  334   (RFC 7540, RFC 7541.)
  335 
  336   Supported features:
  337 
  338     ** HPACK header compression
  339     ** Stream multiplexing (client and server)
  340     ** Flow control
  341     ** Response push
  342     ** Message trailers
  343     ** Expect-continue handshake
  344     ** Connection validation (ping)
  345     ** Application-layer protocol negotiation (ALPN)
  346     ** TLS 1.2 security features
  347 
  348 * Improved conformance to requirements and recommendations of the latest HTTP/1.1 protocol
  349   specification documents (RFC 7230, RFC 7231.)
  350 
  351 * New connection pool implementation with lax connection limit guarantees and better
  352   performance under higher concurrency due to absence of a global pool lock.
  353 
  354 * Support for Reactive Streams API [http://www.reactive-streams.org/]
  355 
  356 * Package name space changed to 'org.apache.hc.client5'.
  357 
  358 * Maven group id changed to 'org.apache.httpcomponents.client5'.
  359 
  360 HttpClient 5.0 releases can be co-located with earlier major versions on the same classpath
  361 due to the change in package names and Maven module coordinates.
  362 
  363 
  364 Changelog:
  365 -------------------
  366 
  367 * Removed work-around for resumed TLS sessions given that JDK-8212885 fix has been ported to Java 11
  368   and released in Oracle JDK 11.0.3.
  369   Contributed by Oleg Kalnichevski <olegk at apache.org>
  370 
  371 * Upgraded HttpCore dependency to version 5.0
  372   Contributed by Oleg Kalnichevski <olegk at apache.org>
  373 
  374 * DefaultHttpRequestRetryStrategy: Allow zero retry interval
  375   Contributed by Ryan Schmitt <rschmitt at apache.org>
  376 
  377 * HTTPCLIENT-2047: fixed regression in DefaultHostnameVerifier causing rejection of certs with non-standard domains.
  378   Contributed by Oleg Kalnichevski <olegk at apache.org>
  379 
  380 * GitHub #204: Build requests from method names in ClassicHttpRequests:
  381   ClassicHttpRequests.create(String, String)
  382   ClassicHttpRequests.create(String, URI)
  383   Contributed by Gary Gregory <ggregory at apache.org>
  384 
  385 * GitHub #205: Update request factory classes with matching APIs for Method and String method name inputs:
  386   BasicHttpRequests.create(String, URI)
  387   BasicHttpRequests.create(String, String)
  388   ClassicHttpRequests.create(Method, String)
  389   ClassicHttpRequests.create(Method, URI)
  390   SimpleHttpRequests.create(String, URI)
  391   SimpleHttpRequests.create(String, String)
  392   Contributed by Gary Gregory <ggregory at apache.org>
  393 
  394 * GitHub #208: Do not use input type names in method names: 
  395   SimpleHttpRequest: Delete setBodyBytes(byte[], ContentType) in favor of setBody(byte[], ContentType)
  396   SimpleHttpRequest: Delete setBodyText(String, ContentType) in favor of setBody(String, ContentType)
  397   SimpleHttpResponse: Delete setBodyBytes(byte[], ContentType) in favor of setBody(byte[], ContentType)
  398   SimpleHttpResponse: Delete setBodyText(String, ContentType) in favor of setBody(String, ContentType)
  399   Contributed by Gary Gregory <ggregory at apache.org>
  400 
  401 
  402 Release 5.0-BETA7
  403 -----------------
  404 
  405 This BETA release upgrades HttpCore to the latest version  and addresses a number of issues found
  406 since the previous BETA release.
  407 
  408 IMPORTANT: This release is expected to be the last BETA version. If no major
  409 design flaws are found the actual 5.0 API will be frozen and the next version will be
  410 promoted to GA.
  411 
  412 Changelog:
  413 -------------------
  414 
  415 * Improved domain name normalization by DefaultHostnameVerifier.
  416   Contributed by Oleg Kalnichevski <olegk at apache.org>
  417 
  418 * DefaultHostnameVerifier: Match DNS and CN names against ICANN domains.
  419   Contributed by Ryan Schmitt <rschmitt at apache.org>
  420 
  421 * HTTPCORE-615: Implement HTTP-based cache serializer-deserializer.
  422   Contributed by Scott Gifford <sgifford at suspectclass.com>
  423 
  424 * HTTPCLIENT-2040: Copy headers from the original request to the redirect request.
  425   Contributed by Oleg Kalnichevski <olegk at apache.org>
  426 
  427 * Removed RFC 2965 specific requirements deprecated and superseded by RFC 6265.
  428   Contributed by Oleg Kalnichevski <olegk at apache.org>
  429 
  430 * HTTPCLIENT-2035: Remove HttpRequestRetryHandler in favor of HttpRequestRetryStrategy.
  431   Contributed by Michael Osipov <michaelo at apache.org>
  432 
  433 * HTTPCLIENT-2019: Remove ServiceUnavailableRetryStrategy in favor of HttpRequestRetryStrategy.
  434   Contributed by Michael Osipov <michaelo at apache.org>
  435 
  436 * HTTPCLIENT-2034: Introduce HttpRequestRetryStrategy.
  437   Contributed by Michael Osipov <michaelo at apache.org>
  438 
  439 * CloseableHttpAsyncClient to support explicit HttpHost execution parameter.
  440   Contributed by Oleg Kalnichevski <olegk at apache.org>
  441 
  442 * HTTPCLIENT-2020: DefaultBackoffStrategy to support TOO_MANY_REQUESTS (429).
  443   Contributed by Michael Osipov <michaelo at apache.org>
  444 
  445 * HTTPCLIENT-2030: Fixed PublicSuffixMatcher#getDomainRoot behavior with invalid hostnames.
  446   Contributed by Niels Basjes <niels at basjes.nl>
  447 
  448 * HTTPCLIENT-2028: Connection managers to allow 0 for `validateAfterInactivity` time value.
  449   Contributed by Peter Frank <pfrank at fandango.com>
  450 
  451 * HTTPCLIENT-2023: Allow nested arrays and all primitive types in DefaultHttpCacheEntrySerializer.
  452   Contributed by Olof Larsson <olof at sylt.nu>
  453 
  454 
  455 
  456 Release 5.0-BETA6
  457 -------------------
  458 
  459 This BETA release picks up the latest fixes and performance improvements from HttpCore
  460 and addresses a number of issues found since the previous BETA release.
  461 
  462 Changelog:
  463 -------------------
  464 
  465 * Fixed fallback PublicSuffixMatcher.
  466   Contributed by Ryan Schmitt <rschmitt at apache.org>
  467 
  468 * Enforce h2 TLS rules after negotiating TLS, not before.
  469   Contributed by Ryan Schmitt <rschmitt at apache.org>
  470 
  471 * HTTPCLIENT-2013: Revised handling of connect exceptions; improved consistency in behavior
  472   of the classic and async clients; ConnectTimeoutException now extends SocketTimeoutException.
  473   Contributed by Oleg Kalnichevski <olegk at apache.org>
  474 
  475 * Improved handling of request cancellation (classic API).
  476   Contributed by Oleg Kalnichevski <olegk at apache.org>
  477 
  478 * Fixed concurrent use of threading unsafe ClassicHttpRequest messages.
  479   Contributed by Oleg Kalnichevski <olegk at apache.org>
  480 
  481 * Execute Socket#connect under doPrivileged.
  482   Contributed by Simon Willnauer <simonw at apache.org>
  483 
  484 * HTTPCLIENT-2009: Fixed StringIndexOutOfBoundsException in AuthSupport#extractFromAuthority.
  485   Contributed by itonyli <429284840 at qq.com>
  486 
  487 * Make Accept-Encoding header handling thread-safe.
  488   Contributed by Linton Miller <linton.miller at coxautoinc.com>
  489 
  490 
  491 
  492 Release 5.0-BETA5
  493 -------------------
  494 
  495 This BETA release picks up the latest fixes and performance improvements from HttpCore
  496 and addresses a number of issues found since the previous BETA release.
  497 
  498 IMPORTANT: This release is expected to be the last BETA version. If no major
  499 design flaws are found the actual 5.0 API will be frozen and the next version will be
  500 promoted to GA.
  501 
  502 Changelog:
  503 -------------------
  504 
  505 * Information response (1xx) processing support.
  506   Contributed by Kirill Usov <kirill.usov at gmail.com>
  507 
  508 * HTTPCLIENT-1968: Preserve escaped PATHSAFE characters when normalizing URI path segments.
  509   Contributed by Oleg Kalnichevski <olegk at apache.org>
  510 
  511 * HTTPCLIENT-1992: Impossible to access trailer-headers available in chunked transfer-encoding
  512   with classic API.
  513   Contributed by Serkan Turgut <sturgut at amazon.com>
  514 
  515 * HTTPCLIENT-1991: incorrect handling of non-standard DNS entries by PublicSuffixMatcher.
  516   Contributed by Oleg Kalnichevski <olegk at apache.org>
  517 
  518 * Refactor to enable support for non-form based multipart requests
  519   Contributed by Adam Retter <adam.retter at googlemail.com>
  520 
  521 * HTTPCLIENT-1981: disallow TRACE requests with an enclosed entity
  522   Contributed by Jay Modi <jay at elastic dot com>
  523 
  524 
  525 
  526 Release 5.0-BETA4
  527 -------------------
  528 
  529 This BETA release picks up the latest fixes and performance improvements from HttpCore
  530 and addresses a number of issues found since the previous BETA release.
  531 
  532 Notable features in this release:
  533 
  534 * Security improvements.
  535 
  536 * URI handling improvements.
  537 
  538 
  539 Changelog:
  540 -------------------
  541 
  542 * HTTPCLIENT-1976: Unsafe deserialization in DefaultHttpCacheEntrySerializer.
  543   Contributed by Artem Smotrakov <artem.smotrakov at gmail.com>
  544 
  545 * HTTPCLIENT-1969: Filter out weak cipher suites.
  546   Contributed by Artem Smotrakov <artem.smotrakov at gmail.com>
  547 
  548 * HttpClient should not retry requests in case of ConnectionClosedException
  549   Contributed by Oleg Kalnichevski <olegk at apache.org>
  550 
  551 * Bug fix: Simple response consumer to discard stored content when releasing resources.
  552   Contributed by Oleg Kalnichevski <olegk at apache.org>
  553 
  554 * Bug fix: main async request execution handlers to release the associated response consumer
  555   upon exception.
  556   Contributed by Oleg Kalnichevski <olegk at apache.org>
  557 
  558 * Update Apache Commons Codec from 1.11 to 1.12.
  559   Contributed by Gary Gregory <ggregory at apache.org>
  560 
  561 * Update RxJava from 2.2.2 to 2.2.7.
  562   Contributed by Gary Gregory <ggregory at apache.org>
  563 
  564 * Update JNA from 5.0.0 to 5.2.0.
  565   Contributed by Gary Gregory <ggregory at apache.org>
  566 
  567 * Some well known proxies respond with Content-Length=0, when returning 304. For robustness,
  568   always use the cached entity's content length, as modern browsers do.
  569   Contributed by Jayson Raymond <Jayson.Raymond15 at T-Mobile.com>
  570 
  571 * HTTPCLIENT-1960: URIBuilder incorrect handling of multiple leading slashes in path component.
  572   Contributed by Oleg Kalnichevski <olegk at apache.org>
  573 
  574 * HTTPCLIENT-1958: PoolingHttpClientConnectionManager to throw ExecutionException
  575   in case of a lease operation cancellation instead of InterruptedException.
  576   Contributed by Oleg Kalnichevski <olegk at apache.org>
  577 
  578 * Shutdown executorService on AbstractHttpAsyncClientBase shutdown.
  579   Contributed by 吴雪山 <xueshan.wu at ndkey.com.cn>
  580 
  581 * [HTTPCLIENT-1952: Allow default User Agent to be disabled
  582   Contributed by Michael Osipov <michaelo at apache.org>
  583 
  584 * Improve HttpResponseException#getMessage.
  585   Contributed by Michael Osipov <michaelo at apache.org>
  586 
  587 * Better handling of http(s).proxyUser and http(s).proxyPassword
  588   Contributed by Jens Borgland <jborglan at tibco.com>
  589 
  590 * Wrong argument name in PoolingAsyncClientConnectionManagerBuilder#setConnPoolPolicy results
  591   with self assignment of variable.
  592   Contributed by Eryk Szymanski <eszymanski at collab.net>
  593 
  594 
  595 
  596 Release 5.0-BETA3
  597 -------------------
  598 
  599 This BETA release adds support for advanced TLS functions (such as ALPN protocol negotiation)
  600 on Java 1.7 and Java 1.8 through Conscrypt TLS library and picks up the latest fixes
  601 and performance improvements from HttpCore.
  602 
  603 Notable features in this release:
  604 
  605 * TLS ALPN protocol negotiation support on older JREs through Conscrypt TLS library.
  606 
  607 
  608 Changelog:
  609 -------------------
  610 
  611 * Added optional dependency on conscrypt-openjdk-uber 1.4.1; support for advanced TLS functions
  612   (such as ALPN extension) on Java 1.7 and Java 1.8 through Conscrypt TLS library
  613   Contributed by Oleg Kalnichevski <olegk at apache.org>
  614 
  615 * Removed OSGi module
  616   Contributed by Oleg Kalnichevski <olegk at apache.org>
  617 
  618 * Removed experimental CredSsp auth scheme
  619   Contributed by Oleg Kalnichevski <olegk at apache.org>
  620 
  621 * HTTPCLIENT-1949: DigestScheme to use HttpRequest#getRequestUri instead of HttpRequest#getPath
  622   Contributed by Oleg Kalnichevski <olegk at apache.org>
  623 
  624 
  625 
  626 Release 5.0-BETA2
  627 -------------------
  628 
  629 This BETA release resolves compatibility issues with Java 11 new TLS engine as well as
  630 a number of defects found since the previous release.
  631 
  632 Notable new features in this release:
  633 
  634 * JDK 11 compatibility
  635 
  636 * Support for request specific push consumers
  637 
  638 * Support for Reactive Streams API [http://www.reactive-streams.org/]
  639 
  640 
  641 Changelog:
  642 -------------------
  643 
  644 * Hack to make hostname verification work with TLSv1.3 resumed sessions.
  645   For details see https://markmail.org/message/mxf5v2d2gh6ws2j3
  646   Contributed by Oleg Kalnichevski <olegk at apache.org>
  647 
  648 * Added builders for SSLConnectionSocketFactory and client TlsStrategy.
  649   Contributed by Oleg Kalnichevski <olegk at apache.org>
  650 
  651 * Added enum for supported TLS versions & TLS version parser.
  652   Contributed by Oleg Kalnichevski <olegk at apache.org>
  653 
  654 * HTTPCLIENT-1946: handling of 308 status as per RFC 7538.
  655   Contributed by Oleg Kalnichevski <olegk at apache.org>
  656 
  657 * Upgraded HttpCore to version 5.0-beta5.
  658   Contributed by Oleg Kalnichevski <olegk at apache.org>
  659 
  660 * Async clients to support request specific push consumers.
  661   Contributed by Oleg Kalnichevski <olegk at apache.org>
  662 
  663 * HTTPCLIENT-1944: Add hardCancellationEnabled option to RequestConfig.
  664   Contributed by Ryan Schmitt <ryansch at amazon.com>
  665 
  666 * Overload Request's execute method to allow custom CloseableHttpClient.
  667   Contributed by Nicolas Gomez <nicolas at imogene.fr>
  668 
  669 * Fix HttpClient 4.5.4 regression in BasicCookieStore serialization.
  670   Contributed by Mark Mielke <mmielke at ciena.com>
  671 
  672 * HTTPCLIENT-1934: Default client TLS strategy passes wrong hostname to the hostname verifier.
  673   Contributed by Oleg Kalnichevski <olegk at apache.org>
  674 
  675 * HTTPCLIENT-1882: reset authentication state on I/O or runtime error for connection based
  676   authentication schemes (such as NTLM).
  677   Contributed by Oleg Kalnichevski <olegk at apache.org>
  678 
  679 * HTTPCLIENT-1924: HttpClient to shut down the connection manager if a fatal error occurs
  680   in the course of a request execution.
  681   Contributed by Oleg Kalnichevski <olegk at apache.org>
  682 
  683 * Pooling connection managers to implement graceful and immediate shut down.
  684   Contributed by Oleg Kalnichevski <olegk at apache.org>
  685 
  686 * HTTPCLIENT-1906: certificates containing alternative subject names other than DNS and IP
  687   (such as RFC822) get rejected as invalid.
  688   Contributed by Oleg Kalnichevski <olegk at apache.org>
  689 
  690 * HTTPCLIENT-1904: check cookie domain for null
  691   Contributed by Hans-Peter Keck <hans-peter.keck at haufe-lexware.com>
  692 
  693 * HTTPCLIENT-1900: proxy protocol processor in the CONNECT exec interceptor does not
  694   post-process CONNECT response messages.
  695   Contributed by Oleg Kalnichevski <olegk at apache.org>
  696 
  697 * HTTPCLIENT-1898: Incorrect comment in example class ClientMultiThreadedExecution.java
  698   Contributed by Ulrich Romahn <ulrich at ulrichromahn dot net>
  699    
  700 * HTTPCLIENT-1931: Add factory enum org.apache.hc.client5.http.classic.methods.ClassicHttpRequests
  701   Contributed by Gary Gregory <ggregory at apache.org>
  702   
  703 * HTTPCLIENT-1932: Add factory enum org.apache.hc.client5.http.async.methods.HttpRequests
  704   Contributed by Gary Gregory <ggregory at apache.org>
  705   
  706 * HTTPCLIENT-1939: Update Apache Commons Codec from 1.10 to 1.11
  707   Contributed by Gary Gregory <ggregory at apache.org>
  708 
  709 * HTTPCLIENT-1947: Update JNA from 4.5.2 to 5.0.0
  710   Contributed by Gary Gregory <ggregory at apache.org>
  711   
  712 Release 5.0-BETA1
  713 -------------------
  714 
  715 This is the first BETA release of HttpClient 5.0. The 5.0 release serices introduces
  716 support for the HTTP/2 protocol and event driven messaging APIs consistent for all
  717 supported HTTP protocol versions.
  718 
  719 Changelog:
  720 -------------------
  721 
  722 * DefaultHostnameVerifier to use a custom distinguished name (DN) parser instead of LdapName.
  723   Removed dependency on Java Naming extensions.
  724   Contributed by Oleg Kalnichevski <olegk at apache.org>
  725 
  726 * HTTP/2 client implementations to support cancellation of ongoing message exchanges without
  727   terminating the underlying connections.
  728   Contributed by Oleg Kalnichevski <olegk at apache.org>
  729 
  730 * HTTPCLIENT-1395: added config parameter to skip an extra cache entry freshness check upon
  731   cache update in case of a cache miss.
  732   Contributed by Oleg Kalnichevski <olegk at apache.org>
  733 
  734 * HTTPCLIENT-1824, HTTPCLIENT-1384: asynchronous HTTP cache invalidator.
  735   Contributed by Oleg Kalnichevski <olegk at apache.org>
  736 
  737 * Redesign of CacheKeyGenerator and HttpCacheInvalidator APIs.
  738   Contributed by Oleg Kalnichevski <olegk at apache.org>
  739 
  740 * New APIs for cache entry bulk retrieval; bulk retrieval support by Memcached storage
  741   implementation.
  742   Contributed by Oleg Kalnichevski <olegk at apache.org>
  743 
  744 * HTTPCLIENT-1824, HTTPCLIENT-1868: Asynchronous HTTP cache storage API. Memcached backend
  745   implementation of async HTTP cache storage.
  746   Contributed by Oleg Kalnichevski <olegk at apache.org>
  747 
  748 * HTTPCLIENT-1885: Content compression exec interceptor generates incorrect
  749   'Accept-Encoding' header value.
  750   Contributed by Oleg Kalnichevski <olegk at apache.org>
  751 
  752 
  753 
  754 Release 5.0-ALPHA3
  755 -------------------
  756 
  757 This is a major release that introduces support for the HTTP/2 protocol and event driven
  758 messaging APIs consistent for all supported HTTP protocol versions.
  759 
  760 HttpClient ships with two client implementations:
  761 
  762 * HttpClient Classic is based on the classic (blocking) I/O model; largely compatible
  763   with the 4.x APIs; supports HTTP/1.1 only.
  764 
  765 * HttpClient Async is based on NIO model; new event driven APIs consistent for all supported
  766   HTTP protocol versions; supports both HTTP/1.1 and HTTP/2.
  767 
  768 
  769 Notable new features in this release:
  770 
  771 * Asynchronous HttpClient implementations optimized for HTTP/2 multiplexed request execution.
  772 
  773 * Full support for HTTP caching by asynchronous HttpClient implementations including
  774   streaming message exchanages.
  775 
  776 
  777 Notable changes and features included in the 5.0 series are:
  778 
  779 * Support for the HTTP/2 protocol and conformance to requirements and
  780   recommendations of the latest HTTP/2 protocol specification documents
  781   (RFC 7540, RFC 7541.)
  782 
  783   Supported features:
  784 
  785     ** HPACK header compression
  786     ** Stream multiplexing (client and server)
  787     ** Flow control
  788     ** Response push
  789     ** Message trailers
  790     ** Expect-continue handshake
  791     ** Connection validation (ping)
  792     ** Application-layer protocol negotiation (ALPN) on Java 9.0.1+
  793     ** TLS 1.2 security features
  794 
  795 * Improved conformance to requirements and recommendations of the latest HTTP/1.1 protocol
  796   specification documents (RFC 7230, RFC 7231.)
  797 
  798 * Redesigned connection pool implementation with reduced pool lock contention.
  799 
  800 * Package name space changed to 'org.apache.hc.client5'.
  801 
  802 * Maven group id changed to 'org.apache.httpcomponents.client5'.
  803 
  804 * Apache Log4j2 logging APIs used for internal logging instead of Commons Logging APIs.
  805 
  806 HttpClient 5.0 releases can be co-located with earlier major versions on the same classpath
  807 due to the change in package names and Maven module coordinates.
  808 
  809 Please note that as of 5.0, HttpClient requires Java 1.7 or newer.
  810 
  811 
  812 Changelog:
  813 -------------------
  814 
  815 * HttpAsyncClient implementations optimized for HTTP/2 multiplexed
  816   request execution.
  817   Contributed by Oleg Kalnichevski <olegk@apache.org>
  818 
  819 * Improved Ehcache and Memcached storage backends.
  820   Contributed by Oleg Kalnichevski <olegk@apache.org>
  821 
  822 * [HTTPCLIENT-1827] Full support for HTTP caching by asynchronous HTTP clients.
  823   Contributed by Oleg Kalnichevski <olegk@apache.org>
  824 
  825 * Redesign of HTTP cache resource APIs.
  826   Contributed by Oleg Kalnichevski <olegk@apache.org>
  827 
  828 * Deprecated Content-Transfer-Encoding field in MIME body parts per RFC 7578, section 4.7.
  829   Contributed by Oleg Kalnichevski <olegk@apache.org>
  830 
  831 * [HTTPCLIENT-293] Implemented the percent encoding of the filename parameter of the Content-Disposition header.
  832   Contributed by Ioannis Sermetziadis <sermojohn@gmail.com>
  833 
  834 * [HTTPCLIENT-1845]: Extract InputStreamFactory classes out of GzipDecompressingEntity and
  835   DeflateDecompressingEntity for reuse and to create less garbage.
  836   Contributed by Gary Gregory <ggregory at apache.org>
  837 
  838 * [HTTPCLIENT-1858] Alleviate GC pressure due to wire logging.
  839   Contributed by Gary Gregory <ggregory at apache.org>
  840 
  841 * Avoid fetching the cached entity twice on cache hit.
  842   Contributed by Leandro Nunes <a-lnunes@hotels.com>
  843 
  844 * [HTTPASYNC-124] Add doPrivileged blocks to async client and connection manager builders
  845   Contributed by Jay Modi <jay at elastic dot co>
  846 
  847 
  848 
  849 Release 5.0-ALPHA2
  850 -------------------
  851 
  852 This is a major release that introduces support for the HTTP/2 protocol and event driven
  853 messaging APIs consistent for all supported HTTP protocol versions.
  854 
  855 HttpClient ships with two client implementations:
  856 
  857 * HttpClient Classic is based on the classic (blocking) I/O model; largely compatible
  858   with the 4.x APIs; supports HTTP/1.1 only.
  859 
  860 * HttpClient Async is based on NIO model; new event driven APIs consistent for all supported
  861   HTTP protocol versions; supports both HTTP/1.1 and HTTP/2.
  862 
  863 
  864 Notable changes and features included in the 5.0 series are:
  865 
  866 * Partial support for the HTTP/2 protocol and conformance to requirements and
  867   recommendations of the latest HTTP/2 protocol specification documents 
  868   (RFC 7540, RFC 7541.)
  869 
  870   Supported features:
  871 
  872     ** HPACK header compression
  873     ** Stream multiplexing (client and server)
  874     ** Flow control
  875     ** Response push
  876     ** Message trailers
  877     ** Expect-continue handshake
  878     ** Connection validation (ping)
  879     ** Application-layer protocol negotiation (ALPN) on Java 1.9+
  880     ** TLS 1.2 security features
  881 
  882 * Improved conformance to requirements and recommendations of the latest HTTP/1.1 protocol
  883   specification documents (RFC 7230, RFC 7231.)
  884 
  885 * Redesigned connection pool implementation with reduced pool lock contention.
  886 
  887 * Package name space changed to 'org.apache.hc.client5'.
  888 
  889 * Maven group id changed to 'org.apache.httpcomponents.client5'.
  890 
  891 * Apache Log4j2 logging APIs used for internal logging instead of Commons Logging APIs.
  892 
  893 
  894 Features that are presently NOT supported:
  895 
  896 * HTTP/2 transport (classic)
  897 
  898 * HTTP tunneling (async)
  899 
  900 * Automatic response content decompression (async)
  901 
  902 * Caching (async)
  903 
  904 
  905 HttpClient 5.0 releases can be co-located with earlier major versions on the same classpath
  906 due to the change in package names and Maven module coordinates.
  907 
  908 Please note that as of 5.0, HttpClient requires Java 1.7 or newer.
  909 
  910 Please note that at this point 5.0 APIs are considered experimental and unstable and are
  911 expected to change in the coming releases without providing a migration path.
  912 
  913 
  914 Changelog:
  915 -------------------
  916 
  917 * [HTTPCLIENT-1714] Add HttpClientBuilder.setDnsResolver(DnsResolver).
  918   Contributed by Alexis Thaveau <alexis.thaveau at gmail.com>
  919 
  920 * [HTTPCLIENT-1715] NTLMEngineImpl.Type1Message not thread safe but declared as a constant.
  921   Contributed by Olivier Lafontaine <olafontaine at gmail.com>, Gary Gregory <ggregory at apache.org>
  922 
  923 * [HTTPCLIENT-1716] redirect handling of unsafe methods defined by RFC 7231.
  924   Contributed by Oleg Kalnichevski <olegk at apache.org>
  925 
  926 * [HTTPCLIENT-1717] Make fluent API .Content.Content(byte[], ContentType) public.
  927   Contributed by Cash Costello <cash.costello at gmail.com>
  928 
  929 * [HTTPCLIENT-1730] added #setValidateAfterInactivity to HttpClientBuilder.
  930   Contributed by Oleg Kalnichevski <olegk at apache.org>
  931 
  932 * [HTTPCLIENT-1752] Allow to configure the OSGI clients with relaxed SSL checks.
  933   Contributed by Simone Tripodi <simonetripodi at apache.org>
  934 
  935 * [HTTPCLIENT-1748] Improved compatibility with system authentication API in applets.
  936   Contributed by Sebastien Caille <sebastien.caille at gmail.com>
  937 
  938 * [HTTPCLIENT-1786] Port from Apache Commons Logging to Apache Log4j 2.
  939   Contributed by Gary Gregory <ggregory at apache.org>
  940 
  941 * [HTTPCLIENT-1817] Add a "Trust All" TrustStrategy implementation.
  942   Contributed by Gary Gregory <ggregory at apache.org>
  943 
  944 * [HTTPCLIENT-1836] DefaultHostnameVerifier#getSubjectAltNames(X509Certificate) throws
  945   java.lang.ClassCastException.
  946   Contributed by Gary Gregory <ggregory at apache.org>, Ilian Iliev <ilian_iliev at yahoo.com>
  947 
  948 * [HTTPCLIENT-1691] HttpClient instance used internally by HC Fluent to take system properties into
  949   account by default.
  950   Contributed by Oleg Kalnichevski <olegk at apache.org>
  951 
  952 
  953 
  954 Release 5.0-ALPHA1
  955 -------------------
  956 
  957 This major release renders HttpClient API incompatible with the stable 4.x branch
  958 and upgrades HTTP/1.1 protocol conformance to the requirements and recommendations of the latest
  959 protocol specification. This release lays the foundation for transition to HTTP/2 as the primary
  960 transport protocol in the future releases.
  961 
  962 Notable changes and features included in the 5.0 series are:
  963 
  964 * Improved conformance to requirements and recommendations of the latest HTTP/1.1 protocol
  965   specification (RFC 7230, RFC 7231, RFC 7235)
  966 
  967 * Package name space changed to 'org.apache.hc.client5'
  968 
  969 * Maven group id changed to 'org.apache.httpcomponents.client5'
  970 
  971 * By default the maximum connections per route limit is set to 5
  972 
  973 * By default connection request timeout and connect timeout are set to 3 minutes.
  974 
  975 HttpClient 5.0 releases can be co-located with earlier versions, meaning you can have both 5.x and 
  976 4.x on the classpath without experiencing jar hell.
  977 
  978 Please note that as of 5.0 HttpClient requires Java 1.7 or newer.
  979 
  980 Please note that at this point we consider 5.0 APIs experimental and unstable and expect them to 
  981 change in the coming releases without providing a migration path.
  982 
  983 
  984 
  985 Changelog:
  986 -------------------
  987 
  988 * [HTTPCLIENT-1575] route target port must be non negative
  989   Contributed by Oleg Kalnichevski <olegk at apache.org>
  990 
  991 * [HTTPCLIENT-1106] Use character arrays for passwords in Credentials objects
  992   Contributed by Oleg Kalnichevski <olegk at apache.org>
  993 
  994 * RFC 7235: redesign of HTTP authenticator and related classes
  995   Contributed by Oleg Kalnichevski <olegk at apache.org>
  996 
  997 * RFC 7231: parse capable of parsing multiple auth challenges
  998   Contributed by Oleg Kalnichevski <olegk at apache.org>
  999 
 1000 * RFC 7231: DefaultServiceUnavailableRetryStrategy to take Retry-After header value into account if specified
 1001   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1002 
 1003 * RFC 7231: removed restriction on the use of relative URIs in Location header
 1004   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1005 
 1006 * RFC 7231: revised redirect handling
 1007   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1008 
 1009 * RFC 7231: do not generate header fields in TRACE requests containing sensitive data such as cookie and user
 1010   credentials
 1011   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1012 
 1013 * RFC 7231: automatic retrial of idempotent methods
 1014   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1015 
 1016 * RFC 7230: increased the default max number of concurrent connection for the same route from 2 to 5
 1017   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1018 
 1019 * Cache request line in HttpRequestWrapper
 1020   Contributed by Dmitry Potapov <dpotapov at yandex-team.ru>
 1021 
 1022 * [HTTPCLIENT-1651] Add ability to disable content compression on a request basis
 1023   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1024 
 1025 * [HTTPCLIENT-1696]: Add convenience methods to fluent API class Request.
 1026   Contributed by Gary Gregory <ggregory @ apache.org>
 1027 
 1028 
 1029 
 1030 Release 4.5.1
 1031 -------------------
 1032 
 1033 HttpClient 4.5.1 (GA) is a maintenance release that fixes a number of minor defects found since 4.5.
 1034 
 1035 Please note that as of 4.4 HttpClient requires Java 1.6 or newer.
 1036 
 1037 Changelog:
 1038 -------------------
 1039 
 1040 * [HTTPCLIENT-1680] redirect of a POST request causes ClientProtocolException.
 1041   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1042 
 1043 * [HTTPCLIENT-1673] org.apache.http.entity.mime.content.* missing from OSGi exports.
 1044   Contributed by Benson Margulies <benson at basistech.com>
 1045 
 1046 * [HTTPCLIENT-1668] Fluent request incorrectly handles connect timeout setting.
 1047   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1048 
 1049 * [HTTPCLIENT-1667] RequestBuilder does not take charset into account when creating
 1050   UrlEncodedFormEntity.
 1051   Contributed by Sergey Smith <smithsv at bk.ru>
 1052 
 1053 * [HTTPCLIENT-1655] HttpClient sends RST instead of FIN ACK sequence when using non-persistant
 1054   connections.
 1055   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1056 
 1057 
 1058 Release 4.5
 1059 -------------------
 1060 
 1061 HttpClient 4.5 (GA) is a minor feature release that includes several incremental enhancements
 1062 to the exisitng functionality such as support for private domains in the Mozilla Public Suffix List.
 1063 
 1064 Changelog:
 1065 -------------------
 1066 
 1067 * Reduced default validate after inactivity setting from 5 sec to 2 sec.
 1068   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1069 
 1070 * [HTTPCLIENT-1649] Fixed serialization of auth schemes.
 1071   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1072 
 1073 * [HTTPCLIENT-1645]: Fluent requests to inherit config parameters of the executor.
 1074   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1075 
 1076 * [HTTPCLIENT-1640]: RFC6265 lax cookie policy fails to parse 'max-age' attribute.
 1077   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1078 
 1079 * [HTTPCLIENT-1633]: RFC6265CookieSpecProvider compatibility level setting has no effect.
 1080   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1081 
 1082 * [HTTPCLIENT-1613]: Support for private domains in Mozilla Public Suffix List.
 1083   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1084 
 1085 * [HTTPCLIENT-1651]: Add ability to disable content compression on a request basis.
 1086   Contributed by Michael Osipov <michaelo at apache.org>
 1087 
 1088 * [HTTPCLIENT-1654]: Deprecate/remove RequestConfig#decompressionEnabled in favor of #contentCompressionEnabled.
 1089   Contributed by Michael Osipov <michaelo at apache.org>
 1090 
 1091 
 1092 Release 4.4.1
 1093 -------------------
 1094 
 1095 HttpClient 4.4.1 (GA) is a maintenance release that fixes a number of defects in new functionality
 1096 introduced in version 4.4.
 1097 
 1098 Users of HttpClient 4.4 are encouraged to upgrade.
 1099 
 1100 Please note that as of 4.4 HttpClient requires Java 1.6 or newer.
 1101 
 1102 Changelog:
 1103 -------------------
 1104 
 1105 * Marked RFC 2109, RFC 2965, Netscape draft cookie specs as obsolete.
 1106   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1107 
 1108 * [HTTPCLIENT-1633] RFC6265CookieSpecProvider compatibility level setting has no effect.
 1109   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1110 
 1111 * [HTTPCLIENT-1628]: Auth cache can fail when domain name contains uppercase characters.
 1112   Contributed by Dennis Ju <dejuknow at gmail.com>
 1113 
 1114 * [HTTPCLIENT-1609] Stale connection check in PoolingHttpClientConnectionManager has no effect.
 1115   Internal connection pool does not correctly implement connection validation.
 1116   Contributed by Charles Lip <rene1 at singnet.com.sg>
 1117 
 1118 
 1119 
 1120 Release 4.4 Final
 1121 -------------------
 1122 
 1123 This is the first stable (GA) release of HttpClient 4.4. Notable features and enhancements included
 1124 in 4.4 series are:
 1125 
 1126 * Support for the latest HTTP state management specification (RFC 6265). Please note that the old
 1127 cookie policy is still used by default for compatibility reasons. RFC 6265 compliant cookie
 1128 policies need to be explicitly configured by the user. Please also note that as of next feature
 1129 release support for Netscape draft, RFC 2109 and RFC 2965 cookie policies will be deprecated
 1130 and disabled by default. It is recommended to use RFC 6265 compliant policies for new applications
 1131 unless compatibility with RFC 2109 and RFC 2965 is required and to migrate existing applications
 1132 to the default cookie policy.
 1133 
 1134 * Enhanced, redesigned and rewritten default SSL hostname verifier with improved RFC 2818
 1135 compliance.
 1136 
 1137 * Default SSL hostname verifier and default cookie policy now validate certificate identity
 1138 and cookie domain of origin against the public suffix list maintained by Mozilla.org
 1139 <https://publicsuffix.org/list>
 1140 
 1141 * More efficient stale connection checking: indiscriminate connection checking which results
 1142 in approximately 20 to 50 ms overhead per request has been deprecated in favor of conditional
 1143 connection state validation (persistent connections are to be re-validated only if a specified
 1144 period inactivity has elapsed.)
 1145 
 1146 * Authentication cache thread-safety: authentication cache used by HttpClient is now thread-safe
 1147 and can be shared by multiple threads in order to re-use authentication state for subsequent
 1148 requests.
 1149 
 1150 * Native Windows Negotiate and NTLM via SSPI through JNA: when running on Windows OS HttpClient
 1151 configured to use native NTLM or SPNEGO authentication schemes can make use of platform specific
 1152 functionality via JNA and current user credentials. This functionality is still considered
 1153 experimental, known to have compatibility issues and subject to change without prior notice.
 1154 Use at your discretion.
 1155 
 1156 This release also includes all fixes from the stable 4.3.x release branch.
 1157 
 1158 Please note that as of 4.4 HttpClient requires Java 1.6 or newer.
 1159 
 1160 
 1161 Changelog:
 1162 -------------------
 1163 
 1164 * Support for the latest HTTP state management specification (RFC 6265).
 1165   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1166 
 1167 * [HTTPCLIENT-1515] Caching of responses to HEAD requests
 1168   Contributed by Tyrone Cutajar <tj.cutajar at gmail.com> and
 1169   Francois-Xavier Bonnet <fx at apache.org>
 1170 
 1171 * [HTTPCLIENT-1560] Native Windows auth improvements.
 1172   Contributed by Michael Osipov <michaelo at apache.org>
 1173 
 1174 * Update Apache Commons Logging version from 1.1.3 to 1.2.
 1175   Contributed by Gary Gregory <ggregory at apache.org>
 1176 
 1177 * Update Apache Commons Codec version from 1.6 to 1.9.
 1178   Contributed by Gary Gregory <ggregory at apache.org>
 1179 
 1180 * Update Ehcache version from 2.2.0 to 2.6.9.
 1181   Contributed by Gary Gregory <ggregory at apache.org>
 1182 
 1183 * Update Ehcache version from 2.2.0 to 2.6.9.
 1184   Contributed by Gary Gregory <ggregory at apache.org>
 1185 
 1186 * Update Spymemcached version from 2.6 to 2.11.4.
 1187   Contributed by Gary Gregory <ggregory at apache.org>
 1188 
 1189 * Update SLF4J version from 1.5.11 to 1.7.7.
 1190   Contributed by Gary Gregory <ggregory at apache.org>
 1191 
 1192 
 1193 
 1194 
 1195 
 1196 Release 4.4 BETA1
 1197 -------------------
 1198 
 1199 This is the first BETA release of HttpClient 4.4. Notable features and enhancements included
 1200 in 4.4 series are:
 1201 
 1202 * Enhanced redesigned and rewritten default SSL hostname verifier with improved RFC 2818
 1203 compliance
 1204 
 1205 * Default SSL hostname verifier and default cookie policy now validate certificate identity
 1206 and cookie domain of origin against the public suffix list maintained by Mozilla.org
 1207 <https://publicsuffix.org/list>
 1208 
 1209 * Native windows Negotiate/NTLM via JNA: when running on Windows OS HttpClient configured to use
 1210 native NTLM or SPNEGO authentication schemes can make use of platform specific functionality
 1211 via JNA and current user system credentials
 1212 
 1213 * More efficient stale connection checking: indiscriminate connection checking which results
 1214 in approximately 20 to 50 ms overhead per request has been deprecated in favor of conditional
 1215 connection state validation (persistent connections are to be re-validated only if a specified
 1216 period inactivity has elapsed)
 1217 
 1218 * Authentication cache thread-safety: authentication caches used by HttpClient is now thread-safe
 1219 and can be shared by multiple threads in order to re-use authentication state for subsequent
 1220 requests
 1221 
 1222 This release also includes all fixes from the stable 4.3.x release branch.
 1223 
 1224 Please note that as of 4.4 HttpClient requires Java 1.6 or newer.
 1225 
 1226 
 1227 Changelog:
 1228 -------------------
 1229 
 1230 * [HTTPCLIENT-1547] HttpClient OSGi bundle doesn't import the package "javax.naming".
 1231   Contributed by Willem Jiang <ningjiang at apache.org>
 1232 
 1233 * [HTTPCLIENT-1541] Use correct (HTTP/hostname) service principal name for Windows native
 1234   Negotiate/NTLM auth schemes.
 1235   Contributed by Ka-Lok Fung <ka-lok.fung at sap.com>
 1236 
 1237 * Improved compliance with RFC 2818: default hostname verifier to ignore the common name of the
 1238   certificate subject if alternative subject names (dNSName or iPAddress) are present.
 1239   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1240 
 1241 * [HTTPCLIENT-1540] Support delegated credentials (ISC_REQ_DELEGATE) by Native windows
 1242   native Negotiate/NTLM auth schemes.
 1243   Contributed by Ka-Lok Fung <ka-lok.fung at sap.com>
 1244 
 1245 
 1246 
 1247 Release 4.4 ALPHA1
 1248 -------------------
 1249 
 1250 This is the first ALPHA release of HttpClient 4.4. Notable features and enhancements included
 1251 in the 4.4 branch are:
 1252 
 1253 * More efficient stale connection checking: indiscriminate connection checking which results
 1254 in approximately 20 to 50 ms overhead per request has been deprecated in favor of conditional
 1255 connection state validation (persistent connections are to be re-validated only if a specified
 1256 period inactivity has elapsed)
 1257 
 1258 * Native windows Negotiate/NTLM via JNA: when running on Windows OS HttpClient configured to use
 1259 native NTLM or SPNEGO authentication schemes can make use of platform specific functionality
 1260 via JNA and current user system credentials
 1261 
 1262 * Authentication cache thread-safety: authentication caches used by HttpClient is now thread-safe
 1263 and can be shared by multiple threads in order to re-use authentication state for subsequent
 1264 requests
 1265 
 1266 This release also includes all fixes from the stable 4.3.x release branch.
 1267 
 1268 Please note that as of 4.4 HttpClient requires Java 1.6 or newer.
 1269 
 1270 Please note that new features included in this release are still considered experimental and
 1271 their API may change in the future 4.4 alpha and beta releases.
 1272 
 1273 
 1274 Changelog:
 1275 -------------------
 1276 
 1277 * [HTTPCLIENT-1493] Indiscriminate connection checking has been deprecated in favor of conditional
 1278   connection state validation. Persistent connections are to be re-validated only after a defined
 1279   period inactivity prior to being leased to the consumer.
 1280   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1281 
 1282 * [HTTPCLIENT-1519] Use the original HttpHost instance passed as a parameter to
 1283   HttpClient#execute when generating 'Host' request header.
 1284   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1285 
 1286 * [HTTPCLIENT-1491] Enable provision of Service Principal Name in Windows native
 1287   auth scheme.
 1288   Contributed by Malcolm Smith <malcolmfsmith at gmail.com>
 1289 
 1290 * [HTTPCLIENT-1403] Pluggable content decoders.
 1291   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1292 
 1293 * [HTTPCLIENT-1466] FileBodyPart#generateContentType() ignores custom ContentType values.
 1294   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1295 
 1296 * [HTTPCLIENT-1461] fixed performance degradation in gzip encoded content processing
 1297   introduced by HTTPCLIENT-1432.
 1298   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1299 
 1300 * [HTTPCLIENT-1457] Incorrect handling of Windows (NT) credentials by
 1301   SystemDefaultCredentialsProvider.
 1302   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1303 
 1304 * [HTTPCLIENT-1456] Request retrial after status 503 causes ClientProtocolException.
 1305   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1306 
 1307 * [HTTPCLIENT-1454] Make connection operator APIs public.
 1308   Contributed by Tamas Cservenak <tamas at cservenak.net>
 1309 
 1310 * Update JUnit to version 4.11 from 4.9
 1311   Contributed by Gary Gregory <ggregory at apache.org>
 1312 
 1313 
 1314 
 1315 Release 4.3.4
 1316 -------------------
 1317 
 1318 HttpClient 4.3.4 (GA) is a maintenance release that improves performance in high concurrency
 1319 scenarios. This version replaces dynamic proxies with custom proxy classes and eliminates thread
 1320 contention in java.reflect.Proxy.newInstance() when leasing connections from the connection pool
 1321 and processing response messages.
 1322 
 1323 
 1324 Changelog:
 1325 -------------------
 1326 
 1327 * Replaced dynamic proxies with custom proxy classes to reduce thread contention.
 1328   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1329 
 1330 * [HTTPCLIENT-1484] GzipCompressingEntity should not close the underlying output stream
 1331   if the entity has not been fully written out due to an exception.
 1332   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1333 
 1334 * [HTTPCLIENT-1474] Fixed broken entity enclosing requests in HC Fluent.
 1335   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1336 
 1337 * [HTTPCLIENT-1470] CachingExec(ClientExecChain, HttpCache, CacheConfig, AsynchronousValidator)
 1338   throws NPE if config is null
 1339 
 1340 
 1341 
 1342 
 1343 Release 4.3.3
 1344 -------------------
 1345 
 1346 HttpClient 4.3.3 (GA) is a bug fix release that fixes a regression introduced by the previous
 1347 release causing a significant performance degradation in compressed content processing.
 1348 
 1349 Users of HttpClient 4.3 are encouraged to upgrade.
 1350 
 1351 Changelog:
 1352 -------------------
 1353 
 1354 * [HTTPCLIENT-1466] FileBodyPart#generateContentType() ignores custom ContentType values.
 1355   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1356 
 1357 * [HTTPCLIENT-1453] Thread safety regression in PoolingHttpClientConnectionManager
 1358   #closeExpiredConnections that can lead to ConcurrentModificationException.
 1359   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1360 
 1361 * [HTTPCLIENT-1461] fixed performance degradation in compressed content processing
 1362   introduced by HTTPCLIENT-1432.
 1363   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1364 
 1365 * [HTTPCLIENT-1457] Incorrect handling of Windows (NT) credentials by
 1366   SystemDefaultCredentialsProvider.
 1367   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1368 
 1369 * [HTTPCLIENT-1456] Request retrial after status 503 causes ClientProtocolException.
 1370   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1371 
 1372 
 1373 Release 4.3.2
 1374 -------------------
 1375 
 1376 HttpClient 4.3.2 (GA) is a maintenance release that delivers a number of improvements
 1377 as well as bug fixes for issues reported since 4.3.1 release. SNI support for
 1378 Oracle JRE 1.7+ is being among the most notable improvements.
 1379 
 1380 Users of HttpClient 4.3 are encouraged to upgrade.
 1381 
 1382 Changelog:
 1383 -------------------
 1384 
 1385 * [HTTPCLIENT-1447] Clients created with HttpClients.createMinimal do not work with absolute URIs
 1386   Contributed by Joseph Walton <joe at kafsemo dot org>
 1387 
 1388 * [HTTPCLIENT-1446] NTLM proxy + BASIC target auth fails with 'Unexpected state:
 1389   MSG_TYPE3_GENERATED'.
 1390   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1391 
 1392 * [HTTPCLIENT-1443] HttpCache uses the physical host instead of the virtual host as a cache key.
 1393   Contributed by Francois-Xavier Bonnet <fx at apache.org>
 1394 
 1395 * [HTTPCLIENT-1442] Authentication header set by the user gets removed in case
 1396   of proxy authentication (affects plan HTTP requests only).
 1397   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1398 
 1399 * [HTTPCLIENT-1441] Caching AsynchronousValidationRequest leaks connections.
 1400   Contributed by Dominic Tootell <dominic.tootell at gmail.com>
 1401 
 1402 * [HTTPCLIENT-1440] 'file' scheme in redirect location URI causes NPE.
 1403   Contributed by James Leigh <james at 3roundstones dot com>
 1404 
 1405 * [HTTPCLIENT-1437] Made Executor#execute thread safe.
 1406   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1407 
 1408 * [HTTPCLIENT-1119] SNI support (Oracle Java 1.7+ only).
 1409   Contributed by Bruno Harbulot <bruno at distributedmatter.net>
 1410 
 1411 * [HTTPCLIENT-1435] Fluent Executor ignores custom request properties.
 1412   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1413 
 1414 * [HTTPCLIENT-1432] Lazy decompressing of HttpEntity#getContent() to avoid EOFException
 1415   in case of an empty response with 'Content-Encoding: gzip' header.
 1416   Contributed by Yihua Huang <code4crafter at gmail.com>
 1417 
 1418 * [HTTPCLIENT-1431] (Regression) deprecated connection manager cannot be used with
 1419   a custom LayeredSchemeSocketFactory.
 1420   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1421 
 1422 * [HTTPCLIENT-1425] Fixed socket closed exception thrown by caching HttpClient when the origin
 1423   server sends a long chunked response.
 1424   Contributed by James Leigh <james at 3roundstones dot com>
 1425 
 1426 * [HTTPCLIENT-1417] Fixed NPE in BrowserCompatSpec#formatCookies caused by version 1
 1427   cookies with null cookie value.
 1428   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1429 
 1430 * [HTTPCLIENT-1416] Fixed NPE in CachingHttpClientBuilder#build().
 1431   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1432 
 1433 
 1434 
 1435 Release 4.3.1
 1436 -------------------
 1437 
 1438 HttpClient 4.3.1 (GA) is a bug fix release that addresses a number of issues reported since
 1439 release 4.3.
 1440 
 1441 Users of HttpClient 4.3 are strongly encouraged to upgrade.
 1442 
 1443 Changelog
 1444 -------------------
 1445 
 1446 * [HTTPCLIENT-1410] Browser compatible hostname verifier no longer rejects
 1447   *.co.<countrycode>, *.gov.<countrycode>, *.info.<countrycode>, etc as invalid.
 1448   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1449 
 1450 * Ensure X509HostnameVerifier is never null.
 1451   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1452 
 1453 * [HTTPCLIENT-1405] CONNECT HTTP/1.1 requests lack mandatory 'Host' header.
 1454   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1455 
 1456 * [HTTPCLIENT-1402] Cache default User-Agent value.
 1457   Contributed by yuexiaojun <junedo at qq.com>
 1458 
 1459 * [HTTPCLIENT-1398] Fixed invalid OSGi metadata caused by corrupted Maven bundle plugin metadata.
 1460   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1461 
 1462 * [HTTPCLIENT-1399] Fixed NPE in RequestBuilder.
 1463   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1464 
 1465 
 1466 
 1467 
 1468 Release 4.3 Final
 1469 -------------------
 1470 
 1471 This is the first stable (GA) release of HttpClient 4.3. The most notable enhancements included
 1472 in this release are:
 1473 
 1474 * Support for Java 7 try-with-resources for resource management (connection release.)
 1475 
 1476 * Added fluent Builder classes for HttpEntity, HttpRequest, HttpClient and SSLContext instances.
 1477 
 1478 * Deprecation of preference and configuration API based on HttpParams interface in favor of
 1479 constructor injection and plain configuration objects.
 1480 
 1481 * Reliance on object immutability instead of access synchronization for thread safety.
 1482 Several old classes whose instances can be shared by multiple request exchanges have
 1483 been replaced by immutable equivalents.
 1484 
 1485 * DefaultHttpClient,  DecompressingHttpClient, CachingHttpClient and similar classes are
 1486 deprecated in favor of builder classes that produce immutable HttpClient instances.
 1487 
 1488 * HttpClient builders now dynamically construct a request execution pipeline tailored
 1489 specifically to the user configuration by physically excluding unnecessary protocol components.
 1490 
 1491 * There is now an option to construct a minimal HttpClient implementation that can only execute
 1492 basic HTTP message exchanges without redirects, authentication, state management or proxy support.
 1493 This feature might be of particular use in web crawler development.
 1494 
 1495 * There is now option to avoid strict URI syntax for request URIs by executing HTTP requests
 1496 with an explicitly specified target host. HttpClient will no longer attempt to parse the request
 1497 URI if it does not need to extract the target host from it.
 1498 
 1499 This release also includes all fixes from the stable 4.2.x release branch.
 1500 
 1501 
 1502 Changelog
 1503 -------------------
 1504 * [HTTPCLIENT-1371] Weak ETag Validation is Useful On PUT With If-Match
 1505   Contributed by James Leigh <james at 3roundstones dot com>
 1506 
 1507 * [HTTPCLIENT-1394] Support for Native windows Negotiate/NTLM via JNA
 1508   Contributed by Ryan McKinley <ryan at apache.org>
 1509 
 1510 * [HTTPCLIENT-1384] Expose CacheInvalidator interface.
 1511   Contributed by Nicolas Richeton <nicolas.richeton at free.fr>
 1512 
 1513 * [HTTPCLIENT-1385] Fixed path normalization in CacheKeyGenerator
 1514   Contributed by James Leigh <james at 3roundstones dot com>
 1515 
 1516 * [HTTPCLIENT-1370] Response to non-GET requests should never be cached with the default
 1517   ResponseCachingPolicy
 1518   Contributed by James Leigh <james at 3roundstones dot com>
 1519 
 1520 * [HTTPCLIENT-1373] OPTIONS and TRACE should not invalidate cache
 1521   Contributed by James Leigh <james at 3roundstones dot com>
 1522 
 1523 * [HTTPCLIENT-1383] HttpClient enters an infinite loop during NTLM authentication if the opposite
 1524   endpoint keeps responding with a type 2 NTLM response after type 3 MTLM message has already been
 1525   sent by the client.
 1526   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1527 
 1528 * [HTTPCLIENT-1372] Refactor HttpMultipart, and add RFC6532 mode, so that headers in post
 1529   are no longer constrained to ASCII values.
 1530   Contributed by Karl Wright <kwright at apache.org>
 1531 
 1532 * [HTTPCLIENT-1377] User principal for non-NTLM authentication is incorrectly generated when using
 1533   user credentials are specified as NTCredentials
 1534   Contributed by Gary Gregory <ggregory at apache.org>
 1535 
 1536 
 1537 
 1538 Release 4.3 BETA2
 1539 -------------------
 1540 
 1541 This is the second BETA release of HttpClient 4.3. The most notable features and improvements
 1542 in the 4.3 branch are: Support for Java 7  try-with-resources for resource management (connection
 1543 release); fluent Builder classes for HttpEntity, HttpRequest and HttpClient instances, deprecation
 1544 of preference and configuration API based on HttpParams interface in favor of constructor injection
 1545 and plain configuration objects, reliance on object immutability instead of access synchronization
 1546 for thread safety.
 1547 
 1548 This release also includes all fixes from the stable 4.2.x release branch.
 1549 
 1550 Changelog
 1551 -------------------
 1552 
 1553 
 1554 * [HTTPCLIENT-1366] org.apache.http.client.utils.URLEncodedUtils should parse the semicolon as a query parameter separator.
 1555   Contributed by Gary Gregory <ggregory at apache.org>
 1556 
 1557 * [HTTPCLIENT-1365] NPE when ManagedHttpClientConnectionFactory.create(ConnectionConfig) is called with null.
 1558   Contributed by Gary Gregory <ggregory at apache.org>
 1559 
 1560 * [HTTPCLIENT-1362] Better error messages for connect timed out and connection refused
 1561   exceptions.
 1562   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1563 
 1564 * [HTTPCLIENT-1360] separate out DeflateInputStream as an independent class,
 1565   so it can be used by others.
 1566   Contributed by Karl Wright <kwright at apache.org>
 1567 
 1568 * [HTTPCLIENT-1359] repeated requests using the same context fail if they redirect.
 1569   Contributed by James Leigh <james at 3roundstones.com>
 1570 
 1571 * [HTTPCLIENT-1354] do not quote algorithm parameter in DIGEST auth response.
 1572   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1573 
 1574 * [HTTPCLIENT-1351] Added utility method to resolve final location from original request,
 1575   target host and a list of redirects.
 1576   Contributed by James Leigh <james at 3roundstones.com>
 1577 
 1578 * [HTTPCLIENT-1344] Userinfo credentials in URI should not default to preemptive BASIC
 1579   authentication.
 1580   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1581 
 1582 * [HTTPCLIENT-1345] Useinfo credentials ignored in redirect location header.
 1583   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1584 
 1585 * [HTTPCLIENT-1294] HttpClient to rewrite host name of the redirect location URI in order
 1586   to avoid circular redirect exception due to host name case mismatch.
 1587   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1588 
 1589 * [HTTPCLIENT-1264] Add support for multiple levels of browser compatibility
 1590   to BrowserCompatSpec and BrowserCompatSpecFactory.  Include constructor
 1591   argument for IE medium-security compatibility.
 1592   Contributed by Karl Wright (kwright at apache.org)
 1593 
 1594 * [HTTPCLIENT-1349] SSLSocketFactory incorrectly identifies key passed with keystore as
 1595   the keystore password.
 1596   Contributed by David Graff <djgraff209 at gmail.com>
 1597 
 1598 * [HTTPCLIENT-1346] Ensure propagation of SSL handshake exceptions.
 1599   Contributed by Pasi Eronen <pe at iki.fi>
 1600 
 1601 * [HTTPCLIENT-1343] SSLSocketFactory optional parameters for supported SSL protocols and cipher
 1602   suites.
 1603   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1604 
 1605 * [HTTPCLIENT-1238] Contribute Bundle Activator And Central Proxy Configuration.
 1606   Contributed by Simone Tripodi <simonetripodi at apache.org>
 1607 
 1608 * [HTTPCLIENT-1299] (regression) cache incorrectly disposes of the underlying cache resource
 1609   when storing variant entry.
 1610   Contributed by James Leigh <james at 3roundstones.com>
 1611 
 1612 * [HTTPCLIENT-1342] Redirects with underscore character in the location hostname cause
 1613   "java.lang.IllegalArgumentException: Host name may not be null".
 1614   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1615 
 1616 
 1617 
 1618 Release 4.3 BETA1
 1619 -------------------
 1620 
 1621 This is the first BETA release of HttpClient 4.3. The 4.3 branch enhances HttpClient in several
 1622 key areas and includes several notable features and improvements: Support for Java 7
 1623 try-with-resources for resource management (connection release); fluent Builder classes for
 1624 HttpEntity, HttpRequest and HttpClient instances, deprecation of preference and configuration API
 1625 based on HttpParams interface in favor of constructor injection and plain configuration objects,
 1626 reliance on object immutability instead of access synchronization for thread safety.
 1627 
 1628 This release also includes all fixes from the stable 4.2.x release branch.
 1629 
 1630 
 1631 Changelog
 1632 -------------------
 1633 
 1634 * [HTTPCLIENT-1317] InetAddressUtils should handle IPv6 Addresses with Embedded IPv4 Addresses
 1635   Contributed Sebastian Bazley <sebb at apache.org>.
 1636 
 1637 * [HTTPCLIENT-1320] Leverage javax.net.ssl.SSLSocketFactory#getDefault() to initialize SSL context
 1638   based on system defaults instead of using an internal custom routine.
 1639   Contributed by Abe Backus <abraham at backus.com> and Oleg Kalnichevski <olegk at apache.org>
 1640 
 1641 * [HTTPCLIENT-1316] Certificate verification rejects IPv6 addresses which are not String-equal.
 1642   Contributed Sebastian Bazley <sebb at apache.org>.
 1643 
 1644 * [HTTPCLIENT-1307] Future based asynchronous request execution.
 1645   Contributed by Jilles van Gurp <jilles at jillesvangurp.com>
 1646 
 1647 * [HTTPCLIENT-1313] Fixed IllegalStateException in deprecated ThreadSafeClientConnManager.
 1648   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1649 
 1650 * [HTTPCLIENT-1298] Add AsynchronousValidator in HttpClientBuilder's list of closeable objects.
 1651   Contributed by Martin Meinhold <mmeinhold at atlassian.com>
 1652 
 1653 
 1654 
 1655 Release 4.3 ALPHA1
 1656 -------------------
 1657 
 1658 This is the first ALPHA release of HttpClient 4.3. The 4.3 branch enhances HttpClient in several
 1659 key areas and includes several notable features and improvements: Support for Java 7
 1660 try-with-resources for resource management (connection release); fluent Builder classes for
 1661 HttpEntity, HttpRequest and HttpClient instances, deprecation of preference and configuration API
 1662 based on HttpParams interface in favor of constructor injection and plain configuration objects,
 1663 reliance on object immutability instead of access synchronization for thread safety.
 1664 
 1665 We are kindly asking all upstream projects to review API changes and help us improve
 1666 the APIs by providing feedback and sharing ideas on dev@hc.apache.org.
 1667 
 1668 This release also includes all fixes from the stable 4.2.x release branch.
 1669 
 1670 Please note that new features included in this release are still considered experimental and
 1671 their API may change in the future 4.3 alpha and beta releases.
 1672 
 1673 
 1674 Changelog
 1675 -------------------
 1676 
 1677 * [HTTPCLIENT-1250] Allow query string to be ignored when determining cacheability for
 1678   HTTP 1.0 responses.
 1679   Contributed by Don Brown <mrdon at twdata.org>
 1680 
 1681 * [HTTPCLIENT-1261] Make SystemDefaultHttpClient honor http.agent system property.
 1682   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1683 
 1684 * [HTTPCLIENT-900] Don't enforce URI syntax for messages with an explicit target host.
 1685   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1686 
 1687 * [HTTPCLIENT-1190] HttpClient cache does not support "Vary: Cookie"
 1688   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1689 
 1690 * [HTTPCLIENT-1259] Calling #abort() on requests executed with DecompressingHttpClient has no
 1691   effect.
 1692   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1693 
 1694 * [HTTPCLIENT-1253] URIBuilder setParameter() method could exceed the HTTP header size.
 1695   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1696 
 1697 * [HTTPCLIENT-1216] Added method to force clean thread-local used by DateUtils.
 1698   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1699 
 1700 
 1701 Release 4.2.3
 1702 -------------------
 1703 
 1704 HttpClient 4.2.3 (GA) is a bug fix release that addresses a number of issues reported since
 1705 release 4.2.2. This release also includes a thoroughly reworked NTLM authentication engine
 1706 which should result in a better compatibility with the newest Microsoft products.
 1707 
 1708 Users of HttpClient 4.x are advised to upgrade.
 1709 
 1710 Changelog
 1711 -------------------
 1712 
 1713 * [HTTPCLIENT-1296] NPE gets thrown if you combine a default host with a virtual host
 1714   that has a -1 value for the port.
 1715   Contributed by Karl Wright <daddywri at gmail.com>
 1716 
 1717 * [HTTPCLIENT-1290] 304 cached response never reused with If-modified-since conditional
 1718   requests.
 1719   Contributed by Francois-Xavier Bonnet <francois-xavier.bonnet at centraliens.net>
 1720 
 1721 * [HTTPCLIENT-1291] Absolute request URIs without an explicitly specified path are rewritten
 1722   to have "/" path).
 1723   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1724 
 1725 * [HTTPCLIENT-1286] Request URI rewriting is inconsistent - URI fragments are not removed
 1726   from absolute request URIs.
 1727   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1728 
 1729 * [HTTPCLIENT-1284] HttpClient incorrectly generates Host header when physical connection
 1730   route differs from the host name specified in the request URI.
 1731   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1732 
 1733 * [HTTPCLIENT-1293] Kerberos and SPNego auth schemes use incorrect authorization header name
 1734   when authenticating with a proxy.
 1735   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1736 
 1737 * [HTTPCLIENT-1283] NTLM needs to use Locale-independent form of
 1738   toUpperCase().
 1739   Contributed by Karl Wright <DaddyWri at gmail.com>
 1740 
 1741 * [HTTPCLIENT-1279] Target host responding with status 407 (proxy authentication required)
 1742   causes an NPE.
 1743   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1744 
 1745 * [HTTPCLIENT-1281] GzipDecompressingEntity does not release InputStream when an IOException
 1746   occurs while reading the Gzip header
 1747   Contributed by Francois-Xavier Bonnet <francois-xavier.bonnet at centraliens.net>
 1748 
 1749 * [HTTPCLIENT-1277] Caching client sends a 304 to an unconditional request.
 1750   Contributed by Francois-Xavier Bonnet <francois-xavier.bonnet at centraliens.net>
 1751 
 1752 * [HTTPCLIENT-1278] Update NTLM documentation.
 1753   Contributed by Karl Wright <DaddyWri at gmail.com>
 1754 
 1755 * SystemDefaultHttpClient misinterprets 'http.keepAlive' default value and disables
 1756   connection persistence if the system property is not set. This causes connection
 1757   based authentication schemes such as NTLM to fail.
 1758 
 1759 * [HTTPCLIENT-1276] cache update on a 304 response causes NPE.
 1760   Contributed by Francois-Xavier Bonnet <francois-xavier.bonnet at centraliens.net>
 1761 
 1762 * [HTTPCLIENT-1273] DecompressingHttpClient does not automatically consume response
 1763   content in case of an i/o, HTTP or runtime exception thrown by the decompressing
 1764   protocol interceptor leading to a potential connection leak.
 1765   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1766 
 1767 * [HTTPCLIENT-1268] NTLM engine refactor fix, to correct a buffer overrun, and get NTLMv2
 1768   flags right.
 1769   Contributed by Karl Wright <DaddyWri at gmail.com>
 1770 
 1771 * [HTTPCLIENT-1266] NTLM engine refactoring and compatibility improvements.
 1772   Contributed by Karl Wright <DaddyWri at gmail.com>
 1773 
 1774 * [HTTPCLIENT-1263] BrowserCompatSpec: attribute values containing spaces or special characters
 1775   should be enclosed with quotes marks for version 1 cookies.
 1776   Contributed by Francois-Xavier Bonnet <francois-xavier.bonnet at centraliens.net>
 1777 
 1778 * [HTTPCLIENT-1263] CachingHttpClient fails to release connections back to the connection
 1779   manager for some type of HTTP response messages when used together with DecompressingHttpClient.
 1780   Contributed by Francois-Xavier Bonnet <francois-xavier.bonnet at centraliens.net>
 1781 
 1782 * [HTTPCLIENT-1258] Fixed NullPointerException in NTLMEngineImpl caused by null NT domain
 1783   attribute.
 1784   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1785 
 1786 * [HTTPCLIENT-1254] Redirect with underscore in hostname causes ProtocolException.
 1787   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1788 
 1789 * [HTTPCLIENT-1255] AbstractVerifier incorrectly parses certificate CN containing wildcard.
 1790   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1791 
 1792 
 1793 
 1794 Release 4.2.2
 1795 -------------------
 1796 
 1797 HttpClient 4.2.2 (GA) is a bug fix release that addresses a number of issues reported since
 1798 release 4.2.1.
 1799 
 1800 Users of HttpClient 4.2 are advised to upgrade.
 1801 
 1802 Changelog
 1803 -------------------
 1804 
 1805 * [HTTPCLIENT-1248] Default and lax redirect strategies should not convert requests redirected
 1806   with 307 status to GET method.
 1807   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1808 
 1809 * [HTTPCLIENT-1215] BasicAuthCache does not take default ports into consideration when
 1810   looking up cached authentication details by HttpHost key.
 1811   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1812 
 1813 * [HTTPCLIENT-1241] (regression) Preemptive BASIC authentication failure should be considered
 1814   final and no further attempts to re-authenticate using the same credentials should be made.
 1815   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1816 
 1817 * [HTTPCLIENT-1229] Fixed NPE in BasicClientConnectionManager that can be triggered by releasing
 1818   connection after the connection manager has already been shut down.
 1819   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1820 
 1821 * [HTTPCLIENT-1227] Date parsing in DateUtils made more efficient.
 1822   Contributed by Patrick Linskey <pcl at apache.org>
 1823 
 1824 * [HTTPCLIENT-1224] (regression) NTLM auth not retried after a redirect over a non-persistent
 1825   connection.
 1826   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1827 
 1828 * [HTTPCLIENT-1223] Cache could be more aggressive on cache invalidations
 1829   from Content-Location. Contributed by Jon Moore <jonm at apache.org>.
 1830   Contributed by Jon Moore <jonm at apache.org>
 1831 
 1832 * [HTTPCLIENT-1217] AutoRetryHttpClient does not release connection used by the previous response
 1833   when request is retried
 1834   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1835 
 1836 
 1837 
 1838 Release 4.2.1
 1839 -------------------
 1840 
 1841 HttpClient 4.2.1 (GA) is a bug fix release that addresses a number of issues reported since
 1842 release 4.2.
 1843 
 1844 Users of HttpClient 4.2 are advised to upgrade.
 1845 
 1846 Changelog
 1847 -------------------
 1848 
 1849 * [HTTPCLIENT-1209] Redirect URIs are now normalized.
 1850   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1851 
 1852 * [HTTPCLIENT-1202] ResponseCachingPolicy should honor explicit cache-control
 1853   directives for other status codes
 1854   Contributed by Jon Moore <jonm at apache.org>
 1855 
 1856 * [HTTPCLIENT-1199] DecompressingHttpClient strips content from entity enclosing requests
 1857   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1858 
 1859 * [HTTPCLIENT-1198] HttpHost is not set in HttpContext in CachingHttpClient.
 1860   Contributed by Jon Moore <jonm at apache.org>
 1861 
 1862 * [HTTPCLIENT-1200] DecompressingHttpClient fails to generate correct HttpHost context attribute.
 1863   Contributed by Guillaume Castagnino <casta+jira at xwing.info>
 1864 
 1865 * [HTTPCLIENT-1192] URIBuilder encodes query parameters twice.
 1866   Contributed by Oleg Kalnichevski <olegk at apache.org> and Sebastian Bazley <sebb at apache.org>.
 1867 
 1868 * [HTTPCLIENT-1196] Fixed NPE in UrlEncodedFormEntity constructor thrown if charset is null.
 1869   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1870 
 1871 * [HTTPCLIENT-1193] Fixed regression in the route tracking logic of the default connection manager
 1872   causing cross-site redirect failures.
 1873   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1874 
 1875 Release 4.2
 1876 -------------------
 1877 
 1878 This is the first stable (GA) release of HttpClient 4.2. The most notable enhancements included
 1879 in this release are:
 1880 
 1881 * New facade API for HttpClient based on the concept of a fluent interface. The fluent API exposes
 1882   only the most fundamental functions of HttpClient and is intended for relatively simple use cases
 1883   that do not require the full flexibility of HttpClient. However, the fluent API almost fully
 1884   relieves the users from having to deal with connection management and resource deallocation.
 1885 
 1886 * Redesigned and rewritten connection management code.
 1887 
 1888 * Enhanced HTTP authentication API that enables HttpClient to handle more complex authentication
 1889   scenarios. HttpClient 4.2 is now capable of making use of multiple authentication challenges
 1890   and retry authentication with a fall-back scheme in case the primary one fails. This can be
 1891   important for compatibility with Microsoft products that are often configured to use
 1892   SPNEGO/Kerberos as the preferred authentication scheme.
 1893 
 1894 
 1895 Changelog
 1896 -------------------
 1897 
 1898 * [HTTPCLIENT-1187] If a revalidation response is deemed too old CachingHttpClient fails to
 1899   consume its content resulting in a connection leak.
 1900   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1901 
 1902 * [HTTPCLIENT-1186] State of newly created connections in the connection pool is not always
 1903   correctly updated potentially allowing those connections to be leased to users with a different
 1904   security context.
 1905   Contributed by Ralf Poehlmann <rpn at methodpark.de>
 1906 
 1907 * [HTTPCLIENT-1179] Upgraded Commons Codec dependency to version 1.6
 1908   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1909 
 1910 * [HTTPCLIENT-1177] always remove fragments from request URIs
 1911   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1912 
 1913 Incompatible changes
 1914 --------------------
 1915 [Compared to release version 4.1.3]
 1916 
 1917 The following fields have been deprecated for some time now and have been deleted:
 1918 
 1919 org.apache.http.client.params.ClientPNames#CONNECTION_MANAGER_FACTORY
 1920 org.apache.http.impl.cookie.BrowserCompatSpec#DATE_PATTERNS
 1921 
 1922 The following methods have been deprecated for some time now and have been deleted:
 1923 
 1924 org.apache.http.client.params.ClientParamBean#setConnectionManagerFactory(org.apache.http.conn.ClientConnectionManagerFactory)
 1925 org.apache.http.client.protocol.ClientContextConfigurer#setAuthSchemePref(java.util.List)
 1926 org.apache.http.entity.mime.content.FileBody#writeTo(java.io.OutputStream, int)
 1927 org.apache.http.entity.mime.content.InputStreamBody#writeTo(java.io.OutputStream, int)
 1928 org.apache.http.entity.mime.content.StringBody#writeTo(java.io.OutputStream, int)
 1929 
 1930 The following classes have been deprecated for some while now and have been deleted:
 1931 
 1932 org.apache.http.impl.conn.tsccm.RefQueueHandler
 1933 org.apache.http.impl.conn.tsccm.AbstractConnPool no longer implements interface org.apache.http.impl.conn.tsccm.RefQueueHandler
 1934 org.apache.http.impl.conn.tsccm.ConnPoolByRoute no longer implements interface org.apache.http.impl.conn.tsccm.RefQueueHandler
 1935 org.apache.http.impl.conn.tsccm.RefQueueWorker
 1936 
 1937 
 1938 
 1939 Release 4.2 BETA1
 1940 -------------------
 1941 
 1942 This is the first BETA release of HttpClient 4.2. This release completes development of several
 1943 notable enhancements in HttpClient:
 1944 
 1945 * New facade API for HttpClient based on the concept of a fluent interface. The fluent API exposes
 1946   only the most fundamental functions of HttpClient and is intended for relatively simple use cases
 1947   that do not require the full flexibility of HttpClient. However, the fluent API almost fully
 1948   relieves the users from having to deal with connection management and resource deallocation.
 1949 
 1950 * Redesigned and rewritten connection management code. As of release 4.2 HttpClient will be using
 1951   pooling connection manager per default.
 1952 
 1953 * Enhanced HTTP authentication API that enables HttpClient to handle more complex authentication
 1954   scenarios. HttpClient 4.2 is now capable of making use of multiple authentication challenges
 1955   and retry authentication with a fall-back scheme in case the primary one fails. This can be
 1956   important for compatibility with Microsoft products that are often configured to use
 1957   SPNEGO/Kerberos as the preferred authentication scheme.
 1958 
 1959 
 1960 Changelog
 1961 -------------------
 1962 
 1963 * [HTTPCLIENT-1164] Compressed entities are not being cached properly.
 1964   Contributed by Jon Moore <jonm at apache dot org>.
 1965 
 1966 * [HTTPCLIENT-1154] MemcachedHttpCacheStorage should allow client to
 1967   specify custom prefix string for keys.
 1968   Contributed by Jon Moore <jonm at apache dot org>.
 1969 
 1970 * [HTTPCLIENT-1153] MemcachedHttpCacheStorage uses URL as cache key;
 1971   shouldn't due to fixed maximum-length memcached keys.
 1972   Contributed by Jon Moore <jonm at apache dot org>.
 1973 
 1974 * [HTTPCLIENT-1157] MemcachedHttpCacheStroage should throw IOExceptions
 1975   instead of RuntimeExceptions.
 1976   Contributed by James Miller <jamesmiller01 at gmail dot com>.
 1977 
 1978 * [HTTPCLIENT-1152] MemcachedHttpCacheStorage should verify class of
 1979   returned object before casting.
 1980   Contributed by Rajika Kumarasiri <rajika at wso2 dot com>.
 1981 
 1982 * [HTTPCLIENT-1155] CachingHttpClient fails to ensure that the response content gets fully consumed
 1983   when using a ResponseHandler, which can potentially lead to connection leaks.
 1984   Contributed by James Miller <jamesmiller01 at gmail dot com>
 1985 
 1986 * [HTTPCLIENT-1147] When HttpClient-Cache cannot open cache file, should act like miss.
 1987   Contributed by Joe Campbell <joseph.r.campbell at gmail.com>
 1988 
 1989 * [HTTPCLIENT-1137] Values for the Via header are cached and reused by httpclient-cache.
 1990   Contributed by Alin Vasile <alinachegalati at yahoo dot com>
 1991 
 1992 * [HTTPCLIENT-1142] Infinite loop on NTLM authentication failure.
 1993   Contributed by Oleg Kalnichevski <olegk at apache.org>
 1994 
 1995 * [HTTPCLIENT-1143] CachingHttpClient leaks connections with stale-if-error.
 1996   Contributed by James Miller <jamesmiller01 at gmail dot com>
 1997 
 1998 Release 4.2 ALPHA1
 1999 -------------------
 2000 
 2001 This is the first ALPHA release of HttpClient 4.2. The 4.2 branch enhances HttpClient in several
 2002 key areas and includes several notable features and improvements:
 2003 
 2004 * New facade API for HttpClient based on the concept of a fluent interface. The fluent API exposes
 2005   only the most fundamental functions of HttpClient and is intended for relatively simple use cases
 2006   that do not require the full flexibility of HttpClient. However, the fluent API almost fully
 2007   relieves the users from having to deal with connection management and resource deallocation.
 2008 
 2009 * Redesigned and rewritten connection management code. As of release 4.2 HttpClient will be using
 2010   pooling connection manager per default.
 2011 
 2012 * Enhanced HTTP authentication API that enables HttpClient to handle more complex authentication
 2013   scenarios. HttpClient 4.2 is now capable of making use of multiple authentication challenges
 2014   and retry authentication with a fall-back scheme in case the primary one fails. This can be
 2015   important for compatibility with Microsoft products that are often configured to use
 2016   SPNEGO/Kerberos as the preferred authentication scheme.
 2017 
 2018 Please note that new features included in this release are still considered experimental and
 2019 their API may change in the future ALPHA releases.
 2020 
 2021 Changelog
 2022 -------------------
 2023 
 2024 * [HTTPCLIENT-1128] SystemDefaultHttpClient (HttpClient implementation initialized using system
 2025   properties).
 2026   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2027 
 2028 * [HTTPCLIENT-1135] RandomAccessFile mode 'w' used by HttpClientCache is not valid.
 2029   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2030 
 2031 * [HTTPCLIENT-1131] HttpClient to authenticate preemptively using BASIC scheme if a userinfo
 2032   attribute is specified in the request URI.
 2033   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2034 
 2035 * [HTTPCLIENT-1134] make BasicResponseHandler consume response content in case of an unsuccessful
 2036   result (status code >= 300).
 2037   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2038 
 2039 * [HTTPCLIENT-1132] ProxyClient implementation.
 2040   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2041 
 2042 * [HTTPCLIENT-1127] fixed dead-lock between SingleClientConnManager and AbstractPooledConnAdapter.
 2043   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2044 
 2045 * [HTTPCLIENT-1107] Auth framework redesign.
 2046   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2047 
 2048 * [HTTPCLIENT-1116] ResponseCachingPolicy uses integers for sizes
 2049   Contributed by Greg Bowyer <gbowyer at fastmail.co.uk >
 2050 
 2051 * [HTTPCLIENT-1123] Support for pluggable DNS resolvers.
 2052   Contributed by Alin Vasile <alinachegalati at yahoo dot com>
 2053 
 2054 * [HTTPCLIENT-1120] DefaultHttpRequestRetryHandler#retryRequest should not retry aborted requests.
 2055   Contributed by Alin Vasile <alinachegalati at yahoo dot com>
 2056 
 2057 * Support for auth-int qop (quality of protection) option in Digest auth scheme.
 2058   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2059 
 2060 * [HTTPCLIENT-1076] Fluent facade API (Google summer of code 2011 project).
 2061   Contributed by Xu Lilu <cookieme at gmail.com>
 2062 
 2063 * UriBuilder implementation.
 2064   Contributed by Xu Lilu <cookieme at gmail.com>
 2065 
 2066 * Redesign of connection management classes based on new pooling components from HttpCore.
 2067   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2068 
 2069 * [HTTPCLIENT-1111] Added #prepareSocket method to SSLSocketFactory.
 2070   Contributed by Pasi Eronen <pe at iki.fi>
 2071 
 2072 * Added #reset() and #releaseConnection() methods to HttpRequestBase.
 2073   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2074 
 2075 * [HTTPCLIENT-1105] AutoRetryHttpClient: built-in way to do auto-retry for certain status codes.
 2076   Contributed by Dan Checkoway <dcheckoway at gmail.com>
 2077 
 2078 * [HTTPCLIENT-1094] Digest auth scheme refactoring.
 2079   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2080 
 2081 * Lax implementation of RedirectStrategy.
 2082   Contributed by Bartosz Firyn <songo.bercik at interia.pl>
 2083 
 2084 * [HTTPCLIENT-1044] HttpRequestRetryHandler implementation compliant with the definition of
 2085   idempotent methods given in the RFC 2616.
 2086   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2087 
 2088 
 2089 Release 4.1.2
 2090 -------------------
 2091 
 2092 The HttpClient 4.1.2 is a bug fix release that addresses a number of non-critical issues reported
 2093 since release 4.1.1.
 2094 
 2095 * [HTTPCLIENT-1100] Missing Content-Length header makes cached entry invalid
 2096   Contributed by Bart Robeyns <bart dot robeyns at gmail dot com>
 2097 
 2098 * [HTTPCLIENT-1098] Avoid expensive reverse DNS lookup on connect timeout exception.
 2099   Contributed by Thomas Boettcher <tboett at gmail.com>
 2100 
 2101 * [HTTPCLIENT-1097] BrowserCompatHostnameVerifier and StrictHostnameVerifier should handle
 2102   wildcards in SSL certificates better.
 2103   Contributed by Sebastian Bazley <sebb at apache.org>
 2104 
 2105 * [HTTPCLIENT-1092] If ClientPNames.VIRTUAL_HOST does not provide the port, derive it from the
 2106   current request.
 2107   Contributed by Sebastian Bazley <sebb at apache.org>
 2108 
 2109 * [HTTPCLIENT-1087] NTLM proxy authentication fails on retry if the underlying connection is closed
 2110   as a result of a target authentication failure.
 2111   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2112 
 2113 * [HTTPCLIENT-1079] Fixed Kerberos cross-realm support
 2114   Contributed by Michael Osipov <1983-01-06 at gmx.net>
 2115 
 2116 * [HTTPCLIENT-1078] Decompressing entities (DeflateDecompressingEntity, GzipDecompressingEntity)
 2117   do not close content stream in #writeTo() method.
 2118   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2119 
 2120 * [HTTPCLIENT-1075] Decompressing entities (DeflateDecompressingEntity, GzipDecompressingEntity)
 2121   do not correctly handle content streaming.
 2122   Contributed by James Abley <james.abley at gmail.com>
 2123 
 2124 * [HTTPCLIENT-1051] Avoid reverse DNS lookups when opening SSL connections by IP address.
 2125   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2126 
 2127 
 2128 Release 4.1.1
 2129 -------------------
 2130 
 2131 HttpClient v4.1.1 is a bug fix release that addresses a number of issues reported since
 2132 release 4.1, including one critical security issue (HTTPCLIENT-1061). All users of HttpClient 4.0.x
 2133 and 4.1 are strongly encouraged to upgrade.
 2134 
 2135 * [HTTPCLIENT-1069] HttpHostConnectException not correctly retried for direct and non-tunnelled
 2136   proxy connections.
 2137   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2138 
 2139 * [HTTPCLIENT-1066] Changed the way URIUtils#rewriteURI handles multiple consecutive slashes in the
 2140   URI path component: multiple leading slashes will be replaced by one slash in order to avoid
 2141   confusion with the authority component. The remaining content of the path will not be modified.
 2142   (also see HTTPCLIENT-929).
 2143   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2144 
 2145 * [HTTPCLIENT-1061] Fixed critical bug causing Proxy-Authorization header to be sent to the target
 2146   host when tunneling requests through a proxy server that requires authentication.
 2147   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2148 
 2149 * [HTTPCLIENT-1056] Fixed bug causing the RequestAuthCache protocol interceptor to generate
 2150   an invalid AuthScope instance when looking up user credentials for preemptive authentication.
 2151   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2152 
 2153 * [HTTPCLIENT-1053] Fixed the way DigestScheme generates nonce-count values.
 2154   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2155 
 2156 
 2157 Release 4.1
 2158 -------------------
 2159 
 2160 The HttpClient 4.1 release builds upon the stable foundation laid by HttpClient 4.0 and adds several
 2161 functional improvements and popular features.
 2162 
 2163 * Response caching conditionally compliant with HTTP/1.1 specification (full compliance with
 2164   MUST requirements, partial compliance with SHOULD requirements)
 2165 
 2166 * Full support for NTLMv1, NTLMv2, and NTLM2 Session authentication. The NTLM protocol code
 2167   was kindly contributed by the Lucene Connector Framework project.
 2168 
 2169 * Support for SPNEGO/Kerberos authentication.
 2170 
 2171 * Persistence of authentication data between request executions within the same execution context.
 2172 
 2173 * Support for preemptive authentication for BASIC and DIGEST schemes.
 2174 
 2175 * Support for transparent content encoding. Please note transparent content encoding is not
 2176   enabled per default in order to avoid conflicts with already existing custom content encoding
 2177   solutions.
 2178 
 2179 * Mechanism to bypass the standard certificate trust verification (useful when dealing with
 2180   self-signed certificates).
 2181 
 2182 * Simplified configuration for connection managers.
 2183 
 2184 * Transparent support for host multihoming.
 2185 
 2186 IMPORTANT: please note that the HttpClient 3.x branch is now officially END OF LIFE and is no longer
 2187 maintained and supported by the Apache HttpComponents project.
 2188 
 2189 Changelog
 2190 -------------------
 2191 * The public API for the caching module had a minor change between 4.1-beta and 4.1-GA to the
 2192   HttpCacheEntry class - the deprecated public Set<String> getVariantURIs() method and constructor
 2193   public HttpCacheEntry(Date requestDate, Date responseDate,
 2194             StatusLine statusLine, Header[] responseHeaders,
 2195             Resource resource, Set<String> variants)
 2196   were both removed.  This will not affect you unless you are implementing new storage backends
 2197   that use the deprecated code and/or are implementing custom serializers for cache entries.
 2198 
 2199 * Changed Browser-Compatibility and Best-Match cookie policies to emulate the behaviour of FireFox
 2200   more closely when parsing Netscape style cookies. Comma will no longer be treated as a header
 2201   element separator if Set-Cookie does not contain a Version attribute mandated by the
 2202   RFC2109 / RFC 2965 cookie specifications.
 2203   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2204 
 2205 * [HTTPCLIENT-1036] StringBody has incorrect default for characterset. (Default changed
 2206   to US-ASCII)
 2207   Contributed by Sebastian Bazley <sebb at apache.org>
 2208 
 2209 * [HTTPCLIENT-975] Support stale-if-error and stale-while-revalidate extension directive (RFC5861).
 2210   Contributed by Mohammed Azeem Uddin <mohammedazeem_uddin at comcast.com>,
 2211   Michajlo Matijkiw <michajlo_matijkiw at comcast.com>, and
 2212   Matthew Hawthorne <matthew_hawthorne at comcast.com>.
 2213 
 2214 * [HTTPCLIENT-1033] HttpRoute.equals(Object o) is quite inefficient, as it does not take full
 2215   advantage of shortcut logic.
 2216   Contributed by Sebastian Bazley <sebb at apache.org>
 2217 
 2218 * [HTTPCLIENT-1030] Implement "ignoreCookies" CookieSpec
 2219   Contributed by Sebastian Bazley <sebb at apache.org>
 2220 
 2221 Release 4.1 BETA1
 2222 -------------------
 2223 
 2224 HttpClient 4.1 BETA1 finalizes the 4.1 API and brings a number of major improvements to the HTTP
 2225 caching module. This release also adds full support for NTLMv1, NTLMv2, and NTLM2 Session
 2226 authentication. The NTLM protocol code was kindly contributed by the Lucene Connector Framework
 2227 project.
 2228 
 2229 Changelog
 2230 -------------------
 2231 * [HTTPCLIENT-1015] Support only-if-cached directive.
 2232   Contributed by Michajlo Matijkiw <michajlo_matijkiw at comcast.com>
 2233 
 2234 * [HTTPCLIENT-990] Allow heuristic freshness caching.
 2235   Contributed by Michajlo Matijkiw <michajlo_matijkiw at comcast.com>
 2236 
 2237 * [HTTPCLIENT-919] Support for NTLMv1, NTLMv2, and NTLM2 Session authentication.
 2238   Contributed by Karl Wright <karl.wright at nokia.com>
 2239 
 2240 * [HTTPCLIENT-1008] Send all variants' ETags on "variant miss".
 2241   Contributed by Michajlo Matijkiw <michajlo_matijkiw at comcast.com> and
 2242   Mohammed Azeem Uddin <mohammedazeem_uddin at comcast.com>
 2243 
 2244 * [HTTPCLIENT-1011] Handling of IOExceptions thrown by cache components.
 2245   Contributed by Jonathan Moore <jonathan_moore at comcast.com>
 2246 
 2247 * [HTTPCLIENT-1003] Handle conditional requests in cache.
 2248   Contributed by Michajlo Matijkiw <michajlo_matijkiw at comcast.com> and
 2249   Mohammed Azeem Uddin <mohammedazeem_uddin at comcast.com>
 2250 
 2251 * [HTTPCLIENT-1002] Stale connection check fails if wire logging is on.
 2252   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2253 
 2254 * [HTTPCLIENT-1000] Maximum connection lifetimes settings for ThreadSafeClientConnManager.
 2255   Contributed by Michajlo Matijkiw <michajlo_matijkiw at comcast.com>
 2256 
 2257 * [HTTPCLIENT-960] HttpMultipart doesn't generate Content-Type header for binary parts in
 2258   BROWSER_COMPATIBLE mode.
 2259   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2260 
 2261 * [HTTPCLIENT-998] Cache should use both Last-Modified and ETag for validations when available.
 2262   Contributed by Jonathan Moore <jonathan_moore at comcast.com>
 2263 
 2264 * [HTTPCLIENT-997] Cache module should handle out-of-order validations properly and unconditionally
 2265   refresh.
 2266   Contributed by Jonathan Moore <jonathan_moore at comcast.com>
 2267 
 2268 * [HTTPCLIENT-994] Cache does not allow client to override origin-specified freshness using
 2269   max-stale.
 2270   Contributed by Jonathan Moore <jonathan_moore at comcast.com>
 2271 
 2272 * [HTTPCLIENT-995] Cache returns cached responses even if validators not consistent with all
 2273   conditional headers.
 2274   Contributed by Jonathan Moore <jonathan_moore at comcast.com>
 2275 
 2276 * [HTTPCLIENT-977] Memcached implementation for HttpCache.
 2277   Contributed by Mohammed Azeem Uddin <mohammedazeem_uddin at comcast.com>
 2278 
 2279 * [HTTPCLIENT-992] cache should not generate stale responses to requests explicitly requesting
 2280   first-hand or fresh ones.
 2281   Contributed by Jonathan Moore <jonathan_moore at comcast.com>
 2282 
 2283 * [HTTPCLIENT-991] cache module produces improperly formatted Warning header when revalidation
 2284   fails.
 2285   Contributed by Jonathan Moore <jonathan_moore at comcast.com>
 2286 
 2287 * [HTTPCLIENT-989] DefaultHttpRequestRetryHandler no longer retries non-idempotent http methods
 2288   if NoHttpResponseException is thrown.
 2289   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2290 
 2291 * [HTTPCLIENT-988] Cache module should strip 'Content-Encoding: identity' from responses
 2292   Contributed by Jonathan Moore <jonathan_moore at comcast.com>
 2293 
 2294 * [HTTPCLIENT-987] cache module does not recognize equivalent URIs.
 2295   Contributed by Jonathan Moore <jonathan_moore at comcast.com>
 2296 
 2297 * [HTTPCLIENT-986] cache module does not completely handle upstream Warning headers correctly
 2298   Contributed by Jonathan Moore <jonathan_moore at comcast.com>
 2299 
 2300 * [HTTPCLIENT-985] cache module should populate Via header to capture upstream and downstream protocols
 2301   Contributed by Jonathan Moore <jonathan_moore at comcast.com>
 2302 
 2303 * [HTTPCLIENT-984] Additional conditional compliance tests for the caching module for
 2304   Content-Encoding, Content-Location, Date, Expires, Server, Transfer-Encoding, and Vary headers.
 2305   Contributed by Jonathan Moore <jonathan_moore at comcast.com>
 2306 
 2307 * [HTTPCLIENT-978] HTTP cache update exception handling
 2308   Contributed by Michajlo Matijkiw <michajlo_matijkiw at comcast.com>
 2309 
 2310 * [HTTPCLIENT-981] CachingHttpClient returns a 411 respones when executing a POST (HttpPost)
 2311   request.
 2312   Contributed by Joe Campbell <joseph.r.campbell at gmail.com>
 2313 
 2314 * [HTTPCLIENT-980] CachingHttpClient returns a 503 response when the backend HttpClient produces
 2315   an IOException.
 2316   Contributed by Jonathan Moore <jonathan_moore at comcast.com>
 2317 
 2318 * [HTTPCLIENT-978] Ehcache based HTTP cache implementation
 2319   Contributed by Michajlo Matijkiw <michajlo_matijkiw at comcast.com>
 2320 
 2321 * [HTTPCLIENT-967] support for non-shared (private) caches
 2322   Contributed by Jonathan Moore <jonathan_moore at comcast.com>
 2323 
 2324 * [HTTPCLIENT-969] BasicCookieStore#getCookies() to return a copy of Cookie list
 2325   Contributed by David Smiley <dsmiley at mitre.org>
 2326 
 2327 * [HTTPCLIENT-965] Fixed problem with cache not honoring must-revalidate or
 2328   proxy-revalidate Cache-Control directives.
 2329   Contributed by Jonathan Moore <jonathan_moore at comcast.com>
 2330 
 2331 * [HTTPCLIENT-964] 'no-cache' directives with field names are no longer transmitted
 2332   downstream.
 2333   Contributed by Jonathan Moore <jonathan_moore at comcast.com>
 2334 
 2335 * [HTTPCLIENT-963] Fixed handling of 'Cache-Control: no-store' on requests.
 2336   Contributed by Jonathan Moore <jonathan_moore at comcast.com>
 2337 
 2338 * [HTTPCLIENT-962] Fixed handling of Authorization headers in shared cache mode.
 2339   Contributed by Jonathan Moore <jonathan_moore at comcast.com>
 2340 
 2341 * [HTTPCLIENT-961] Not all applicable URIs are invalidated on PUT/POST/DELETEs
 2342   that pass through client cache.
 2343   Contributed by Jonathan Moore <jonathan_moore at comcast.com>
 2344 
 2345 * [HTTPCLIENT-958] Client cache no longer allows incomplete responses to be
 2346   passed on to the client.
 2347   Contributed by Jonathan Moore <jonathan_moore at comcast.com>
 2348 
 2349 * [HTTPCLIENT-951] Non-repeatable entity enclosing requests are not correctly
 2350   retried when 'expect-continue' handshake is active.
 2351   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2352 
 2353 * [HTTPCLIENT-948] In rare circumstances the idle connection handling code
 2354   can leave closed connections in a inconsistent state.
 2355   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2356 
 2357 * [HTTPCLIENT-953] IllegalStateException thrown by RouteSpecificPool.
 2358   Contributed by Guillaume <gueugaie at gmail.com>
 2359 
 2360 * [HTTPCLIENT-952] Trust store parameter is ignored by SSLSocketFactory
 2361   (affects version 4.1-alpha2 only)
 2362   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2363 
 2364 * [HTTPCLIENT-937] CacheEntry made immutable; now uses immutable HttpEntity
 2365   to store cached content.
 2366   Contributed by David Mays <david_mays at comcast.com> and
 2367   Oleg Kalnichevski <olegk at apache.org>
 2368 
 2369 Release 4.1 ALPHA2
 2370 -------------------
 2371 
 2372 HttpClient 4.1 ALPHA2 fixes a number of non-severe bugs discovered since
 2373 the last release and introduces support for two frequently requested features:
 2374 
 2375 * HTTP/1.1 response caching
 2376 
 2377 * transparent support for host multihoming
 2378 
 2379 * a mechanism to bypass the standard certificate trust verification
 2380 (useful when dealing with self-signed certificates)
 2381 
 2382 Compatibility notes
 2383 -------------------
 2384 (1) Please note the HTTP caching module is still considered experimental and
 2385 its API may change significantly in the future releases.
 2386 
 2387 (2) This release eliminates Mime4J as a dependency for the HttpMime module.
 2388 HttpMime is no longer binary compatible with the previous releases.
 2389 Full API and binary compatibility between minor versions of HttpMime will be
 2390 maintained as of 4.1 GA release.
 2391 
 2392 Changelog
 2393 -------------------
 2394 
 2395 * [HTTPCLIENT-936] Fixed bug causing NPE or an infinite loop in
 2396   the authentication code in case of a SPNEGO authentication failure.
 2397   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2398 
 2399 * [HTTPCLIENT-427] HTTP caching support
 2400   Contributed by Joe Campbell, David Cleaver, David Mays, Jon Moore, Brad Spenla
 2401 
 2402 * Dropped dependency on Mime4j for HttpMime.
 2403   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2404 
 2405 * Extended SSLSocketFactory with a mechanism to bypass the standard certificate
 2406   trust verification (primarily to simplify dealing with self-signed
 2407   certificates)
 2408   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2409 
 2410 * [HTTPCLIENT-898] Improved support for host multihoming
 2411   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2412 
 2413 * [HTTPCLIENT-916] UsernamePasswordCredentials, NTUserPrincipal,
 2414   BasicClientCookie, BasicClientCookie2 and BasicCookieStore made Serializable.
 2415   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2416 
 2417 * [HTTPCLIENT-914] Upgraded Commons Codec dependency to version 1.4
 2418   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2419 
 2420 * [HTTPCLIENT-903] Use ConcurrentHashMap instead of [Linked]HashMap for
 2421   thread-safety. Improve performance of AuthSchemeRegistry, CookieSpecRegistry
 2422   and SchemeRegistry classes.
 2423   Contributed by Sebastian Bazley <sebb at apache.org>
 2424 
 2425 * [HTTPCLIENT-902] HttpRequestRetryHandler not called on I/O exceptions
 2426   thrown when opening a new connection.
 2427   Contributed by Olivier Lamy <olamy at apache.org> and
 2428   Oleg Kalnichevski <olegk at apache.org>
 2429 
 2430 Release 4.1 ALPHA1
 2431 -------------------
 2432 
 2433 HttpClient 4.1 ALPHA1 builds on the stable 4.0 release and adds several
 2434 functionality improvements and new features.
 2435 
 2436 * Simplified configuration of connection managers.
 2437 
 2438 * Persistence of authentication data between request executions within
 2439   the same execution context.
 2440 
 2441 * Support for SPNEGO/Kerberos authentication scheme
 2442 
 2443 * Support for transparent content encoding. Please note transparent content
 2444   encoding is not enabled per default in order to avoid conflicts with
 2445   already existing custom content encoding solutions.
 2446 
 2447 * 5 to 10% performance increase due to elimination of unnecessary Log object
 2448   lookups by short-lived components.
 2449 
 2450 Please note all methods and classes added in this release and marked as
 2451 4.1 are API unstable and can change in the future 4.1 ALPHA releases.
 2452 
 2453 Changelog
 2454 -------------------
 2455 
 2456 * [HTTPCLIENT-889] 'expect: continue' handshake disabled per default.
 2457   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2458 
 2459 * [HTTPCLIENT-862] Extended client's redirect handling interface to allow
 2460   control of the content of the redirect.
 2461   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2462 
 2463 * [HTTPCLIENT-872] HttpClient can now persist authentication data between request
 2464   executions as long as they share the same execution context. It has also become
 2465   much easier to make HttpClient authenticate preemptively by pre-populating
 2466   authentication data cache.
 2467   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2468 
 2469 * [HTTPCLIENT-883] SO_TIMEOUT is not reset on persistent (re-used) connections.
 2470   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2471 
 2472 * [HTTPCLIENT-832] Distinguish cookie format errors from violations of
 2473   restrictions imposed by a cookie specification. In the latter case
 2474   CookieRestrictionViolationException will be thrown.
 2475   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2476 
 2477 * [HTTPCLIENT-523] Support for SPNEGO authentication scheme.
 2478   Contributed by Matthew Stevenson <mavricknzwork at yahoo.com>
 2479 
 2480 * Simplified configuration of connection managers. Total connection maximum
 2481   and maximum connection per route limits can be set using methods of
 2482   the class instead of HTTP parameters.
 2483   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2484 
 2485 * Added parameters to define the order of preference for supported auth
 2486   schemes for target host and proxy authentication.
 2487   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2488 
 2489 * [HTTPCLIENT-875] DefaultClientConnectionOperator#openConnection doesn't
 2490   update the connection state if the connection socket changed after
 2491   the call to SocketFactory#connectSocket().
 2492   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2493 
 2494 * [HTTPCLIENT-834] Transparent content encoding support.
 2495   Contributed by James Abley <james.abley at gmail.com>
 2496 
 2497 Release 4.0.1
 2498 -------------------
 2499 
 2500 This is a bug fix release that addresses a number of issues discovered since
 2501 the previous stable release. None of the fixed bugs is considered critical.
 2502 Most notably this release eliminates eliminates dependency on JCIP annotations.
 2503 
 2504 This release is also expected to improve performance by 5 to 10% due to
 2505 elimination of unnecessary Log object lookups by short-lived components.
 2506 
 2507 Changelog
 2508 -------------------
 2509 
 2510 * [HTTPCLIENT-895] Eliminated Log lookups in short lived objects impairing
 2511   performance.
 2512   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2513 
 2514 * [HTTPCLIENT-885] URLEncodedUtils now correctly parses form-url-encoded
 2515   entities that specify a charset.
 2516   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2517 
 2518 * [HTTPCLIENT-884] UrlEncodedFormEntity now sets charset on the Content-Type
 2519   header.
 2520   Contributed by Jared Jacobs <jmjacobs at cs.stanford.edu>
 2521 
 2522 * [HTTPCLIENT-883] SO_TIMEOUT is not reset on persistent (re-used) connections.
 2523   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2524 
 2525 * [HTTPCLIENT-882] Auth state is now correctly updated if a successful NTLM
 2526   authentication results in a redirect. This is a minor bug as HttpClient
 2527   manages to recover from the problem automatically.
 2528   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2529 
 2530 * [HTTPCLIENT-881] Fixed race condition in AbstractClientConnAdapter that makes
 2531   it possible for an aborted connection to be returned to the pool.
 2532   Contributed by Tim Boemker <tboemker at elynx.com> and
 2533   Oleg Kalnichevski <olegk at apache.org>
 2534 
 2535 * [HTTPCLIENT-866] Removed dependency on jcip-annotations.jar.
 2536   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2537   and Sebastian Bazley <sebb at apache.org>
 2538 
 2539 
 2540 Release 4.0
 2541 -------------------
 2542 
 2543 HttpClient 4.0 represents a complete, ground-up redesign and almost a complete
 2544 rewrite of the HttpClient 3.x codeline. This release finally addresses several
 2545 design flaws that existed since the 1.0 release and could not be fixed without
 2546 a major code overhaul and breaking API compatibility.
 2547 
 2548 
 2549 Architectural changes
 2550 ---------------------
 2551 
 2552 * Redesign of the HttpClient internals addressing all known major
 2553   architectural shortcomings of the 3.x codeline.
 2554 
 2555 * Cleaner, more flexible and expressive API.
 2556 
 2557 * More modular structure.
 2558 
 2559 * Better performance and smaller memory footprint due to a more efficient HTTP
 2560   transport based on HttpCore.
 2561 
 2562 * Implementation of cross-cutting HTTP protocol aspects through protocol
 2563   interceptors.
 2564 
 2565 * Improved connection management, better handling of persistent connections,
 2566   support for stateful connections
 2567 
 2568 * Pluggable redirect and authentication handlers.
 2569 
 2570 * Improved support for sending requests via a proxy or a chain of proxies
 2571 
 2572 * More flexible SSL context customization
 2573 
 2574 * Reduced intermediate garbage in the process of generating HTTP requests
 2575   and parsing HTTP responses
 2576 
 2577 
 2578 Important notes
 2579 -------------------
 2580 
 2581 * Future releases of HttpMime module may be binary incompatible with this
 2582   release due to possible API changes in Apache Mime4J. Apache Mime4J is
 2583   still being actively developed and its API is considered unstable.
 2584 
 2585 * HttpClient 4.0 is not fully binary compatible with 4.0 BETA1 release.
 2586   Some protected variables in connection management class have been
 2587   made final in order to help ensure their thread safety:
 2588 
 2589     org.apache.http.conn.BasicEofSensorWatcher#attemptReuse
 2590     org.apache.http.conn.BasicEofSensorWatcher#managedConn
 2591     org.apache.http.impl.conn.DefaultClientConnectionOperator#schemeRegistry
 2592     org.apache.http.impl.conn.DefaultHttpRoutePlanner#schemeRegistry
 2593     org.apache.http.impl.conn.ProxySelectorRoutePlanner#schemeRegistry
 2594     org.apache.http.impl.conn.SingleClientConnManager#alwaysShutDown
 2595     org.apache.http.impl.conn.SingleClientConnManager#connOperator
 2596     org.apache.http.impl.conn.SingleClientConnManager#schemeRegistry
 2597     org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager#connOperator
 2598     org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager#schemeRegistry
 2599 
 2600 
 2601 Bug fixes since 4.0 BETA2 release
 2602 -------------------
 2603 
 2604 * [HTTPCLIENT-861] URIUtils#resolve is now compatible with all examples given
 2605   in RFC 3986.
 2606   Contributed by Johannes Koch <johannes.koch at fit.fraunhofer.de>
 2607 
 2608 * [HTTPCLIENT-860] HttpClient no longer converts redirects of PUT/POST to GET
 2609   for status codes 301, 302, 307, as required by the HTTP spec.
 2610   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2611 
 2612 * [HTTPCLIENT-859] CookieIdentityComparator now takes path attribute into
 2613   consideration when comparing cookies.
 2614   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2615 
 2616 * HttpClient will no longer send expired cookies back to the origin server.
 2617   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2618 
 2619 * [HTTPCLIENT-856] Proxy NTLM authentication no longer fails on a redirect to
 2620   a different host.
 2621   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2622 
 2623 * [HTTPCLIENT-841] Removed automatic connection release using garbage collection
 2624   due to a memory leak.
 2625   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2626 
 2627 * [HTTPCLIENT-853] Fixed bug causing invalid cookie origin port to be selected
 2628   when the target is accessed on the default port and the connection is
 2629   established via a proxy.
 2630   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2631 
 2632 * [HTTPCLIENT-852] Fixed bug causing automatically retried redirects fail with
 2633   CircularRedirectException.
 2634   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2635 
 2636 * Fixed problem with the default HTTP response parser failing to handle garbage
 2637   preceding a valid HTTP response.
 2638   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2639 
 2640 * NonRepeatableRequestExceptions now include the cause that the original
 2641   request failed.
 2642   Contributed by Sam Berlin <sberlin at apache.org>
 2643 
 2644 * [HTTPCLIENT-837] Fixed problem with the wire log skipping zero byte values
 2645   if read one byte at a time.
 2646   Contributed by Kirill Safonov <ksafonov at swiftteams.com>
 2647 
 2648 * [HTTPCLIENT-823] 'http.conn-manager.max-total' parameter can be adjusted
 2649   dynamically. However, the size of existing connection pools per route,
 2650   once allocated, will not be adjusted.
 2651   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2652 
 2653 * [HTTPCLIENT-822] Default socket factories to rethrow SocketTimeoutException
 2654   as ConnectTimeoutException in case of connect failure due to a time out.
 2655   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2656 
 2657 * [HTTPCLIENT-813] Fixed default port resolution. Invalid ports no longer
 2658   get replaced with the default port value.
 2659   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2660 
 2661 Release 4.0 beta 2
 2662 -------------------
 2663 
 2664 BETA2 is a maintenance release, which addresses a number of issues
 2665 discovered since the previous release.
 2666 
 2667 The only significant new feature is an addition of an OSGi compliant
 2668 bundle combining HttpClient and HttpMime jars.
 2669 
 2670 All upstream projects are strongly encouraged to upgrade.
 2671 
 2672 * Fixed NPE in DefaultRequestDirector thrown when retrying a failed
 2673   request over a proxied connection.
 2674   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2675 
 2676 * [HTTPCLIENT-803] Fixed bug in SSL host verifier implementations
 2677   causing the SSL certificate to be rejected as invalid if the connection
 2678   is established using an IP address.
 2679   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2680 
 2681 * [HTTPCLIENT-806] DefaultHttpMethodRetryHandler will no longer retry
 2682   on ConnectExceptions.
 2683   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2684 
 2685 * DigestScheme can use an arbitrary digest algorithm requested by the
 2686   target server (such as SHA) as long as this algorithm is supported by
 2687   the Java runtime.
 2688   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2689 
 2690 * Fixed parsing and validation of RFC2109 compliant Set-Cookie headers
 2691   by the Best-Match cookie spec.
 2692   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2693 
 2694 * Fixed bug that can cause a managed connection to be returned from the
 2695   pool in an inconsistent state.
 2696   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2697 
 2698 
 2699 4.0 Beta 1
 2700 -------------------
 2701 
 2702 BETA1 release brings yet another round of API enhancements and
 2703 improvements in the area of connection management. Among the most notable
 2704 ones is the capability to handle stateful connections such as persistent
 2705 NTLM connections and private key authenticated SSL connections.
 2706 
 2707 This is the first API stable release of HttpClient 4.0. All further
 2708 releases in the 4.0 code line will maintain API compatibility with this
 2709 release.
 2710 
 2711 There has been a number of important bug fixes since ALPHA4. All upstream
 2712 projects are encouraged to upgrade to the latest release.
 2713 
 2714 Please note HttpClient currently provides only limited support for NTLM
 2715 authentication. For details please see NTLM_SUPPORT.txt.
 2716 
 2717 -------------------
 2718 
 2719 Changelog:
 2720 -------------------
 2721 
 2722 * [HTTPCLIENT-790] Protocol interceptors are now correctly invoked when
 2723   executing CONNECT methods.
 2724   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2725 
 2726 * [HTTPCLIENT-668] Do not use static loggers.
 2727   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2728 
 2729 * [HTTPCLIENT-781] Respect Keep-Alive header's timeout value.
 2730   Contributed by Sam Berlin <sberlin at apache.org>
 2731 
 2732 * [HTTPCLIENT-779] Top-level classes (HttpClient, and HttpGet, HttpPut
 2733   and similar HttpMethods) throw fewer checked exceptions.
 2734   Contributed by Sam Berlin <sberlin at apache.org>
 2735 
 2736 * HttpClient will throw an exception if an attempt is made to retry
 2737   a request with a non-repeatable request entity.
 2738   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2739 
 2740 * Fixed request re-generation logic when retrying a failed request.
 2741   Auto-generated headers will no accumulate.
 2742   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2743 
 2744 * [HTTPCLIENT-424] Preemptive authentication no longer limited to BASIC
 2745   scheme only. HttpClient can be customized to authenticate preemptively
 2746   with DIGEST scheme.
 2747   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2748 
 2749 * [HTTPCLIENT-670] Pluggable hostname resolver.
 2750   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2751 
 2752 * [HTTPCLIENT-719] Clone support for HTTP request and cookie objects.
 2753   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2754 
 2755 * [HTTPCLIENT-776] Fixed concurrency issues with AbstractPoolEntry.
 2756   Contributed by Sam Berlin <sberlin at gmail.com>
 2757 
 2758 * Resolved a long standing problem with HttpClient not taking into account
 2759   the user context when pooling / re-using connections. HttpClient now
 2760   correctly handles stateful / user specific connections such as persistent
 2761   NTLM connections and SSL connections with client side authentication.
 2762   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2763 
 2764 * [HTTPCLIENT-773] Improved handling of the 'expires' attribute by the
 2765   'Best Match' cookie spec.
 2766   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2767 
 2768 * Partial NTLM support (requires an external NTLM engine). For details see
 2769   NTLM_SUPPORT.txt
 2770   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2771 
 2772 * Redesigned local execution context management.
 2773   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2774 
 2775 --------------------------------------
 2776 
 2777 Release 4.0 Alpha 4
 2778 -------------------
 2779 
 2780 ALPHA4 marks the completion of the overhaul of the connection management
 2781 code in HttpClient. All known shortcomings of the old HttpClient 3.x
 2782 connection management API have been addressed.
 2783 
 2784 NTLM authentication remains the only missing major feature in the new
 2785 codeline that prevents us from moving awards the API freeze.
 2786 
 2787 There has been a number of important bug fixes since ALPHA3. All upstream
 2788 projects are encouraged to upgrade to the latest release.
 2789 
 2790 -------------------
 2791 
 2792 HttpClient 3.x features that have NOT yet been ported:
 2793 -------------------
 2794 
 2795 * NTLM authentication scheme
 2796 
 2797 -------------------
 2798 
 2799 Changelog:
 2800 -------------------
 2801 
 2802 * [HTTPCLIENT-765] String.toLowerCase() / toUpperCase() should specify
 2803   Locale.ENGLISH
 2804   Contributed by Sebastian Bazley <sebb at apache.org>
 2805 
 2806 * [HTTPCLIENT-769] Do not pool connection marked non-reusable.
 2807   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2808 
 2809 * [HTTPCLIENT-763] Fixed problem with AbstractClientConnAdapter#abortConnection()
 2810   not releasing the connection if called from the main execution thread while
 2811   there is no blocking I/O operation.
 2812   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2813 
 2814 * [HTTPCLIENT-652] Added optional state attribute to managed client connections.
 2815   This enables connection managers to correctly handle stateful connections.
 2816   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2817 
 2818 * [HTTPCLIENT-673] Revised max connections per route configuration
 2819   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2820 
 2821 * [HTTPCLIENT-753] Class Scheme and related classes moved to a separate package
 2822   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2823 
 2824 * [HTTPCLIENT-757] Improved request wrapping in the DefaultClientRequestDirector.
 2825   This also fixed the problem with the default proxy set at the client level
 2826   having no effect.
 2827   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2828 
 2829 * [HTTPCLIENT-734] Request abort will unblock the thread waiting for a connection
 2830   Contributed by Sam Berlin <sberlin at gmail.com>
 2831 
 2832 * [HTTPCLIENT-759] Ensure release of connections back to the connection manager
 2833   on exceptions.
 2834   Contributed by Sam Berlin <sberlin at gmail.com>
 2835 
 2836 * [HTTPCLIENT-758] Fixed the use of generics in AbstractHttpClient
 2837   #removeRequestInterceptorByClass and #removeResponseInterceptorByClass
 2838   Contributed by Johannes Koch <johannes.koch at fit.fraunhofer.de>
 2839 
 2840 * [HTTPCLIENT-749] HttpParams beans
 2841   Contributed by Stojce Dimski <sdmiski at yahoo.it>
 2842 
 2843 * [HTTPCLIENT-755] Workaround for known bugs in java.net.URI.resolve()
 2844   Bug ID: 4708535
 2845   Contributed by Johannes Koch <johannes.koch at fit.fraunhofer.de>
 2846 
 2847 --------------------------------------
 2848 
 2849 Release 4.0 Alpha 3
 2850 -------------------
 2851 
 2852 ALPHA3 release brings another round of API refinements and improvements in
 2853 functionality. As of this release HttpClient requires Java 5 compatible
 2854 runtime environment and takes full advantage of generics and new concurrency
 2855 primitives.
 2856 
 2857 This release also introduces new default cookie policy that selects a cookie
 2858 specification depending on the format of cookies sent by the target host.
 2859 It is no longer necessary to know beforehand what kind of HTTP cookie support
 2860 the target host provides. HttpClient is now able to pick up either a lenient
 2861 or a strict cookie policy depending on the compliance level of the target host.
 2862 
 2863 Another notable improvement is a completely reworked support for multipart
 2864 entities based on Apache mime4j library.
 2865 
 2866 -------------------
 2867 
 2868 HttpClient 3.x features that have NOT yet been ported:
 2869 -------------------
 2870 
 2871 * NTLM authentication scheme
 2872 
 2873 -------------------
 2874 
 2875 Changelog:
 2876 -------------------
 2877 
 2878 * [HTTPCLIENT-742] common interface for HttpRoute and RouteTracker
 2879   Contributed by Roland Weber <rolandw at apache.org>
 2880 
 2881 * [HTTPCLIENT-741] Fixed concurrency issues in AbstractClientConnAdapter.
 2882   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2883 
 2884 * [HTTPCLIENT-726] testcase for spurious wakeups in ThreadSafeClientConnManager
 2885   Contributed by Roland Weber <rolandw at apache.org>
 2886 
 2887 * [HTTPCLIENT-643] Automatic connect fail-over for multi-home remote servers.
 2888   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2889 
 2890 * [HTTPCLIENT-735] unsetting of DEFAULT_PROXY and FORCED_ROUTE in hierarchies
 2891   Contributed by Roland Weber <rolandw at apache.org>
 2892 
 2893 * [HTTPCLIENT-723] route planner based on java.net.ProxySelector
 2894   Contributed by Roland Weber <rolandw at apache.org>
 2895 
 2896 * [HTTPCLIENT-740] don't start connection GC thread in pool constructor
 2897   Contributed by Roland Weber <rolandw at apache.org>
 2898 
 2899 * [HTTPCLIENT-736] route planners use SchemeRegistry instead of ConnManager
 2900   Contributed by Roland Weber <rolandw at apache.org>
 2901 
 2902 * [HTTPCLIENT-730] Fixed rewriting of URIs containing escaped characters
 2903   Contributed by Sam Berlin <sberlin at gmail.com> and
 2904   Oleg Kalnichevski <olegk at apache.org>
 2905 
 2906 * [HTTPCLIENT-667] Added 'Meta' cookie policy that selects a cookie
 2907   specification depending on the format of the cookie(s).
 2908   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2909 
 2910 * [HTTPCLIENT-729] Move HttpRoute and related classes to routing package.
 2911   Contributed by Roland Weber <rolandw at apache.org>
 2912 
 2913 * [HTTPCLIENT-725] Use TimeUnit arguments for timeouts in connection manager.
 2914   Contributed by Roland Weber <rolandw at apache.org>
 2915 
 2916 * [HTTPCLIENT-677] Connection manager no longer uses Thread.interrupt().
 2917   Contributed by Roland Weber <rolandw at apache.org>
 2918 
 2919 * [HTTPCLIENT-716] Allow application-defined routes.
 2920   Contributed by Roland Weber <rolandw at apache.org>
 2921 
 2922 * [HTTPCLIENT-712] Improve HttpRoute API
 2923   Contributed by Roland Weber <rolandw at apache.org>
 2924 
 2925 * [HTTPCLIENT-711] Bad route computed for redirected requests
 2926   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2927 
 2928 * [HTTPCLIENT-715] Remove RoutedRequest from API
 2929   Contributed by Roland Weber <rolandw at apache.org>
 2930 
 2931 * [HTTPCLIENT-705] Fixed incorrect handling of URIs with null path component.
 2932   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2933 
 2934 * [HTTPCLIENT-688] HttpOptions#getAllowedMethods can now handle multiple
 2935   Allow headers.
 2936   Contributed by Andrea Selva <selva.andre at gmail.com>
 2937 
 2938 --------------------------------------
 2939 
 2940 Release 4.0 Alpha 2
 2941 -------------------
 2942 
 2943 ALPHA2 release is another milestone in the redesign of HttpClient. It includes
 2944 a number of improvements since ALPHA1, among which are improved connection
 2945 pooling, support for proxy chains, redesigned HTTP state and authentication
 2946 credentials management API, improved RFC 2965 cookie specification.
 2947 
 2948 -------------------
 2949 
 2950 HttpClient 3.x features that have NOT yet been ported
 2951 -------------------
 2952 * NTLM authentication scheme
 2953 
 2954 * Support for multipart MIME coded entities
 2955 
 2956 -------------------
 2957 
 2958 Changelog
 2959 -------------------
 2960 
 2961 * [HTTPCLIENT-698] Resolve non-absolute redirect URIs relative to
 2962   the request URI
 2963   Contributed by Johannes Koch <johannes.koch at fit.fraunhofer.de>
 2964 
 2965 * [HTTPCLIENT-697] Throw a more intelligible exception when connection
 2966   to a remote host cannot be established.
 2967   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2968 
 2969 * [HTTPCLIENT-689] Caching of SimpleDateFormat in DateUtils
 2970   Contributed by Daniel Müller <strider at digitalstrider.com>
 2971 
 2972 * [HTTPCLIENT-689] stackable parameters in AbstractHttpClient
 2973   Contributed by Roland Weber <rolandw at apache.org>
 2974 
 2975 * [HTTPCLIENT-477] Use distinct instances of the authentication handler
 2976   interface for authentication with target and proxy hosts
 2977   Contributed by Oleg Kalnichevski <olegk at apache.org>
 2978 
 2979 * [HTTPCLIENT-690] ManagedClientConnection provides access to SSLSession
 2980   Contributed by Roland Weber <rolandw at apache.org>
 2981 
 2982 * [HTTPCLIENT-692] ClientConnectionManager throws InterruptedException
 2983   Contributed by Roland Weber <rolandw at apache.org>
 2984 
 2985 * [HTTPCORE-116] moved parameter names to interfaces
 2986   Contributed by Roland Weber <rolandw at apache.org>
 2987 
 2988 * [HTTPCLIENT-649] support for proxy chains in HttpConn
 2989   Contributed by Roland Weber <rolandw at apache.org>
 2990 
 2991 * [HTTPCLIENT-636] refactor ThreadSafeClientConnManager in separate package
 2992   Contributed by Roland Weber <rolandw at apache.org>
 2993 
 2994 * [HTTPCLIENT-669] new HttpRoutePlanner interface and implementation
 2995   Contributed by Andrea Selva <selva.andre at gmail.com>
 2996 
 2997 * [HTTPCLIENT-653] detached connection wrapper no longer prevents
 2998   garbage collection of ThreadSafeClientConnManager
 2999   Contributed by Roland Weber <rolandw at apache.org>
 3000 
 3001 * [HTTPCLIENT-674] use org.apache.http.util.VersionInfo instead of a local one
 3002   Contributed by Roland Weber <rolandw at apache.org>
 3003 
 3004 * [HTTPCLIENT-666] Replaced HttpState with CredentialsProvier and CookieStore interfaces
 3005   Contributed by Oleg Kalnichevski <olegk at apache.org>
 3006 
 3007 * [HTTPCORE-100] revised HttpContext hierarchy
 3008   Contributed by Roland Weber <rolandw at apache.org>
 3009 
 3010 * [HTTPCLIENT-618] eliminate class HostConfiguration
 3011   Contributed by Roland Weber <rolandw at apache.org>
 3012 
 3013 * [HTTPCLIENT-672] re-sync with API changes in core alpha6-SNAPSHOT
 3014   Contributed by Roland Weber <rolandw at apache.org>
 3015 
 3016 --------------------------------------
 3017 
 3018 Release 4.0 Alpha 1
 3019 -------------------
 3020 
 3021 HttpClient 4.0 represents a complete, ground-up redesign and almost a complete
 3022 rewrite of the HttpClient 3.x codeline. This release finally addresses several
 3023 design flaws that existed since the 1.0 release and could not be fixed without
 3024 a major code overhaul and breaking API compatibility.
 3025 
 3026 The HttpClient 4.0 API is still very experimental and is bound to change
 3027 during the course of the ALPHA development phase. Several important features
 3028 have not yet been ported to the new API.
 3029 
 3030 Architectural changes
 3031 ---------------------
 3032 
 3033 * Redesign of the HttpClient internals addressing all known
 3034   major architectural shortcomings of the 3.x codeline
 3035 
 3036 * Cleaner, more flexible and expressive API
 3037 
 3038 * Better performance and smaller memory footprint due to a more
 3039   efficient HTTP transport based on HttpCore. HttpClient 4.0 is
 3040   expected to be 10% to 25% faster than HttpClient 3.x codeline
 3041 
 3042 * More modular structure
 3043 
 3044 * Pluggable redirect and authentication handlers
 3045 
 3046 * Support for protocol incerceptors
 3047 
 3048 * Improved connection management
 3049 
 3050 * Improved support for sending requests via a proxy or a chain of
 3051   proxies
 3052 
 3053 * Improved handling redirects of entity enclosing requests
 3054 
 3055 * More flexible SSL context customization
 3056 
 3057 * Reduced intermediate garbage in the process of
 3058   generating HTTP requests and parsing HTTP responses
 3059 
 3060 -------------------
 3061 
 3062 HttpClient 3.x features that have NOT yet been ported
 3063 -------------------
 3064 * NTLM authentication scheme
 3065 
 3066 * RFC2965 cookie policy (Cookie2)
 3067 
 3068 * Support for multipart MIME coded entities
 3069 
 3070 -------------------
 3071 
 3072 Changelog
 3073 -------------------
 3074 
 3075 The following is a list of contributions tracked in JIRA.
 3076 Note that this is not a complete list of contributions or changes.
 3077 Since the API was redesigned completely, tracking everything outside
 3078 of the source code repository would have been too burdensome.
 3079 
 3080 * [HTTPCLIENT-655] User-Agent string no longer violates RFC
 3081   Contributed by Oleg Kalnichevski <olegk at apache.org>
 3082 
 3083 * [HTTPCLIENT-541] Virtual host API redesign
 3084   Contributed by Oleg Kalnichevski <olegk at apache.org>
 3085 
 3086 * [HTTPCLIENT-614] Allow for different strategies when checking
 3087   CN of x509 certificates
 3088   Contributed by Julius Davies <juliusdavies at gmail.com>
 3089 
 3090 * [HTTPCLIENT-136] Fixed inadequate proxy support
 3091   Long standing architectural problem. Issue opened on 19/Dec/2002.
 3092   Contributed by Oleg Kalnichevski <olegk at apache.org>
 3093 
 3094 * [HTTPCLIENT-63] Support for pluggable redirect and authentication handlers
 3095   Long standing architectural problem. Issue opened on 15/Jul/2002.
 3096   Contributed by Oleg Kalnichevski <olegk at apache.org>
 3097 
 3098 * [HTTPCLIENT-245] Fixed redirect handling. HttpClient can now automatically
 3099   handle redirects of entity enclosing requests.
 3100   Long standing architectural problem. Issue opened on 14/Jul/2003.
 3101   Contributed by Oleg Kalnichevski <olegk at apache.org>
 3102 
 3103 * [HTTPCLIENT-613] HTTPS connections now verify CN of x509 certificates
 3104   Contributed by Julius Davies <juliusdavies at gmail.com>
 3105 
 3106 * [HTTPCLIENT-497] Wire/header logger names consistent with class loggers
 3107   Contributed by Oleg Kalnichevski <olegk at apache.org>
 3108 
 3109 * [HTTPCLIENT-484] AuthSSLProtocolSocketFactory in the main distribution
 3110   Contributed by Oleg Kalnichevski <olegk at apache.org>
 3111 
 3112 * [HTTPCLIENT-589] Do not consume the remaining response content if
 3113   the connection is to be closed
 3114   Contributed by Roland Weber <rolandw at apache.org>
 3115 
 3116 * [HTTPCLIENT-475] Support for unconnected sockets. HTTP requests can now be
 3117   aborted while network socket is still being connected.
 3118   Contributed by Roland Weber <rolandw at apache.org>
 3119