hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Jakarta-httpclient Wiki] Update of "HttpClientApiRedesign" by OlegKalnichevski
Date Sun, 15 May 2005 21:02:17 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Jakarta-httpclient Wiki" for change
notification.

The following page has been changed by OlegKalnichevski:
http://wiki.apache.org/jakarta-httpclient/HttpClientApiRedesign

------------------------------------------------------------------------------
  
  == http-common ==
  
- possible package name: '''org.apache.http'''
+ Package name: '''org.apache.http'''
  
  depends on 
  
-  * Java 1.4 (* see notes)
-  * commons-logging (** see notes)
+  * Java 1.4 compile time; Java 1.3 runtime
+ 
+ Public interfaces and classes (API) require Java 1.2 only
+ 
+ Impl classes based on the old IO model require Java 1.3
+ 
+ Impl classes based on the new IO (NIO) model require Java 1.4
  
  provides
  
   * Http header primitives as defined in RFC 822
     
-    a. {{{ HttpHeader }}} class
+    a. {{{ Header }}} class
-    a. {{{ HttpHeaderElement }}} class
+    a. {{{ HeaderElement }}} class
-    a. {{{ HttpHeaderGroup }}} class
  
   * Http request line and Http status line primitives as defined in RFC 2616
  
@@ -43, +47 @@

  
     a. {{{ HttpParams }}} interface
     a. {{{ DefaultHttpParams }}} class implementing {{{ HttpParams }}} interface
+    a. {{{ HttpConnectionParams }}} adaptor class providing easy access to TCP/IP specific
parameters
+    a. {{{ HttpProtocolParams }}} adaptor class providing easy access to HTTP protocol specific
parameters
  
   * Http request and Http response interfaces as defined in RFC 2616
  
-    a. {{{ HttpMessage }}} interface
-    a. {{{ HttpRequest }}} interface extending {{{ HttpMessage }}}
+    a. {{{ HttpMessage }}} interface. This interface represents an abstract immutable HTTP
message
+    a. {{{ HttpRequest }}} interface extending {{{ HttpMessage }}}. This interface represents
an immutable HTTP request
+    a. {{{ HttpResponse }}} interface extending  {{{ HttpMessage }}}. This interface represents
an immutable HTTP response
+    a. {{{ HttpEntityEnclosingRequest }}} interface extending  {{{ HttpRequest }}}. This
interface represents an immutable HTTP response that can enclose a request entity
-    a. {{{ HttpResponse }}} interface extending  {{{ HttpMessage }}}
+    a. {{{ HttpMutableMessage }}} interface extending {{{ HttpMessage }}}
-    a. {{{ HttpEntityEnclosingMessage }}} interface
-    a. {{{ HttpRequestParams }}} class
+    a. {{{ HttpMutableRequest }}} interface extending {{{ HttpRequest }}}. Classes implementing
this interface can be used on the client side to assemble outgoing HTTP requests and/or on
the server side to assemble incoming HTTP requests
+    a. {{{ HttpMutableResponse }}} interface extending {{{ HttpResponse }}}. Classes implementing
this interface can be used on the server side to assemble outgoing HTTP responses and/or on
the client side to assemble incoming HTTP responses
+    a. {{{ HttpMutableEntityEnclosingRequest }}} interface extending {{{ HttpEntityEnclosingRequest
}}}. Classes implementing this interface can be used on the client side to assemble outgoing
HTTP entity enclosing requests and/or on the server side to assemble incoming HTTP requests
(such as POST and PUT)
  
   * generic implementations of the Http request and response interfaces
   
     a. {{{ BasicHttpMessage }}} class implementing {{{ HttpMessage }}} interface
     a. {{{ BasicHttpRequest }}} class extending {{{ BasicHttpMessage }}} and implementing
{{{ HttpRequest }}}
     a. {{{ BasicHttpResponse }}} class extending {{{ BasicHttpMessage }}} and implementing
{{{ HttpResponse }}}, {{{ HttpEntityEnclosingMessage }}}
-    a. {{{ BasicHttpEntityEnclosingRequest }}} class extending {{{ BasicHttpRequest }}} and
implementing {{{ HttpEntityEnclosingMessage }}}
+    a. {{{ BasicHttpEntityEnclosingRequest }}} class extending {{{ BasicHttpRequest }}} and
implementing {{{ HttpEntityEnclosingRequest }}}
  
-  * Http parser interface and the RFC 2616 compliant implementation of it. The parser only
has to be able to parse well formed Http requests and responses.
+  * Http data transmitter and receiver interfaces and their RFC 2616 compliant implementation.
Data transmitters and receivers are capable of sending and receiving the most primitive data
types such as array of bytes and lines of text.
  
-    a. {{{ HttpParser }}} interface
+    a. {{{ HttpDataTransmitter }}} interface
-    a. {{{ NIOHttpParser }}} class based on NIO (makes use of {{{ SocketChannel }}} and {{{
CharBuffer }}} )
+    a. {{{ HttpDataReceiver }}} interface
+    a. {{{ NIOHttpDataTransmitter }}} class implementing {{{ HttpDataTransmitter }}} interface.
This class makes use of {{{ SocketChannel }}}, {{{ ByteBuffer }}} and {{{ CharBuffer }}} NIO
specific classes.
+    a. {{{ NIOHttpDataReceiver }}} class implementing {{{ HttpDataReceiver }}} interface.
This class makes use of {{{ SocketChannel }}}, {{{ ByteBuffer }}} and {{{ CharBuffer }}} NIO
specific classes.
+    a. {{{ OldIOHttpDataTransmitter }}} class implementing {{{ HttpDataTransmitter }}} interface.
This class makes use of {{{ Socket }}} and {{{ OutputStream }}} classes.
+    a. {{{ OldIOHttpDataReceiver }}} class implementing {{{ HttpDataReceiver }}} interface.
This class makes use of {{{ Socket }}} and {{{ InputStream }}} classes.
  
   * Http entity interfaces for sending and receiving entities in Http messages
  
