Provides classes for using the Apache HttpCore NIO extensions with LimeWire's NIO component. This packages can be used to implement NIO based HTTP servers.

The architecture is composed of multiple layers that communicate through interfaces. The table below shows the classes that compose the protocol stack:

  Interface                       Implementation
 ==============================================================
  HttpNIOEntity*                | AbstractHttpNIOEntity*
 ------------------------------ -------------------------------
  ContentEncoder                | AbstractContentEncoder    
 ------------------------------ -------------------------------
  NHttpServiceHandler           | HttpServiceHandler*
 ------------------------------ -------------------------------
  NHttpServerConnection         | DefaultNServerConnection
 ------------------------------ -------------------------------
  IOEventDispatch               | DefaultServerIOEventDispatch
 ------------------------------ -------------------------------
  ByteChannel                   | HttpChannel*                  

* Classes provided by this component. Other classes except for
ByteChannel are part of HttpCore.

HttpChannel implements ChannelReadObserver and ChannelWriter which hook into LimeWire's NIO component. The HttpNIOEntity interface extends the stream based HttpEntity interface with an event based NIO implementation that is supported by HttpServiceHandler.

The HttpIOSession class is provided for controlling the underlying socket and throttling.

Connection are established and intitilized HttpIOReactor which implements the ConnectingIOReactor interface.