hc-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ol...@apache.org
Subject svn commit: r580954 - /jakarta/httpcomponents/httpcore/trunk/RELEASE_NOTES.txt
Date Mon, 01 Oct 2007 13:52:49 GMT
Author: olegk
Date: Mon Oct  1 06:52:48 2007
New Revision: 580954

URL: http://svn.apache.org/viewvc?rev=580954&view=rev
Log:
Updated release notes for 4.0-alpha6 release

Modified:
    jakarta/httpcomponents/httpcore/trunk/RELEASE_NOTES.txt

Modified: jakarta/httpcomponents/httpcore/trunk/RELEASE_NOTES.txt
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/RELEASE_NOTES.txt?rev=580954&r1=580953&r2=580954&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/RELEASE_NOTES.txt (original)
+++ jakarta/httpcomponents/httpcore/trunk/RELEASE_NOTES.txt Mon Oct  1 06:52:48 2007
@@ -1,4 +1,12 @@
-Changes since release 4.0 Alpha 5
+Release 4.0 Alpha 6
+-------------------
+
+The fifth 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. 
+
+HttpCore is now fully feature complete now and we are planning to freeze 
+the public APIs as of next release (BETA1). 
 
 * [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 
@@ -77,774 +85,898 @@
   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>
-
 HttpCore API changes (generated by JarDiff 0.2)
 --------------------------------------
 
 Class removed: 
-  public org.apache.http.impl.DefaultHttpRequestRetryHandler extends java.lang.Object implements org.apache.http.protocol.HttpRequestRetryHandler
+  public abstract org.apache.http.impl.io.AbstractHttpDataReceiver extends java.lang.Object implements org.apache.http.io.HttpDataReceiver
+Class removed: 
+  public abstract org.apache.http.impl.io.AbstractHttpDataTransmitter extends java.lang.Object implements org.apache.http.io.HttpDataTransmitter
+Class removed: 
+  public org.apache.http.impl.io.HttpDataInputStream extends java.io.InputStream
 Class removed: 
-  public org.apache.http.message.HttpGet extends org.apache.http.message.BasicHttpRequest
+  public org.apache.http.impl.io.HttpDataOutputStream extends java.io.OutputStream
 Class removed: 
-  public org.apache.http.message.HttpHead extends org.apache.http.message.BasicHttpRequest
+  public org.apache.http.impl.io.SocketHttpDataReceiver extends org.apache.http.impl.io.AbstractHttpDataReceiver
 Class removed: 
-  public org.apache.http.message.HttpPost extends org.apache.http.message.BasicHttpEntityEnclosingRequest
+  public org.apache.http.impl.io.SocketHttpDataTransmitter extends org.apache.http.impl.io.AbstractHttpDataTransmitter
 Class removed: 
-  public abstract org.apache.http.protocol.HttpRequestRetryHandler extends java.lang.Object
+  public abstract org.apache.http.io.HttpDataReceiver extends java.lang.Object
 Class removed: 
-  public org.apache.http.util.DateParseException extends java.lang.Exception
+  public abstract org.apache.http.io.HttpDataTransmitter extends java.lang.Object
 Class removed: 
-  public final org.apache.http.util.DateUtils extends java.lang.Object
+  public org.apache.http.message.BasicHttpVersionFormat extends java.lang.Object
+Class removed: 
+  public org.apache.http.protocol.HttpExecutionContext extends java.lang.Object implements org.apache.http.protocol.HttpContext
+Class removed: 
+  public org.apache.http.protocol.SyncHttpExecutionContext extends org.apache.http.protocol.HttpExecutionContext
+Class removed: 
+  public final org.apache.http.util.HeaderUtils extends java.lang.Object
+Class added: 
+  public abstract org.apache.http.FormattedHeader extends java.lang.Object implements org.apache.http.Header
+Class added: 
+  public org.apache.http.ParseException extends java.lang.RuntimeException
+Class added: 
+  public org.apache.http.ProtocolVersion extends java.lang.Object implements java.io.Serializable
+Class added: 
+  public abstract org.apache.http.impl.io.AbstractMessageParser extends java.lang.Object implements org.apache.http.io.HttpMessageParser
+Class added: 
+  public abstract org.apache.http.impl.io.AbstractMessageWriter extends java.lang.Object implements org.apache.http.io.HttpMessageWriter
+Class added: 
+  public abstract org.apache.http.impl.io.AbstractSessionInputBuffer extends java.lang.Object implements org.apache.http.io.SessionInputBuffer
+Class added: 
+  public abstract org.apache.http.impl.io.AbstractSessionOutputBuffer extends java.lang.Object implements org.apache.http.io.SessionOutputBuffer
+Class added: 
+  public org.apache.http.impl.io.HttpRequestParser extends org.apache.http.impl.io.AbstractMessageParser
+Class added: 
+  public org.apache.http.impl.io.HttpRequestWriter extends org.apache.http.impl.io.AbstractMessageWriter
+Class added: 
+  public org.apache.http.impl.io.HttpResponseParser extends org.apache.http.impl.io.AbstractMessageParser
+Class added: 
+  public org.apache.http.impl.io.HttpResponseWriter extends org.apache.http.impl.io.AbstractMessageWriter
+Class added: 
+  public org.apache.http.impl.io.IdentityInputStream extends java.io.InputStream
+Class added: 
+  public org.apache.http.impl.io.SocketInputBuffer extends org.apache.http.impl.io.AbstractSessionInputBuffer
+Class added: 
+  public org.apache.http.impl.io.SocketOutputBuffer extends org.apache.http.impl.io.AbstractSessionOutputBuffer
+Class added: 
+  public abstract org.apache.http.io.HttpMessageParser extends java.lang.Object
+Class added: 
+  public abstract org.apache.http.io.HttpMessageWriter extends java.lang.Object
+Class added: 
+  public abstract org.apache.http.io.SessionInputBuffer extends java.lang.Object
+Class added: 
+  public abstract org.apache.http.io.SessionOutputBuffer extends java.lang.Object
+Class added: 
+  public org.apache.http.message.BasicHeaderValueFormatter extends java.lang.Object implements org.apache.http.message.HeaderValueFormatter
+Class added: 
+  public org.apache.http.message.BasicHeaderValueParser extends java.lang.Object implements org.apache.http.message.HeaderValueParser
+Class added: 
+  public org.apache.http.message.BasicLineFormatter extends java.lang.Object implements org.apache.http.message.LineFormatter
+Class added: 
+  public org.apache.http.message.BasicLineParser extends java.lang.Object implements org.apache.http.message.LineParser
+Class added: 
+  public abstract org.apache.http.message.HeaderValueFormatter extends java.lang.Object
 Class added: 
-  public abstract org.apache.http.HttpConnectionMetrics extends java.lang.Object
+  public abstract org.apache.http.message.HeaderValueParser extends java.lang.Object
 Class added: 
-  public org.apache.http.impl.HttpConnectionMetricsImpl extends java.lang.Object implements org.apache.http.HttpConnectionMetrics
+  public abstract org.apache.http.message.LineFormatter extends java.lang.Object
 Class added: 
-  public org.apache.http.impl.io.HttpTransportMetricsImpl extends java.lang.Object implements org.apache.http.io.HttpTransportMetrics
+  public abstract org.apache.http.message.LineParser extends java.lang.Object
 Class added: 
-  public abstract org.apache.http.io.HttpTransportMetrics extends java.lang.Object
+  public abstract org.apache.http.params.CoreConnectionPNames extends java.lang.Object
 Class added: 
-  public abstract org.apache.http.params.AbstractHttpParams extends java.lang.Object implements org.apache.http.params.HttpParams
+  public abstract org.apache.http.params.CoreProtocolPNames extends java.lang.Object
 Class added: 
-  public abstract org.apache.http.params.HttpLinkedParams extends java.lang.Object implements org.apache.http.params.HttpParams
+  public org.apache.http.protocol.BasicHttpContext extends java.lang.Object implements org.apache.http.protocol.HttpContext
 Class added: 
-  public org.apache.http.params.HttpParamsLinker extends java.lang.Object
-Class changed: org.apache.http.HttpClientConnection
+  public abstract org.apache.http.protocol.ExecutionContext extends java.lang.Object
+Class added: 
+  public org.apache.http.protocol.RequestDate extends java.lang.Object implements org.apache.http.HttpRequestInterceptor
+Class added: 
+  public org.apache.http.protocol.SyncBasicHttpContext extends org.apache.http.protocol.BasicHttpContext
+Class added: 
+  public org.apache.http.util.VersionInfo extends java.lang.Object
+Class changed: org.apache.http.Header
+  Method changed:
+  old:
+    public abstract org.apache.http.HeaderElement[] getElements();
+
+  new:
+    public abstract org.apache.http.HeaderElement[] getElements() throws org.apache.http.ParseException;
+
+Class changed: org.apache.http.HeaderElement
+  Methods added:
+    public abstract org.apache.http.NameValuePair getParameter(int);
+    public abstract int getParameterCount();
+
+Class changed: org.apache.http.HttpHost
+  Fields added:
+    protected final java.lang.String hostname;
+    protected final java.lang.String lcHostname;
+    protected final int port;
+    protected final java.lang.String schemeName;
+
+Class changed: org.apache.http.HttpMessage
   Methods removed:
-    public abstract org.apache.http.HttpResponse receiveResponseHeader(org.apache.http.params.HttpParams) throws org.apache.http.HttpException, java.io.IOException;
+    public abstract org.apache.http.HttpVersion getHttpVersion();
 
   Methods added:
-    public abstract org.apache.http.HttpResponse receiveResponseHeader() throws org.apache.http.HttpException, java.io.IOException;
+    public abstract org.apache.http.ProtocolVersion getProtocolVersion();
+
+Class changed: org.apache.http.HttpResponse
+  Methods removed:
+    public abstract void setStatusLine(org.apache.http.HttpVersion, int);
+    public abstract void setStatusLine(org.apache.http.HttpVersion, int, java.lang.String);
 
-Class changed: org.apache.http.HttpConnection
   Methods added:
-    public abstract org.apache.http.HttpConnectionMetrics getMetrics();
+    public abstract void setStatusLine(org.apache.http.ProtocolVersion, int);
+    public abstract void setStatusLine(org.apache.http.ProtocolVersion, int, java.lang.String);
 
-Class changed: org.apache.http.HttpServerConnection
+Class changed: org.apache.http.HttpResponseFactory
   Methods removed:
-    public abstract org.apache.http.HttpRequest receiveRequestHeader(org.apache.http.params.HttpParams) throws org.apache.http.HttpException, java.io.IOException;
+    public abstract org.apache.http.HttpResponse newHttpResponse(org.apache.http.HttpVersion, int, org.apache.http.protocol.HttpContext);
 
   Methods added:
-    public abstract org.apache.http.HttpRequest receiveRequestHeader() throws org.apache.http.HttpException, java.io.IOException;
+    public abstract org.apache.http.HttpResponse newHttpResponse(org.apache.http.ProtocolVersion, int, org.apache.http.protocol.HttpContext);
 
-Class changed: org.apache.http.impl.AbstractHttpClientConnection
+Class changed: org.apache.http.HttpVersion
   Methods removed:
-    protected org.apache.http.HttpResponse readResponseStatusLine(org.apache.http.params.HttpParams) throws org.apache.http.HttpException, java.io.IOException;
-    public org.apache.http.HttpResponse receiveResponseHeader(org.apache.http.params.HttpParams) throws org.apache.http.HttpException, java.io.IOException;
-    protected void setHttpDataReceiver(org.apache.http.io.HttpDataReceiver);
-    protected void setHttpDataTransmitter(org.apache.http.io.HttpDataTransmitter);
-    protected void setMaxHeaderCount(int);
-    protected void setResponseFactory(org.apache.http.HttpResponseFactory);
+    public int compareTo(java.lang.Object);
+    public int compareTo(org.apache.http.HttpVersion);
+    public boolean equals(java.lang.Object);
+    public boolean equals(org.apache.http.HttpVersion);
+    public int getMajor();
+    public int getMinor();
+    public boolean greaterEquals(org.apache.http.HttpVersion);
+    public int hashCode();
+    public boolean lessEquals(org.apache.http.HttpVersion);
+    public java.lang.String toString();
 
   Methods added:
-    protected org.apache.http.impl.entity.EntityDeserializer createEntityDeserializer();
-    protected org.apache.http.impl.entity.EntitySerializer createEntitySerializer();
-    protected org.apache.http.HttpResponseFactory createHttpResponseFactory();
-    public org.apache.http.HttpConnectionMetrics getMetrics();
+    public org.apache.http.ProtocolVersion forVersion(int, int);
+
+  Fields added:
+    public final static java.lang.String HTTP = HTTP;
+
+  Class descriptor changed:
+  old:
+    public final org.apache.http.HttpVersion extends java.lang.Object implements java.lang.Comparable, java.io.Serializable
+  new:
+    public final org.apache.http.HttpVersion extends org.apache.http.ProtocolVersion implements java.io.Serializable
+Class changed: org.apache.http.RequestLine
+  Methods removed:
+    public abstract org.apache.http.HttpVersion getHttpVersion();
+
+  Methods added:
+    public abstract org.apache.http.ProtocolVersion getProtocolVersion();
+
+Class changed: org.apache.http.StatusLine
+  Methods removed:
+    public abstract org.apache.http.HttpVersion getHttpVersion();
+
+  Methods added:
+    public abstract org.apache.http.ProtocolVersion getProtocolVersion();
+
+Class changed: org.apache.http.impl.AbstractHttpClientConnection
+  Methods removed:
     protected void init(org.apache.http.io.HttpDataReceiver, org.apache.http.io.HttpDataTransmitter, org.apache.http.params.HttpParams);
+    protected void readResponseHeaders(org.apache.http.HttpResponse) throws org.apache.http.HttpException, java.io.IOException;
     protected org.apache.http.HttpResponse readResponseStatusLine() throws org.apache.http.HttpException, java.io.IOException;
-    public org.apache.http.HttpResponse receiveResponseHeader() throws org.apache.http.HttpException, java.io.IOException;
+    protected void sendRequestHeaders(org.apache.http.HttpRequest) throws org.apache.http.HttpException, java.io.IOException;
+    protected void sendRequestLine(org.apache.http.HttpRequest) throws org.apache.http.HttpException, java.io.IOException;
+    protected static boolean startsWithHTTP(org.apache.http.util.CharArrayBuffer);
+
+  Methods added:
+    protected org.apache.http.io.HttpMessageWriter createRequestWriter(org.apache.http.io.SessionOutputBuffer, org.apache.http.params.HttpParams);
+    protected org.apache.http.io.HttpMessageParser createResponseParser(org.apache.http.io.SessionInputBuffer, org.apache.http.HttpResponseFactory, org.apache.http.params.HttpParams);
+    protected void init(org.apache.http.io.SessionInputBuffer, org.apache.http.io.SessionOutputBuffer, org.apache.http.params.HttpParams);
 
 Class changed: org.apache.http.impl.AbstractHttpServerConnection
   Methods removed:
-    public org.apache.http.HttpRequest receiveRequestHeader(org.apache.http.params.HttpParams) throws org.apache.http.HttpException, java.io.IOException;
-    protected org.apache.http.HttpRequest receiveRequestLine(org.apache.http.params.HttpParams) throws org.apache.http.HttpException, java.io.IOException;
-    protected void setHttpDataReceiver(org.apache.http.io.HttpDataReceiver);
-    protected void setHttpDataTransmitter(org.apache.http.io.HttpDataTransmitter);
-    protected void setMaxHeaderCount(int);
-    protected void setRequestFactory(org.apache.http.HttpRequestFactory);
-
-  Methods added:
-    protected org.apache.http.impl.entity.EntityDeserializer createEntityDeserializer();
-    protected org.apache.http.impl.entity.EntitySerializer createEntitySerializer();
-    protected org.apache.http.HttpRequestFactory createHttpRequestFactory();
-    public org.apache.http.HttpConnectionMetrics getMetrics();
     protected void init(org.apache.http.io.HttpDataReceiver, org.apache.http.io.HttpDataTransmitter, org.apache.http.params.HttpParams);
-    public org.apache.http.HttpRequest receiveRequestHeader() throws org.apache.http.HttpException, java.io.IOException;
+    protected void receiveRequestHeaders(org.apache.http.HttpRequest) throws org.apache.http.HttpException, java.io.IOException;
     protected org.apache.http.HttpRequest receiveRequestLine() throws org.apache.http.HttpException, java.io.IOException;
+    protected void sendResponseHeaders(org.apache.http.HttpResponse) throws org.apache.http.HttpException, java.io.IOException;
+    protected void sendResponseStatusLine(org.apache.http.HttpResponse) throws org.apache.http.HttpException, java.io.IOException;
 
-Class changed: org.apache.http.impl.SocketHttpClientConnection
   Methods added:
+    protected org.apache.http.io.HttpMessageParser createRequestParser(org.apache.http.io.SessionInputBuffer, org.apache.http.HttpRequestFactory, org.apache.http.params.HttpParams);
+    protected org.apache.http.io.HttpMessageWriter createResponseWriter(org.apache.http.io.SessionOutputBuffer, org.apache.http.params.HttpParams);
+    protected void init(org.apache.http.io.SessionInputBuffer, org.apache.http.io.SessionOutputBuffer, org.apache.http.params.HttpParams);
+
+Class changed: org.apache.http.impl.DefaultHttpResponseFactory
+  Methods removed:
+    public org.apache.http.HttpResponse newHttpResponse(org.apache.http.HttpVersion, int, org.apache.http.protocol.HttpContext);
+
+  Methods added:
+    public org.apache.http.HttpResponse newHttpResponse(org.apache.http.ProtocolVersion, int, org.apache.http.protocol.HttpContext);
+
+Class changed: org.apache.http.impl.SocketHttpClientConnection
+  Methods removed:
     protected org.apache.http.io.HttpDataReceiver createHttpDataReceiver(java.net.Socket, int, org.apache.http.params.HttpParams) throws java.io.IOException;
     protected org.apache.http.io.HttpDataTransmitter createHttpDataTransmitter(java.net.Socket, int, org.apache.http.params.HttpParams) throws java.io.IOException;
-    protected java.net.Socket getSocket();
 
-  Fields removed:
-    protected volatile boolean open;
-    protected java.net.Socket socket;
+  Methods added:
+    protected org.apache.http.io.SessionInputBuffer createSessionInputBuffer(java.net.Socket, int, org.apache.http.params.HttpParams) throws java.io.IOException;
+    protected org.apache.http.io.SessionOutputBuffer createSessionOutputBuffer(java.net.Socket, int, org.apache.http.params.HttpParams) throws java.io.IOException;
 
 Class changed: org.apache.http.impl.SocketHttpServerConnection
-  Methods added:
+  Methods removed:
     protected org.apache.http.io.HttpDataReceiver createHttpDataReceiver(java.net.Socket, int, org.apache.http.params.HttpParams) throws java.io.IOException;
     protected org.apache.http.io.HttpDataTransmitter createHttpDataTransmitter(java.net.Socket, int, org.apache.http.params.HttpParams) throws java.io.IOException;
-    protected java.net.Socket getSocket();
 
-  Fields removed:
-    protected volatile boolean open;
-    protected java.net.Socket socket;
+  Methods added:
+    protected org.apache.http.io.SessionInputBuffer createHttpDataReceiver(java.net.Socket, int, org.apache.http.params.HttpParams) throws java.io.IOException;
+    protected org.apache.http.io.SessionOutputBuffer createHttpDataTransmitter(java.net.Socket, int, org.apache.http.params.HttpParams) throws java.io.IOException;
 
-Class changed: org.apache.http.impl.io.AbstractHttpDataReceiver
+Class changed: org.apache.http.impl.entity.EntityDeserializer
   Methods removed:
-    protected void init(java.io.InputStream, int);
-    public void reset(org.apache.http.params.HttpParams);
+    public org.apache.http.HttpEntity deserialize(org.apache.http.io.HttpDataReceiver, org.apache.http.HttpMessage) throws org.apache.http.HttpException, java.io.IOException;
+    protected org.apache.http.entity.BasicHttpEntity doDeserialize(org.apache.http.io.HttpDataReceiver, org.apache.http.HttpMessage) throws org.apache.http.HttpException, java.io.IOException;
 
   Methods added:
-    public org.apache.http.io.HttpTransportMetrics getMetrics();
-    protected void init(java.io.InputStream, int, org.apache.http.params.HttpParams);
+    public org.apache.http.HttpEntity deserialize(org.apache.http.io.SessionInputBuffer, org.apache.http.HttpMessage) throws org.apache.http.HttpException, java.io.IOException;
+    protected org.apache.http.entity.BasicHttpEntity doDeserialize(org.apache.http.io.SessionInputBuffer, org.apache.http.HttpMessage) throws org.apache.http.HttpException, java.io.IOException;
 
-Class changed: org.apache.http.impl.io.AbstractHttpDataTransmitter
+Class changed: org.apache.http.impl.entity.EntitySerializer
   Methods removed:
-    protected void init(java.io.OutputStream, int);
-    public void reset(org.apache.http.params.HttpParams);
+    protected java.io.OutputStream doSerialize(org.apache.http.io.HttpDataTransmitter, org.apache.http.HttpMessage) throws org.apache.http.HttpException, java.io.IOException;
+    public void serialize(org.apache.http.io.HttpDataTransmitter, org.apache.http.HttpMessage, org.apache.http.HttpEntity) throws org.apache.http.HttpException, java.io.IOException;
 
   Methods added:
-    public org.apache.http.io.HttpTransportMetrics getMetrics();
-    protected void init(java.io.OutputStream, int, org.apache.http.params.HttpParams);
+    protected java.io.OutputStream doSerialize(org.apache.http.io.SessionOutputBuffer, org.apache.http.HttpMessage) throws org.apache.http.HttpException, java.io.IOException;
+    public void serialize(org.apache.http.io.SessionOutputBuffer, org.apache.http.HttpMessage, org.apache.http.HttpEntity) throws org.apache.http.HttpException, java.io.IOException;
 
-Class changed: org.apache.http.impl.io.SocketHttpDataReceiver
+Class changed: org.apache.http.impl.io.ChunkedInputStream
   Methods removed:
-    public SocketHttpDataReceiver(java.net.Socket, int) throws java.io.IOException;
+    public ChunkedInputStream(org.apache.http.io.HttpDataReceiver);
 
   Methods added:
-    public SocketHttpDataReceiver(java.net.Socket, int, org.apache.http.params.HttpParams) throws java.io.IOException;
+    public ChunkedInputStream(org.apache.http.io.SessionInputBuffer);
 
-Class changed: org.apache.http.impl.io.SocketHttpDataTransmitter
+Class changed: org.apache.http.impl.io.ChunkedOutputStream
   Methods removed:
-    public SocketHttpDataTransmitter(java.net.Socket, int) throws java.io.IOException;
+    public ChunkedOutputStream(org.apache.http.io.HttpDataTransmitter) throws java.io.IOException;
+    public ChunkedOutputStream(org.apache.http.io.HttpDataTransmitter, int) throws java.io.IOException;
 
   Methods added:
-    public SocketHttpDataTransmitter(java.net.Socket, int, org.apache.http.params.HttpParams) throws java.io.IOException;
+    public ChunkedOutputStream(org.apache.http.io.SessionOutputBuffer) throws java.io.IOException;
+    public ChunkedOutputStream(org.apache.http.io.SessionOutputBuffer, int) throws java.io.IOException;
 
-Class changed: org.apache.http.io.HttpDataReceiver
+Class changed: org.apache.http.impl.io.ContentLengthInputStream
   Methods removed:
-    public abstract void reset(org.apache.http.params.HttpParams);
+    public ContentLengthInputStream(org.apache.http.io.HttpDataReceiver, long);
 
   Methods added:
-    public abstract org.apache.http.io.HttpTransportMetrics getMetrics();
+    public ContentLengthInputStream(org.apache.http.io.SessionInputBuffer, long);
 
-Class changed: org.apache.http.io.HttpDataTransmitter
+Class changed: org.apache.http.impl.io.ContentLengthOutputStream
   Methods removed:
-    public abstract void reset(org.apache.http.params.HttpParams);
+    public ContentLengthOutputStream(org.apache.http.io.HttpDataTransmitter, long);
 
   Methods added:
-    public abstract org.apache.http.io.HttpTransportMetrics getMetrics();
+    public ContentLengthOutputStream(org.apache.http.io.SessionOutputBuffer, long);
 
-Class changed: org.apache.http.params.BasicHttpParams
+Class changed: org.apache.http.impl.io.IdentityOutputStream
   Methods removed:
-    public boolean getBooleanParameter(java.lang.String, boolean);
-    public double getDoubleParameter(java.lang.String, double);
-    public int getIntParameter(java.lang.String, int);
-    public long getLongParameter(java.lang.String, long);
-    public boolean isParameterFalse(java.lang.String);
-    public boolean isParameterTrue(java.lang.String);
-    public org.apache.http.params.HttpParams setBooleanParameter(java.lang.String, boolean);
-    public org.apache.http.params.HttpParams setDoubleParameter(java.lang.String, double);
-    public org.apache.http.params.HttpParams setIntParameter(java.lang.String, int);
-    public org.apache.http.params.HttpParams setLongParameter(java.lang.String, long);
+    public IdentityOutputStream(org.apache.http.io.HttpDataTransmitter);
 
   Methods added:
-    public org.apache.http.params.HttpParams copy();
-    protected void copyParams(org.apache.http.params.HttpParams);
+    public IdentityOutputStream(org.apache.http.io.SessionOutputBuffer);
 
-  Fields added:
-    protected org.apache.http.params.HttpParams defaults;
+Class changed: org.apache.http.message.BasicHeader
+  Methods removed:
+    public static java.lang.String format(org.apache.http.Header);
+    public static void format(org.apache.http.util.CharArrayBuffer, org.apache.http.Header);
 
-  Class descriptor changed:
-  old:
-    public org.apache.http.params.BasicHttpParams extends java.lang.Object implements org.apache.http.params.HttpParams, java.io.Serializable
-  new:
-    public org.apache.http.params.BasicHttpParams extends org.apache.http.params.AbstractHttpParams implements org.apache.http.params.HttpLinkedParams, java.io.Serializable
   Method changed:
   old:
-    public synchronized void clear();
+    public org.apache.http.HeaderElement[] getElements();
 
   new:
-    public void clear();
+    public org.apache.http.HeaderElement[] getElements() throws org.apache.http.ParseException;
 
-  Method changed:
-  old:
-    public synchronized org.apache.http.params.HttpParams getDefaults();
+Class changed: org.apache.http.message.BasicHeaderElement
+  Methods removed:
+    public static java.lang.String format(org.apache.http.HeaderElement);
+    public static void format(org.apache.http.util.CharArrayBuffer, org.apache.http.HeaderElement);
+    public static void formatAll(org.apache.http.util.CharArrayBuffer, org.apache.http.HeaderElement[]);
+    public static java.lang.String formatAll(org.apache.http.HeaderElement[]);
+    public final static org.apache.http.HeaderElement parse(java.lang.String);
+    public static org.apache.http.HeaderElement parse(org.apache.http.util.CharArrayBuffer, int, int);
+    public final static org.apache.http.HeaderElement[] parseAll(java.lang.String);
+    public final static org.apache.http.HeaderElement[] parseAll(org.apache.http.util.CharArrayBuffer, int, int);
 
-  new:
-    public org.apache.http.params.HttpParams getDefaults();
+  Methods added:
+    public BasicHeaderElement(org.apache.http.NameValuePair[]);
+    public org.apache.http.NameValuePair getParameter(int);
+    public int getParameterCount();
 
-  Method changed:
-  old:
-    public synchronized java.lang.Object getParameter(java.lang.String);
+Class changed: org.apache.http.message.BasicHttpRequest
+  Methods removed:
+    public BasicHttpRequest(java.lang.String, java.lang.String, org.apache.http.HttpVersion);
+    public org.apache.http.HttpVersion getHttpVersion();
 
-  new:
-    public java.lang.Object getParameter(java.lang.String);
+  Methods added:
+    public BasicHttpRequest(java.lang.String, java.lang.String, org.apache.http.ProtocolVersion);
+    public org.apache.http.ProtocolVersion getProtocolVersion();
 
-  Method changed:
-  old:
-    public synchronized boolean isParameterSetLocally(java.lang.String);
+Class changed: org.apache.http.message.BasicHttpResponse
+  Methods removed:
+    public BasicHttpResponse(org.apache.http.HttpVersion, int, java.lang.String);
+    public org.apache.http.HttpVersion getHttpVersion();
+    public void setStatusLine(org.apache.http.HttpVersion, int);
+    public void setStatusLine(org.apache.http.HttpVersion, int, java.lang.String);
 
-  new:
-    public boolean isParameterSetLocally(java.lang.String);
+  Methods added:
+    public BasicHttpResponse(org.apache.http.ProtocolVersion, int, java.lang.String);
+    public org.apache.http.ProtocolVersion getProtocolVersion();
+    public void setStatusLine(org.apache.http.ProtocolVersion, int);
+    public void setStatusLine(org.apache.http.ProtocolVersion, int, java.lang.String);
 
-  Method changed:
-  old:
-    public synchronized void setDefaults(org.apache.http.params.HttpParams);
+Class changed: org.apache.http.message.BasicNameValuePair
+  Methods removed:
+    public static java.lang.String format(org.apache.http.NameValuePair, boolean);
+    public static void format(org.apache.http.util.CharArrayBuffer, org.apache.http.NameValuePair, boolean);
+    public static void formatAll(org.apache.http.util.CharArrayBuffer, org.apache.http.NameValuePair[], boolean);
+    public static java.lang.String formatAll(org.apache.http.NameValuePair[], boolean);
+    public final static org.apache.http.NameValuePair parse(java.lang.String);
+    public static org.apache.http.NameValuePair parse(org.apache.http.util.CharArrayBuffer, int, int);
+    public final static org.apache.http.NameValuePair[] parseAll(java.lang.String);
+    public final static org.apache.http.NameValuePair[] parseAll(org.apache.http.util.CharArrayBuffer, int, int);
 
-  new:
-    public void setDefaults(org.apache.http.params.HttpParams);
+Class changed: org.apache.http.message.BasicRequestLine
+  Methods removed:
+    public BasicRequestLine(java.lang.String, java.lang.String, org.apache.http.HttpVersion);
+    public static java.lang.String format(org.apache.http.RequestLine);
+    public static void format(org.apache.http.util.CharArrayBuffer, org.apache.http.RequestLine);
+    public org.apache.http.HttpVersion getHttpVersion();
+    public final static org.apache.http.RequestLine parse(java.lang.String) throws org.apache.http.ProtocolException;
+    public static org.apache.http.RequestLine parse(org.apache.http.util.CharArrayBuffer, int, int) throws org.apache.http.ProtocolException;
 
+  Methods added:
+    public BasicRequestLine(java.lang.String, java.lang.String, org.apache.http.ProtocolVersion);
+    public org.apache.http.ProtocolVersion getProtocolVersion();
+
+Class changed: org.apache.http.message.BasicStatusLine
+  Methods removed:
+    public BasicStatusLine(org.apache.http.HttpVersion, int, java.lang.String);
+    public static java.lang.String format(org.apache.http.StatusLine);
+    public static void format(org.apache.http.util.CharArrayBuffer, org.apache.http.StatusLine);
+    public org.apache.http.HttpVersion getHttpVersion();
+    public final static org.apache.http.StatusLine parse(java.lang.String) throws org.apache.http.ProtocolException;
+    public static org.apache.http.StatusLine parse(org.apache.http.util.CharArrayBuffer, int, int) throws org.apache.http.ProtocolException;
+
+  Methods added:
+    public BasicStatusLine(org.apache.http.ProtocolVersion, int, java.lang.String);
+    public org.apache.http.ProtocolVersion getProtocolVersion();
+
+Class changed: org.apache.http.message.BufferedHeader
+  Methods added:
+    public BufferedHeader(org.apache.http.util.CharArrayBuffer, org.apache.http.message.HeaderValueParser) throws org.apache.http.ParseException;
+    public org.apache.http.message.HeaderValueParser getParser();
+    public void setParser(org.apache.http.message.HeaderValueParser);
+
+  Class descriptor changed:
+  old:
+    public org.apache.http.message.BufferedHeader extends java.lang.Object implements org.apache.http.Header
+  new:
+    public org.apache.http.message.BufferedHeader extends java.lang.Object implements org.apache.http.FormattedHeader
   Method changed:
   old:
-    public synchronized org.apache.http.params.HttpParams setParameter(java.lang.String, java.lang.Object);
+    public BufferedHeader(org.apache.http.util.CharArrayBuffer);
 
   new:
-    public org.apache.http.params.HttpParams setParameter(java.lang.String, java.lang.Object);
+    public BufferedHeader(org.apache.http.util.CharArrayBuffer) throws org.apache.http.ParseException;
 
   Method changed:
   old:
-    public synchronized void setParameters(java.lang.String[], java.lang.Object);
+    public org.apache.http.HeaderElement[] getElements();
 
   new:
-    public void setParameters(java.lang.String[], java.lang.Object);
+    public org.apache.http.HeaderElement[] getElements() throws org.apache.http.ParseException;
 
 Class changed: org.apache.http.params.HttpConnectionParams
-  Fields added:
+  Fields removed:
+    public final static java.lang.String CONNECTION_TIMEOUT = http.connection.timeout;
+    public final static java.lang.String MAX_HEADER_COUNT = http.connection.max-header-count;
+    public final static java.lang.String MAX_LINE_LENGTH = http.connection.max-line-length;
     public final static java.lang.String MAX_STATUS_LINE_GARBAGE = http.connection.max-status-line-garbage;
+    public final static java.lang.String SOCKET_BUFFER_SIZE = http.socket.buffer-size;
+    public final static java.lang.String SO_LINGER = http.socket.linger;
+    public final static java.lang.String SO_TIMEOUT = http.socket.timeout;
+    public final static java.lang.String STALE_CONNECTION_CHECK = http.connection.stalecheck;
+    public final static java.lang.String TCP_NODELAY = http.tcp.nodelay;
 
-Class changed: org.apache.http.params.HttpParams
+  Class descriptor changed:
+  old:
+    public final org.apache.http.params.HttpConnectionParams extends java.lang.Object
+  new:
+    public final org.apache.http.params.HttpConnectionParams extends java.lang.Object implements org.apache.http.params.CoreConnectionPNames
+Class changed: org.apache.http.params.HttpProtocolParams
   Methods removed:
-    public abstract org.apache.http.params.HttpParams getDefaults();
-    public abstract boolean isParameterSetLocally(java.lang.String);
-    public abstract void setDefaults(org.apache.http.params.HttpParams);
+    public static org.apache.http.HttpVersion getVersion(org.apache.http.params.HttpParams);
+    public static void setVersion(org.apache.http.params.HttpParams, org.apache.http.HttpVersion);
 
   Methods added:
-    public abstract org.apache.http.params.HttpParams copy();
+    public static org.apache.http.ProtocolVersion getVersion(org.apache.http.params.HttpParams);
+    public static void setVersion(org.apache.http.params.HttpParams, org.apache.http.ProtocolVersion);
 
-Class changed: org.apache.http.params.HttpProtocolParams
   Fields removed:
-    public final static java.lang.String STATUS_LINE_GARBAGE_LIMIT = http.protocol.status-line-garbage-limit;
+    public final static java.lang.String HTTP_CONTENT_CHARSET = http.protocol.content-charset;
+    public final static java.lang.String HTTP_ELEMENT_CHARSET = http.protocol.element-charset;
+    public final static java.lang.String ORIGIN_SERVER = http.origin-server;
+    public final static java.lang.String PROTOCOL_VERSION = http.protocol.version;
+    public final static java.lang.String STRICT_TRANSFER_ENCODING = http.protocol.strict-transfer-encoding;
+    public final static java.lang.String USER_AGENT = http.useragent;
+    public final static java.lang.String USE_EXPECT_CONTINUE = http.protocol.expect-continue;
+    public final static java.lang.String WAIT_FOR_CONTINUE = http.protocol.wait-for-continue;
 
+  Class descriptor changed:
+  old:
+    public final org.apache.http.params.HttpProtocolParams extends java.lang.Object
+  new:
+    public final org.apache.http.params.HttpProtocolParams extends java.lang.Object implements org.apache.http.params.CoreProtocolPNames
 Class changed: org.apache.http.protocol.BasicHttpProcessor
   Methods added:
-    public org.apache.http.protocol.BasicHttpProcessor copy();
+    public final void addInterceptor(org.apache.http.HttpRequestInterceptor, int);
+    public final void addInterceptor(org.apache.http.HttpResponseInterceptor, int);
+    public void addRequestInterceptor(org.apache.http.HttpRequestInterceptor, int);
+    public void addResponseInterceptor(org.apache.http.HttpResponseInterceptor, int);
+    public void removeRequestInterceptorByClass(java.lang.Class);
+    public void removeResponseInterceptorByClass(java.lang.Class);
 
-Class changed: org.apache.http.protocol.HttpDateGenerator
   Fields added:
-    public final static java.util.TimeZone GMT;
-    public final static java.lang.String PATTERN_RFC1123 = EEE, dd MMM yyyy HH:mm:ss zzz;
+    protected java.util.List requestInterceptors;
+    protected java.util.List responseInterceptors;
 
-Class changed: org.apache.http.protocol.HttpRequestExecutor
-  Methods removed:
-    public HttpRequestExecutor(org.apache.http.protocol.HttpProcessor);
-    protected void doFinishResponse(org.apache.http.HttpResponse, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException;
-    protected void doPrepareRequest(org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException;
-    public final org.apache.http.params.HttpParams getParams();
-    public final void setParams(org.apache.http.params.HttpParams);
+Class changed: org.apache.http.protocol.HTTP
+  Fields removed:
+    public final static java.lang.String DATE_DIRECTIVE = Date;
+    public final static java.lang.String SERVER_DIRECTIVE = Server;
 
-  Methods added:
-    public HttpRequestExecutor();
-    public void postProcess(org.apache.http.HttpResponse, org.apache.http.protocol.HttpProcessor, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException;
-    public void preProcess(org.apache.http.HttpRequest, org.apache.http.protocol.HttpProcessor, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException;
+  Fields added:
+    public final static java.lang.String DATE_HEADER = Date;
+    public final static java.lang.String SERVER_HEADER = Server;
 
-Class changed: org.apache.http.util.HeaderUtils
-  Methods removed:
-    public static org.apache.http.Header[] parseHeaders(org.apache.http.io.HttpDataReceiver, int) throws org.apache.http.HttpException, java.io.IOException;
+Class changed: org.apache.http.protocol.HttpContext
+  Fields removed:
+    public final static java.lang.String HTTP_CONNECTION = http.connection;
+    public final static java.lang.String HTTP_REQUEST = http.request;
+    public final static java.lang.String HTTP_RESPONSE = http.response;
 
+Class changed: org.apache.http.protocol.HttpRequestInterceptorList
   Methods added:
-    public static org.apache.http.Header[] parseHeaders(org.apache.http.io.HttpDataReceiver, int, int) throws org.apache.http.HttpException, java.io.IOException;
+    public abstract void addRequestInterceptor(org.apache.http.HttpRequestInterceptor, int);
+    public abstract void removeRequestInterceptorByClass(java.lang.Class);
 
-API diff generated by JarDiff http://www.osjava.org/jardiff/
+Class changed: org.apache.http.protocol.HttpResponseInterceptorList
+  Methods added:
+    public abstract void addResponseInterceptor(org.apache.http.HttpResponseInterceptor, int);
+    public abstract void removeResponseInterceptorByClass(java.lang.Class);
+
+Class changed: org.apache.http.util.EntityUtils
+  Method changed:
+  old:
+    public static java.lang.String getContentCharSet(org.apache.http.HttpEntity);
+
+  new:
+    public static java.lang.String getContentCharSet(org.apache.http.HttpEntity) throws org.apache.http.ParseException;
+
+  Method changed:
+  old:
+    public static java.lang.String toString(org.apache.http.HttpEntity) throws java.io.IOException;
+
+  new:
+    public static java.lang.String toString(org.apache.http.HttpEntity) throws java.io.IOException, org.apache.http.ParseException;
 
+  Method changed:
+  old:
+    public static java.lang.String toString(org.apache.http.HttpEntity, java.lang.String) throws java.io.IOException;
+
+  new:
+    public static java.lang.String toString(org.apache.http.HttpEntity, java.lang.String) throws java.io.IOException, org.apache.http.ParseException;
+
+API diff generated by JarDiff http://www.osjava.org/jardiff/
+  
 HttpCore NIO API changes (generated by JarDiff 0.2)
 --------------------------------------
 
+Class removed: 
+  public abstract org.apache.http.impl.nio.codecs.HttpMessageParser extends java.lang.Object
+Class removed: 
+  public org.apache.http.impl.nio.reactor.SessionInputBuffer extends org.apache.http.nio.util.ExpandableBuffer
+Class removed: 
+  public org.apache.http.impl.nio.reactor.SessionOutputBuffer extends org.apache.http.nio.util.ExpandableBuffer
+Class removed: 
+  public final org.apache.http.nio.params.HttpNIOParams extends java.lang.Object
 Class added: 
-  public abstract org.apache.http.nio.FileContentDecoder extends java.lang.Object implements org.apache.http.nio.ContentDecoder
+  public abstract org.apache.http.impl.nio.codecs.AbstractMessageParser extends java.lang.Object implements org.apache.http.nio.NHttpMessageParser
 Class added: 
-  public abstract org.apache.http.nio.FileContentEncoder extends java.lang.Object implements org.apache.http.nio.ContentEncoder
+  public abstract org.apache.http.impl.nio.codecs.AbstractMessageWriter extends java.lang.Object implements org.apache.http.nio.NHttpMessageWriter
 Class added: 
-  public org.apache.http.nio.entity.ContentBufferEntity extends org.apache.http.entity.BasicHttpEntity
+  public org.apache.http.impl.nio.codecs.HttpRequestWriter extends org.apache.http.impl.nio.codecs.AbstractMessageWriter
 Class added: 
-  public org.apache.http.nio.entity.ContentInputStream extends java.io.InputStream
+  public org.apache.http.impl.nio.codecs.HttpResponseWriter extends org.apache.http.impl.nio.codecs.AbstractMessageWriter
 Class added: 
-  public org.apache.http.nio.entity.ContentOutputStream extends java.io.OutputStream
+  public org.apache.http.impl.nio.reactor.SessionInputBufferImpl extends org.apache.http.nio.util.ExpandableBuffer implements org.apache.http.nio.reactor.SessionInputBuffer
 Class added: 
-  public abstract org.apache.http.nio.protocol.NHttpClientHandlerBase extends org.apache.http.nio.protocol.NHttpHandlerBase implements org.apache.http.nio.NHttpClientHandler
+  public org.apache.http.impl.nio.reactor.SessionOutputBufferImpl extends org.apache.http.nio.util.ExpandableBuffer implements org.apache.http.nio.reactor.SessionOutputBuffer
 Class added: 
-  public abstract org.apache.http.nio.protocol.NHttpHandlerBase extends java.lang.Object
+  public abstract org.apache.http.nio.NHttpMessageParser extends java.lang.Object
 Class added: 
-  public abstract org.apache.http.nio.protocol.NHttpServiceHandlerBase extends org.apache.http.nio.protocol.NHttpHandlerBase implements org.apache.http.nio.NHttpServiceHandler
+  public abstract org.apache.http.nio.NHttpMessageWriter extends java.lang.Object
 Class added: 
-  public org.apache.http.nio.protocol.ThrottlingHttpClientHandler extends org.apache.http.nio.protocol.NHttpClientHandlerBase
+  public abstract org.apache.http.nio.params.NIOReactorPNames extends java.lang.Object
 Class added: 
-  public abstract org.apache.http.nio.util.ByteBufferAllocator extends java.lang.Object
+  public final org.apache.http.nio.params.NIOReactorParams extends java.lang.Object implements org.apache.http.nio.params.NIOReactorPNames
 Class added: 
-  public org.apache.http.nio.util.DirectByteBufferAllocator extends java.lang.Object implements org.apache.http.nio.util.ByteBufferAllocator
+  public abstract org.apache.http.nio.reactor.SessionInputBuffer extends java.lang.Object
 Class added: 
-  public org.apache.http.nio.util.HeapByteBufferAllocator extends java.lang.Object implements org.apache.http.nio.util.ByteBufferAllocator
-Class changed: org.apache.http.impl.nio.DefaultClientIOEventDispatch
+  public abstract org.apache.http.nio.reactor.SessionOutputBuffer extends java.lang.Object
+Class changed: org.apache.http.impl.nio.DefaultNHttpClientConnection
   Methods added:
-    public DefaultClientIOEventDispatch(org.apache.http.nio.NHttpClientHandler, org.apache.http.nio.util.ByteBufferAllocator, org.apache.http.params.HttpParams);
+    protected org.apache.http.nio.NHttpMessageWriter createRequestWriter(org.apache.http.nio.reactor.SessionOutputBuffer, org.apache.http.params.HttpParams);
+    protected org.apache.http.nio.NHttpMessageParser createResponseParser(org.apache.http.nio.reactor.SessionInputBuffer, org.apache.http.HttpResponseFactory, org.apache.http.params.HttpParams);
 
-Class changed: org.apache.http.impl.nio.DefaultNHttpClientConnection
-  Methods removed:
-    public DefaultNHttpClientConnection(org.apache.http.nio.reactor.IOSession, org.apache.http.HttpResponseFactory, org.apache.http.params.HttpParams);
-    public void cancelRequest();
+Class changed: org.apache.http.impl.nio.DefaultNHttpServerConnection
+  Methods added:
+    protected org.apache.http.nio.NHttpMessageParser createRequestParser(org.apache.http.nio.reactor.SessionInputBuffer, org.apache.http.HttpRequestFactory, org.apache.http.params.HttpParams);
+    protected org.apache.http.nio.NHttpMessageWriter createResponseWriter(org.apache.http.nio.reactor.SessionOutputBuffer, org.apache.http.params.HttpParams);
 
+Class changed: org.apache.http.impl.nio.NHttpConnectionBase
   Methods added:
-    public DefaultNHttpClientConnection(org.apache.http.nio.reactor.IOSession, org.apache.http.HttpResponseFactory, org.apache.http.nio.util.ByteBufferAllocator, org.apache.http.params.HttpParams);
-    public void resetInput();
-    public void resetOutput();
+    public int getStatus();
 
-  Method changed:
-  old:
-    public void submitRequest(org.apache.http.HttpRequest) throws org.apache.http.HttpException;
+  Fields removed:
+    protected volatile boolean closed;
+    protected final org.apache.http.util.CharArrayBuffer lineBuffer;
+    protected final org.apache.http.impl.HttpConnectionMetricsImpl metrics;
 
-  new:
-    public void submitRequest(org.apache.http.HttpRequest) throws java.io.IOException, org.apache.http.HttpException;
+  Fields added:
+    protected final org.apache.http.impl.HttpConnectionMetricsImpl connMetrics;
+    protected final org.apache.http.impl.io.HttpTransportMetricsImpl inTransportMetrics;
+    protected final org.apache.http.impl.io.HttpTransportMetricsImpl outTransportMetrics;
+    protected volatile int status;
 
-Class changed: org.apache.http.impl.nio.DefaultNHttpServerConnection
+Class changed: org.apache.http.impl.nio.codecs.AbstractContentDecoder
   Methods removed:
-    public DefaultNHttpServerConnection(org.apache.http.nio.reactor.IOSession, org.apache.http.HttpRequestFactory, org.apache.http.params.HttpParams);
-    public void cancelRequest();
+    public AbstractContentDecoder(java.nio.channels.ReadableByteChannel, org.apache.http.impl.nio.reactor.SessionInputBuffer);
 
   Methods added:
-    public DefaultNHttpServerConnection(org.apache.http.nio.reactor.IOSession, org.apache.http.HttpRequestFactory, org.apache.http.nio.util.ByteBufferAllocator, org.apache.http.params.HttpParams);
-    public void resetInput();
-    public void resetOutput();
+    public AbstractContentDecoder(java.nio.channels.ReadableByteChannel, org.apache.http.nio.reactor.SessionInputBuffer, org.apache.http.impl.io.HttpTransportMetricsImpl);
 
-  Method changed:
-  old:
-    public void submitResponse(org.apache.http.HttpResponse) throws org.apache.http.HttpException;
+  Fields added:
+    protected final org.apache.http.impl.io.HttpTransportMetricsImpl metrics;
 
-  new:
-    public void submitResponse(org.apache.http.HttpResponse) throws java.io.IOException, org.apache.http.HttpException;
+Class changed: org.apache.http.impl.nio.codecs.AbstractContentEncoder
+  Methods removed:
+    public AbstractContentEncoder();
 
-Class changed: org.apache.http.impl.nio.DefaultServerIOEventDispatch
   Methods added:
-    public DefaultServerIOEventDispatch(org.apache.http.nio.NHttpServiceHandler, org.apache.http.nio.util.ByteBufferAllocator, org.apache.http.params.HttpParams);
+    public AbstractContentEncoder(java.nio.channels.WritableByteChannel, org.apache.http.nio.reactor.SessionOutputBuffer, org.apache.http.impl.io.HttpTransportMetricsImpl);
 
-Class changed: org.apache.http.impl.nio.NHttpConnectionBase
+  Fields added:
+    protected final org.apache.http.nio.reactor.SessionOutputBuffer buffer;
+    protected final java.nio.channels.WritableByteChannel channel;
+    protected final org.apache.http.impl.io.HttpTransportMetricsImpl metrics;
+
+Class changed: org.apache.http.impl.nio.codecs.ChunkDecoder
   Methods removed:
-    public NHttpConnectionBase(org.apache.http.nio.reactor.IOSession, org.apache.http.params.HttpParams);
+    public ChunkDecoder(java.nio.channels.ReadableByteChannel, org.apache.http.impl.nio.reactor.SessionInputBuffer);
 
   Methods added:
-    public NHttpConnectionBase(org.apache.http.nio.reactor.IOSession, org.apache.http.nio.util.ByteBufferAllocator, org.apache.http.params.HttpParams);
-    public org.apache.http.HttpConnectionMetrics getMetrics();
+    public ChunkDecoder(java.nio.channels.ReadableByteChannel, org.apache.http.nio.reactor.SessionInputBuffer, org.apache.http.impl.io.HttpTransportMetricsImpl);
 
-  Fields added:
-    protected final org.apache.http.impl.HttpConnectionMetricsImpl metrics;
+Class changed: org.apache.http.impl.nio.codecs.ChunkEncoder
+  Methods removed:
+    public ChunkEncoder(org.apache.http.impl.nio.reactor.SessionOutputBuffer);
 
-  Method changed:
-  old:
-    protected void assertNotClosed();
+  Methods added:
+    public ChunkEncoder(java.nio.channels.WritableByteChannel, org.apache.http.nio.reactor.SessionOutputBuffer, org.apache.http.impl.io.HttpTransportMetricsImpl);
 
-  new:
-    protected void assertNotClosed() throws java.io.IOException;
+Class changed: org.apache.http.impl.nio.codecs.HttpRequestParser
+  Methods removed:
+    public HttpRequestParser(org.apache.http.impl.nio.reactor.SessionInputBuffer, org.apache.http.HttpRequestFactory, org.apache.http.params.HttpParams);
 
-Class changed: org.apache.http.impl.nio.codecs.ChunkEncoder
+  Methods added:
+    public HttpRequestParser(org.apache.http.nio.reactor.SessionInputBuffer, org.apache.http.message.LineParser, org.apache.http.HttpRequestFactory, org.apache.http.params.HttpParams);
+
+  Class descriptor changed:
+  old:
+    public org.apache.http.impl.nio.codecs.HttpRequestParser extends org.apache.http.impl.nio.codecs.HttpMessageParser
+  new:
+    public org.apache.http.impl.nio.codecs.HttpRequestParser extends org.apache.http.impl.nio.codecs.AbstractMessageParser
   Method changed:
   old:
-    public void complete();
+    protected org.apache.http.HttpMessage createMessage(org.apache.http.util.CharArrayBuffer) throws org.apache.http.HttpException;
 
   new:
-    public void complete() throws java.io.IOException;
+    protected org.apache.http.HttpMessage createMessage(org.apache.http.util.CharArrayBuffer) throws org.apache.http.HttpException, org.apache.http.ParseException;
+
+Class changed: org.apache.http.impl.nio.codecs.HttpResponseParser
+  Methods removed:
+    public HttpResponseParser(org.apache.http.impl.nio.reactor.SessionInputBuffer, org.apache.http.HttpResponseFactory, org.apache.http.params.HttpParams);
+
+  Methods added:
+    public HttpResponseParser(org.apache.http.nio.reactor.SessionInputBuffer, org.apache.http.message.LineParser, org.apache.http.HttpResponseFactory, org.apache.http.params.HttpParams);
 
+  Class descriptor changed:
+  old:
+    public org.apache.http.impl.nio.codecs.HttpResponseParser extends org.apache.http.impl.nio.codecs.HttpMessageParser
+  new:
+    public org.apache.http.impl.nio.codecs.HttpResponseParser extends org.apache.http.impl.nio.codecs.AbstractMessageParser
   Method changed:
   old:
-    public int write(java.nio.ByteBuffer);
+    protected org.apache.http.HttpMessage createMessage(org.apache.http.util.CharArrayBuffer) throws org.apache.http.HttpException;
 
   new:
-    public int write(java.nio.ByteBuffer) throws java.io.IOException;
+    protected org.apache.http.HttpMessage createMessage(org.apache.http.util.CharArrayBuffer) throws org.apache.http.HttpException, org.apache.http.ParseException;
 
-Class changed: org.apache.http.impl.nio.codecs.HttpMessageParser
+Class changed: org.apache.http.impl.nio.codecs.IdentityDecoder
   Methods removed:
-    public HttpMessageParser(org.apache.http.impl.nio.reactor.SessionInputBuffer);
+    public IdentityDecoder(java.nio.channels.ReadableByteChannel, org.apache.http.impl.nio.reactor.SessionInputBuffer);
 
   Methods added:
-    public HttpMessageParser(org.apache.http.impl.nio.reactor.SessionInputBuffer, org.apache.http.params.HttpParams);
-    public void configure();
+    public IdentityDecoder(java.nio.channels.ReadableByteChannel, org.apache.http.nio.reactor.SessionInputBuffer, org.apache.http.impl.io.HttpTransportMetricsImpl);
 
-Class changed: org.apache.http.impl.nio.codecs.HttpRequestParser
+Class changed: org.apache.http.impl.nio.codecs.IdentityEncoder
   Methods removed:
-    public HttpRequestParser(org.apache.http.impl.nio.reactor.SessionInputBuffer, org.apache.http.HttpRequestFactory);
+    public IdentityEncoder(java.nio.channels.WritableByteChannel);
 
   Methods added:
-    public HttpRequestParser(org.apache.http.impl.nio.reactor.SessionInputBuffer, org.apache.http.HttpRequestFactory, org.apache.http.params.HttpParams);
+    public IdentityEncoder(java.nio.channels.WritableByteChannel, org.apache.http.nio.reactor.SessionOutputBuffer, org.apache.http.impl.io.HttpTransportMetricsImpl);
 
-Class changed: org.apache.http.impl.nio.codecs.HttpResponseParser
+Class changed: org.apache.http.impl.nio.codecs.LengthDelimitedDecoder
   Methods removed:
-    public HttpResponseParser(org.apache.http.impl.nio.reactor.SessionInputBuffer, org.apache.http.HttpResponseFactory);
+    public LengthDelimitedDecoder(java.nio.channels.ReadableByteChannel, org.apache.http.impl.nio.reactor.SessionInputBuffer, long);
 
   Methods added:
-    public HttpResponseParser(org.apache.http.impl.nio.reactor.SessionInputBuffer, org.apache.http.HttpResponseFactory, org.apache.http.params.HttpParams);
+    public LengthDelimitedDecoder(java.nio.channels.ReadableByteChannel, org.apache.http.nio.reactor.SessionInputBuffer, org.apache.http.impl.io.HttpTransportMetricsImpl, long);
 
-Class changed: org.apache.http.impl.nio.codecs.IdentityDecoder
-  Methods added:
-    public long read(java.nio.channels.FileChannel, long, long) throws java.io.IOException;
+Class changed: org.apache.http.impl.nio.codecs.LengthDelimitedEncoder
+  Methods removed:
+    public LengthDelimitedEncoder(java.nio.channels.WritableByteChannel, long);
 
-  Class descriptor changed:
-  old:
-    public org.apache.http.impl.nio.codecs.IdentityDecoder extends org.apache.http.impl.nio.codecs.AbstractContentDecoder
-  new:
-    public org.apache.http.impl.nio.codecs.IdentityDecoder extends org.apache.http.impl.nio.codecs.AbstractContentDecoder implements org.apache.http.nio.FileContentDecoder
-Class changed: org.apache.http.impl.nio.codecs.IdentityEncoder
   Methods added:
-    public long write(java.nio.channels.FileChannel, long, long) throws java.io.IOException;
+    public LengthDelimitedEncoder(java.nio.channels.WritableByteChannel, org.apache.http.nio.reactor.SessionOutputBuffer, org.apache.http.impl.io.HttpTransportMetricsImpl, long);
 
-  Class descriptor changed:
-  old:
-    public org.apache.http.impl.nio.codecs.IdentityEncoder extends org.apache.http.impl.nio.codecs.AbstractContentEncoder
-  new:
-    public org.apache.http.impl.nio.codecs.IdentityEncoder extends org.apache.http.impl.nio.codecs.AbstractContentEncoder implements org.apache.http.nio.FileContentEncoder
-Class changed: org.apache.http.impl.nio.codecs.LengthDelimitedDecoder
+Class changed: org.apache.http.impl.nio.reactor.AbstractIOReactor
   Methods added:
-    public long read(java.nio.channels.FileChannel, long, long) throws java.io.IOException;
+    public void awaitShutdown(long) throws java.lang.InterruptedException;
+    protected void closeChannels() throws org.apache.http.nio.reactor.IOReactorException;
+    protected void closeSessions();
+    public int getStatus();
+    public void gracefulShutdown();
+    public void hardShutdown() throws org.apache.http.nio.reactor.IOReactorException;
+    protected void processEvent(java.nio.channels.SelectionKey);
+    public void shutdown(long) throws org.apache.http.nio.reactor.IOReactorException;
+
+Class changed: org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor
+  Methods removed:
+    public AbstractMultiworkerIOReactor(long, int, org.apache.http.util.concurrent.ThreadFactory) throws org.apache.http.nio.reactor.IOReactorException;
+    protected long getSelectTimeout();
+    protected void startWorkers(org.apache.http.nio.reactor.IOEventDispatch);
+    protected void stopWorkers(int) throws java.io.InterruptedIOException, org.apache.http.nio.reactor.IOReactorException;
+    protected void verifyWorkers() throws java.io.InterruptedIOException, org.apache.http.nio.reactor.IOReactorException;
 
-  Class descriptor changed:
-  old:
-    public org.apache.http.impl.nio.codecs.LengthDelimitedDecoder extends org.apache.http.impl.nio.codecs.AbstractContentDecoder
-  new:
-    public org.apache.http.impl.nio.codecs.LengthDelimitedDecoder extends org.apache.http.impl.nio.codecs.AbstractContentDecoder implements org.apache.http.nio.FileContentDecoder
-Class changed: org.apache.http.impl.nio.codecs.LengthDelimitedEncoder
   Methods added:
-    public long write(java.nio.channels.FileChannel, long, long) throws java.io.IOException;
+    public AbstractMultiworkerIOReactor(int, org.apache.http.util.concurrent.ThreadFactory, org.apache.http.params.HttpParams) throws org.apache.http.nio.reactor.IOReactorException;
+    public void execute(org.apache.http.nio.reactor.IOEventDispatch) throws java.io.InterruptedIOException, org.apache.http.nio.reactor.IOReactorException;
+    public int getStatus();
+    protected void prepareSocket(java.net.Socket) throws java.io.IOException;
+    protected abstract void processEvents(int) throws org.apache.http.nio.reactor.IOReactorException;
+    protected java.nio.channels.SelectionKey registerChannel(java.nio.channels.SelectableChannel, int) throws java.nio.channels.ClosedChannelException;
+    public void setExceptionHandler(org.apache.http.nio.reactor.IOReactorExceptionHandler);
+    public void shutdown() throws java.io.IOException;
+    public void shutdown(long) throws java.io.IOException;
 
-  Class descriptor changed:
-  old:
-    public org.apache.http.impl.nio.codecs.LengthDelimitedEncoder extends org.apache.http.impl.nio.codecs.AbstractContentEncoder
-  new:
-    public org.apache.http.impl.nio.codecs.LengthDelimitedEncoder extends org.apache.http.impl.nio.codecs.AbstractContentEncoder implements org.apache.http.nio.FileContentEncoder
-Class changed: org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor
+  Fields added:
+    protected org.apache.http.nio.reactor.IOReactorExceptionHandler exceptionHandler;
+    protected final org.apache.http.params.HttpParams params;
+    protected final long selectTimeout;
+    protected final java.nio.channels.Selector selector;
+    protected volatile int status;
+
+Class changed: org.apache.http.impl.nio.reactor.BaseIOReactor
   Methods added:
-    protected long getSelectTimeout();
+    protected void processEvent(java.nio.channels.SelectionKey);
+    public void setExceptionHandler(org.apache.http.nio.reactor.IOReactorExceptionHandler);
 
 Class changed: org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor
-  Fields removed:
-    public static int TIMEOUT_CHECK_INTERVAL;
+  Methods removed:
+    public void execute(org.apache.http.nio.reactor.IOEventDispatch) throws java.io.InterruptedIOException, org.apache.http.nio.reactor.IOReactorException;
+    protected void prepareSocket(java.net.Socket) throws java.io.IOException;
+    public void shutdown() throws java.io.IOException;
+
+  Methods added:
+    protected void processEvents(int) throws org.apache.http.nio.reactor.IOReactorException;
 
 Class changed: org.apache.http.impl.nio.reactor.DefaultListeningIOReactor
-  Fields removed:
-    public static int TIMEOUT_CHECK_INTERVAL;
+  Methods removed:
+    public void execute(org.apache.http.nio.reactor.IOEventDispatch) throws java.io.InterruptedIOException, org.apache.http.nio.reactor.IOReactorException;
+    protected void prepareSocket(java.net.Socket) throws java.io.IOException;
+    public void setExceptionHandler(org.apache.http.nio.reactor.IOReactorExceptionHandler);
+    public void shutdown() throws java.io.IOException;
 
-Class changed: org.apache.http.impl.nio.reactor.IOSessionImpl
   Methods added:
-    public void shutdown();
+    protected void processEvents(int) throws org.apache.http.nio.reactor.IOReactorException;
 
-  Class descriptor changed:
-  old:
-    package org.apache.http.impl.nio.reactor.IOSessionImpl extends java.lang.Object implements org.apache.http.nio.reactor.IOSession
-  new:
-    public org.apache.http.impl.nio.reactor.IOSessionImpl extends java.lang.Object implements org.apache.http.nio.reactor.IOSession
-Class changed: org.apache.http.impl.nio.reactor.SessionInputBuffer
+Class changed: org.apache.http.impl.nio.reactor.IOSessionImpl
   Methods added:
-    public SessionInputBuffer(int, int, org.apache.http.nio.util.ByteBufferAllocator);
+    public int getStatus();
 
+Class changed: org.apache.http.impl.nio.reactor.SessionSet
   Method changed:
   old:
-    public boolean readLine(org.apache.http.util.CharArrayBuffer, boolean);
+    public void add(org.apache.http.nio.reactor.IOSession);
 
   new:
-    public boolean readLine(org.apache.http.util.CharArrayBuffer, boolean) throws java.nio.charset.CharacterCodingException;
+    public synchronized void add(org.apache.http.nio.reactor.IOSession);
 
   Method changed:
   old:
-    public java.lang.String readLine(boolean);
-
-  new:
-    public java.lang.String readLine(boolean) throws java.nio.charset.CharacterCodingException;
-
-Class changed: org.apache.http.impl.nio.reactor.SessionOutputBuffer
-  Methods added:
-    public SessionOutputBuffer(int, int, org.apache.http.nio.util.ByteBufferAllocator);
-
-  Method changed:
-  old:
-    public void writeLine(org.apache.http.util.CharArrayBuffer);
-
-  new:
-    public void writeLine(org.apache.http.util.CharArrayBuffer) throws java.nio.charset.CharacterCodingException;
+    public void clear();
 
-Class changed: org.apache.http.impl.nio.reactor.SessionRequestImpl
-  Class descriptor changed:
-  old:
-    package org.apache.http.impl.nio.reactor.SessionRequestImpl extends java.lang.Object implements org.apache.http.nio.reactor.SessionRequest
   new:
-    public org.apache.http.impl.nio.reactor.SessionRequestImpl extends java.lang.Object implements org.apache.http.nio.reactor.SessionRequest
-Class changed: org.apache.http.nio.IOControl
-  Methods added:
-    public abstract void shutdown() throws java.io.IOException;
-
-Class changed: org.apache.http.nio.NHttpClientConnection
-  Methods removed:
-    public abstract void cancelRequest();
-
-  Methods added:
-    public abstract void resetInput();
-    public abstract void resetOutput();
+    public synchronized void clear();
 
   Method changed:
   old:
-    public abstract void submitRequest(org.apache.http.HttpRequest) throws org.apache.http.HttpException;
+    public boolean isEmpty();
 
   new:
-    public abstract void submitRequest(org.apache.http.HttpRequest) throws java.io.IOException, org.apache.http.HttpException;
-
-Class changed: org.apache.http.nio.NHttpServerConnection
-  Methods removed:
-    public abstract void cancelRequest();
-
-  Methods added:
-    public abstract void resetInput();
-    public abstract void resetOutput();
+    public synchronized boolean isEmpty();
 
   Method changed:
   old:
-    public abstract void submitResponse(org.apache.http.HttpResponse) throws org.apache.http.HttpException;
+    public boolean remove(org.apache.http.nio.reactor.IOSession);
 
   new:
-    public abstract void submitResponse(org.apache.http.HttpResponse) throws java.io.IOException, org.apache.http.HttpException;
+    public synchronized boolean remove(org.apache.http.nio.reactor.IOSession);
 
-Class changed: org.apache.http.nio.params.HttpNIOParams
+Class changed: org.apache.http.nio.NHttpConnection
   Methods added:
-    public static long getSelectInterval(org.apache.http.params.HttpParams);
-    public static void setSelectInterval(org.apache.http.params.HttpParams, long);
+    public abstract int getStatus();
 
   Fields added:
-    public final static java.lang.String SELECT_INTERVAL = http.nio.select-interval;
-
-Class changed: org.apache.http.nio.protocol.BufferingHttpClientHandler
-  Methods removed:
-    public void exception(org.apache.http.nio.NHttpClientConnection, java.io.IOException);
-    public void exception(org.apache.http.nio.NHttpClientConnection, org.apache.http.HttpException);
-    public void setEventListener(org.apache.http.nio.protocol.EventListener);
+    public final static int ACTIVE = 0;
+    public final static int CLOSED = 2;
+    public final static int CLOSING = 1;
 
+Class changed: org.apache.http.nio.protocol.HttpRequestExecutionHandler
   Methods added:
-    public BufferingHttpClientHandler(org.apache.http.protocol.HttpProcessor, org.apache.http.nio.protocol.HttpRequestExecutionHandler, org.apache.http.ConnectionReuseStrategy, org.apache.http.nio.util.ByteBufferAllocator, org.apache.http.params.HttpParams);
-
-  Class descriptor changed:
-  old:
-    public org.apache.http.nio.protocol.BufferingHttpClientHandler extends java.lang.Object implements org.apache.http.nio.NHttpClientHandler
-  new:
-    public org.apache.http.nio.protocol.BufferingHttpClientHandler extends org.apache.http.nio.protocol.NHttpClientHandlerBase
-Class changed: org.apache.http.nio.protocol.BufferingHttpServiceHandler
-  Methods removed:
-    public void exception(org.apache.http.nio.NHttpServerConnection, java.io.IOException);
-    public org.apache.http.params.HttpParams getParams();
-    public void setEventListener(org.apache.http.nio.protocol.EventListener);
-    public void setExpectationVerifier(org.apache.http.protocol.HttpExpectationVerifier);
-    public void setHandlerResolver(org.apache.http.protocol.HttpRequestHandlerResolver);
-    public void timeout(org.apache.http.nio.NHttpServerConnection);
+    public abstract void finalizeContext(org.apache.http.protocol.HttpContext);
 
+Class changed: org.apache.http.nio.protocol.NHttpHandlerBase
   Methods added:
-    public BufferingHttpServiceHandler(org.apache.http.protocol.HttpProcessor, org.apache.http.HttpResponseFactory, org.apache.http.ConnectionReuseStrategy, org.apache.http.nio.util.ByteBufferAllocator, org.apache.http.params.HttpParams);
-
-  Class descriptor changed:
-  old:
-    public org.apache.http.nio.protocol.BufferingHttpServiceHandler extends java.lang.Object implements org.apache.http.nio.NHttpServiceHandler
-  new:
-    public org.apache.http.nio.protocol.BufferingHttpServiceHandler extends org.apache.http.nio.protocol.NHttpServiceHandlerBase implements org.apache.http.nio.NHttpServiceHandler
-Class changed: org.apache.http.nio.protocol.EventListener
-  Methods removed:
-    public abstract void connectionClosed(java.net.InetAddress);
-    public abstract void connectionOpen(java.net.InetAddress);
-    public abstract void connectionTimeout(java.net.InetAddress);
-    public abstract void fatalIOException(java.io.IOException);
-    public abstract void fatalProtocolException(org.apache.http.HttpException);
-
-  Methods added:
-    public abstract void connectionClosed(org.apache.http.nio.NHttpConnection);
-    public abstract void connectionOpen(org.apache.http.nio.NHttpConnection);
-    public abstract void connectionTimeout(org.apache.http.nio.NHttpConnection);
-    public abstract void fatalIOException(java.io.IOException, org.apache.http.nio.NHttpConnection);
-    public abstract void fatalProtocolException(org.apache.http.HttpException, org.apache.http.nio.NHttpConnection);
+    protected void handleTimeout(org.apache.http.nio.NHttpConnection);
 
-Class changed: org.apache.http.nio.protocol.HttpRequestExecutionHandler
-  Method changed:
-  old:
-    public abstract void handleResponse(org.apache.http.HttpResponse, org.apache.http.protocol.HttpContext);
+Class changed: org.apache.http.nio.reactor.IOReactor
+  Methods added:
+    public abstract int getStatus();
+    public abstract void shutdown(long) throws java.io.IOException;
 
-  new:
-    public abstract void handleResponse(org.apache.http.HttpResponse, org.apache.http.protocol.HttpContext) throws java.io.IOException;
+  Fields added:
+    public final static int ACTIVE = 1;
+    public final static int INACTIVE = 0;
+    public final static int SHUTTING_DOWN = 2;
+    public final static int SHUT_DOWN = 3;
 
-Class changed: org.apache.http.nio.protocol.ThrottlingHttpServiceHandler
-  Methods removed:
-    public void exception(org.apache.http.nio.NHttpServerConnection, java.io.IOException);
-    public org.apache.http.params.HttpParams getParams();
-    public void setEventListener(org.apache.http.nio.protocol.EventListener);
-    public void setExpectationVerifier(org.apache.http.protocol.HttpExpectationVerifier);
-    public void setHandlerResolver(org.apache.http.protocol.HttpRequestHandlerResolver);
-    public void timeout(org.apache.http.nio.NHttpServerConnection);
+Class changed: org.apache.http.nio.reactor.IOReactorExceptionHandler
+  Methods added:
+    public abstract boolean handle(java.lang.RuntimeException);
 
+Class changed: org.apache.http.nio.reactor.IOSession
   Methods added:
-    public ThrottlingHttpServiceHandler(org.apache.http.protocol.HttpProcessor, org.apache.http.HttpResponseFactory, org.apache.http.ConnectionReuseStrategy, org.apache.http.nio.util.ByteBufferAllocator, org.apache.http.util.concurrent.Executor, org.apache.http.params.HttpParams);
-    protected void shutdownConnection(org.apache.http.nio.NHttpConnection, java.lang.Throwable);
+    public abstract int getStatus();
 
   Fields added:
-    protected final org.apache.http.util.concurrent.Executor executor;
+    public final static int ACTIVE = 0;
+    public final static int CLOSED = 2147483647;
+    public final static int CLOSING = 1;
 
-  Class descriptor changed:
-  old:
-    public org.apache.http.nio.protocol.ThrottlingHttpServiceHandler extends java.lang.Object implements org.apache.http.nio.NHttpServiceHandler
-  new:
-    public org.apache.http.nio.protocol.ThrottlingHttpServiceHandler extends org.apache.http.nio.protocol.NHttpServiceHandlerBase
-Class changed: org.apache.http.nio.reactor.IOReactorException
-  Methods removed:
-    public IOReactorException(java.lang.String, java.io.IOException);
+API diff generated by JarDiff http://www.osjava.org/jardiff/
+  
+HttpCore NIOSSL API changes (generated by JarDiff 0.2)
+--------------------------------------
 
+Class changed: org.apache.http.impl.nio.reactor.SSLIOSession
   Methods added:
-    public IOReactorException(java.lang.String, java.lang.Exception);
+    public int getStatus();
 
-Class changed: org.apache.http.nio.reactor.IOSession
-  Methods added:
-    public abstract void shutdown();
+API diff generated by JarDiff http://www.osjava.org/jardiff/
 
-Class changed: org.apache.http.nio.util.ExpandableBuffer
-  Methods removed:
-    public ExpandableBuffer(int);
+Release 4.0 Alpha 5
+-------------------
 
-  Methods added:
-    public ExpandableBuffer(int, org.apache.http.nio.util.ByteBufferAllocator);
+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. 
 
-Class changed: org.apache.http.nio.util.SharedInputBuffer
-  Methods removed:
-    public SharedInputBuffer(int, org.apache.http.nio.IOControl);
+HttpCore is almost fully feature complete now and we are likely to freeze 
+the public APIs as of next release (BETA1). 
 
-  Methods added:
-    public SharedInputBuffer(int, org.apache.http.nio.IOControl, org.apache.http.nio.util.ByteBufferAllocator);
+* [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>
 
-Class changed: org.apache.http.nio.util.SharedOutputBuffer
-  Methods removed:
-    public SharedOutputBuffer(int, org.apache.http.nio.IOControl);
+* [HTTPCORE-84]: Removed DateUtils/DateParseException from core.
+  Contributed by Roland Weber <rolandw at apache.org>
 
-  Methods added:
-    public SharedOutputBuffer(int, org.apache.http.nio.IOControl, org.apache.http.nio.util.ByteBufferAllocator);
+* [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>
 
-Class changed: org.apache.http.nio.util.SimpleInputBuffer
-  Methods removed:
-    public SimpleInputBuffer(int);
+* [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>
 
-  Methods added:
-    public SimpleInputBuffer(int, org.apache.http.nio.util.ByteBufferAllocator);
+* [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>
 
-Class changed: org.apache.http.nio.util.SimpleOutputBuffer
-  Methods removed:
-    public SimpleOutputBuffer(int);
+* 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>
 
-  Methods added:
-    public SimpleOutputBuffer(int, org.apache.http.nio.util.ByteBufferAllocator);
+* [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>
 
-API diff generated by JarDiff http://www.osjava.org/jardiff/
+* [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 NIOSSL API changes (generated by JarDiff 0.2)
---------------------------------------
+* [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>
 
-Class changed: org.apache.http.impl.nio.reactor.SSLClientIOEventDispatch
-  Methods removed:
-    public SSLClientIOEventDispatch(org.apache.http.nio.NHttpClientHandler, javax.net.ssl.SSLContext, org.apache.http.impl.nio.reactor.SSLIOSessionHandler, org.apache.http.params.HttpParams);
+* [HTTPCORE-71]: HttpParams can be copied.
+  Contributed by Roland Weber <rolandw at apache.org>
 
-  Methods added:
-    public SSLClientIOEventDispatch(org.apache.http.nio.NHttpClientHandler, javax.net.ssl.SSLContext, org.apache.http.impl.nio.reactor.SSLIOSessionHandler, org.apache.http.nio.util.ByteBufferAllocator, org.apache.http.params.HttpParams);
+* [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>
 
-Class changed: org.apache.http.impl.nio.reactor.SSLIOSession
-  Methods removed:
-    public synchronized void initialize(org.apache.http.impl.nio.reactor.SSLMode, org.apache.http.params.HttpParams) throws javax.net.ssl.SSLException;
+* [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>
 
-  Methods added:
-    public synchronized void bind(org.apache.http.impl.nio.reactor.SSLMode, org.apache.http.params.HttpParams) throws javax.net.ssl.SSLException;
+* [HTTPCORE-67]: Improved event listener interface
+  Contributed by Oleg Kalnichevski <olegk at apache.org>
 
-Class changed: org.apache.http.impl.nio.reactor.SSLServerIOEventDispatch
-  Methods removed:
-    public SSLServerIOEventDispatch(org.apache.http.nio.NHttpServiceHandler, javax.net.ssl.SSLContext, org.apache.http.impl.nio.reactor.SSLIOSessionHandler, org.apache.http.params.HttpParams);
+* [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>
 
-  Methods added:
-    public SSLServerIOEventDispatch(org.apache.http.nio.NHttpServiceHandler, javax.net.ssl.SSLContext, org.apache.http.impl.nio.reactor.SSLIOSessionHandler, org.apache.http.nio.util.ByteBufferAllocator, org.apache.http.params.HttpParams);
+* [HTTPCORE-66]: Fixed handling of HTTP HEAD methods
+  Contributed by Steffen Pingel <spingel at limewire.com> and 
+  Oleg Kalnichevski <olegk at apache.org>
 
-API diff generated by JarDiff http://www.osjava.org/jardiff/
+* [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
 -------------------
@@ -907,8 +1039,6 @@
 
 * [HTTPCORE-23] Fixed threading bug in DefaultConnectingIOReactor.
   Contributed by Asankha C. Perera <asankha at wso2.com>
-
-API diff generated by JarDiff http://www.osjava.org/jardiff/
 
 Release 4.0 Alpha 3
 -------------------



Mime
View raw message