+    a. {{{ HttpEntity }}} interface. This interface represents an immutable entity
+    a. {{{ HttpMutableEntity }}} interface. Classes implementing this interface can be used
to assemble incoming entities either on the client or server side
-    a. {{{ HttpEntity }}} interface
-    a. {{{ HttpIncomingEntity }}} interface extending {{{ HttpEntity }}} interface
-    a. {{{ HttpOutgoingEntity }}} interface extending {{{ HttpEntity }}} interface
-    a. {{{ BasicHttpEntity }}} class implementing {{{ HttpEntity }}} interface
+    a. {{{ BasicHttpEntity }}} class implementing {{{ HttpMutableEntity }}} interface
+    a. {{{ ByteArrayEntity }}} class implementing {{{ HttpEntity }}} interface. This class
represents an outgoing entity backed by a byte array
+    a. {{{ StringEntity }}} class implementing {{{ HttpEntity }}} interface. This class represents
an outgoing entity backed by a string
+    a. {{{ InputStreamEntity }}} class implementing {{{ HttpEntity }}} interface. This class
represents an outgoing entity backed by a input stream
  
   * Http connection interface including a simple dependency mechanism to inject an Http parser
implementation, and a generic implementation of Http connection
  
+    a. {{{ HttpConnection }}} interface. Defines basic properties of a HTTP connection
-    a. {{{ HttpConnection }}} interface. Defines basic read/write operations, provides Http
parser plugin mechanism
-    a. {{{ HttpConnectionParams }}} class
     a. {{{ HttpClientConnection }}} interface extends {{{ HttpConnection }}}. Sends Http
requests / receives Http responses
-    a. {{{ HttpServerConnection }}} interface extends {{{ HttpConnection }}}. Waits/polls
for Http requests / submits Http responses
+    a. {{{ HttpServerConnection }}} interface extends {{{ HttpConnection }}}. Receives Http
requests / sends Http responses
-    a. {{{ NIOHttpClientConnection }}} class implements {{{ HttpClientConnection }}} based
on NIO (makes use of {{{ SocketChannel }}} )
-    a. {{{ NIOHttpServerConnection }}} class implements {{{ HttpServerConnection }}} based
on NIO (makes use of {{{ SocketChannel }}} )
+    a. {{{ DefaultHttpClientConnection }}} class implements {{{ HttpClientConnection }}}.
This class uses NIO based data transmitter and receiver if NIO is supported, otherwise old
IO based data transmitter and receiver are used
+    a. {{{ DefaultHttpServerConnection }}} class implements {{{ HttpServerConnection }}}.
This class uses NIO based data transmitter and receiver if NIO is supported, otherwise old
IO based data transmitter and receiver are used
     a. {{{ HttpHost }}} class
  
   * Input / output chunking streams
@@ -92, +106 @@

  
   * Http method executor capable of executing http requests and receiving Http responses.
This class also is capable of retrying failed requests and handling followup requests through
generic interfaces. It DOES NOT provide connection pooling/management facilities, and DOES
NOT implement redirects and authentication itself.
  
-    a. {{{ HttpMethodExecutor }}} class
+    a. {{{ HttpRequestExecutor }}} class
     a. {{{ HttpContext }}} interface to access all kinds of data related to the execution
of a request
     a. {{{ HttpRequestRetryHandler }}} interface, to decide whether to retry after a communication
error
     a. {{{ HttpSequenceHandler }}} interface, to generate followup requests if required
  
   * implementations of context, retry handler and sequence handler
  
-    a. {{{ StdHttpContext }}} class implementing {{{ HttpContext }}}
+    a. {{{ BasicHttpContext }}} class implementing {{{ HttpContext }}}
     a. {{{ DefaultHttpRequestRetryHandler }}} class implementing {{{ HttpRequestRetryHandler
}}} interface
     a. {{{ DefaultRedirectSequenceHandler }}} class implementing {{{ HttpSequenceHandler
}}}, to handle 30x responses
     a. {{{ SequenceHandlerChain }}} class implementing {{{ HttpSequenceHandler }}}, to manage
a list of sequence handlers
@@ -112, +126 @@

     a. {{{ HeadRequest }}} class implementing {{{ HttpRequest }}} interface
     a. {{{ TraceRequest }}} class implementing {{{ HttpRequest }}} interface
  
-  * Frequently used Http entity types
- 
-    a. {{{ StringEntity }}} class extending {{{ BasicHttpEntity }}} and implementing {{{
HttpIncomingEntity }}}, {{{ HttpOutgoingEntity }}}
-    a. {{{ ByteArrayEntity }}} class extending {{{ BasicHttpEntity }}} and implementing {{{
HttpIncomingEntity }}}, {{{ HttpOutgoingEntity }}}
-    a. {{{ StreamIcEntity }}} class extending {{{ BasicHttpEntity }}} and implementing {{{
HttpIncomingEntity }}} [[BR]] for piping received data into an output stream
-    a. {{{ StreamOgEntity }}} class extending {{{ BasicHttpEntity }}} and implementing {{{
HttpOutgoingEntity }}} [[BR]] for sending data available from an input stream
- 
   * Basic Http proxy support
  
-    a. {{{ ProxyConnectRequest }}} class implementing {{{ HttpRequest }}} interface
+    a. {{{ HttpConnectRequest }}} class implementing {{{ HttpRequest }}} interface
     a. {{{ HttpProxyHost }}} class
  
   * Http proxy chain support

---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-dev-help@jakarta.apache.org


Mime
View raw message