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

------------------------------------------------------------------------------
  This is a purely logical distinction. The below listed components may be
  distributed separately or as a part of a larger package (jar).
  
- == http-common ==
+ == http-core ==
  
  Package name: '''org.apache.http'''
  
  depends on 
  
+  * Java 1.3
-  * 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
  
@@ -72, +66 @@

  
     a. {{{ HttpDataTransmitter }}} interface
     a. {{{ HttpDataReceiver }}} interface
+    a. {{{ SocketHttpDataTransmitter }}} class implementing the {{{ 
HttpDataTransmitter }}} interface
+    a. {{{ SocketHttpDataReceiver }}} class implementing {{{ 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
  
@@ -91, +83 @@

     a. {{{ HttpConnection }}} interface. Defines basic properties of a HTTP 
connection
     a. {{{ HttpClientConnection }}} interface extends {{{ HttpConnection }}}. 
Sends Http requests / receives Http responses
     a. {{{ HttpServerConnection }}} interface extends {{{ HttpConnection }}}. 
Receives Http requests / sends Http responses
-    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. {{{ DefaultHttpClientConnection }}} class implements {{{ 
HttpClientConnection }}}
+    a. {{{ DefaultHttpServerConnection }}} class implements {{{ 
HttpServerConnection }}}
     a. {{{ HttpHost }}} class
  
-  * Input / output chunking streams
+  * Input / output classes
     
-    a. {{{ ChunkedInputStream }}} class
+    a. {{{ ChunkedInputStream }}} class represents an input stream whose 
content is chunk-coded 
+    a. {{{ ChunkedOutputStream }}} class represents an output stream whose 
content is chunk-coded 
+    a. {{{ ContentLengthInputStream }}} class represents an input stream whose 
content is delimited with a length value
+    a. {{{ ContentLengthOutputStream }}} class represents an output stream 
whose content is delimited with a length value
-    a. {{{ ChunkedOutputStream }}} class
+    a. {{{ IdentityOutputStream }}} class
  
   * Http filter interface allowing for request pre-processing and response 
post-processing without having to subclass a given {{{ HttpRequest }}} or {{{ 
HttpResponse }}} implementing classes
     
@@ -120, +115 @@

  
   * Most common Http request types: GET, POST, PUT, HEAD, TRACE
  
-    a. {{{ GetRequest }}} class implementing {{{ HttpRequest }}} interface
+    a. {{{ HttpGet }}} class implementing {{{ HttpRequest }}} interface
-    a. {{{ PostRequest }}} class implementing {{{ HttpRequest }}} and {{{ 
HttpEntityEnclosingRequest }}} interfaces
+    a. {{{ HttpPost }}} class implementing {{{ HttpRequest }}} and {{{ 
HttpEntityEnclosingRequest }}} interfaces
-    a. {{{ PutRequest }}} class implementing {{{ HttpRequest }}} and {{{ 
HttpEntityEnclosingRequest }}} interfaces
+    a. {{{ HttpPut }}} class implementing {{{ HttpRequest }}} and {{{ 
HttpEntityEnclosingRequest }}} interfaces
-    a. {{{ HeadRequest }}} class implementing {{{ HttpRequest }}} interface
+    a. {{{ HttpHead }}} class implementing {{{ HttpRequest }}} interface
-    a. {{{ TraceRequest }}} class implementing {{{ HttpRequest }}} interface
+    a. {{{ HttpTrace }}} class implementing {{{ HttpRequest }}} interface
  
   * Basic Http proxy support
  
     a. {{{ HttpConnectRequest }}} class implementing {{{ HttpRequest }}} 
interface
-    a. {{{ HttpProxyHost }}} class
+    a. {{{ ProxyHost }}} class
  
   * Http proxy chain support
  
@@ -137, +132 @@

     a. {{{ SimpleProxyChain }}} class implementing {{{ ProxyChain }}}. List of 
{{{ HttpProxyHost }}} objects.
     a. {{{ SingleProxy }}} class implementing {{{ ProxyChain }}}. For use when 
a single proxy server is used.
  
+ == http-nio ==
+ 
+ Package name: '''org.apache.http.nio'''
+ 
+ depends on 
+ 
+  * Java 1.4
+  * http-core
+ 
+ provides
+ 
+  * Non-blocking Http client and server connections (tbd)
+       
  == http-cookie ==
  
  possible package name: '''org.apache.http.cookie'''
  
  depends on 
  
-  * Java 1.4 (* see notes)
-  * commons-logging (** see notes)
+  * Java 1.3
+  * http-core
  
  provides
  
@@ -173, +181 @@

  
  depends on 
  
+  * Java 1.3
-  * Java 1.4 (* see notes)
-  * commons-logging (** see notes)
   * commons-codec
-  * http-common
+  * http-core
  
  provides
  
@@ -209, +216 @@

  
  depends on 
  
-  * Java 1.4 (* see notes)
+  * Java 1.4
-  * commons-logging (** see notes)
+  * commons-logging (* see notes)
-  * http-common
+  * http-core
   * commons-pool (really needed? vote?)
  
  provides
@@ -232, +239 @@

  
  depends on 
  
-  * Java 1.4 (* see notes)
+  * Java 1.4
-  * commons-logging (** see notes)
+  * commons-logging (* see notes)
-  * http-common
+  * http-core
   * http-conn
  
  provides
@@ -294, +301 @@

  
  depends on 
  
-  * Java 1.4 (* see notes)
+  * Java 1.4
-  * commons-logging (** see notes)
+  * commons-logging (* see notes)
   * commons-codec
-  * http-common
+  * http-core
   * http-cookie
   * http-auth
   * http-conn
@@ -322, +329 @@

  
  depends on 
  
-  * Java 1.4 (* see notes)
+  * Java 1.4
   * commons-logging
   * commons-codec
-  * http-common
+  * http-core
   * http-cookie
   * http-auth
   * http-conn
@@ -339, +346 @@

  
  depends on 
  
-  * Java 1.4 (* see notes)
+  * Java 1.4
-  * commons-logging (** see notes)
+  * commons-logging (* see notes)
   * commons-codec
-  * http-common
+  * http-core
   * http-cookie
   * http-auth
   * http-client
- 
- ideas?
- 
- == http-infra ==
- 
- Server side Http foundation classes, which can be used to implement simple 
embeddable HTTP servers or reverse proxies. Provided there is a healthy 
community around it.
- 
- depends on 
- 
-  * Java 1.4 (* see notes)
-  * commons-logging (** see notes)
-  * commons-codec
-  * http-common
-  * http-cookie
-  * http-auth
-  * geronimo-network (appropriate? better options? shall we implement our own 
network protocol stack? vote?)
  
  ideas?
  
@@ -369, +360 @@

  
  This chapter is for detailed explanatory notes that would mess up the 
component descriptions if written inline.
  
- == * JVM requirement ==
- 
- Based on the results of the user poll, new components will require Java 1.4 
or later. At the same time we will make an effort to minimize the use of Java 
1.4 specific features in public interfaces and classes used by those interfaces 
in order to provide an easier path to port the components to Java 1.3 or J2ME 
platforms.
- 
- == ** Logging toolkit ==
+ == * Logging toolkit ==
  
  Avoid dependency on a logging toolkit whenever technically feasible. The 
rationale behind trying to avoid dependency on a logging framework is to keep 
the component reusable by projects that have already standardized on a certain 
logging framework.
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to