Return-Path: X-Original-To: apmail-hc-commits-archive@www.apache.org Delivered-To: apmail-hc-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 858D5172F1 for ; Sat, 14 Mar 2015 16:47:29 +0000 (UTC) Received: (qmail 12831 invoked by uid 500); 14 Mar 2015 16:47:29 -0000 Delivered-To: apmail-hc-commits-archive@hc.apache.org Received: (qmail 12789 invoked by uid 500); 14 Mar 2015 16:47:29 -0000 Mailing-List: contact commits-help@hc.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "HttpComponents Project" Delivered-To: mailing list commits@hc.apache.org Received: (qmail 12780 invoked by uid 99); 14 Mar 2015 16:47:29 -0000 Received: from eris.apache.org (HELO hades.apache.org) (140.211.11.105) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 14 Mar 2015 16:47:29 +0000 Received: from hades.apache.org (localhost [127.0.0.1]) by hades.apache.org (ASF Mail Server at hades.apache.org) with ESMTP id 168BBAC03B5 for ; Sat, 14 Mar 2015 16:47:29 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r8284 - /dev/httpcomponents/httpcore-4.4.1-RC1/ Date: Sat, 14 Mar 2015 16:47:28 -0000 To: commits@hc.apache.org From: olegk@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20150314164729.168BBAC03B5@hades.apache.org> Author: olegk Date: Sat Mar 14 16:47:28 2015 New Revision: 8284 Log: HttpCore 4.4.1 RC1 dist Added: dev/httpcomponents/httpcore-4.4.1-RC1/ dev/httpcomponents/httpcore-4.4.1-RC1/RELEASE_NOTES-4.4.x.txt (with props) dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-bin.tar.gz (with props) dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-bin.tar.gz.asc dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-bin.tar.gz.md5 dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-bin.zip (with props) dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-bin.zip.asc dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-bin.zip.md5 dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-osgi-bin.tar.gz (with props) dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-osgi-bin.tar.gz.asc dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-osgi-bin.tar.gz.md5 dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-osgi-bin.zip (with props) dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-osgi-bin.zip.asc dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-osgi-bin.zip.md5 dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-src.tar.gz (with props) dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-src.tar.gz.asc dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-src.tar.gz.md5 dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-src.zip (with props) dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-src.zip.asc dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-src.zip.md5 Added: dev/httpcomponents/httpcore-4.4.1-RC1/RELEASE_NOTES-4.4.x.txt ============================================================================== --- dev/httpcomponents/httpcore-4.4.1-RC1/RELEASE_NOTES-4.4.x.txt (added) +++ dev/httpcomponents/httpcore-4.4.1-RC1/RELEASE_NOTES-4.4.x.txt Sat Mar 14 16:47:28 2015 @@ -0,0 +1,1376 @@ +Release 4.4.1 +------------------- + +This maintenance release fixes a number of minor bugs found since 4.4. + +Please note that as of 4.4 HttpCore requires Java 1.6 or newer. + + +Changelog +------------------- + +* [HTTPCORE-396]: PrivateKeyStrategy does not work with NIO SSL. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-395]: VersionInfo#getUserAgent reports incorrect Java version. + Contributed by Michael Osipov + +* Non-blocking connection should not trigger end-of-stream callback as long as there is still + data in the session input buffer. This can cause a series of short pipelined requests to + fail prematurely in case of an unexpected connection termination by the opposite endpoint. + Contributed by Oleg Kalnichevski + + +Release 4.4 +----------------- + +This is the first stable (GA) release of HttpCore 4.4. Notable features included in +the 4.4 series are: + +* Support for pipelined request processing on the server side + +* Support for pipelined request execution on the client side + +* Simplified bootstrapping of blocking and non-blocking (NIO) HTTP server implementations + +* Inclusion of SSL context initialization utilities from HttpClient + +Please note that as of 4.4 HttpCore requires Java 1.6 or newer. + + +Changelog +------------------- + +* Performance optimizations + Contributed by Dmitry Potapov + +* Update Apache Commons Logging version from 1.1.3 to 1.2. + Contributed by Gary Gregory + + + + +Release 4.4-BETA1 +------------------- + +This is the first BETA release from 4.4 release series. Notable features included in +the 4.4 series are: + +* Support for pipelined request processing on the server side + +* Support for pipelined request execution on the client side + +* Simplified bootstrapping of blocking and non-blocking (NIO) HTTP server implementations + +* Inclusion of SSL context initialization utilities from HttpClient + +* New HTTP element tokenizer implementation + + +Please note that as of 4.4 HttpCore requires Java 1.6 or newer. + + + + +Release 4.4-ALPHA1 +------------------- + +This is the first release from the 4.4.x development branch. The most notable features included in +this release are: + +* Support for pipelined request processing on the server side + +* Support for pipelined request execution on the client side + +* Simplified bootstrapping of blocking and non-blocking (NIO) HTTP server implementations + +This release also includes all fixes from the stable 4.2.x release branch. + + +Changelog +------------------- + +* [HTTPASYNC-77] system resources are not correctly deallocated if I/O reactor is shut down + while still inactive (not started) + Contributed by Oleg Kalnichevski + +* [HTTPCORE-377] Allow zero SO_LINGER (immediate abortive close). + Contributed by Dmitry Potapov + +* [HTTPCORE-376] AbstractNIOConnPool#requestCancelled() should not process pending requests + wnen being shut down. + Contributed by Dmitry Potapov + +* [HTTPASYNC-69]: async request handler is closed by HttpAsyncRequestExecutor#closed + if the underlying connection is found to be in an inconsistent state. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-372] Blocking and non-blocking chunk decoders to throw an I/O exception if data stream + is terminated without a closing chunk. + Contributed by Dmitry Potapov + +* [HTTPCORE-368] Customizable buffer management strategies for SSLIOSession. + Contributed by offbynull + +* [HTTPCORE-358] Added I/O reactor listener backlog parameter. + Contributed by Dmitry Potapov + +* [HTTPCORE-357] Avoid DNS lookups in SSLIOSession. + Contributed by Oleg Kalnichevski + +* Update JUnit to version 4.11 from 4.9 + Contributed by Gary Gregory + + + +Release 4.3.2 +------------------- + +This maintenance release fixes a number of bugs and regressions found since 4.3.1, mostly in the +NIO transport components. All users of HttpCore 4.3 are advised to upgrade. + +Changelog +------------------- + +* [HTTPCORE-371] Support for SSL re-negotiation with NIO. + Contributed by Asankha Perera + +* [HTTPCORE-373] Out of sequence HTTP response causes NPE in HttpAsyncRequestExecutor. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-370] Race condition if connection request succeeds and times out at the same time. + Contributed by Oleg Kalnichevski + +* (Regression) Fixed synchronization issue in blocking and non-blocking connection pool + implementations caused by HTTPCORE-362 + Contributed by Oleg Kalnichevski + + +Release 4.3.1 +------------------- + +This maintenance release fixes a number of bugs and regressions found since 4.3, mostly in the +NIO transport components. All users of HttpCore 4.3 are advised to upgrade. + +Changelog +------------------- + +* [HTTPCORE-367] (Regression) Non-blocking connections can enter a tight loop while waiting + for a chunk header split across multiple TCP frames. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-366] Non-blocking SSLIOSession can enter an infinite loop if the underlying + channel receives incoming data simultaneously with inactivity timeout. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-364] IOSessionImpl.getLocalAddress() (etc.) creates unnecessary copy of channel + +* DefaultConnectingIOReactor / DefaultListeningIOReactor do not correctly apply some initial + socket settings. + Contributed by Andreas Veithen + +* [HTTPCORE-357] Avoid DNS lookups in SSLIOSessions in server mode. + Contributed by Isaac Cruz Ballesteros + +* [HTTPCORE-362] Purge pool per route map after closing out expired or idle connections with + #closeExpired and #closeIdle methods. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-361] Reduced intermediate garbage in HeaderGroup#getFirstHeader() + Contributed by Oleg Kalnichevski + +* [HTTPCORE-355] HttpAsyncRequestExecutor fails when its handler is not ready to generate + a request. + Contributed by jd + +* [HTTPCORE-354] BasicConnFactory don't use SocketConfig#isSoKeepAlive. + Contributed by David Ignjic + +* [HTTPCORE-347] (Regression) HttpResponse#setStatusCode() does not update reason phrase. + Contributed by Oleg Kalnichevski + + + +Release 4.3 +------------------- + +This is the first stable (GA) release of HttpCore 4.3. The most notable features in the 4.3 +branch are: + +* Deprecation of preference and configuration API based on HttpParams interface in favor of + constructor injection and plain configuration objects. + +* Reliance on object immutability instead of access synchronization for thread safety. + Several old classes whose instances can be shared by multiple request exchanges have + been replaced by immutable equivalents. + +The 4.3 branch also contains performance optimizations such as reduced TCP packet fragmentation +and more efficient lease / release operations for pools of persistent connections on the client +side. + +This release also includes all fixes from the 4.2.x release branch. + +Users of HttpCore 4.2 are encouraged to upgrade. + + +Changelog +------------------- + +* [HTTPCORE-343] AbstractNIOConnPool to fire request callbacks outside the pool lock. + This makes it possible to re-enter pool methods from a callback event. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-340] AbstractNIOConnPool to support lease timeout distinct from connect timeout. + Contributed by Ignat Alexeyenko + +* Blocking connections do not clean session input buffer when closed (input data from a read + operation may still remain in the buffer if the connection is re-opened). + Contributed by Oleg Kalnichevski + + + +Release 4.2.5 +------------------- + +This maintenance release fixes a number of bugs found in NIO components since 4.2.4. We advise +users of HttpCore NIO of all versions to upgrade. + +This is likely to be the last release in the 4.2.x branch. + + +Changelog +------------------- + +* [HTTPCORE-345] EntityAsyncContentProducer fails to release resources allocated by the underlying + entity when #produceContent is never invoked. + Contributed by Tad Whitenight + +* Non-blocking connection pool to avoid scanning the entire queue of pending connection requests + on each connection lease / release operation (under heavy load the request queue can contain + a significant number of pending requests, a full linear scan of which can cause massive + performance degradation). + Contributed by Oleg Kalnichevski + +* Use bulk ByteBuffer#put method instead of single byte ByteBuffer#put + Contributed by Oleg Kalnichevski + +* [HTTPCORE-336] Unhandled CancelledKeyException leads to a shutdown of the underlying IOReactor. + Contributed by Thomas Dudek + + + +Release 4.3-BETA2 +------------------- + +This is the second BETA release from the 4.3.x release branch. This release addresses performance +issues in the non-blocking connection pool implementation and also includes a number of performance +improvements in the low level NIO based transport components. + +Changelog +------------------- + +* [HTTPCORE-300] ContentType to provide support for custom parameters. + Contributed by Oleg Kalnichevski + +* Non-blocking connection pool to avoid scanning the entire queue of pending connection requests + on each connection lease / release operation (under heavy load the request queue can contain + a significant number of pending requests, a full linear scan of which can cause massive + performance degradation). + Contributed by Oleg Kalnichevski + +* Basic connection pool implementations to perform default port resolution for HTTP and HTTPS + schemes. + Contributed by Oleg Kalnichevski + +* Use bulk ByteBuffer#put method instead of single byte ByteBuffer#put + Contributed by Oleg Kalnichevski + +* [HTTPCORE-336] Unhandled CancelledKeyException leads to a shutdown of the underlying IOReactor. + Contributed by Thomas Dudek + + +Release 4.3-BETA1 +------------------- + +This is the first BETA release from the 4.3.x release branch. The main theme of the 4.3 release +series is streamlining of component configuration and deprecation of the old configuration +API based on HttpParams in favor of constructor-based dependency injection and plain objects +for configuration parameters. + +This release also includes performance optimizations intended to reduce TCP packet fragmentation +when writing out HTTP messages both in blocking and non-blocking I/O modes, which should result +in up to 20% higher throughput for short entity enclosing messages. + +This release also includes all fixes from the stable 4.2.x release branch. + + +Changelog +------------------- + +* Reduced TCP packet fragmentation when writing out message content with blocking and + non-blocking connections. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-330] Clarify InputStreamEntity length constructor argument. + Contributed by John McCarthy + +* [HTTPCORE-323] Undocumented UnsupportedCharsetException in ContentType#getOrDefault. + Contributed by Gary D. Gregory + + + +Release 4.2.4 +------------------- + +This maintenance release fixes a number of bugs found in NIO components since 4.2.3. We advise +users of HttpCore NIO of all versions to upgrade. + +Changelog +------------------- + +* [HTTPCORE-334] https request to a non-responsive but alive port over a non-blocking connection + results in a busy loop in one of I/O dispatch threads. + Contributed by Scott Stanton + +* [HTTPCORE-331] BasicFuture no longer executes notification callbacks inside a synchronized block. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-319] Non-blocking SSLIOSession can fail to shut down correctly when the underlying + connection gets terminated abnormally by the opposite endpoint in case there is a truncated or + corrupted encrypted content in the input buffer and there is still data in the output buffer + that needs to be flushed out (most likely to occur with POST or PUT requests). + Contributed by Oleg Kalnichevski + + + +Release 4.3-ALPHA1 +------------------- + +This is the first release from the 4.3.x release branch. The main focus of the 4.3 release +series is streamlining of component configuration and deprecation of the old configuration +API based on HttpParams in favor of constructor based dependency injection and plain objects +for configuration parameters. + +We are kindly asking all upstream projects to review API changes and help us improve +the APIs by providing feedback and sharing ideas on dev@hc.apache.org. + +This release also includes all fixes from the stable 4.2.x release branch. + + + +Release 4.2.3 +------------------- + +This maintenance release fixes a number of bugs and found since 4.2.2 including +a major bug in the NIO module that can cause an infinite loop in SSL sessions under special +circumstances when the remote peer terminates the session in the middle of SSL handshake. +Please note this issue does not affect blocking I/O components used by HttpClient. + +We advise users of HttpCore NIO of all versions to upgrade. + +Changelog +------------------- + +* [HTTPCORE-319, HTTPCORE-322] Non-blocking SSLIOSession can enter an infinite loop under + special circumstances when the remote peer terminates the session in the middle of SSL handshake. + Contributed by Paul Donohue and + Oleg Kalnichevski + +* [HTTPCORE-316] HeaderGroup#clone removes headers from the original object. + Contributed by Markus Thies + +* [HTTPCORE-315] AbstractNIOConnPool fails to correctly deallocate connection if it is immediately + released from the session request callback causing a resource leak. + Contributed by Scott Stanton + +* [HTTPCORE-313] ContentType#parse now ignores empty and blank charset attributes. + HttpEntityUtils#toString now throws checked I/O exception if it encounters an unsupported + charset. + Contributed by Oleg Kalnichevski + + +Release 4.2.2 +------------------- + +This is a maintenance release that fixes a number of bugs and regressions found since 4.2.1 +including a major bug in the NIO module causing incorrect handling of outgoing Content-Length +delimited messages larger than 2GB. + +Users of HttpCore 4.2 are advised to upgrade. + +Changelog +------------------- + +* [HTTPCORE-312] NIO length delimited content encoder incorrectly handles messages larger than 2GB. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-310] Fixed regression in DefaultConnectionReuseStrategy causing it to incorrectly + flag connections as non-reusable after a 204, 205 or 304 response. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-309] Fixed regression in HttpAsyncRequestExecutor causing it to handle 204, 205 + and 304 responses incorrectly by returning a message with an enclosed content body. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-306] I/O reactor TCP_NODELAY parameter now defaults to true. + Contributed by Oleg Kalnichevski + +* [HTTPASYNC-21] request execution handler does not get closed in case of a premature HTTP + exchange termination. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-303] ContentType made Serializable. + Contributed by Oleg Kalnichevski + + + +Release 4.2.1 +------------------- + +This is a maintenance release that fixes a non-critical number of bugs found since 4.2. +Users of HttpCore 4.2 are encouraged to upgrade. + +Changelog +------------------- + +* [HTTPCORE-299] ContentType should rely on Charset#name() instead of Charset#toString() + for building header value. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-263] Under rare circumstances incorrectly delineated or garbled HTTP message + can cause an IndexOutOfBoundsException in AbstractSessionInputBuffer#readLine() + Contributed by Michael Pujos + +* Made connection pools use FIFO algorithm instead of LIFO when leasing / releasing persistent + connections. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-298] Fixed non-blocking SSLIOSession state can getting out of sync with the underlying + IOSession in case the I/O session is terminated by the I/O reactor rather than by the protocol + handler. + Contributed by Sandeep Tamhankar + +* Fixed NPE in StringEntity constructor thrown if ContentType#getCharset is null. + Contributed by Oleg Kalnichevski + + +Release 4.2 +------------------- + +This is the first stable (GA) release of HttpCore 4.2. The most notable features included in this +release are connection pool components for blocking and non-blocking HTTP connections and new +asynchronous client and server side protocol handlers. + +New protocol handling API used in conjunction with connection pooling components is expected to +make development of asynchronous HTTP client agents and HTTP proxies easier and less error prone. + +Connection pool components are based on mature code migrated from HttpClient and HttpAsyncClient +modules but have a slightly different API that makes a better use of Java standard concurrent +primitives. + +Changelog +------------------- + +* Fixed HttpAsyncRequestExecutor incorrect execution of message exchanges that span across multiple + hosts (for instance, in case of a request redirect). + Contributed by Oleg Kalnichevski + +* AbstractHttpClientConnection#isResponseAvailable method now catches SocketTimeoutException + and returns false. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-296] Server side connections (both blocking and non-blocking) can now handle entity + enclosing requests without Content-Length and Transfer-Encoding headers. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-295] [HTTPCORE-288] Provided direct access to the underlying socket of non-blocking + HTTP connection to allow modification of socket level settings such as TCP_NODELAY, SO_KEEPALIVE, + TrafficClass, etc. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-289] HttpAsyncService fails to invoke Cancellable#cancel() when the ongoing HTTP + exchange is aborted by the client. + Contributed by Oleg Kalnichevski + +Incompatible changes +-------------------- +[Compared to release version 4.1.4] + +The following methods have been deprecated for some time now and have been deleted: + +org.apache.http.impl.SocketHttpServerConnection#createHttpDataReceiver(Socket, int, HttpParams) +org.apache.http.impl.SocketHttpServerConnection#createHttpDataTransmitter(Socket, int, HttpParams) +org.apache.http.protocol.HttpRequestHandlerRegistry#matchUriRequestPattern(String, String) + +The following classes have been deprecated for some while now and have been deleted: + +org.apache.http.nio.entity.ByteArrayNIOEntity +org.apache.http.nio.entity.FileNIOEntity +org.apache.http.nio.entity.HttpNIOEntity +org.apache.http.nio.entity.StringNIOEntity +org.apache.http.nio.protocol.NHttpClientHandlerBase +org.apache.http.nio.protocol.NHttpServiceHandlerBase + +Release 4.2-BETA1 +------------------- + +This is the first BETA release of HttpCore 4.2. This release comes with completely redesigned +and rewritten asynchronous protocol handlers. New protocol handling API used in conjunction with +connection pooling components is expected to make development of asynchronous HTTP client agents +and HTTP proxies easier and less error prone. + +Sample application shipped with the release include an example of an HTTP file server capable of +direct channel (zero copy) data transfer and an example of a non-blocking, fully streaming reverse +proxy. + +This release also incorporates bug fixes from the stable 4.1.x branch and includes an updated +HttpCore tutorial. + + + +Release 4.1.4 +------------------- + +This is a maintenance release that fixes a number of bugs found since 4.1.3. It is also likely +to be the last release in the 4.1.x branch. + +Changelog +------------------- + +* [HTTPCORE-286] Canceled I/O session can cause an IllegalStateException in BaseIOReactor#validate + leading to an abnormal termination of the I/O reactor. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-257] Fixed incorrect results produced by DefaultConnectionReuseStrategy when handling + response messages whose content entity has been decoded or modified by a protocol interceptor. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-283] Workaround for a bug causing termination of the I/O reactor in case of exception + thrown by NHttpServiceHandler#requestReceived or NHttpClientHandler#responseReceived + methods. A more comprehensive fix for the bug applied to the 4.2 branch. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-281] ResponseConnControl protocol interceptor does not correctly populate connection + persistence control headers when sending a HTTP/1.1 response message in response to a HTTP/1.0 + request message. + Contributed by William R. Speirs + +* [HTTPCORE-282] The default value of the internal event mask of newly created non-blocking I/O + is not correctly initialized, which causes the READ interest bit to get cleared in the interest + op queuing mode unless the event mask is explicitly reset. + Contributed by Sadeep Jayasumana and Oleg Kalnichevski + +* [HTTPCORE-268] Handle runtime exceptions thrown by SSLEngine. + Contributed by Oleg Kalnichevski + + + +Release 4.2-ALPHA2 +------------------- + +This is the second ALPHA release of HttpCore 4.2. This release comes with completely redesigned +and rewritten asynchronous protocol handlers. New protocol handling API used in conjunction with +connection pooling components introduced in the previous ALPHA release is expected to make +development of asynchronous HTTP client agents and HTTP proxies easier and less error prone. + +Sample application shipped with the release include an example of an HTTP file server capable of +direct channel (zero copy) data transfer and an example of a non-blocking, fully streaming reverse +proxy. + +We are kindly asking existing and prospective users of HttpCore to review and try out the +new protocol handlers and give us feedback while the 4.2 API is still not final. If no major flaws +are discovered the 4.2 API is expected to be frozen with the next BETA release. + +Please note that new features included in this release are still considered experimental and +their API may change in the future ALPHA releases. This release also marks the end of support for +Java 1.3. As of this release HttpCore requires Java 1.5 for all its components. Several classes and +methods deprecated between versions 4.0-beta1 and 4.0 GA (more than two years ago) have been +removed in this release. + +Changelog +------------------- + +* [HTTPCORE-270] Fixed IllegalStateException in AbstractSessionOutputBuffer and + AbstractSessionInputBuffer. + Contributed by William R. Speirs + +* [HTTPCORE-269] Connection pools incorrectly handle lease requests when the max limit for the given + route has been exceeded and all connections in the route pool are stateful. + Contributed by Oleg Kalnichevski + + +Release 4.2-ALPHA1 +------------------- + +This is the first ALPHA release of 4.2. The most notable feature included in this release is +support for connection pools of blocking and non-blocking HTTP connections. Connection pool +components are based on mature code migrated from HttpClient and HttpAsyncClient modules but have +a slightly different API that makes a better use of Java standard concurrent primitives. + +Support for connection pools in HttpCore is expected to make development of client and proxy HTTP +services easier and less error prone. + +Please note that new features included in this release are still considered experimental and +their API may change in the future ALPHA releases. This release also marks the end of support for +Java 1.3. As of this release HttpCore requires Java 1.5 for all its components. Several classes and +methods deprecated between versions 4.0-beta1 and 4.0 GA (more than two years ago) have been +removed in this release. + +Changelog +------------------- + +* [HTTPCORE-268] Handle runtime exceptions thrown by SSLEngine. + Contributed by Oleg Kalnichevski + +Release 4.1.3 +------------------- + +This is an emergency release that fixes a severe regression in the non-blocking SSL I/O code +introduced in release 4.1.2. + +* [HTTPCORE-266] SSLIOSession does not correctly terminate if the opposite end shuts down connection + without sending a 'close notify' message causing an infinite loop in the I/O dispatch thread. + Contributed by Oleg Kalnichevski + +Release 4.1.2 +------------------- + +This is a patch release that fixes a number of bugs found in the previous version. + +Please note that several classes and methods deprecated between versions 4.0-beta1 and 4.0 GA +(more than two years ago) will also be removed in the 4.2 branch. + +Users of 4.0.x versions are advised to upgrade and replace deprecated API calls following +recommendations in javadocs. + +* [HTTPCORE-261] IOSession#setSocketTimeout() method does not reset the timeout count. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-260] Non-blocking SSL I/O session can terminate prematurely causing message body + truncation when message content is chunk coded and the connection is closed on the opposite end. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-257] Fixed incorrect results produced by DefaultConnectionReuseStrategy when handling + response messages whose content entity has been decoded or modified by a protocol interceptor. + Contributed by Oleg Kalnichevski + +Release 4.1.1 +------------------- + +This is a patch release that fixes a number of non-critical issues found since release 4.1. + +This release marks the end of support for Java 1.3. As of release 4.2 HttpCore will require +Java 1.5 for all its components. + +Please note that several classes and methods deprecated between versions 4.0-beta1 and 4.0 GA +(more than two years ago) will also be removed in the 4.2 branch. + +Users of 4.0.x versions are advised to upgrade and replace deprecated API calls following +recommendations in javadocs. + +* In case of an unexpected end of stream condition (the peer closed connection prematurely) + truncated Content-Length delimited message bodies will cause an I/O exception. Application + can still choose to catch and ignore ConnectionClosedException in order to accept partial + message content. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-255]: Fixed resource management in InputStreamEntity#writeTo() + Contributed by Oleg Kalnichevski + +* [HTTPCORE-254]: Erratic results from metrics (sebb) + +* [HTTPCORE-242]: Fixed NPE in AsyncNHttpClientHandler caused by an early response to an + entity enclosing request. + Contributed by Oleg Kalnichevski + + +Release 4.1 +------------------- + +This is the first stable (GA) release of HttpCore 4.1. This release provides a compatibility mode +with JREs that have a naive (broken) implementation of SelectionKey API and also improves +compatibility with the Google Android platform. There has also been a number of performance +related improvements and bug fixes in both blocking and non-blocking components. + +Changelog +------------------- + +* [HTTPCORE-240]: DefaultConnectingIOReactor leaks a socket descriptor if the session request fails. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-239]: The ChunkEncoder could request for a negative buffer limit causing an + IllegalArgumentException. + Contributed by Asankha Perera + +* [HTTPCORE-236]: SSLIOSession#isAppInputReady() does not check the status of the session input + buffer. + Contributed by Dmitry Lukyanov + +* [HTTPCORE-233]: EntityUtils#toString() and EntityUtils#toByteArray() to return null if + HttpEntity#getContent() is null + Contributed by Oleg Kalnichevski + +* [HTTPCORE-231] Fixed incorrect handling of HTTP entities by non-blocking LengthDelimitedDecoder + when the Content-Length value is larger than Integer.MAX_VALUE. + Contributed by Oleg Kalnichevski + +Release 4.1-BETA2 +------------------- + +This is the second BETA release of HttpCore 4.1. This is mainly a bug fix release that addresses +a number of non-critical bugs. + +The most significant change in this release is deprecation of the HttpEntity#consumeContent() +method and streamlining of connection management and resource deallocation by HTTP entities. +Please refer to the javadocs for details. + +* [HTTPCORE-229] AbstractSessionInputBuffer#readLine(CharArrayBuffer) returns incorrect + number of characters read by the method when using non-standard HTTP element charset. + Contributed by Oleg Kalnichevski + +* Non-blocking connections can trigger #responseReady / #requestReady events by mistake + when the underlying session is already closed. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-228] Fixed NPE in AsyncNHttpServiceHandler caused by entity enclosing requests + if no matching request handler can be found. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-227] Fixed incorrect request / response count by non-blocking connections. + Contributed by Harold Lee + +* [HTTPCORE-226] Improved compatibility of NIO components with Google Android. + Contributed by Oleg Kalnichevski + +* ByteArrayBuffer, CharArrayBuffer, BasicHeader, BufferedHeader, HeaderGroup, BasicRequestLine, + BasicStatusLine made Serializable. + Contributed by Oleg Kalnichevski + +Release 4.1-BETA1 +------------------- + +This is the first BETA release of HttpCore 4.1. This release finalizes the API introduced in the +4.1 development branch. It also fixes a number of bugs discovered since the previous release and +delivers a number of performance optimizations in the blocking HTTP transport components. +The blocking HTTP transport is expected to be 5% to 10% faster compared to previous releases. + +* [HTTPCORE-222] Fixed Import-Package in the OSGi META-INF + Contributed by Willem Jiang + +* [HTTPCORE-177] Reduce intermediate data buffering by reading large chunks of data directly from + the underlying socket stream. This results in improved performance of blocking read operations. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-220] IdentityDecoder fails to detect end of stream when using file channels. + Contributed by Asankha C. Perera + +* [HTTPCORE-218] ChunkEncoder#write method no longer returns incorrect value if + the data to write is greater than the size of the internal buffer used by the encoder. + Contributed by Richie Jefts + +* [HTTPCORE-209] Added parameter to set SO_REUSEADDR on sockets bound to a local address. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-207] SocketHttp*Connection classes can leak sockets if the connection is half-closed + Contributed by David Koski + +Release 4.1-ALPHA1 +------------------- + +This is the first public release from the 4.1 branch of HttpCore. This release adds a number of +new features, most notable being introduction of compatibility mode with IBM JREs and other JREs +with naive (broken) implementation of SelectionKey API. + +Please note new classes and methods added in the 4.1 branch are still considered API unstable. + +* Ensure that an attempt is made to close out all active sessions gracefully in case of an abnormal + shutdown of the I/O reactor. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-201] OSGi Export-Package to specify release version + Contributed by Oleg Kalnichevski + +* [HTTPCORE-183] Added Thread-safe implementations of HttpParams and HttpProcessor - + SyncBasicHttpParams and ImmutableHttpProcessor classes + Contributed by Oleg Kalnichevski + +* [HTTPCORE-199] ContentInputStream implements InputStream#available(). + Contributed by Oleg Kalnichevski + +* [HTTPCORE-195] Truncated chunk-coded streams can now be tolerated by catching and discarding + TruncatedChunkException. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-155] Compatibility mode with IBM JRE and other JREs with naive (broken) implementation + of SelectionKey. + Contributed by Marc Beyerle and Oleg Kalnichevski + +* [HTTPCORE-191] Blocking HTTP connections are now capable of correctly preserving their internal + state on SocketTimeoutExceptions, which makes it possible to continue reading from the connection + after a socket timeout. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-190] ChunkedInputStream is now capable of correctly preserving its internal state on + SocketTimeoutExceptions, which makes it possible to continue reading from the stream after a + socket timeout. + Contributed by Oleg Kalnichevski + +Release 4.0.1 +------------------- + +This is a patch release addressing a number of issues discovered since the 4.0 release. Users +of NIO module are advised to upgrade. + +* [HTTPCORE-198] CONNECT request includes Host header for HTTP 1.1 connections. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-196] SSLIOSession now unwraps encrypted data more aggressively eliminating long + pauses when receiving data over non-blocking connections. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-197] Fixed bug causing the non-blocking ChunkDecoder to report some data stream as + truncated under special conditions. + Contributed by Denis Rogov and Oleg Kalnichevski + +* SSLIOSession#isAppOutputReady and SSLIOSession#isAppInputReady no longer ignore the application + event mask causing I/O event notifications for unrequested type of events. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-193] Fixed problem with SSLIOSession incorrectly handling of end-of-stream condition. + Contributed by Asankha C. Perera and Oleg Kalnichevski + + +Release 4.0 +------------------- + +This is the first stable (GA) release of HttpCore 4.0. This release mainly improves the +documentation and fixes a few minor bugs reported since the previous release. HttpCore +now comes with a complete tutorial presenting an in-depth coverage of the API. + +HttpCore is a set of low level HTTP transport components that can be used to build custom +client and server side HTTP services with a minimal footprint. HttpCore supports two I/O +models: blocking I/O model based on the classic Java I/O and non-blocking, event driven I/O +model based on Java NIO. The blocking I/O model may be more appropriate for data intensive, +low latency scenarios, whereas the non-blocking model may be more appropriate for high latency +scenarios where raw data throughput is less important than the ability to handle thousands of +simultaneous HTTP connections in a resource efficient manner. + +* [HTTPCORE-180] Fixed NPE in standard I/O event dispatchers when + IOEventDispatch#disconnected fires before the session was fully initialized + (IOEventDispatch#connected was not called). + Contributed by Oleg Kalnichevski + +* [HTTPCORE-175] Chunk decoders no longer accept truncated chunks as valid input. + Contributed by Oleg Kalnichevski + + +Release 4.0 Beta 3 +------------------- + +The third BETA version of HttpComponents Core has been released. This is a +maintenance release, which addresses a number of issues discovered since the +previous release. + +The only significant new feature is an addition of an OSGi compliant bundle +combining HttpCore and HttpCore NIO jars. + +* [HTTPCORE-173] Tolerate missing closing chunk if the chunk coded content + is terminated by the end of stream (EOF) condition. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-174] Position is incremented twice in ContentLengthInputStream#skip(long) + Contributed by Ildar Safarov + +* [HTTPCORE-125] OSGi bundle containing HttpCore & HttpCore NIO jars. + Contributed by Oleg Kalnichevski + +* CancelledKeyException thrown in BaseIOReactor#validate() no longer causes + a premature I/O reactor shutdown. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-172] Added #close() method to SharedInputBuffer and + SharedOutputBuffer. The purpose of the new method is to close the buffer + in case of normal / orderly termination of the underlying HTTP connection. + Use #shutdown() method to force-close the buffer in case of abnormal / + exceptional termination of the underlying connection. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-170] Fixed race condition in SharedOutputBuffer. + Contributed by Jason Walton + +* [HTTPCORE-169] Fixed bug causing connecting I/O reactors to shut down due to + ClosedChannelException if a pending session request is cancelled before the new + channel has been registered with the selector. + Contributed by Anders Wallgren + +* [HTTPCORE-167] Fixed handling the end of stream (EOF) condition in the #isStale() + check of blocking HTTP connections. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-166] NIO reactors now maintain an audit log of fatal exceptions, + which can be used to examine the cause and problems experienced during + the shutdown process. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-165] Improved handling of CancelledKeyException in I/O reactors + Contributed by Oleg Kalnichevski + + +Release 4.0 Beta 2 +------------------- + +The second BETA version of HttpComponents Core has been released. This release +adds a number of improvements to the NIO components, most notable being improved +asynchronous client side and server side protocol handlers. + +There has been a number of important bug fixes in HttpCore NIO module, whereas +HttpCore base module has had very few changes. + +All upstream projects dependent on HttpCore NIO are strongly advised to upgrade. + +* [HTTPCORE-163] Fixed AbstractMultiworkerIOReactor#execute() to correctly + propagate the original I/O exception in case of an abnormal termination. + Contributed by Patrick Moore + +* Changed behavior of IdentityDecoder & LengthDelimitedDecoder to throw + an IOException if data is attempted to be written beyond the length + of a FileChannel. Previously would write nothing. + Contributed by Sam Berlin + +* Fixed bug in LengthDelimitedDecoder & IdentityDecoder that caused transfers + to a FileChannel to overwrite arbitrary parts of the file, if data was + buffered in SessionInputBuffer. + Contributed by Sam Berlin + +* Fixed concurrency bug in the ThrottlingHttpServerHandler protocol handler. + Contributed by Oleg Kalnichevski + +* Fixed bug in SharedInputBuffer that caused input events to be + incorrectly suspended. + Contributed by Asankha C. Perera + +* [HTTPCORE-150] Entity implementation that serializes a Java object + Contributed by Andrea Selva + +* [HTTPCORE-157] ChunkedOutputStream#flush() now behaves consistently with the + specification of OutputStream#flush(). + Contributed by Oleg Kalnichevski + +* [HTTPCORE-147] Fixed handling of requests with partially consumed content + in ThrottlingHttpServiceHandler. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-92] ChunkEncoder splits input data larger than available space + in the session output buffer into smaller chunks instead of expanding + the buffer. + Contributed by Andrea Selva and + Oleg Kalnichevski + +* [HTTPCORE-149] I/O reactors now count period of inactivity since the + time of the last read or write operation. Previously only read + operations resulted in timeout counter reset. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-148] Improved asynchronous server and client HTTP protocol + handler implementations. + Contributed by Sam Berlin + +* [HTTPCORE-143] Ensure the underlying channel is closed if the session + request is canceled or times out. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-140] Fixed timeout handling in ThrottlingHttpServiceHandler. + Contributed by Lorenzo Moretti and + Oleg Kalnichevski + + + +Release 4.0 Beta 1 +------------------- + +The first BETA version of HttpComponents Core has been released. This release +can be considered a major milestone, as it marks the end of API instability +in HttpCore. As of this release the API compatibility between minor releases +in 4.x codeline will be maintained. + +This release includes several major improvements such as enhanced HTTP message +parsing API and optimized parser implementations, Java 5.0 compatibility +for HttpCore NIO extensions. Upstream projects are strongly encouraged to +upgrade to the latest release. + +The focus of the development efforts will be gradually shifting towards +providing better test coverage, documentation and performance optimizations. + +Changelog: +---------- + +* [HTTPCORE-141] Session request timeout in DefaultConnectingIOReactor + invalidates the request. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-137] DefaultHttpRequestFactory extended to support all methods + specified in RFC 2616 (except CONNECT). + Contributed by Oleg Kalnichevski + +* Replaced HTTP parameter linking with a simple child/parent stack. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-134] all serialVersionUID attributes are private + Contributed by Roland Weber + +* [HTTPCORE-133] Clone support for basic HTTP message elements and + non-streaming entities. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-127] Improved API for lifecycle management of listening I/O + reactors. One can now suspend and resume listener endpoints. + Contributed by Asankha C. Perera + +* [HTTPCORE-112] DefaultConnectionReuseStrategy interprets token sequences + Contributed by Roland Weber + +* [HTTPCORE-122] new interface TokenIterator and basic implementation + Contributed by Roland Weber + +* HttpCore NIOSSL classes moved to HttpCore NIO. + Contributed by Oleg Kalnichevski + +* HttpCore NIO ported to Java 1.5. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-130] Fixed over-synchronization bug leading to a thread deadlock + condition in SSL IOEventDispatch implementations. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-37] HttpParams beans + Contributed by Stojce Dimski + +* [HTTPCORE-128] Simplified injection of custom NIO connection implementations. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-126] Improved HTTP message parsing API and optimized parser + implementations. + Contributed by Oleg Kalnichevski + +* Do not include "Connection: close" to 500 responses per default. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-121] new interface HeaderElementIterator + Contributed by Andrea Selva + +* [HTTPCORE-123] Fixed problem with SSLSession losing buffered data, if the + connection has been closed by the peer. + Contributed by Risto Reinpõld + + + +Release 4.0 Alpha 6 +------------------- + +The sixth ALPHA version of HttpComponents Core has been released. This release +sports an improved message parsing and formatting API in the base module and +lots of incremental improvements and bug fixes in the NIO and NIOSSL modules. +Based on the improved API, it is now possible to send and receive SIP messages +with HttpComponents Core. + +HttpCore is now feature complete and we are planning to freeze the public APIs +as of next release (BETA1). + +* [HTTPCORE-120] new interface HeaderIterator, available from HttpMessage + Contributed by Roland Weber + +* [HTTPCORE-118] Purge closed sessions prior to opening new ones. This should + reduce chances of running out of memory when opening and closing lots of + NIO connections in a tight loop. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-117] Fixed bug preventing protocol handlers from closing timed out + NIO connection when pending output (output session buffer is not empty). + Contributed by Oleg Kalnichevski + +* [HTTPCORE-86] Allow for optional handling of runtime exceptions + thrown by protocol handlers to ensure the I/O dispatch thread + remains running. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-116] moved parameter names to interfaces + Contributed by Roland Weber + +* [HTTPCORE-109] Improved shutdown process of the I/O reactors in NIO modules. + I/O reactors now attempt to terminate connections gracefully before shutting + down the underlying socket channels. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-107] allow sending and receiving of SIP messages + Contributed by Roland Weber + +* [HTTPCORE-114]: Fixed incorrect handling of the end-of-stream condition + in SSLIOSession. + Oleg Kalnichevski + +* [HTTPCORE-110] refactored message parsing and formatting logic + Contributed by Roland Weber + +* [HTTPCORE-113] Removed unnecessary target hostname resolution from + non-blocking client protocol handlers. + Oleg Kalnichevski + +* [HTTPCORE-108] Close all channels registered with the I/O reactor during + shutdown. Fixed the problem with DefaultListeningIOReactor not releasing + socket ports until JVM is restarted. + Oleg Kalnichevski + +* [HTTPCORE-106] Pluggable HTTP message parsers and message writers + Oleg Kalnichevski + +* [HTTPCORE-105] Consistent class names in base and NIO modules + Oleg Kalnichevski + +* [HTTPCORE-100] revised HttpContext hierarchy + Contributed by Roland Weber + +* [HTTPCORE-103] NIO connections now attempt to consume all available session + data while parsing HTTP messages. This can potentially improve performance + of non-blocking SSL connections. + Contributed by Steffen Pingel + +* [HTTPCORE-102] Exceeding of maximum line length limit detected late + Contributed by Steffen Pingel + +* [HTTPCORE-21] Transport and connection metrics + Contributed by Andrea Selva and + Oleg Kalnichevski + +* [HTTPCORE-91] new interceptor RequestDate, renamed constants in protocol.HTTP + Contributed by Roland Weber + +* [HTTPCORE-90] Version detection based on build-time properties + Contributed by Oleg Kalnichevski and + Roland Weber + +* [HTTPCORE-88] Added convenience methods to HttpRequestInterceptorList, + HttpResponseInterceptorList interfaces + Contributed by Andrea Selva + +* [HTTPCORE-89]: Fixed bug in DefaultConnectingIOReactor causing incorrect + handling of local (immediate) connections on some platforms (affects Sun + Solaris 2.9 / Sparc and likely other Solaris 2.x platforms) + Contributed by Sam Berlin + +Release 4.0 Alpha 5 +------------------- + +The fifth ALPHA version of HttpComponents Core has been released. This release +delivers a number of incremental improvements across the board in all modules +and adds several performance oriented features such as ability to transfer +data directly between a file and a socket channels. + +HttpCore is almost fully feature complete now and we are likely to freeze +the public APIs as of next release (BETA1). + +* [HTTPCORE-87] RuntimeExcpetions thrown in I/O worker threads are now correctly + propagated to the I/O reactor. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-84]: Removed DateUtils/DateParseException from core. + Contributed by Roland Weber + +* [HTTPCORE-63]: Made I/O select interval configurable for all default I/O + reactor implementations. + Contributed by Oleg Kalnichevski and + Anders Wallgren + +* [HTTPCORE-82]: Revised linking of HttpParams to reduce potential for misuse. + Method #setDefaults() removed from the HttpParams interface. + Contributed by Roland Weber + +* [HTTPCORE-81]: Maximum line length and maximum header counts parameters are now + correctly enforced in both base and NIO modules. Fixed maximum line length check + when parsing folded header lines. + Contributed by Steffen Pingel + +* Added HTTP client handler implementation that allocates fixed size content + buffers upon initialization and is capable of throttling the rate of I/O events + in order to make sure those content buffers do not get overflown. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-76]: Added IOSession#shutdown() method intended to force-close + I/O sessions (primarily needed to terminate hung SSL connections). + Contributed by Sandeep Tamhankar + +* [HTTPCORE-78]: Added ByteBufferAllocator interface that can be used to apply + different ByteArray allocation strategies to session and content buffers. + Use heap bound implementation for short-lived or variable in length (requiring + frequent content re-allocation) buffers. + Contributed by Steffen Pingel + +* [HTTPCORE-77]: The result of CharsetDecoder#decode() and CharsetEncoder#encode() + was not checked for errors resulting in an infinite loop in + SessionInputBuffer#readLine() and SessionOutputBuffer#writeLine() + when malformed characters were processed. + Contributed by Steffen Pingel + +* [HTTPCORE-71]: HttpParams can be copied. + Contributed by Roland Weber + +* [HTTPCORE-75]: DefaultNHttpServerConnection and DefaultNHttpClientConnection + now correctly terminate the underlying I/O session when closed. + BufferingHttpServiceHandler now correctly applies connection keep-alive + strategy when sending a response with no content body. + Contributed by Steffen Pingel + +* [HTTPCORE-73]: Fixed bug preventing NHttpServiceHandler#responseReady and + NHttpClientHandler#requestReady events from being fired if the HTTP message + has no content body. + Contributed by Steffen Pingel + +* [HTTPCORE-67]: Improved event listener interface + Contributed by Oleg Kalnichevski + +* [HTTPCORE-43]: Support for FileChannel#transferFrom() and + FileChannel#transferTo() methods. Direct coping from and to FileChannel is + expected to improve performance of file bound operations + Contributed by Andrea Selva + +* [HTTPCORE-66]: Fixed handling of HTTP HEAD methods + Contributed by Steffen Pingel and + Oleg Kalnichevski + +* [HTTPCORE-58]: NIO HTTP connections changed to throw checked + ConnectionClosedException instead of unchecked IllegalStateException when + an attempt is made to perform an I/O operation on a closed conection + Contributed by Oleg Kalnichevski + +* [HTTPCORE-56]: DefaultConnectingIOReactor no longer terminates due to a + CancelledKeyException, if a session request gets canceled before selection + key is fully initialized. + Contributed by Oleg Kalnichevski + +Release 4.0 Alpha 4 +------------------- + +The forth ALPHA version of HttpComponents Core has been released. +The ALPHA4 release fixes a number of bugs and adds a number of +improvements to HttpCore base and HttpCore NIO extensions. +HttpCore NIO can be used to build HTTP services intended to handle +thousands of simultaneous connections with a small number of I/O +threads. This release also introduces NIOSSL extensions that can be +used to extend HttpCore non-blocking transport components with +ability to transparently encrypt data in transit using SSL/TLS protocol. + +* [HTTPCORE-49]: DefaultConnectingIOReactor can now correctly handle + unresolved socket addresses. It no longer terminates with the + UnresolvedAddressException runtime exception. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-42]: Added server side API for the expectation verification. + Improved support for the 'expect: continue' handshake in HttpCore and + HttpCore NIO. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-26]: Added SSL support for HttpCore NIO. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-40]: API classes no longer reference impl classes in module-main. + Contributed by Roland Weber + +* [HTTPCORE-39]: Refactored HttpStatus, spun off [English]ReasonPhraseFactory. + Contributed by Roland Weber + +* [HTTPCORE-32]: HttpRequestInterceptorList, HttpResponseInterceptorList + Contributed by Roland Weber + +* [HTTPCORE-38]: Packages nio.impl.* are now impl.nio.*, same for examples. + Contributed by Roland Weber + +* [HTTPCORE-27]: I/O reactors can now accept a thread factory as an optional + parameter. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-36]: Fixed #setHandlers() method and matching of request URIs + with a query part in HttpRequestHandlerRegistry + Contributed by Oleg Kalnichevski + +* [HTTPCORE-28]: DefaultConnectingIOReactor now maintains a queue of connect + requests and registers new sessions with the selector on the I/O thread. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-29] DefaultConnectingIOReactor changed to ensure IOExceptions + are correctly propagated to the caller, if an exception is thrown while + initializing a newly connected socket. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-24] Fixed bug in non-blocking connection implementations, which + prevented the session buffer from being correctly flushed when the content + coding process has been completed. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-23] Fixed threading bug in DefaultConnectingIOReactor. + Contributed by Asankha C. Perera + +Release 4.0 Alpha 3 +------------------- + +The third ALPHA version of HttpCore has been released. The ALPHA3 release +includes a number of API optimizations and improvements and introduces a set +of NIO extensions to the HttpCore API. NIO extensions can be used to build +HTTP services intended to handle thousands of simultaneous connections with +a small number of I/O threads. + +* [HTTPCORE-15] Provided a interafce to access IP address of the local and + remote end points. + Contributed by Oleg Kalnichevski + +* [ HTTPCORE-14] Scheme, SocketFactory and SecureSocketFactory moved to + HttpClient. Decoupled HttpHost and Scheme. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-13] Refactored HttpProcessor interface and related impl classes + Contributed by Roland Weber + +* [HTTPCORE-11] Client connection interface no longer defines a specific + method to open a connection. HTTP connections can now represent any + abstract I/O transport such as those based on NIO API. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-10] Non-blocking (async) client side I/O transport based on NIO. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-9] Non-blocking (async) server side I/O transport based on NIO. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-7] ConnectionReuseStrategy interface changed to allow access + to the HTTP execution context. + Contributed by Roland Weber + +* [HTTPCORE-6] Header implementation allowing for performance short-cuts + when serializing and deserializing HTTP headers. + Contributed by Oleg Kalnichevski + +* [HTTPCORE-5] Header, HeaderElement, NameValuePair, RequestLine, StatusLine, + HttpVersion changed to interfaces. API no longer contains any parsing and + formatting code and does not imply any specific physical representation of + HTTP messages and their elements. + Contributed by Oleg Kalnichevski + +Release 4.0 Alpha 2 +------------------- +This is a maintenance release that mostly fixes minor problems found since the +previous release. The upstream projects are strongly encouraged use this +release as a dependency while HttpCore undergoes another round of reviews +and optimization in the SVN trunk + +Changelog: +--------- +* [HTTPCORE-4] optional header and line length limits to contain OOME risks + Contributed by Oleg Kalnichevski + +Release 4.0 Alpha 1 +------------------- +This release represents a complete redesign of the Jakarta Commons HttpClient +3.x API and a significant rewrite of the core HTTP components derived from +HttpClient 3.0 code base. + +These components will form the foundation of the future releases of Jakarta +HttpClient and can also be used separately to build custom client- and +server-side HTTP services. Propchange: dev/httpcomponents/httpcore-4.4.1-RC1/RELEASE_NOTES-4.4.x.txt ------------------------------------------------------------------------------ svn:eol-style = native Propchange: dev/httpcomponents/httpcore-4.4.1-RC1/RELEASE_NOTES-4.4.x.txt ------------------------------------------------------------------------------ svn:keywords = Date Revision Propchange: dev/httpcomponents/httpcore-4.4.1-RC1/RELEASE_NOTES-4.4.x.txt ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-bin.tar.gz ============================================================================== Binary file - no diff available. Propchange: dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-bin.tar.gz ------------------------------------------------------------------------------ svn:mime-type = application/x-gzip Added: dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-bin.tar.gz.asc ============================================================================== --- dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-bin.tar.gz.asc (added) +++ dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-bin.tar.gz.asc Sat Mar 14 16:47:28 2015 @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- +Version: BCPG v1.46 + +iEYEABECAAYFAlUEY58ACgkQfCUoDq5j6+Wh5QCfRITx0VYJO5euR31OZ0AiITQ8 +nq0An3oLEziKfLLbh1fcsbjG/hPp5E6l +=FF69 +-----END PGP SIGNATURE----- Added: dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-bin.tar.gz.md5 ============================================================================== --- dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-bin.tar.gz.md5 (added) +++ dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-bin.tar.gz.md5 Sat Mar 14 16:47:28 2015 @@ -0,0 +1 @@ +18b504839a8a915c2438f7e266a01d29 \ No newline at end of file Added: dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-bin.zip ============================================================================== Binary file - no diff available. Propchange: dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-bin.zip ------------------------------------------------------------------------------ svn:mime-type = application/zip Added: dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-bin.zip.asc ============================================================================== --- dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-bin.zip.asc (added) +++ dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-bin.zip.asc Sat Mar 14 16:47:28 2015 @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- +Version: BCPG v1.46 + +iEYEABECAAYFAlUEY58ACgkQfCUoDq5j6+VCRACeI+jVjrUP7aOvZvm6V7iUSra5 +1bIAn3VijJLy4OU6sG0FLIoi71Ksiywp +=bCs0 +-----END PGP SIGNATURE----- Added: dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-bin.zip.md5 ============================================================================== --- dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-bin.zip.md5 (added) +++ dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-bin.zip.md5 Sat Mar 14 16:47:28 2015 @@ -0,0 +1 @@ +20fd9fe8f4a2ee5872a34233dc379b8c \ No newline at end of file Added: dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-osgi-bin.tar.gz ============================================================================== Binary file - no diff available. Propchange: dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-osgi-bin.tar.gz ------------------------------------------------------------------------------ svn:mime-type = application/x-gzip Added: dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-osgi-bin.tar.gz.asc ============================================================================== --- dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-osgi-bin.tar.gz.asc (added) +++ dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-osgi-bin.tar.gz.asc Sat Mar 14 16:47:28 2015 @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- +Version: BCPG v1.46 + +iEYEABECAAYFAlUEY58ACgkQfCUoDq5j6+XoCACfarbVP3K7xiplamL6LSpdm8ht +mhUAnj3dgQd/yyl5y8Wr7xA/FEGJvRzD +=bgRD +-----END PGP SIGNATURE----- Added: dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-osgi-bin.tar.gz.md5 ============================================================================== --- dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-osgi-bin.tar.gz.md5 (added) +++ dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-osgi-bin.tar.gz.md5 Sat Mar 14 16:47:28 2015 @@ -0,0 +1 @@ +a9f30246e8a20e0d225940c9deb15fc1 \ No newline at end of file Added: dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-osgi-bin.zip ============================================================================== Binary file - no diff available. Propchange: dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-osgi-bin.zip ------------------------------------------------------------------------------ svn:mime-type = application/zip Added: dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-osgi-bin.zip.asc ============================================================================== --- dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-osgi-bin.zip.asc (added) +++ dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-osgi-bin.zip.asc Sat Mar 14 16:47:28 2015 @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- +Version: BCPG v1.46 + +iEYEABECAAYFAlUEY58ACgkQfCUoDq5j6+U7XQCeOvRVtjL9BL25GwwR9aBx9tjl +064An2KpXbZ9QaG7KcfJCUze3bzt4LSr +=MLwA +-----END PGP SIGNATURE----- Added: dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-osgi-bin.zip.md5 ============================================================================== --- dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-osgi-bin.zip.md5 (added) +++ dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-osgi-bin.zip.md5 Sat Mar 14 16:47:28 2015 @@ -0,0 +1 @@ +2cb4593c65e35e0da7ef44fdbc2938cb \ No newline at end of file Added: dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-src.tar.gz ============================================================================== Binary file - no diff available. Propchange: dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-src.tar.gz ------------------------------------------------------------------------------ svn:mime-type = application/x-gzip Added: dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-src.tar.gz.asc ============================================================================== --- dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-src.tar.gz.asc (added) +++ dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-src.tar.gz.asc Sat Mar 14 16:47:28 2015 @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- +Version: BCPG v1.46 + +iEYEABECAAYFAlUEY58ACgkQfCUoDq5j6+WRsACeL5wc3kO49bdo5vxlsSpznG+9 +6EoAn1RX6hnLno/z9gMmXbwz1p3FKfyx +=Xc3O +-----END PGP SIGNATURE----- Added: dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-src.tar.gz.md5 ============================================================================== --- dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-src.tar.gz.md5 (added) +++ dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-src.tar.gz.md5 Sat Mar 14 16:47:28 2015 @@ -0,0 +1 @@ +33100ac8ac90803a13c410a53d0677e3 \ No newline at end of file Added: dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-src.zip ============================================================================== Binary file - no diff available. Propchange: dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-src.zip ------------------------------------------------------------------------------ svn:mime-type = application/zip Added: dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-src.zip.asc ============================================================================== --- dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-src.zip.asc (added) +++ dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-src.zip.asc Sat Mar 14 16:47:28 2015 @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- +Version: BCPG v1.46 + +iEYEABECAAYFAlUEY58ACgkQfCUoDq5j6+VwPACfSpHNbS2gcT/HxpQDh1bKos90 +C3YAnjXCSDlbNoyjhC4Bin6d/wb3ZyVt +=gcAw +-----END PGP SIGNATURE----- Added: dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-src.zip.md5 ============================================================================== --- dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-src.zip.md5 (added) +++ dev/httpcomponents/httpcore-4.4.1-RC1/httpcomponents-core-4.4.1-src.zip.md5 Sat Mar 14 16:47:28 2015 @@ -0,0 +1 @@ +f3b28f1e41b3151535bdb273e434b41f \ No newline at end of file