| Release 4.4.2 |
| ------------------- |
| |
| This maintenance release fixes a bug in HTTP request pipelining code discovered |
| after 4.4.1 release. |
| |
| Please note that as of 4.4 HttpCore requires Java 1.6 or newer. |
| |
| |
| Changelog |
| ------------------- |
| |
| * Throw ConnectionClosedException instead of IllegalStateException if an attempt is made to |
| use a closed (not bound to a socket) blocking connection. |
| |
| * [HTTPCORE-399] Non-blocking client connections incorrectly suspend output causing |
| sequential execution of requests. |
| |
| |
| 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 <olegk at apache.org> |
| |
| * [HTTPCORE-395]: VersionInfo#getUserAgent reports incorrect Java version. |
| Contributed by Michael Osipov <michaelo at apache.org> |
| |
| * 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 <olegk at apache.org> |
| |
| |
| 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 <dpotapov at yandex-team.ru> |
| |
| * Update Apache Commons Logging version from 1.1.3 to 1.2. |
| Contributed by Gary Gregory <ggregory at apache.org> |
| |
| |
| |
| |
| 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 <olegk at apache.org> |
| |
| * [HTTPCORE-377] Allow zero SO_LINGER (immediate abortive close). |
| Contributed by Dmitry Potapov <potapov.d at gmail.com> |
| |
| * [HTTPCORE-376] AbstractNIOConnPool#requestCancelled() should not process pending requests |
| wnen being shut down. |
| Contributed by Dmitry Potapov <potapov.d at gmail.com> |
| |
| * [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 <olegk at apache.org> |
| |
| * [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 <potapov.d at gmail.com> |
| |
| * [HTTPCORE-368] Customizable buffer management strategies for SSLIOSession. |
| Contributed by offbynull <offbynull at gmail.com> |
| |
| * [HTTPCORE-358] Added I/O reactor listener backlog parameter. |
| Contributed by Dmitry Potapov <potapov.d at gmail.com> |
| |
| * [HTTPCORE-357] Avoid DNS lookups in SSLIOSession. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * Update JUnit to version 4.11 from 4.9 |
| Contributed by Gary Gregory <ggregory at apache.org> |
| |
| |
| |
| 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 <asankha at apache.org> |
| |
| * [HTTPCORE-373] Out of sequence HTTP response causes NPE in HttpAsyncRequestExecutor. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-370] Race condition if connection request succeeds and times out at the same time. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * (Regression) Fixed synchronization issue in blocking and non-blocking connection pool |
| implementations caused by HTTPCORE-362 |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| |
| 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 <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| * [HTTPCORE-364] IOSessionImpl.getLocalAddress() (etc.) creates unnecessary copy of channel |
| |
| * DefaultConnectingIOReactor / DefaultListeningIOReactor do not correctly apply some initial |
| socket settings. |
| Contributed by Andreas Veithen <veithen at apache.org> |
| |
| * [HTTPCORE-357] Avoid DNS lookups in SSLIOSessions in server mode. |
| Contributed by Isaac Cruz Ballesteros <icruzbal at gmail.com> |
| |
| * [HTTPCORE-362] Purge pool per route map after closing out expired or idle connections with |
| #closeExpired and #closeIdle methods. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-361] Reduced intermediate garbage in HeaderGroup#getFirstHeader() |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-355] HttpAsyncRequestExecutor fails when its handler is not ready to generate |
| a request. |
| Contributed by jd <j1234d2003 at yahoo.com> |
| |
| * [HTTPCORE-354] BasicConnFactory don't use SocketConfig#isSoKeepAlive. |
| Contributed by David Ignjic <ignjic at gmail.com> |
| |
| * [HTTPCORE-347] (Regression) HttpResponse#setStatusCode() does not update reason phrase. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| |
| |
| 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 <olegk at apache.org> |
| |
| * [HTTPCORE-340] AbstractNIOConnPool to support lease timeout distinct from connect timeout. |
| Contributed by Ignat Alexeyenko <ignatalexeyenko at gmail.com> |
| |
| * 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 <olegk at apache.org> |
| |
| |
| |
| 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 <tadwhitenight at gmail.com> |
| |
| * 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 <olegk at apache.org> |
| |
| * Use bulk ByteBuffer#put method instead of single byte ByteBuffer#put |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-336] Unhandled CancelledKeyException leads to a shutdown of the underlying IOReactor. |
| Contributed by Thomas Dudek <mail.dudek at gmail.com> |
| |
| |
| |
| 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 <olegk at apache.org> |
| |
| * 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 <olegk at apache.org> |
| |
| * Basic connection pool implementations to perform default port resolution for HTTP and HTTPS |
| schemes. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * Use bulk ByteBuffer#put method instead of single byte ByteBuffer#put |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-336] Unhandled CancelledKeyException leads to a shutdown of the underlying IOReactor. |
| Contributed by Thomas Dudek <mail.dudek at gmail.com> |
| |
| |
| 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 <olegk at apache.org> |
| |
| * [HTTPCORE-330] Clarify InputStreamEntity length constructor argument. |
| Contributed by John McCarthy <jmsignup at gmail.com> |
| |
| * [HTTPCORE-323] Undocumented UnsupportedCharsetException in ContentType#getOrDefault. |
| Contributed by Gary D. Gregory <ggregory at apache.org> |
| |
| |
| |
| 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 <snstanton at gmail.com> |
| |
| * [HTTPCORE-331] BasicFuture no longer executes notification callbacks inside a synchronized block. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| |
| |
| 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 <apache-jira at PaulSD.com> and |
| Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-316] HeaderGroup#clone removes headers from the original object. |
| Contributed by Markus Thies <markus at dr-thies.com> |
| |
| * [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 <snstanton at gmail.com> |
| |
| * [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 <olegk at apache.org> |
| |
| |
| 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 <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| * [HTTPCORE-306] I/O reactor TCP_NODELAY parameter now defaults to true. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPASYNC-21] request execution handler does not get closed in case of a premature HTTP |
| exchange termination. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-303] ContentType made Serializable. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| |
| |
| 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 <olegk at apache.org> |
| |
| * [HTTPCORE-263] Under rare circumstances incorrectly delineated or garbled HTTP message |
| can cause an IndexOutOfBoundsException in AbstractSessionInputBuffer#readLine() |
| Contributed by Michael Pujos <bubbleguuum at free.fr> |
| |
| * Made connection pools use FIFO algorithm instead of LIFO when leasing / releasing persistent |
| connections. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [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 <sandman at electric-cloud.com> |
| |
| * Fixed NPE in StringEntity constructor thrown if ContentType#getCharset is null. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| |
| 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 <olegk at apache.org> |
| |
| * AbstractHttpClientConnection#isResponseAvailable method now catches SocketTimeoutException |
| and returns false. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| * [HTTPCORE-289] HttpAsyncService fails to invoke Cancellable#cancel() when the ongoing HTTP |
| exchange is aborted by the client. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| 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 <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| * [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 <bill.speirs at gmail.com> |
| |
| * [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 <sadeep at wso2.com> and Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-268] Handle runtime exceptions thrown by SSLEngine. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| |
| |
| 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 <bill.speirs at gmail.com> |
| |
| * [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 <olegk at apache.org> |
| |
| |
| 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 <olegk at apache.org> |
| |
| 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 <olegk at apache.org> |
| |
| 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 <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| 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 <olegk at apache.org> |
| |
| * [HTTPCORE-255]: Fixed resource management in InputStreamEntity#writeTo() |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| |
| 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 <olegk at apache.org> |
| |
| * [HTTPCORE-239]: The ChunkEncoder could request for a negative buffer limit causing an |
| IllegalArgumentException. |
| Contributed by Asankha Perera <asankha at apache.org> |
| |
| * [HTTPCORE-236]: SSLIOSession#isAppInputReady() does not check the status of the session input |
| buffer. |
| Contributed by Dmitry Lukyanov <dlukyanov at ukr.net> |
| |
| * [HTTPCORE-233]: EntityUtils#toString() and EntityUtils#toByteArray() to return null if |
| HttpEntity#getContent() is null |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| 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 <olegk at apache.org> |
| |
| * Non-blocking connections can trigger #responseReady / #requestReady events by mistake |
| when the underlying session is already closed. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-228] Fixed NPE in AsyncNHttpServiceHandler caused by entity enclosing requests |
| if no matching request handler can be found. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-227] Fixed incorrect request / response count by non-blocking connections. |
| Contributed by Harold Lee <harold at hotelling.net> |
| |
| * [HTTPCORE-226] Improved compatibility of NIO components with Google Android. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * ByteArrayBuffer, CharArrayBuffer, BasicHeader, BufferedHeader, HeaderGroup, BasicRequestLine, |
| BasicStatusLine made Serializable. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| 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 <willem.jiang at gmail.com> |
| |
| * [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 <olegk at apache.org> |
| |
| * [HTTPCORE-220] IdentityDecoder fails to detect end of stream when using file channels. |
| Contributed by Asankha C. Perera <asankha at apache.org> |
| |
| * [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 <rjefts at gmail.com> |
| |
| * [HTTPCORE-209] Added parameter to set SO_REUSEADDR on sockets bound to a local address. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-207] SocketHttp*Connection classes can leak sockets if the connection is half-closed |
| Contributed by David Koski <david_koski at mac.com> |
| |
| 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 <olegk at apache.org> |
| |
| * [HTTPCORE-201] OSGi Export-Package to specify release version |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-183] Added Thread-safe implementations of HttpParams and HttpProcessor - |
| SyncBasicHttpParams and ImmutableHttpProcessor classes |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-199] ContentInputStream implements InputStream#available(). |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-195] Truncated chunk-coded streams can now be tolerated by catching and discarding |
| TruncatedChunkException. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-155] Compatibility mode with IBM JRE and other JREs with naive (broken) implementation |
| of SelectionKey. |
| Contributed by Marc Beyerle <marc.beyerle at de.ibm.com> and Oleg Kalnichevski <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| 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 <olegk at apache.org> |
| |
| * [HTTPCORE-196] SSLIOSession now unwraps encrypted data more aggressively eliminating long |
| pauses when receiving data over non-blocking connections. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-197] Fixed bug causing the non-blocking ChunkDecoder to report some data stream as |
| truncated under special conditions. |
| Contributed by Denis Rogov <denrogov at gmail.com> and Oleg Kalnichevski <olegk at apache.org> |
| |
| * 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 <olegk at apache.org> |
| |
| * [HTTPCORE-193] Fixed problem with SSLIOSession incorrectly handling of end-of-stream condition. |
| Contributed by Asankha C. Perera <asankha at apache.org> and Oleg Kalnichevski <olegk at apache.org> |
| |
| |
| 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 <olegk at apache.org> |
| |
| * [HTTPCORE-175] Chunk decoders no longer accept truncated chunks as valid input. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| |
| 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 <olegk at apache.org> |
| |
| * [HTTPCORE-174] Position is incremented twice in ContentLengthInputStream#skip(long) |
| Contributed by Ildar Safarov <ildar.safarov at gmail.com> |
| |
| * [HTTPCORE-125] OSGi bundle containing HttpCore & HttpCore NIO jars. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * CancelledKeyException thrown in BaseIOReactor#validate() no longer causes |
| a premature I/O reactor shutdown. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| * [HTTPCORE-170] Fixed race condition in SharedOutputBuffer. |
| Contributed by Jason Walton <Jason.Walton at alcatel-lucent.com> |
| |
| * [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 <anders_wallgren at alum.mit.edu> |
| |
| * [HTTPCORE-167] Fixed handling the end of stream (EOF) condition in the #isStale() |
| check of blocking HTTP connections. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| * [HTTPCORE-165] Improved handling of CancelledKeyException in I/O reactors |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| |
| 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 <patmoore at ieee.org> |
| |
| * 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 <sberlin at apache.org> |
| |
| * 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 <sberlin at apache.org> |
| |
| * Fixed concurrency bug in the ThrottlingHttpServerHandler protocol handler. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * Fixed bug in SharedInputBuffer that caused input events to be |
| incorrectly suspended. |
| Contributed by Asankha C. Perera <asankha at wso2.com> |
| |
| * [HTTPCORE-150] Entity implementation that serializes a Java object |
| Contributed by Andrea Selva <selva.andrea at gmail.com> |
| |
| * [HTTPCORE-157] ChunkedOutputStream#flush() now behaves consistently with the |
| specification of OutputStream#flush(). |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-147] Fixed handling of requests with partially consumed content |
| in ThrottlingHttpServiceHandler. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [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 <selva.andrea at gmail.com> and |
| Oleg Kalnichevski <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| * [HTTPCORE-148] Improved asynchronous server and client HTTP protocol |
| handler implementations. |
| Contributed by Sam Berlin <sberlin at gmail.com> |
| |
| * [HTTPCORE-143] Ensure the underlying channel is closed if the session |
| request is canceled or times out. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-140] Fixed timeout handling in ThrottlingHttpServiceHandler. |
| Contributed by Lorenzo Moretti <moznerol at hotmail.com> and |
| Oleg Kalnichevski <olegk at apache.org> |
| |
| |
| |
| 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 <olegk at apache.org> |
| |
| * [HTTPCORE-137] DefaultHttpRequestFactory extended to support all methods |
| specified in RFC 2616 (except CONNECT). |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * Replaced HTTP parameter linking with a simple child/parent stack. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-134] all serialVersionUID attributes are private |
| Contributed by Roland Weber <rolandw at apache.org> |
| |
| * [HTTPCORE-133] Clone support for basic HTTP message elements and |
| non-streaming entities. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [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 <asankha at wso2.com> |
| |
| * [HTTPCORE-112] DefaultConnectionReuseStrategy interprets token sequences |
| Contributed by Roland Weber <rolandw at apache.org> |
| |
| * [HTTPCORE-122] new interface TokenIterator and basic implementation |
| Contributed by Roland Weber <rolandw at apache.org> |
| |
| * HttpCore NIOSSL classes moved to HttpCore NIO. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * HttpCore NIO ported to Java 1.5. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-130] Fixed over-synchronization bug leading to a thread deadlock |
| condition in SSL IOEventDispatch implementations. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-37] HttpParams beans |
| Contributed by Stojce Dimski <sdmiski at yahoo.it> |
| |
| * [HTTPCORE-128] Simplified injection of custom NIO connection implementations. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-126] Improved HTTP message parsing API and optimized parser |
| implementations. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * Do not include "Connection: close" to 500 responses per default. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-121] new interface HeaderElementIterator |
| Contributed by Andrea Selva <selva.andrea at gmail.com> |
| |
| * [HTTPCORE-123] Fixed problem with SSLSession losing buffered data, if the |
| connection has been closed by the peer. |
| Contributed by Risto Reinpõld <risto.reinpold at gmail.com> |
| |
| |
| |
| 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 <rolandw at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| * [HTTPCORE-116] moved parameter names to interfaces |
| Contributed by Roland Weber <rolandw at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| * [HTTPCORE-107] allow sending and receiving of SIP messages |
| Contributed by Roland Weber <rolandw at apache.org> |
| |
| * [HTTPCORE-114]: Fixed incorrect handling of the end-of-stream condition |
| in SSLIOSession. |
| Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-110] refactored message parsing and formatting logic |
| Contributed by Roland Weber <rolandw at apache.org> |
| |
| * [HTTPCORE-113] Removed unnecessary target hostname resolution from |
| non-blocking client protocol handlers. |
| Oleg Kalnichevski <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| * [HTTPCORE-106] Pluggable HTTP message parsers and message writers |
| Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-105] Consistent class names in base and NIO modules |
| Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-100] revised HttpContext hierarchy |
| Contributed by Roland Weber <rolandw at apache.org> |
| |
| * [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 <spingel at limewire.com> |
| |
| * [HTTPCORE-102] Exceeding of maximum line length limit detected late |
| Contributed by Steffen Pingel <spingel at limewire.com> |
| |
| * [HTTPCORE-21] Transport and connection metrics |
| Contributed by Andrea Selva <selva.andre at gmail.com> and |
| Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-91] new interceptor RequestDate, renamed constants in protocol.HTTP |
| Contributed by Roland Weber <rolandw at apache.org> |
| |
| * [HTTPCORE-90] Version detection based on build-time properties |
| Contributed by Oleg Kalnichevski <olegk at apache.org> and |
| Roland Weber <rolandw at apache.org> |
| |
| * [HTTPCORE-88] Added convenience methods to HttpRequestInterceptorList, |
| HttpResponseInterceptorList interfaces |
| Contributed by Andrea Selva <selva.andre at gmail.com> |
| |
| * [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 <sberlin at gmail.com> |
| |
| 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 <olegk at apache.org> |
| |
| * [HTTPCORE-84]: Removed DateUtils/DateParseException from core. |
| Contributed by Roland Weber <rolandw at apache.org> |
| |
| * [HTTPCORE-63]: Made I/O select interval configurable for all default I/O |
| reactor implementations. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> and |
| Anders Wallgren <anders_wallgren at alum.mit.edu> |
| |
| * [HTTPCORE-82]: Revised linking of HttpParams to reduce potential for misuse. |
| Method #setDefaults() removed from the HttpParams interface. |
| Contributed by Roland Weber <rolandw at apache.org> |
| |
| * [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 <spingel at limewire.com> |
| |
| * 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 <olegk at apache.org> |
| |
| * [HTTPCORE-76]: Added IOSession#shutdown() method intended to force-close |
| I/O sessions (primarily needed to terminate hung SSL connections). |
| Contributed by Sandeep Tamhankar <sandman at electric-cloud.com> |
| |
| * [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 <spingel at limewire.com> |
| |
| * [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 <spingel at limewire.com> |
| |
| * [HTTPCORE-71]: HttpParams can be copied. |
| Contributed by Roland Weber <rolandw at apache.org> |
| |
| * [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 <spingel at limewire.com> |
| |
| * [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 <spingel at limewire.com> |
| |
| * [HTTPCORE-67]: Improved event listener interface |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [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 <selva.andre at gmail.com> |
| |
| * [HTTPCORE-66]: Fixed handling of HTTP HEAD methods |
| Contributed by Steffen Pingel <spingel at limewire.com> and |
| Oleg Kalnichevski <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| 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 <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| * [HTTPCORE-26]: Added SSL support for HttpCore NIO. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-40]: API classes no longer reference impl classes in module-main. |
| Contributed by Roland Weber <rolandw at apache.org> |
| |
| * [HTTPCORE-39]: Refactored HttpStatus, spun off [English]ReasonPhraseFactory. |
| Contributed by Roland Weber <rolandw at apache.org> |
| |
| * [HTTPCORE-32]: HttpRequestInterceptorList, HttpResponseInterceptorList |
| Contributed by Roland Weber <rolandw at apache.org> |
| |
| * [HTTPCORE-38]: Packages nio.impl.* are now impl.nio.*, same for examples. |
| Contributed by Roland Weber <rolandw at apache.org> |
| |
| * [HTTPCORE-27]: I/O reactors can now accept a thread factory as an optional |
| parameter. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-36]: Fixed #setHandlers() method and matching of request URIs |
| with a query part in HttpRequestHandlerRegistry |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| * [HTTPCORE-23] Fixed threading bug in DefaultConnectingIOReactor. |
| Contributed by Asankha C. Perera <asankha at wso2.com> |
| |
| 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 <olegk at apache.org> |
| |
| * [ HTTPCORE-14] Scheme, SocketFactory and SecureSocketFactory moved to |
| HttpClient. Decoupled HttpHost and Scheme. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-13] Refactored HttpProcessor interface and related impl classes |
| Contributed by Roland Weber <rolandw at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| * [HTTPCORE-10] Non-blocking (async) client side I/O transport based on NIO. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-9] Non-blocking (async) server side I/O transport based on NIO. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [HTTPCORE-7] ConnectionReuseStrategy interface changed to allow access |
| to the HTTP execution context. |
| Contributed by Roland Weber <rolandw at apache.org> |
| |
| * [HTTPCORE-6] Header implementation allowing for performance short-cuts |
| when serializing and deserializing HTTP headers. |
| Contributed by Oleg Kalnichevski <olegk at apache.org> |
| |
| * [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 <olegk at apache.org> |
| |
| 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 <olegk at apache.org> |
| |
| 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. |