Release 4.0 Alpha 4 ------------------- The forth ALPHA version of HttpComponents Core has been released. The ALPHA4 release fixes a number of bugs and adds a number of improvements to HttpCore base and HttpCore NIO extensions. HttpCore NIO can be used to build HTTP services intended to handle thousands of simultaneous connections with a small number of I/O threads. This release also introduces NIOSSL extensions that can be used to extend HttpCore non-blocking transport components with ability to transparently encrypt data in transit using SSL/TLS protocol. * [HTTPCORE-49]: DefaultConnectingIOReactor can now correctly handle unresolved socket addresses. It no longer terminates with the UnresolvedAddressException runtime exception. Contributed by Oleg Kalnichevski * [HTTPCORE-42]: Added server side API for the expectation verification. Improved support for the 'expect: continue' handshake in HttpCore and HttpCore NIO. Contributed by Oleg Kalnichevski * [HTTPCORE-26]: Added SSL support for HttpCore NIO. Contributed by Oleg Kalnichevski * [HTTPCORE-40]: API classes no longer reference impl classes in module-main. Contributed by Roland Weber * [HTTPCORE-39]: Refactored HttpStatus, spun off [English]ReasonPhraseFactory. Contributed by Roland Weber * [HTTPCORE-32]: HttpRequestInterceptorList, HttpResponseInterceptorList Contributed by Roland Weber * [HTTPCORE-38]: Packages nio.impl.* are now impl.nio.*, same for examples. Contributed by Roland Weber * [HTTPCORE-27]: I/O reactors can now accept a thread factory as an optional parameter. Contributed by Oleg Kalnichevski * [HTTPCORE-36]: Fixed #setHandlers() method and matching of request URIs with a query part in HttpRequestHandlerRegistry Contributed by Oleg Kalnichevski * [HTTPCORE-28]: DefaultConnectingIOReactor now maintains a queue of connect requests and registers new sessions with the selector on the I/O thread. Contributed by Oleg Kalnichevski * [HTTPCORE-29] DefaultConnectingIOReactor changed to ensure IOExceptions are correctly propagated to the caller, if an exception is thrown while initializing a newly connected socket. Contributed by Oleg Kalnichevski * [HTTPCORE-24] Fixed bug in non-blocking connection implementations, which prevented the session buffer from being correctly flushed when the content coding process has been completed. Contributed by Oleg Kalnichevski * [HTTPCORE-23] Fixed threading bug in DefaultConnectingIOReactor. Contributed by Asankha C. Perera HttpCore API changes (generated by JarDiff 0.2) -------------------------------------- Class removed: public abstract org.apache.http.ReasonPhraseCatalog extends java.lang.Object Class removed: public org.apache.http.impl.EnglishReasonPhraseCatalog extends java.lang.Object implements org.apache.http.ReasonPhraseCatalog Class removed: public org.apache.http.impl.NoConnectionReuseStrategy extends java.lang.Object implements org.apache.http.ConnectionReuseStrategy Class removed: public org.apache.http.impl.io.ChunkedInputStream extends java.io.InputStream Class removed: public org.apache.http.impl.io.ChunkedOutputStream extends java.io.OutputStream Class removed: public org.apache.http.impl.io.ContentLengthInputStream extends java.io.InputStream Class removed: public org.apache.http.impl.io.ContentLengthOutputStream extends java.io.OutputStream Class removed: public org.apache.http.impl.io.HttpDataInputStream extends java.io.InputStream Class removed: public org.apache.http.impl.io.HttpDataOutputStream extends java.io.OutputStream Class removed: public org.apache.http.impl.io.IdentityOutputStream extends java.io.OutputStream Class removed: public org.apache.http.message.BasicHttpVersionFormat extends java.lang.Object Class removed: public org.apache.http.params.BasicHttpParams extends java.lang.Object implements org.apache.http.params.HttpParams, java.io.Serializable Class removed: public abstract org.apache.http.protocol.HttpExpectationVerifier extends java.lang.Object Class removed: public abstract org.apache.http.protocol.HttpRequestInterceptorList extends java.lang.Object Class removed: public abstract org.apache.http.protocol.HttpResponseInterceptorList extends java.lang.Object Class removed: public org.apache.http.util.HeaderGroup extends java.lang.Object Class removed: public abstract org.apache.http.util.concurrent.Executor extends java.lang.Object Class removed: public abstract org.apache.http.util.concurrent.ThreadFactory extends java.lang.Object Class added: public org.apache.http.impl.DefaultHttpParams extends java.lang.Object implements org.apache.http.params.HttpParams, java.io.Serializable Class added: public org.apache.http.impl.HeaderGroup extends java.lang.Object Class added: public org.apache.http.io.ChunkedInputStream extends java.io.InputStream Class added: public org.apache.http.io.ChunkedOutputStream extends java.io.OutputStream Class added: public org.apache.http.io.ContentLengthInputStream extends java.io.InputStream Class added: public org.apache.http.io.ContentLengthOutputStream extends java.io.OutputStream Class added: public org.apache.http.io.HttpDataInputStream extends java.io.InputStream Class added: public org.apache.http.io.HttpDataOutputStream extends java.io.OutputStream Class added: public org.apache.http.io.IdentityOutputStream extends java.io.OutputStream Class added: public org.apache.http.message.BasicHttpVersion extends org.apache.http.HttpVersion Class changed: org.apache.http.HttpConnection Methods removed: public abstract int getSocketTimeout(); public abstract void setSocketTimeout(int); Class changed: org.apache.http.HttpInetConnection Methods removed: public abstract int getLocalPort(); public abstract int getRemotePort(); Class changed: org.apache.http.HttpResponse Methods removed: public abstract java.util.Locale getLocale(); public abstract void setLocale(java.util.Locale); public abstract void setReasonPhrase(java.lang.String) throws java.lang.IllegalStateException; public abstract void setStatusLine(org.apache.http.HttpVersion, int, java.lang.String); Method changed: old: public abstract void setStatusCode(int) throws java.lang.IllegalStateException; new: public abstract void setStatusCode(int); Class changed: org.apache.http.HttpResponseFactory Methods removed: public abstract org.apache.http.HttpResponse newHttpResponse(org.apache.http.HttpVersion, int, org.apache.http.protocol.HttpContext); public abstract org.apache.http.HttpResponse newHttpResponse(org.apache.http.StatusLine, org.apache.http.protocol.HttpContext); Methods added: public abstract org.apache.http.HttpResponse newHttpResponse(org.apache.http.HttpVersion, int); public abstract org.apache.http.HttpResponse newHttpResponse(org.apache.http.StatusLine); Class changed: org.apache.http.HttpStatus Methods added: public HttpStatus(); public static java.lang.String getStatusText(int); Class descriptor changed: old: public abstract org.apache.http.HttpStatus extends java.lang.Object new: public org.apache.http.HttpStatus extends java.lang.Object Class changed: org.apache.http.HttpVersion Class descriptor changed: old: public final org.apache.http.HttpVersion extends java.lang.Object implements java.lang.Comparable, java.io.Serializable new: public org.apache.http.HttpVersion extends java.lang.Object implements java.lang.Comparable Class changed: org.apache.http.impl.DefaultHttpClientConnection Methods removed: public java.lang.String toString(); Class changed: org.apache.http.impl.DefaultHttpResponseFactory Methods removed: public DefaultHttpResponseFactory(org.apache.http.ReasonPhraseCatalog); protected java.util.Locale determineLocale(org.apache.http.protocol.HttpContext); public org.apache.http.HttpResponse newHttpResponse(org.apache.http.HttpVersion, int, org.apache.http.protocol.HttpContext); public org.apache.http.HttpResponse newHttpResponse(org.apache.http.StatusLine, org.apache.http.protocol.HttpContext); Methods added: public org.apache.http.HttpResponse newHttpResponse(org.apache.http.HttpVersion, int); public org.apache.http.HttpResponse newHttpResponse(org.apache.http.StatusLine); Fields removed: protected final org.apache.http.ReasonPhraseCatalog reasonCatalog; Class changed: org.apache.http.impl.DefaultHttpServerConnection Methods removed: public java.lang.String toString(); Class changed: org.apache.http.impl.SocketHttpClientConnection Methods removed: public int getLocalPort(); public int getRemotePort(); public int getSocketTimeout(); public void setSocketTimeout(int); Class changed: org.apache.http.impl.SocketHttpServerConnection Methods removed: public int getLocalPort(); public int getRemotePort(); public int getSocketTimeout(); public void setSocketTimeout(int); Class changed: org.apache.http.message.BasicHttpResponse Methods removed: public BasicHttpResponse(org.apache.http.HttpVersion, int, java.lang.String); public BasicHttpResponse(org.apache.http.StatusLine, org.apache.http.ReasonPhraseCatalog, java.util.Locale); public java.util.Locale getLocale(); protected java.lang.String getReason(int); public void setLocale(java.util.Locale); public void setReasonPhrase(java.lang.String); public void setStatusLine(org.apache.http.HttpVersion, int, java.lang.String); Methods added: public BasicHttpResponse(org.apache.http.HttpVersion, int); Class changed: org.apache.http.message.BasicStatusLine Methods added: public BasicStatusLine(org.apache.http.HttpVersion, int); Class changed: org.apache.http.params.HttpProtocolParams Fields removed: public final static java.lang.String WAIT_FOR_CONTINUE = http.protocol.wait-for-continue; Class changed: org.apache.http.protocol.BasicHttpProcessor Methods removed: public void addRequestInterceptor(org.apache.http.HttpRequestInterceptor); public void addResponseInterceptor(org.apache.http.HttpResponseInterceptor); public void clearRequestInterceptors(); public void clearResponseInterceptors(); public org.apache.http.HttpRequestInterceptor getRequestInterceptor(int); public int getRequestInterceptorCount(); public org.apache.http.HttpResponseInterceptor getResponseInterceptor(int); public int getResponseInterceptorCount(); Methods added: public void removeInterceptor(org.apache.http.HttpRequestInterceptor); public void removeInterceptor(org.apache.http.HttpResponseInterceptor); public void removeInterceptors(java.lang.Class); Class descriptor changed: old: public org.apache.http.protocol.BasicHttpProcessor extends java.lang.Object implements org.apache.http.protocol.HttpProcessor, org.apache.http.protocol.HttpRequestInterceptorList, org.apache.http.protocol.HttpResponseInterceptorList new: public org.apache.http.protocol.BasicHttpProcessor extends java.lang.Object implements org.apache.http.protocol.HttpProcessor Method changed: old: public final void addInterceptor(org.apache.http.HttpRequestInterceptor); new: public void addInterceptor(org.apache.http.HttpRequestInterceptor); Method changed: old: public final void addInterceptor(org.apache.http.HttpResponseInterceptor); new: public void addInterceptor(org.apache.http.HttpResponseInterceptor); Class changed: org.apache.http.protocol.HttpRequestExecutor Fields added: protected final static int WAIT_FOR_CONTINUE_MS = 10000; Class changed: org.apache.http.protocol.HttpRequestHandlerRegistry Methods removed: public void setHandlers(java.util.Map); Methods added: public void setHandlers(java.util.Properties); Class changed: org.apache.http.protocol.HttpService Methods removed: public void setExpectationVerifier(org.apache.http.protocol.HttpExpectationVerifier); Class changed: org.apache.http.util.DateUtils Class descriptor changed: old: public final org.apache.http.util.DateUtils extends java.lang.Object new: public org.apache.http.util.DateUtils extends java.lang.Object Class changed: org.apache.http.util.EncodingUtils Class descriptor changed: old: public final org.apache.http.util.EncodingUtils extends java.lang.Object new: public org.apache.http.util.EncodingUtils extends java.lang.Object Class changed: org.apache.http.util.EntityUtils Class descriptor changed: old: public final org.apache.http.util.EntityUtils extends java.lang.Object new: public org.apache.http.util.EntityUtils extends java.lang.Object Class changed: org.apache.http.util.ExceptionUtils Class descriptor changed: old: public final org.apache.http.util.ExceptionUtils extends java.lang.Object new: public org.apache.http.util.ExceptionUtils extends java.lang.Object Class changed: org.apache.http.util.HeaderUtils Class descriptor changed: old: public final org.apache.http.util.HeaderUtils extends java.lang.Object new: public org.apache.http.util.HeaderUtils extends java.lang.Object Class changed: org.apache.http.util.LangUtils Class descriptor changed: old: public final org.apache.http.util.LangUtils extends java.lang.Object new: public org.apache.http.util.LangUtils extends java.lang.Object HttpCore NIO API changes (generated by JarDiff 0.2) -------------------------------------- Class removed: public org.apache.http.impl.nio.DefaultClientIOEventDispatch extends java.lang.Object implements org.apache.http.nio.reactor.IOEventDispatch Class removed: public org.apache.http.impl.nio.DefaultNHttpClientConnection extends org.apache.http.impl.nio.NHttpConnectionBase implements org.apache.http.nio.NHttpClientConnection Class removed: public org.apache.http.impl.nio.DefaultNHttpServerConnection extends org.apache.http.impl.nio.NHttpConnectionBase implements org.apache.http.nio.NHttpServerConnection Class removed: public org.apache.http.impl.nio.DefaultServerIOEventDispatch extends java.lang.Object implements org.apache.http.nio.reactor.IOEventDispatch Class removed: public org.apache.http.impl.nio.NHttpConnectionBase extends java.lang.Object implements org.apache.http.nio.NHttpConnection, org.apache.http.HttpInetConnection, org.apache.http.nio.reactor.SessionBufferStatus Class removed: public abstract org.apache.http.impl.nio.codecs.AbstractContentDecoder extends java.lang.Object implements org.apache.http.nio.ContentDecoder Class removed: public abstract org.apache.http.impl.nio.codecs.AbstractContentEncoder extends java.lang.Object implements org.apache.http.nio.ContentEncoder Class removed: public org.apache.http.impl.nio.codecs.ChunkDecoder extends org.apache.http.impl.nio.codecs.AbstractContentDecoder Class removed: public org.apache.http.impl.nio.codecs.ChunkEncoder extends org.apache.http.impl.nio.codecs.AbstractContentEncoder Class removed: public abstract org.apache.http.impl.nio.codecs.HttpMessageParser extends java.lang.Object Class removed: public org.apache.http.impl.nio.codecs.HttpRequestParser extends org.apache.http.impl.nio.codecs.HttpMessageParser Class removed: public org.apache.http.impl.nio.codecs.HttpResponseParser extends org.apache.http.impl.nio.codecs.HttpMessageParser Class removed: public org.apache.http.impl.nio.codecs.IdentityDecoder extends org.apache.http.impl.nio.codecs.AbstractContentDecoder Class removed: public org.apache.http.impl.nio.codecs.IdentityEncoder extends org.apache.http.impl.nio.codecs.AbstractContentEncoder Class removed: public org.apache.http.impl.nio.codecs.LengthDelimitedDecoder extends org.apache.http.impl.nio.codecs.AbstractContentDecoder Class removed: public org.apache.http.impl.nio.codecs.LengthDelimitedEncoder extends org.apache.http.impl.nio.codecs.AbstractContentEncoder Class removed: public abstract org.apache.http.impl.nio.reactor.AbstractIOReactor extends java.lang.Object implements org.apache.http.nio.reactor.IOReactor Class removed: public abstract org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor extends java.lang.Object implements org.apache.http.nio.reactor.IOReactor Class removed: public org.apache.http.impl.nio.reactor.BaseIOReactor extends org.apache.http.impl.nio.reactor.AbstractIOReactor Class removed: public org.apache.http.impl.nio.reactor.ChannelEntry extends java.lang.Object Class removed: public org.apache.http.impl.nio.reactor.ChannelQueue extends java.lang.Object Class removed: public org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor extends org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor implements org.apache.http.nio.reactor.ConnectingIOReactor Class removed: public org.apache.http.impl.nio.reactor.DefaultListeningIOReactor extends org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor implements org.apache.http.nio.reactor.ListeningIOReactor Class removed: public abstract org.apache.http.impl.nio.reactor.SessionClosedCallback extends java.lang.Object Class removed: public org.apache.http.impl.nio.reactor.SessionHandle 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 org.apache.http.impl.nio.reactor.SessionQueue extends java.lang.Object Class removed: public org.apache.http.impl.nio.reactor.SessionRequestHandle extends java.lang.Object Class removed: public org.apache.http.impl.nio.reactor.SessionRequestQueue extends java.lang.Object Class removed: public org.apache.http.impl.nio.reactor.SessionSet extends java.lang.Object Class removed: public abstract org.apache.http.nio.IOControl extends java.lang.Object Class removed: public final org.apache.http.nio.params.HttpNIOParams extends java.lang.Object Class removed: public org.apache.http.nio.protocol.BufferingHttpClientHandler extends java.lang.Object implements org.apache.http.nio.NHttpClientHandler Class removed: public org.apache.http.nio.protocol.BufferingHttpServiceHandler extends java.lang.Object implements org.apache.http.nio.NHttpServiceHandler Class removed: public abstract org.apache.http.nio.protocol.EventListener extends java.lang.Object Class removed: public abstract org.apache.http.nio.protocol.HttpRequestExecutionHandler extends java.lang.Object Class removed: public org.apache.http.nio.protocol.ThrottlingHttpServiceHandler extends java.lang.Object implements org.apache.http.nio.NHttpServiceHandler Class removed: public org.apache.http.nio.reactor.IOReactorException extends java.io.IOException Class removed: public abstract org.apache.http.nio.reactor.IOReactorExceptionHandler extends java.lang.Object Class removed: public org.apache.http.nio.util.SharedInputBuffer extends org.apache.http.nio.util.ExpandableBuffer implements org.apache.http.nio.util.ContentInputBuffer Class removed: public org.apache.http.nio.util.SharedOutputBuffer extends org.apache.http.nio.util.ExpandableBuffer implements org.apache.http.nio.util.ContentOutputBuffer Class removed: public org.apache.http.nio.util.SimpleInputBuffer extends org.apache.http.nio.util.ExpandableBuffer implements org.apache.http.nio.util.ContentInputBuffer Class removed: public org.apache.http.nio.util.SimpleOutputBuffer extends org.apache.http.nio.util.ExpandableBuffer implements org.apache.http.nio.util.ContentOutputBuffer Class added: public abstract org.apache.http.nio.ContentIOControl extends java.lang.Object Class added: public org.apache.http.nio.impl.DefaultClientIOEventDispatch extends java.lang.Object implements org.apache.http.nio.reactor.IOEventDispatch Class added: public org.apache.http.nio.impl.DefaultNHttpClientConnection extends org.apache.http.nio.impl.NHttpConnectionBase implements org.apache.http.nio.NHttpClientConnection Class added: public org.apache.http.nio.impl.DefaultNHttpServerConnection extends org.apache.http.nio.impl.NHttpConnectionBase implements org.apache.http.nio.NHttpServerConnection Class added: public org.apache.http.nio.impl.DefaultServerIOEventDispatch extends java.lang.Object implements org.apache.http.nio.reactor.IOEventDispatch Class added: public org.apache.http.nio.impl.NHttpConnectionBase extends java.lang.Object implements org.apache.http.nio.NHttpConnection, org.apache.http.HttpInetConnection, org.apache.http.nio.reactor.SessionBufferStatus Class added: public abstract org.apache.http.nio.impl.codecs.AbstractContentDecoder extends java.lang.Object implements org.apache.http.nio.ContentDecoder Class added: public abstract org.apache.http.nio.impl.codecs.AbstractContentEncoder extends java.lang.Object implements org.apache.http.nio.ContentEncoder Class added: public org.apache.http.nio.impl.codecs.ChunkDecoder extends org.apache.http.nio.impl.codecs.AbstractContentDecoder Class added: public org.apache.http.nio.impl.codecs.ChunkEncoder extends org.apache.http.nio.impl.codecs.AbstractContentEncoder Class added: public abstract org.apache.http.nio.impl.codecs.HttpMessageParser extends java.lang.Object Class added: public org.apache.http.nio.impl.codecs.HttpRequestParser extends org.apache.http.nio.impl.codecs.HttpMessageParser Class added: public org.apache.http.nio.impl.codecs.HttpResponseParser extends org.apache.http.nio.impl.codecs.HttpMessageParser Class added: public org.apache.http.nio.impl.codecs.IdentityDecoder extends org.apache.http.nio.impl.codecs.AbstractContentDecoder Class added: public org.apache.http.nio.impl.codecs.IdentityEncoder extends org.apache.http.nio.impl.codecs.AbstractContentEncoder Class added: public org.apache.http.nio.impl.codecs.LengthDelimitedDecoder extends org.apache.http.nio.impl.codecs.AbstractContentDecoder Class added: public org.apache.http.nio.impl.codecs.LengthDelimitedEncoder extends org.apache.http.nio.impl.codecs.AbstractContentEncoder Class added: public abstract org.apache.http.nio.impl.reactor.AbstractIOReactor extends java.lang.Object implements org.apache.http.nio.reactor.IOReactor Class added: public abstract org.apache.http.nio.impl.reactor.AbstractMultiworkerIOReactor extends java.lang.Object implements org.apache.http.nio.reactor.IOReactor Class added: public org.apache.http.nio.impl.reactor.BaseIOReactor extends org.apache.http.nio.impl.reactor.AbstractIOReactor Class added: public org.apache.http.nio.impl.reactor.ChannelEntry extends java.lang.Object Class added: public org.apache.http.nio.impl.reactor.ChannelQueue extends java.lang.Object Class added: public org.apache.http.nio.impl.reactor.DefaultConnectingIOReactor extends org.apache.http.nio.impl.reactor.AbstractMultiworkerIOReactor implements org.apache.http.nio.reactor.ConnectingIOReactor Class added: public org.apache.http.nio.impl.reactor.DefaultListeningIOReactor extends org.apache.http.nio.impl.reactor.AbstractMultiworkerIOReactor implements org.apache.http.nio.reactor.ListeningIOReactor Class added: public abstract org.apache.http.nio.impl.reactor.SessionClosedCallback extends java.lang.Object Class added: public org.apache.http.nio.impl.reactor.SessionHandle extends java.lang.Object Class added: public org.apache.http.nio.impl.reactor.SessionInputBuffer extends org.apache.http.nio.util.ExpandableBuffer Class added: public org.apache.http.nio.impl.reactor.SessionOutputBuffer extends org.apache.http.nio.util.ExpandableBuffer Class added: public org.apache.http.nio.impl.reactor.SessionQueue extends java.lang.Object Class added: public org.apache.http.nio.impl.reactor.SessionRequestHandle extends java.lang.Object Class added: public org.apache.http.nio.impl.reactor.SessionSet extends java.lang.Object Class added: public org.apache.http.nio.protocol.AsyncHttpService extends java.lang.Object Class changed: org.apache.http.nio.NHttpClientConnection Methods removed: public abstract void cancelRequest(); Class changed: org.apache.http.nio.NHttpClientHandler Methods removed: public abstract void requestReady(org.apache.http.nio.NHttpClientConnection); Class changed: org.apache.http.nio.NHttpConnection Class descriptor changed: old: public abstract org.apache.http.nio.NHttpConnection extends java.lang.Object implements org.apache.http.HttpConnection, org.apache.http.nio.IOControl new: public abstract org.apache.http.nio.NHttpConnection extends java.lang.Object implements org.apache.http.HttpConnection, org.apache.http.nio.ContentIOControl Class changed: org.apache.http.nio.NHttpServerConnection Methods removed: public abstract void cancelRequest(); Class changed: org.apache.http.nio.NHttpServiceHandler Methods removed: public abstract void responseReady(org.apache.http.nio.NHttpServerConnection); Class changed: org.apache.http.nio.reactor.ConnectingIOReactor Methods removed: public abstract org.apache.http.nio.reactor.SessionRequest connect(java.net.SocketAddress, java.net.SocketAddress, java.lang.Object, org.apache.http.nio.reactor.SessionRequestCallback); Methods added: public abstract org.apache.http.nio.reactor.SessionRequest connect(java.net.SocketAddress, java.net.SocketAddress, java.lang.Object) throws java.io.IOException; Class changed: org.apache.http.nio.reactor.IOSession Methods removed: public abstract boolean hasBufferedInput(); public abstract boolean hasBufferedOutput(); Methods added: public abstract org.apache.http.nio.reactor.SessionBufferStatus getBufferStatus(); Class changed: org.apache.http.nio.reactor.ListeningIOReactor Methods removed: public abstract java.net.SocketAddress listen(java.net.SocketAddress) throws java.io.IOException; Methods added: public abstract void listen(java.net.SocketAddress) throws java.io.IOException; Class changed: org.apache.http.nio.reactor.SessionRequest Methods added: public abstract void setCallback(org.apache.http.nio.reactor.SessionRequestCallback); Class changed: org.apache.http.nio.reactor.SessionRequestCallback Methods removed: public abstract void cancelled(org.apache.http.nio.reactor.SessionRequest); Class changed: org.apache.http.nio.util.ContentInputBuffer Methods removed: public abstract int consumeContent(org.apache.http.nio.ContentDecoder) throws java.io.IOException; Methods added: public ContentInputBuffer(int, org.apache.http.nio.ContentIOControl); public void consumeContent(org.apache.http.nio.ContentDecoder) throws java.io.IOException; protected boolean isEndOfStream(); protected boolean isShutdown(); public int read(byte[]) throws java.io.IOException; public void shutdown(); public void shutdown(java.io.IOException); protected void waitForData() throws java.io.IOException; Class descriptor changed: old: public abstract org.apache.http.nio.util.ContentInputBuffer extends java.lang.Object new: public org.apache.http.nio.util.ContentInputBuffer extends org.apache.http.nio.util.ExpandableBuffer Method changed: old: public abstract int read() throws java.io.IOException; new: public int read() throws java.io.IOException; Method changed: old: public abstract int read(byte[], int, int) throws java.io.IOException; new: public int read(byte[], int, int) throws java.io.IOException; Method changed: old: public abstract void reset(); new: public void reset(); Class changed: org.apache.http.nio.util.ContentOutputBuffer Methods removed: public abstract int produceContent(org.apache.http.nio.ContentEncoder) throws java.io.IOException; public abstract void writeCompleted() throws java.io.IOException; Methods added: public ContentOutputBuffer(int, org.apache.http.nio.ContentIOControl); public void close() throws java.io.IOException; protected void flushBuffer() throws java.io.IOException; public void produceContent(org.apache.http.nio.ContentEncoder) throws java.io.IOException; public void shutdown(); public void shutdown(java.io.IOException); public void write(byte[]) throws java.io.IOException; Class descriptor changed: old: public abstract org.apache.http.nio.util.ContentOutputBuffer extends java.lang.Object new: public org.apache.http.nio.util.ContentOutputBuffer extends org.apache.http.nio.util.ExpandableBuffer Method changed: old: public abstract void flush() throws java.io.IOException; new: public void flush() throws java.io.IOException; Method changed: old: public abstract void reset(); new: public void reset(); Method changed: old: public abstract void write(int) throws java.io.IOException; new: public void write(int) throws java.io.IOException; Method changed: old: public abstract void write(byte[], int, int) throws java.io.IOException; new: public void write(byte[], int, int) throws java.io.IOException; API diff generated by JarDiff http://www.osjava.org/jardiff/ Release 4.0 Alpha 3 ------------------- The third ALPHA version of HttpCore has been released. The ALPHA3 release includes a number of API optimizations and improvements and introduces a set of NIO extensions to the HttpCore API. NIO extensions can be used to build HTTP services intended to handle thousands of simultaneous connections with a small number of I/O threads. * [HTTPCORE-15] Provided a interafce to access IP address of the local and remote end points. Contributed by Oleg Kalnichevski * [ HTTPCORE-14] Scheme, SocketFactory and SecureSocketFactory moved to HttpClient. Decoupled HttpHost and Scheme. Contributed by Oleg Kalnichevski * [HTTPCORE-13] Refactored HttpProcessor interface and related impl classes Contributed by Roland Weber * [HTTPCORE-11] Client connection interface no longer defines a specific method to open a connection. HTTP connections can now represent any abstract I/O transport such as those based on NIO API. Contributed by Oleg Kalnichevski * [HTTPCORE-10] Non-blocking (async) client side I/O transport based on NIO. Contributed by Oleg Kalnichevski * [HTTPCORE-9] Non-blocking (async) server side I/O transport based on NIO. Contributed by Oleg Kalnichevski * [HTTPCORE-7] ConnectionReuseStrategy interface changed to allow access to the HTTP execution context. Contributed by Roland Weber * [HTTPCORE-6] Header implementation allowing for performance short-cuts when serializing and deserializing HTTP headers. Contributed by Oleg Kalnichevski * [HTTPCORE-5] Header, HeaderElement, NameValuePair, RequestLine, StatusLine, HttpVersion changed to interfaces. API no longer contains any parsing and formatting code and does not imply any specific physical representation of HTTP messages and their elements. Contributed by Oleg Kalnichevski Release 4.0 Alpha 2 ------------------- This is a maintenance release that mostly fixes minor problems found since the previous release. The upstream projects are strongly encouraged use this release as a dependency while HttpCore undergoes another round of reviews and optimization in the SVN trunk Changelog: --------- * [HTTPCORE-4] optional header and line length limits to contain OOME risks Contributed by Oleg Kalnichevski Release 4.0 Alpha 1 ------------------- This release represents a complete redesign of the Jakarta Commons HttpClient 3.x API and a significant rewrite of the core HTTP components derived from HttpClient 3.0 code base. These components will form the foundation of the future releases of Jakarta HttpClient and can also be used separately to build custom client- and server-side HTTP services.