"Fossies" - the Fresh Open Source Software Archive

Member "httpcomponents-client-5.0.1/RELEASE_NOTES.txt" (8 Jun 2020, 115282 Bytes) of package /linux/www/httpcomponents-client-5.0.1-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. For more information about "RELEASE_NOTES.txt" see the Fossies "Dox" file reference documentation and the latest Fossies "Diffs" side-by-side code changes report: 5.0_vs_5.0.1.

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