Date: 2005-02-08T11:24:57
   Editor: RolandWeber
   Wiki: Jakarta-HttpClient Wiki
   Page: HttpClientApiRedesign
   URL: http://wiki.apache.org/jakarta-httpclient/HttpClientApiRedesign

   http context, sequence handler, and refactored authentication

Change Log:

------------------------------------------------------------------------------
@@ -40,13 +40,16 @@
    a. {{{ HttpParams }}} interface
    a. {{{ DefaultHttpParams }}} class implementing {{{ HttpParams }}} interface
 
- * Http request and Http response interfaces as defined in RFC 2616 and their 
generic implementation
+ * Http request and Http response interfaces as defined in RFC 2616
 
    a. {{{ HttpMessage }}} interface
    a. {{{ HttpRequest }}} interface extending {{{ HttpMessage }}}
    a. {{{ HttpResponse }}} interface extending  {{{ HttpMessage }}}
    a. {{{ HttpEntityEnclosingMessage }}} interface
    a. {{{ HttpRequestParams }}} class
+
+ * 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 }}}
@@ -83,11 +86,18 @@
    
    a. {{{ HttpFilter }}} interface
 
- * Http method executor capable of executing http requests and receiving Http 
responses. This class also is capable of retrying failed requests and provides 
a means of injecting a number of Http filters. This class DOES NOT provide 
connection pooling/management facilities, and DOES NOT handle redirects and 
authentication challenges.
+ * 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. {{{ HttpRequestRetryHandler }}} interface
+   a. {{{ HttpContext }}} class to keep 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 retry and sequence handlers
+
    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
 
  * Most common Http request types: GET, POST, PUT, HEAD, TRACE
 
@@ -174,6 +184,13 @@
    a. {{{ NTLMScheme }}} class implementing {{{ AuthScheme }}}
    a. {{{ AuthChallengeParser }}} class
 
+ * Handling of 401 and 407 responses
+
+   a. {{{ StdAuthChallengeHandler }}} class implementing {{{ 
HttpSequenceHandler }}} interface
+   a. {{{ AuthorizationFilter }}} class implementing {{{ HttpFilter }}}, to 
insert authorization headers into requests
+   a. {{{ AuthorizationContext }}} class for data sharing between the sequence 
handler and the filter. Made available through the {{{ HttpContext }}} for a 
request.
+
+
 == http-conn ==
 
 possible package name: '''org.apache.http.connections'''
@@ -278,13 +295,9 @@
  * Http agent primitives
    
    a. {{{ HttpClientParams }}} class
-   a. {{{ AuthChallengeHandler }}} interface
-   a. {{{ StdAuthChallengeHandler }}} class implementing {{{ 
AuthChallengeHandler }}} interface
-   a. {{{ RedirectHandler }}} interface
-   a. {{{ StdRedirectHandler }}} class implementing {{{ RedirectHandler }}} 
interface
    a. {{{ HttpHostParams }}} class
    a. {{{ HostConfig }}} class
-   a. {{{ HttpClient }}} class. Supports a simple dependency injection 
mechanism to inject {{{ HttpConnectionManager }}}, {{{ AuthChallengeHandler 
}}}, {{{ RedirectHandler }}}, {{{ HttpFilter }}} and possibly other 
dependencies.
+   a. {{{ HttpClient }}} class. Sets up the {{{ HttpContext }}} for method 
executions. Supports a simple dependency injection mechanism to inject {{{ 
HttpConnectionManager }}}, {{{ HttpSequenceHandler }}}, {{{ HttpFilter }}}, {{{ 
CookieStore }}} and possibly other dependencies.
 
  * Complex entity types, based on commons-codec
 

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

Reply via email to