Mercurial > hg > AnnotationManager
comparison libs/httpcomponents-client-4.0-beta1/RELEASE_NOTES.txt @ 5:0be9d53a6967
editor for annotations
author | dwinter |
---|---|
date | Tue, 13 Dec 2011 17:43:46 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
4:c32080f364c6 | 5:0be9d53a6967 |
---|---|
1 4.0 Beta 1 | |
2 ------------------- | |
3 | |
4 BETA1 release brings yet another round of API enhancements and | |
5 improvements in the area of connection management. Among the most notable | |
6 ones is the capability to handle stateful connections such as persistent | |
7 NTLM connections and private key authenticated SSL connections. | |
8 | |
9 This is the first API stable release of HttpClient 4.0. All further | |
10 releases in the 4.0 code line will maintain API compatibility with this | |
11 release. | |
12 | |
13 There has been a number of important bug fixes since ALPHA4. All upstream | |
14 projects are encouraged to upgrade to the latest release. | |
15 | |
16 Please note HttpClient currently provides only limited support for NTLM | |
17 authentication. For details please see NTLM_SUPPORT.txt. | |
18 | |
19 ------------------- | |
20 | |
21 Changelog: | |
22 ------------------- | |
23 | |
24 * [HTTPCLIENT-790] Protocol interceptors are now correctly invoked when | |
25 executing CONNECT methods. | |
26 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
27 | |
28 * [HTTPCLIENT-668] Do not use static loggers. | |
29 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
30 | |
31 * [HTTPCLIENT-781] Respect Keep-Alive header's timeout value. | |
32 Contributed by Sam Berlin <sberlin at apache.org> | |
33 | |
34 * [HTTPCLIENT-779] Top-level classes (HttpClient, and HttpGet, HttpPut | |
35 and similar HttpMethods) throw fewer checked exceptions. | |
36 Contributed by Sam Berlin <sberlin at apache.org> | |
37 | |
38 * HttpClient will throw an exception if an attempt is made to retry | |
39 a request with a non-repeatable request entity. | |
40 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
41 | |
42 * Fixed request re-generation logic when retrying a failed request. | |
43 Auto-generated headers will no accumulate. | |
44 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
45 | |
46 * [HTTPCLIENT-424] Preemptive authentication no longer limited to BASIC | |
47 scheme only. HttpClient can be customized to authenticate preemptively | |
48 with DIGEST scheme. | |
49 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
50 | |
51 * [HTTPCLIENT-670] Pluggable hostname resolver. | |
52 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
53 | |
54 * [HTTPCLIENT-719] Clone support for HTTP request and cookie objects. | |
55 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
56 | |
57 * [HTTPCLIENT-776] Fixed concurrency issues with AbstractPoolEntry. | |
58 Contributed by Sam Berlin <sberlin at gmail.com> | |
59 | |
60 * Resolved a long standing problem with HttpClient not taking into account | |
61 the user context when pooling / re-using connections. HttpClient now | |
62 correctly handles stateful / user specific connections such as persistent | |
63 NTLM connections and SSL connections with client side authentication. | |
64 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
65 | |
66 * [HTTPCLIENT-773] Improved handling of the 'expires' attribute by the | |
67 'Best Match' cookie spec. | |
68 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
69 | |
70 * Partial NTLM support (requires an external NTLM engine). For details see | |
71 NTLM_SUPPORT.txt | |
72 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
73 | |
74 * Redesigned local execution context management. | |
75 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
76 | |
77 HttpClient API changes (generated by JarDiff 0.2) | |
78 -------------------------------------- | |
79 | |
80 Class removed: | |
81 public org.apache.http.client.AuthState extends java.lang.Object | |
82 Class removed: | |
83 public abstract org.apache.http.client.ClientRequestDirector extends java.lang.Object | |
84 Class removed: | |
85 public org.apache.http.conn.params.HttpConnParams extends java.lang.Object | |
86 Class removed: | |
87 public final org.apache.http.conn.params.HttpConnectionManagerParams extends java.lang.Object implements org.apache.http.conn.params.ConnManagerPNames | |
88 Class removed: | |
89 public org.apache.http.conn.params.HttpRouteParams extends java.lang.Object | |
90 Class removed: | |
91 public org.apache.http.impl.client.DefaultClientRequestDirector extends java.lang.Object implements org.apache.http.client.ClientRequestDirector | |
92 Class added: | |
93 public org.apache.http.auth.AuthState extends java.lang.Object | |
94 Class added: | |
95 public final org.apache.http.auth.BasicUserPrincipal extends java.lang.Object implements java.security.Principal | |
96 Class added: | |
97 public org.apache.http.auth.NTCredentials extends java.lang.Object implements org.apache.http.auth.Credentials | |
98 Class added: | |
99 public org.apache.http.auth.NTUserPrincipal extends java.lang.Object implements java.security.Principal | |
100 Class added: | |
101 public org.apache.http.client.ClientProtocolException extends java.io.IOException | |
102 Class added: | |
103 public org.apache.http.client.HttpResponseException extends org.apache.http.client.ClientProtocolException | |
104 Class added: | |
105 public org.apache.http.client.NonRepeatableRequestException extends org.apache.http.ProtocolException | |
106 Class added: | |
107 public abstract org.apache.http.client.RequestDirector extends java.lang.Object | |
108 Class added: | |
109 public abstract org.apache.http.client.ResponseHandler extends java.lang.Object | |
110 Class added: | |
111 public abstract org.apache.http.client.UserTokenHandler extends java.lang.Object | |
112 Class added: | |
113 public org.apache.http.client.utils.CloneUtils extends java.lang.Object | |
114 Class added: | |
115 public abstract org.apache.http.client.utils.Idn extends java.lang.Object | |
116 Class added: | |
117 public org.apache.http.client.utils.JdkIdn extends java.lang.Object implements org.apache.http.client.utils.Idn | |
118 Class added: | |
119 public org.apache.http.client.utils.Punycode extends java.lang.Object | |
120 Class added: | |
121 public org.apache.http.client.utils.Rfc3492Idn extends java.lang.Object implements org.apache.http.client.utils.Idn | |
122 Class added: | |
123 public abstract org.apache.http.conn.ConnectionKeepAliveStrategy extends java.lang.Object | |
124 Class added: | |
125 public final org.apache.http.conn.params.ConnManagerParams extends java.lang.Object implements org.apache.http.conn.params.ConnManagerPNames | |
126 Class added: | |
127 public org.apache.http.conn.params.ConnRouteParams extends java.lang.Object implements org.apache.http.conn.params.ConnRoutePNames | |
128 Class added: | |
129 public abstract org.apache.http.conn.scheme.HostNameResolver extends java.lang.Object | |
130 Class added: | |
131 public abstract org.apache.http.impl.auth.AuthSchemeBase extends java.lang.Object implements org.apache.http.auth.AuthScheme | |
132 Class added: | |
133 public abstract org.apache.http.impl.auth.NTLMEngine extends java.lang.Object | |
134 Class added: | |
135 public org.apache.http.impl.auth.NTLMEngineException extends org.apache.http.auth.AuthenticationException | |
136 Class added: | |
137 public org.apache.http.impl.auth.NTLMScheme extends org.apache.http.impl.auth.AuthSchemeBase | |
138 Class added: | |
139 public org.apache.http.impl.client.BasicResponseHandler extends java.lang.Object implements org.apache.http.client.ResponseHandler | |
140 Class added: | |
141 public org.apache.http.impl.client.DefaultConnectionKeepAliveStrategy extends java.lang.Object implements org.apache.http.conn.ConnectionKeepAliveStrategy | |
142 Class added: | |
143 public org.apache.http.impl.client.DefaultRequestDirector extends java.lang.Object implements org.apache.http.client.RequestDirector | |
144 Class added: | |
145 public org.apache.http.impl.client.DefaultUserTokenHandler extends java.lang.Object implements org.apache.http.client.UserTokenHandler | |
146 Class added: | |
147 public org.apache.http.impl.cookie.PublicSuffixFilter extends java.lang.Object implements org.apache.http.cookie.CookieAttributeHandler | |
148 Class added: | |
149 public org.apache.http.impl.cookie.PublicSuffixListParser extends java.lang.Object | |
150 Class changed: org.apache.http.auth.Credentials | |
151 Methods removed: | |
152 public abstract java.lang.String getPrincipalName(); | |
153 | |
154 Methods added: | |
155 public abstract java.security.Principal getUserPrincipal(); | |
156 | |
157 Class changed: org.apache.http.auth.UsernamePasswordCredentials | |
158 Methods removed: | |
159 public java.lang.String getPrincipalName(); | |
160 public java.lang.String toText(); | |
161 | |
162 Methods added: | |
163 public java.lang.String getUserName(); | |
164 public java.security.Principal getUserPrincipal(); | |
165 | |
166 Class changed: org.apache.http.client.HttpClient | |
167 Methods removed: | |
168 public abstract org.apache.http.protocol.HttpContext getDefaultContext(); | |
169 | |
170 Methods added: | |
171 public abstract java.lang.Object execute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.client.ResponseHandler) throws java.io.IOException, org.apache.http.client.ClientProtocolException; | |
172 public abstract java.lang.Object execute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.client.ResponseHandler, org.apache.http.protocol.HttpContext) throws java.io.IOException, org.apache.http.client.ClientProtocolException; | |
173 public abstract java.lang.Object execute(org.apache.http.client.methods.HttpUriRequest, org.apache.http.client.ResponseHandler) throws java.io.IOException, org.apache.http.client.ClientProtocolException; | |
174 public abstract java.lang.Object execute(org.apache.http.client.methods.HttpUriRequest, org.apache.http.client.ResponseHandler, org.apache.http.protocol.HttpContext) throws java.io.IOException, org.apache.http.client.ClientProtocolException; | |
175 | |
176 Method changed: | |
177 old: | |
178 public abstract org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest) throws org.apache.http.HttpException, java.io.IOException; | |
179 | |
180 new: | |
181 public abstract org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest) throws java.io.IOException, org.apache.http.client.ClientProtocolException; | |
182 | |
183 Method changed: | |
184 old: | |
185 public abstract org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException; | |
186 | |
187 new: | |
188 public abstract org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext) throws java.io.IOException, org.apache.http.client.ClientProtocolException; | |
189 | |
190 Method changed: | |
191 old: | |
192 public abstract org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest) throws org.apache.http.HttpException, java.io.IOException; | |
193 | |
194 new: | |
195 public abstract org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest) throws java.io.IOException, org.apache.http.client.ClientProtocolException; | |
196 | |
197 Method changed: | |
198 old: | |
199 public abstract org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException; | |
200 | |
201 new: | |
202 public abstract org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest, org.apache.http.protocol.HttpContext) throws java.io.IOException, org.apache.http.client.ClientProtocolException; | |
203 | |
204 Class changed: org.apache.http.client.methods.HttpDelete | |
205 Method changed: | |
206 old: | |
207 public HttpDelete(java.lang.String) throws java.net.URISyntaxException; | |
208 | |
209 new: | |
210 public HttpDelete(java.lang.String); | |
211 | |
212 Class changed: org.apache.http.client.methods.HttpEntityEnclosingRequestBase | |
213 Methods added: | |
214 public java.lang.Object clone() throws java.lang.CloneNotSupportedException; | |
215 | |
216 Class descriptor changed: | |
217 old: | |
218 package abstract org.apache.http.client.methods.HttpEntityEnclosingRequestBase extends org.apache.http.client.methods.HttpRequestBase implements org.apache.http.HttpEntityEnclosingRequest | |
219 new: | |
220 public abstract org.apache.http.client.methods.HttpEntityEnclosingRequestBase extends org.apache.http.client.methods.HttpRequestBase implements org.apache.http.HttpEntityEnclosingRequest | |
221 Class changed: org.apache.http.client.methods.HttpGet | |
222 Method changed: | |
223 old: | |
224 public HttpGet(java.lang.String) throws java.net.URISyntaxException; | |
225 | |
226 new: | |
227 public HttpGet(java.lang.String); | |
228 | |
229 Class changed: org.apache.http.client.methods.HttpHead | |
230 Method changed: | |
231 old: | |
232 public HttpHead(java.lang.String) throws java.net.URISyntaxException; | |
233 | |
234 new: | |
235 public HttpHead(java.lang.String); | |
236 | |
237 Class changed: org.apache.http.client.methods.HttpOptions | |
238 Method changed: | |
239 old: | |
240 public HttpOptions(java.lang.String) throws java.net.URISyntaxException; | |
241 | |
242 new: | |
243 public HttpOptions(java.lang.String); | |
244 | |
245 Class changed: org.apache.http.client.methods.HttpPost | |
246 Method changed: | |
247 old: | |
248 public HttpPost(java.lang.String) throws java.net.URISyntaxException; | |
249 | |
250 new: | |
251 public HttpPost(java.lang.String); | |
252 | |
253 Class changed: org.apache.http.client.methods.HttpPut | |
254 Method changed: | |
255 old: | |
256 public HttpPut(java.lang.String) throws java.net.URISyntaxException; | |
257 | |
258 new: | |
259 public HttpPut(java.lang.String); | |
260 | |
261 Class changed: org.apache.http.client.methods.HttpRequestBase | |
262 Methods added: | |
263 public java.lang.Object clone() throws java.lang.CloneNotSupportedException; | |
264 public boolean isAborted(); | |
265 | |
266 Class descriptor changed: | |
267 old: | |
268 package abstract org.apache.http.client.methods.HttpRequestBase extends org.apache.http.message.AbstractHttpMessage implements org.apache.http.client.methods.HttpUriRequest, org.apache.http.client.methods.AbortableHttpRequest | |
269 new: | |
270 public abstract org.apache.http.client.methods.HttpRequestBase extends org.apache.http.message.AbstractHttpMessage implements org.apache.http.client.methods.HttpUriRequest, org.apache.http.client.methods.AbortableHttpRequest, java.lang.Cloneable | |
271 Class changed: org.apache.http.client.methods.HttpTrace | |
272 Method changed: | |
273 old: | |
274 public HttpTrace(java.lang.String) throws java.net.URISyntaxException; | |
275 | |
276 new: | |
277 public HttpTrace(java.lang.String); | |
278 | |
279 Class changed: org.apache.http.client.methods.HttpUriRequest | |
280 Methods added: | |
281 public abstract void abort() throws java.lang.UnsupportedOperationException; | |
282 public abstract boolean isAborted(); | |
283 | |
284 Class changed: org.apache.http.client.params.ClientPNames | |
285 Fields removed: | |
286 public final static java.lang.String CONNECTION_MANAGER_TIMEOUT = http.connection-manager.timeout; | |
287 public final static java.lang.String PREEMPTIVE_AUTHENTICATION = http.protocol.authentication-preemptive; | |
288 | |
289 Class changed: org.apache.http.client.params.ClientParamBean | |
290 Methods removed: | |
291 public void setConnectionManagerTimeout(long); | |
292 public void setPreemptiveAuthentication(boolean); | |
293 | |
294 Class changed: org.apache.http.client.params.HttpClientParams | |
295 Methods removed: | |
296 public static long getConnectionManagerTimeout(org.apache.http.params.HttpParams); | |
297 public static boolean isAuthenticationPreemptive(org.apache.http.params.HttpParams); | |
298 public static void setAuthenticationPreemptive(org.apache.http.params.HttpParams, boolean); | |
299 public static void setConnectionManagerTimeout(org.apache.http.params.HttpParams, long); | |
300 | |
301 Class changed: org.apache.http.client.protocol.ClientContext | |
302 Fields added: | |
303 public final static java.lang.String AUTH_SCHEME_PREF = http.auth.scheme-pref; | |
304 public final static java.lang.String USER_TOKEN = http.user-token; | |
305 | |
306 Class changed: org.apache.http.client.protocol.ClientContextConfigurer | |
307 Methods added: | |
308 public void setAuthSchemePref(java.util.List); | |
309 public void setAuthSchemeRegistry(org.apache.http.auth.AuthSchemeRegistry); | |
310 public void setCookieSpecRegistry(org.apache.http.cookie.CookieSpecRegistry); | |
311 public void setCredentialsProvider(org.apache.http.client.CredentialsProvider); | |
312 | |
313 Class descriptor changed: | |
314 old: | |
315 public org.apache.http.client.protocol.ClientContextConfigurer extends java.lang.Object | |
316 new: | |
317 public org.apache.http.client.protocol.ClientContextConfigurer extends java.lang.Object implements org.apache.http.client.protocol.ClientContext | |
318 Class changed: org.apache.http.conn.BasicManagedEntity | |
319 Field changed: | |
320 old: | |
321 protected boolean attemptReuse; | |
322 | |
323 new: | |
324 protected final boolean attemptReuse; | |
325 | |
326 Class changed: org.apache.http.conn.ClientConnectionManager | |
327 Methods removed: | |
328 public abstract void releaseConnection(org.apache.http.conn.ManagedClientConnection); | |
329 | |
330 Methods added: | |
331 public abstract void closeExpiredConnections(); | |
332 public abstract void releaseConnection(org.apache.http.conn.ManagedClientConnection, long, java.util.concurrent.TimeUnit); | |
333 | |
334 Class changed: org.apache.http.conn.ManagedClientConnection | |
335 Methods added: | |
336 public abstract void setIdleDuration(long, java.util.concurrent.TimeUnit); | |
337 | |
338 Class changed: org.apache.http.conn.params.ConnManagerPNames | |
339 Fields added: | |
340 public final static java.lang.String TIMEOUT = http.conn-manager.timeout; | |
341 | |
342 Class changed: org.apache.http.conn.params.ConnManagerParamBean | |
343 Methods added: | |
344 public void setTimeout(long); | |
345 | |
346 Class changed: org.apache.http.conn.scheme.PlainSocketFactory | |
347 Methods added: | |
348 public PlainSocketFactory(); | |
349 public PlainSocketFactory(org.apache.http.conn.scheme.HostNameResolver); | |
350 | |
351 Class changed: org.apache.http.conn.ssl.SSLSocketFactory | |
352 Methods removed: | |
353 public SSLSocketFactory(java.lang.String, java.security.KeyStore, java.lang.String, java.security.KeyStore, java.security.SecureRandom) throws java.security.NoSuchAlgorithmException, java.security.KeyManagementException, java.security.KeyStoreException, java.security.UnrecoverableKeyException; | |
354 | |
355 Methods added: | |
356 public SSLSocketFactory(java.lang.String, java.security.KeyStore, java.lang.String, java.security.KeyStore, java.security.SecureRandom, org.apache.http.conn.scheme.HostNameResolver) throws java.security.NoSuchAlgorithmException, java.security.KeyManagementException, java.security.KeyStoreException, java.security.UnrecoverableKeyException; | |
357 public SSLSocketFactory(javax.net.ssl.SSLContext); | |
358 public SSLSocketFactory(javax.net.ssl.SSLContext, org.apache.http.conn.scheme.HostNameResolver); | |
359 | |
360 Class changed: org.apache.http.impl.auth.DigestScheme | |
361 Methods added: | |
362 public void overrideParamter(java.lang.String, java.lang.String); | |
363 | |
364 Class changed: org.apache.http.impl.auth.RFC2617Scheme | |
365 Methods removed: | |
366 public boolean isProxy(); | |
367 public void processChallenge(org.apache.http.Header) throws org.apache.http.auth.MalformedChallengeException; | |
368 | |
369 Methods added: | |
370 protected void parseChallenge(org.apache.http.util.CharArrayBuffer, int, int) throws org.apache.http.auth.MalformedChallengeException; | |
371 | |
372 Class descriptor changed: | |
373 old: | |
374 public abstract org.apache.http.impl.auth.RFC2617Scheme extends java.lang.Object implements org.apache.http.auth.AuthScheme | |
375 new: | |
376 public abstract org.apache.http.impl.auth.RFC2617Scheme extends org.apache.http.impl.auth.AuthSchemeBase | |
377 Class changed: org.apache.http.impl.client.AbstractHttpClient | |
378 Methods removed: | |
379 protected org.apache.http.client.ClientRequestDirector createClientRequestDirector(org.apache.http.conn.ClientConnectionManager, org.apache.http.ConnectionReuseStrategy, org.apache.http.conn.routing.HttpRoutePlanner, org.apache.http.protocol.HttpProcessor, org.apache.http.client.HttpRequestRetryHandler, org.apache.http.client.RedirectHandler, org.apache.http.client.AuthenticationHandler, org.apache.http.client.AuthenticationHandler, org.apache.http.params.HttpParams); | |
380 public final synchronized org.apache.http.protocol.HttpContext getDefaultContext(); | |
381 protected abstract void populateContext(org.apache.http.protocol.HttpContext); | |
382 | |
383 Methods added: | |
384 protected org.apache.http.client.RequestDirector createClientRequestDirector(org.apache.http.protocol.HttpRequestExecutor, org.apache.http.conn.ClientConnectionManager, org.apache.http.ConnectionReuseStrategy, org.apache.http.conn.ConnectionKeepAliveStrategy, org.apache.http.conn.routing.HttpRoutePlanner, org.apache.http.protocol.HttpProcessor, org.apache.http.client.HttpRequestRetryHandler, org.apache.http.client.RedirectHandler, org.apache.http.client.AuthenticationHandler, org.apache.http.client.AuthenticationHandler, org.apache.http.client.UserTokenHandler, org.apache.http.params.HttpParams); | |
385 protected abstract org.apache.http.conn.ConnectionKeepAliveStrategy createConnectionKeepAliveStrategy(); | |
386 protected abstract org.apache.http.protocol.HttpRequestExecutor createRequestExecutor(); | |
387 protected abstract org.apache.http.client.UserTokenHandler createUserTokenHandler(); | |
388 public java.lang.Object execute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.client.ResponseHandler) throws java.io.IOException, org.apache.http.client.ClientProtocolException; | |
389 public java.lang.Object execute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.client.ResponseHandler, org.apache.http.protocol.HttpContext) throws java.io.IOException, org.apache.http.client.ClientProtocolException; | |
390 public java.lang.Object execute(org.apache.http.client.methods.HttpUriRequest, org.apache.http.client.ResponseHandler) throws java.io.IOException, org.apache.http.client.ClientProtocolException; | |
391 public java.lang.Object execute(org.apache.http.client.methods.HttpUriRequest, org.apache.http.client.ResponseHandler, org.apache.http.protocol.HttpContext) throws java.io.IOException, org.apache.http.client.ClientProtocolException; | |
392 public final synchronized org.apache.http.conn.ConnectionKeepAliveStrategy getConnectionKeepAliveStrategy(); | |
393 public final synchronized org.apache.http.protocol.HttpRequestExecutor getRequestExecutor(); | |
394 public final synchronized org.apache.http.client.UserTokenHandler getUserTokenHandler(); | |
395 public synchronized void setKeepAliveStrategy(org.apache.http.conn.ConnectionKeepAliveStrategy); | |
396 public synchronized void setUserTokenHandler(org.apache.http.client.UserTokenHandler); | |
397 | |
398 Method changed: | |
399 old: | |
400 public final org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest) throws org.apache.http.HttpException, java.io.IOException; | |
401 | |
402 new: | |
403 public final org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest) throws java.io.IOException, org.apache.http.client.ClientProtocolException; | |
404 | |
405 Method changed: | |
406 old: | |
407 public final org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException; | |
408 | |
409 new: | |
410 public final org.apache.http.HttpResponse execute(org.apache.http.HttpHost, org.apache.http.HttpRequest, org.apache.http.protocol.HttpContext) throws java.io.IOException, org.apache.http.client.ClientProtocolException; | |
411 | |
412 Method changed: | |
413 old: | |
414 public final org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest) throws org.apache.http.HttpException, java.io.IOException; | |
415 | |
416 new: | |
417 public final org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest) throws java.io.IOException, org.apache.http.client.ClientProtocolException; | |
418 | |
419 Method changed: | |
420 old: | |
421 public final org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest, org.apache.http.protocol.HttpContext) throws org.apache.http.HttpException, java.io.IOException; | |
422 | |
423 new: | |
424 public final org.apache.http.HttpResponse execute(org.apache.http.client.methods.HttpUriRequest, org.apache.http.protocol.HttpContext) throws java.io.IOException, org.apache.http.client.ClientProtocolException; | |
425 | |
426 Class changed: org.apache.http.impl.client.DefaultHttpClient | |
427 Methods removed: | |
428 protected void populateContext(org.apache.http.protocol.HttpContext); | |
429 | |
430 Methods added: | |
431 protected org.apache.http.conn.ConnectionKeepAliveStrategy createConnectionKeepAliveStrategy(); | |
432 protected org.apache.http.protocol.HttpRequestExecutor createRequestExecutor(); | |
433 protected org.apache.http.client.UserTokenHandler createUserTokenHandler(); | |
434 | |
435 Class changed: org.apache.http.impl.client.EntityEnclosingRequestWrapper | |
436 Methods added: | |
437 public boolean isRepeatable(); | |
438 | |
439 Class descriptor changed: | |
440 old: | |
441 package org.apache.http.impl.client.EntityEnclosingRequestWrapper extends org.apache.http.impl.client.RequestWrapper implements org.apache.http.HttpEntityEnclosingRequest | |
442 new: | |
443 public org.apache.http.impl.client.EntityEnclosingRequestWrapper extends org.apache.http.impl.client.RequestWrapper implements org.apache.http.HttpEntityEnclosingRequest | |
444 Class changed: org.apache.http.impl.client.RequestWrapper | |
445 Methods added: | |
446 public void abort() throws java.lang.UnsupportedOperationException; | |
447 public int getExecCount(); | |
448 public void incrementExecCount(); | |
449 public boolean isAborted(); | |
450 public boolean isRepeatable(); | |
451 public void resetHeaders(); | |
452 | |
453 Class descriptor changed: | |
454 old: | |
455 package org.apache.http.impl.client.RequestWrapper extends org.apache.http.message.AbstractHttpMessage implements org.apache.http.client.methods.HttpUriRequest | |
456 new: | |
457 public org.apache.http.impl.client.RequestWrapper extends org.apache.http.message.AbstractHttpMessage implements org.apache.http.client.methods.HttpUriRequest | |
458 Class changed: org.apache.http.impl.conn.AbstractClientConnAdapter | |
459 Methods added: | |
460 public void setIdleDuration(long, java.util.concurrent.TimeUnit); | |
461 | |
462 Class changed: org.apache.http.impl.conn.AbstractPoolEntry | |
463 Methods removed: | |
464 protected void resetTrackedRoute(); | |
465 | |
466 Methods added: | |
467 protected void shutdownEntry(); | |
468 | |
469 Field changed: | |
470 old: | |
471 protected volatile org.apache.http.conn.OperatedClientConnection connection; | |
472 | |
473 new: | |
474 protected final org.apache.http.conn.OperatedClientConnection connection; | |
475 | |
476 Class changed: org.apache.http.impl.conn.DefaultClientConnection | |
477 Method changed: | |
478 old: | |
479 public void opening(java.net.Socket, org.apache.http.HttpHost); | |
480 | |
481 new: | |
482 public void opening(java.net.Socket, org.apache.http.HttpHost) throws java.io.IOException; | |
483 | |
484 Class changed: org.apache.http.impl.conn.IdleConnectionHandler | |
485 Methods removed: | |
486 public void add(org.apache.http.HttpConnection); | |
487 public void remove(org.apache.http.HttpConnection); | |
488 | |
489 Methods added: | |
490 public void add(org.apache.http.HttpConnection, long, java.util.concurrent.TimeUnit); | |
491 public void closeExpiredConnections(); | |
492 public boolean remove(org.apache.http.HttpConnection); | |
493 | |
494 Class changed: org.apache.http.impl.conn.LoggingSessionInputBuffer | |
495 Class descriptor changed: | |
496 old: | |
497 package org.apache.http.impl.conn.LoggingSessionInputBuffer extends java.lang.Object implements org.apache.http.io.SessionInputBuffer | |
498 new: | |
499 public org.apache.http.impl.conn.LoggingSessionInputBuffer extends java.lang.Object implements org.apache.http.io.SessionInputBuffer | |
500 Class changed: org.apache.http.impl.conn.LoggingSessionOutputBuffer | |
501 Class descriptor changed: | |
502 old: | |
503 package org.apache.http.impl.conn.LoggingSessionOutputBuffer extends java.lang.Object implements org.apache.http.io.SessionOutputBuffer | |
504 new: | |
505 public org.apache.http.impl.conn.LoggingSessionOutputBuffer extends java.lang.Object implements org.apache.http.io.SessionOutputBuffer | |
506 Class changed: org.apache.http.impl.conn.SingleClientConnManager | |
507 Methods removed: | |
508 public void releaseConnection(org.apache.http.conn.ManagedClientConnection); | |
509 | |
510 Methods added: | |
511 public void closeExpiredConnections(); | |
512 public void releaseConnection(org.apache.http.conn.ManagedClientConnection, long, java.util.concurrent.TimeUnit); | |
513 | |
514 Fields added: | |
515 protected long connectionExpiresTime; | |
516 | |
517 Class changed: org.apache.http.impl.conn.tsccm.AbstractConnPool | |
518 Methods removed: | |
519 public abstract void freeEntry(org.apache.http.impl.conn.tsccm.BasicPoolEntry, boolean); | |
520 | |
521 Methods added: | |
522 public void closeExpiredConnections(); | |
523 public abstract void freeEntry(org.apache.http.impl.conn.tsccm.BasicPoolEntry, boolean, long, java.util.concurrent.TimeUnit); | |
524 | |
525 Class changed: org.apache.http.impl.conn.tsccm.ConnPoolByRoute | |
526 Methods removed: | |
527 public void freeEntry(org.apache.http.impl.conn.tsccm.BasicPoolEntry, boolean); | |
528 | |
529 Methods added: | |
530 public void freeEntry(org.apache.http.impl.conn.tsccm.BasicPoolEntry, boolean, long, java.util.concurrent.TimeUnit); | |
531 | |
532 Class changed: org.apache.http.impl.conn.tsccm.RefQueueWorker | |
533 Fields removed: | |
534 protected final org.apache.commons.logging.Log LOG; | |
535 | |
536 Class changed: org.apache.http.impl.conn.tsccm.RouteSpecificPool | |
537 Methods removed: | |
538 public org.apache.http.impl.conn.tsccm.WaitingThread dequeueThread(); | |
539 | |
540 Methods added: | |
541 public org.apache.http.impl.conn.tsccm.WaitingThread nextThread(); | |
542 | |
543 Class changed: org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager | |
544 Methods removed: | |
545 public void releaseConnection(org.apache.http.conn.ManagedClientConnection); | |
546 | |
547 Methods added: | |
548 public void closeExpiredConnections(); | |
549 public void releaseConnection(org.apache.http.conn.ManagedClientConnection, long, java.util.concurrent.TimeUnit); | |
550 | |
551 Class changed: org.apache.http.impl.cookie.BasicClientCookie | |
552 Methods added: | |
553 public java.lang.Object clone() throws java.lang.CloneNotSupportedException; | |
554 | |
555 Class descriptor changed: | |
556 old: | |
557 public org.apache.http.impl.cookie.BasicClientCookie extends java.lang.Object implements org.apache.http.cookie.SetCookie, org.apache.http.cookie.ClientCookie | |
558 new: | |
559 public org.apache.http.impl.cookie.BasicClientCookie extends java.lang.Object implements org.apache.http.cookie.SetCookie, org.apache.http.cookie.ClientCookie, java.lang.Cloneable | |
560 Class changed: org.apache.http.impl.cookie.BasicClientCookie2 | |
561 Methods added: | |
562 public java.lang.Object clone() throws java.lang.CloneNotSupportedException; | |
563 | |
564 Class changed: org.apache.http.impl.cookie.BrowserCompatSpec | |
565 Fields added: | |
566 protected final static java.lang.String[] DATE_PATTERNS; | |
567 | |
568 Class changed: org.apache.http.impl.cookie.NetscapeDraftSpec | |
569 Methods added: | |
570 public NetscapeDraftSpec(java.lang.String[]); | |
571 | |
572 Fields added: | |
573 protected final static java.lang.String EXPIRES_PATTERN = EEE, dd-MMM-yyyy HH:mm:ss z; | |
574 | |
575 API diff generated by JarDiff http://www.osjava.org/jardiff/ | |
576 | |
577 HttpMime API changes (generated by JarDiff 0.2) | |
578 -------------------------------------- | |
579 | |
580 Class removed: | |
581 public abstract org.apache.http.entity.mime.ContentDescriptor extends java.lang.Object | |
582 Class changed: org.apache.http.entity.mime.FormBodyPart | |
583 Methods removed: | |
584 protected void generateContentType(org.apache.http.entity.mime.ContentDescriptor); | |
585 protected void generateTransferEncoding(org.apache.http.entity.mime.ContentDescriptor); | |
586 | |
587 Methods added: | |
588 protected void generateContentType(org.apache.james.mime4j.descriptor.ContentDescriptor); | |
589 protected void generateTransferEncoding(org.apache.james.mime4j.descriptor.ContentDescriptor); | |
590 | |
591 Class changed: org.apache.http.entity.mime.HttpMultipart | |
592 Methods removed: | |
593 public HttpMultipart(); | |
594 | |
595 Methods added: | |
596 public HttpMultipart(java.lang.String); | |
597 public void writeTo(java.io.OutputStream, int) throws java.io.IOException, org.apache.james.mime4j.MimeException; | |
598 | |
599 Class changed: org.apache.http.entity.mime.content.ContentBody | |
600 Class descriptor changed: | |
601 old: | |
602 public abstract org.apache.http.entity.mime.content.ContentBody extends java.lang.Object implements org.apache.james.mime4j.message.Body, org.apache.http.entity.mime.ContentDescriptor | |
603 new: | |
604 public abstract org.apache.http.entity.mime.content.ContentBody extends java.lang.Object implements org.apache.james.mime4j.message.Body, org.apache.james.mime4j.descriptor.ContentDescriptor | |
605 Class changed: org.apache.http.entity.mime.content.FileBody | |
606 Methods removed: | |
607 public java.nio.charset.Charset getCharset(); | |
608 public void writeTo(java.io.OutputStream) throws java.io.IOException; | |
609 | |
610 Methods added: | |
611 public java.lang.String getCharset(); | |
612 public java.util.Map getContentTypeParameters(); | |
613 public java.lang.String getMediaType(); | |
614 public java.lang.String getSubType(); | |
615 public void writeTo(java.io.OutputStream, int) throws java.io.IOException; | |
616 | |
617 Class changed: org.apache.http.entity.mime.content.InputStreamBody | |
618 Methods removed: | |
619 public java.nio.charset.Charset getCharset(); | |
620 public void writeTo(java.io.OutputStream) throws java.io.IOException; | |
621 | |
622 Methods added: | |
623 public java.lang.String getCharset(); | |
624 public java.util.Map getContentTypeParameters(); | |
625 public java.lang.String getMediaType(); | |
626 public java.lang.String getSubType(); | |
627 public void writeTo(java.io.OutputStream, int) throws java.io.IOException; | |
628 | |
629 Class changed: org.apache.http.entity.mime.content.StringBody | |
630 Methods removed: | |
631 public java.nio.charset.Charset getCharset(); | |
632 public void writeTo(java.io.OutputStream) throws java.io.IOException; | |
633 | |
634 Methods added: | |
635 public java.lang.String getCharset(); | |
636 public java.util.Map getContentTypeParameters(); | |
637 public java.lang.String getMediaType(); | |
638 public java.lang.String getSubType(); | |
639 public void writeTo(java.io.OutputStream, int) throws java.io.IOException; | |
640 | |
641 API diff generated by JarDiff http://www.osjava.org/jardiff/ | |
642 | |
643 -------------------------------------- | |
644 | |
645 Release 4.0 Alpha 4 | |
646 ------------------- | |
647 | |
648 ALPHA4 marks the completion of the overhaul of the connection management | |
649 code in HttpClient. All known shortcomings of the old HttpClient 3.x | |
650 connection management API have been addressed. | |
651 | |
652 NTLM authentication remains the only missing major feature in the new | |
653 codeline that prevents us from moving awards the API freeze. | |
654 | |
655 There has been a number of important bug fixes since ALPHA3. All upstream | |
656 projects are encouraged to upgrade to the latest release. | |
657 | |
658 ------------------- | |
659 | |
660 HttpClient 3.x features that have NOT yet been ported: | |
661 ------------------- | |
662 | |
663 * NTLM authentication scheme | |
664 | |
665 ------------------- | |
666 | |
667 Changelog: | |
668 ------------------- | |
669 | |
670 * [HTTPCLIENT-765] String.toLowerCase() / toUpperCase() should specify | |
671 Locale.ENGLISH | |
672 Contributed by Sebastian Bazley <sebb at apache.org> | |
673 | |
674 * [HTTPCLIENT-769] Do not pool connection marked non-reusable. | |
675 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
676 | |
677 * [HTTPCLIENT-763] Fixed problem with AbstractClientConnAdapter#abortConnection() | |
678 not releasing the connection if called from the main execution thread while | |
679 there is no blocking I/O operation. | |
680 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
681 | |
682 * [HTTPCLIENT-652] Added optional state attribute to managed client connections. | |
683 This enables connection managers to correctly handle stateful connections. | |
684 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
685 | |
686 * [HTTPCLIENT-673] Revised max connections per route configuration | |
687 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
688 | |
689 * [HTTPCLIENT-753] Class Scheme and related classes moved to a separate package | |
690 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
691 | |
692 * [HTTPCLIENT-757] Improved request wrapping in the DefaultClientRequestDirector. | |
693 This also fixed the problem with the default proxy set at the client level | |
694 having no effect. | |
695 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
696 | |
697 * [HTTPCLIENT-734] Request abort will unblock the thread waiting for a connection | |
698 Contributed by Sam Berlin <sberlin at gmail.com> | |
699 | |
700 * [HTTPCLIENT-759] Ensure release of connections back to the connection manager | |
701 on exceptions. | |
702 Contributed by Sam Berlin <sberlin at gmail.com> | |
703 | |
704 * [HTTPCLIENT-758] Fixed the use of generics in AbstractHttpClient | |
705 #removeRequestInterceptorByClass and #removeResponseInterceptorByClass | |
706 Contributed by Johannes Koch <johannes.koch at fit.fraunhofer.de> | |
707 | |
708 * [HTTPCLIENT-749] HttpParams beans | |
709 Contributed by Stojce Dimski <sdmiski at yahoo.it> | |
710 | |
711 * [HTTPCLIENT-755] Workaround for known bugs in java.net.URI.resolve() | |
712 Bug ID: 4708535 | |
713 Contributed by Johannes Koch <johannes.koch at fit.fraunhofer.de> | |
714 | |
715 -------------------------------------- | |
716 | |
717 Release 4.0 Alpha 3 | |
718 ------------------- | |
719 | |
720 ALPHA3 release brings another round of API refinements and improvements in | |
721 functionality. As of this release HttpClient requires Java 5 compatible | |
722 runtime environment and takes full advantage of generics and new concurrency | |
723 primitives. | |
724 | |
725 This release also introduces new default cookie policy that selects a cookie | |
726 specification depending on the format of cookies sent by the target host. | |
727 It is no longer necessary to know beforehand what kind of HTTP cookie support | |
728 the target host provides. HttpClient is now able to pick up either a lenient | |
729 or a strict cookie policy depending on the compliance level of the target host. | |
730 | |
731 Another notable improvement is a completely reworked support for multipart | |
732 entities based on Apache mime4j library. | |
733 | |
734 ------------------- | |
735 | |
736 HttpClient 3.x features that have NOT yet been ported: | |
737 ------------------- | |
738 | |
739 * NTLM authentication scheme | |
740 | |
741 ------------------- | |
742 | |
743 Changelog: | |
744 ------------------- | |
745 | |
746 * [HTTPCLIENT-742] common interface for HttpRoute and RouteTracker | |
747 Contributed by Roland Weber <rolandw at apache.org> | |
748 | |
749 * [HTTPCLIENT-741] Fixed concurrency issues in AbstractClientConnAdapter. | |
750 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
751 | |
752 * [HTTPCLIENT-726] testcase for spurious wakeups in ThreadSafeClientConnManager | |
753 Contributed by Roland Weber <rolandw at apache.org> | |
754 | |
755 * [HTTPCLIENT-643] Automatic connect fail-over for multi-home remote servers. | |
756 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
757 | |
758 * [HTTPCLIENT-735] unsetting of DEFAULT_PROXY and FORCED_ROUTE in hierarchies | |
759 Contributed by Roland Weber <rolandw at apache.org> | |
760 | |
761 * [HTTPCLIENT-723] route planner based on java.net.ProxySelector | |
762 Contributed by Roland Weber <rolandw at apache.org> | |
763 | |
764 * [HTTPCLIENT-740] don't start connection GC thread in pool constructor | |
765 Contributed by Roland Weber <rolandw at apache.org> | |
766 | |
767 * [HTTPCLIENT-736] route planners use SchemeRegistry instead of ConnManager | |
768 Contributed by Roland Weber <rolandw at apache.org> | |
769 | |
770 * [HTTPCLIENT-730] Fixed rewriting of URIs containing escaped characters | |
771 Contributed by Sam Berlin <sberlin at gmail.com> and | |
772 Oleg Kalnichevski <olegk at apache.org> | |
773 | |
774 * [HTTPCLIENT-667] Added 'Meta' cookie policy that selects a cookie | |
775 specification depending on the format of the cookie(s). | |
776 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
777 | |
778 * [HTTPCLIENT-729] Move HttpRoute and related classes to routing package. | |
779 Contributed by Roland Weber <rolandw at apache.org> | |
780 | |
781 * [HTTPCLIENT-725] Use TimeUnit arguments for timeouts in connection manager. | |
782 Contributed by Roland Weber <rolandw at apache.org> | |
783 | |
784 * [HTTPCLIENT-677] Connection manager no longer uses Thread.interrupt(). | |
785 Contributed by Roland Weber <rolandw at apache.org> | |
786 | |
787 * [HTTPCLIENT-716] Allow application-defined routes. | |
788 Contributed by Roland Weber <rolandw at apache.org> | |
789 | |
790 * [HTTPCLIENT-712] Improve HttpRoute API | |
791 Contributed by Roland Weber <rolandw at apache.org> | |
792 | |
793 * [HTTPCLIENT-711] Bad route computed for redirected requests | |
794 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
795 | |
796 * [HTTPCLIENT-715] Remove RoutedRequest from API | |
797 Contributed by Roland Weber <rolandw at apache.org> | |
798 | |
799 * [HTTPCLIENT-705] Fixed incorrect handling of URIs with null path component. | |
800 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
801 | |
802 * [HTTPCLIENT-688] HttpOptions#getAllowedMethods can now handle multiple | |
803 Allow headers. | |
804 Contributed by Andrea Selva <selva.andre at gmail.com> | |
805 | |
806 -------------------------------------- | |
807 | |
808 Release 4.0 Alpha 2 | |
809 ------------------- | |
810 | |
811 ALPHA2 release is another milestone in the redesign of HttpClient. It includes | |
812 a number of improvements since ALPHA1, among which are improved connection | |
813 pooling, support for proxy chains, redesigned HTTP state and authentication | |
814 credentials management API, improved RFC 2965 cookie specification. | |
815 | |
816 ------------------- | |
817 | |
818 HttpClient 3.x features that have NOT yet been ported | |
819 ------------------- | |
820 * NTLM authentication scheme | |
821 | |
822 * Support for multipart MIME coded entities | |
823 | |
824 ------------------- | |
825 | |
826 Changelog | |
827 ------------------- | |
828 | |
829 * [HTTPCLIENT-698] Resolve non-absolute redirect URIs relative to | |
830 the request URI | |
831 Contributed by Johannes Koch <johannes.koch at fit.fraunhofer.de> | |
832 | |
833 * [HTTPCLIENT-697] Throw a more intelligible exception when connection | |
834 to a remote host cannot be established. | |
835 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
836 | |
837 * [HTTPCLIENT-689] Caching of SimpleDateFormat in DateUtils | |
838 Contributed by Daniel Müller <strider at digitalstrider.com> | |
839 | |
840 * [HTTPCLIENT-689] stackable parameters in AbstractHttpClient | |
841 Contributed by Roland Weber <rolandw at apache.org> | |
842 | |
843 * [HTTPCLIENT-477] Use distinct instances of the authentication handler | |
844 interface for authentication with target and proxy hosts | |
845 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
846 | |
847 * [HTTPCLIENT-690] ManagedClientConnection provides access to SSLSession | |
848 Contributed by Roland Weber <rolandw at apache.org> | |
849 | |
850 * [HTTPCLIENT-692] ClientConnectionManager throws InterruptedException | |
851 Contributed by Roland Weber <rolandw at apache.org> | |
852 | |
853 * [HTTPCORE-116] moved parameter names to interfaces | |
854 Contributed by Roland Weber <rolandw at apache.org> | |
855 | |
856 * [HTTPCLIENT-649] support for proxy chains in HttpConn | |
857 Contributed by Roland Weber <rolandw at apache.org> | |
858 | |
859 * [HTTPCLIENT-636] refactor ThreadSafeClientConnManager in separate package | |
860 Contributed by Roland Weber <rolandw at apache.org> | |
861 | |
862 * [HTTPCLIENT-669] new HttpRoutePlanner interface and implementation | |
863 Contributed by Andrea Selva <selva.andre at gmail.com> | |
864 | |
865 * [HTTPCLIENT-653] detached connection wrapper no longer prevents | |
866 garbage collection of ThreadSafeClientConnManager | |
867 Contributed by Roland Weber <rolandw at apache.org> | |
868 | |
869 * [HTTPCLIENT-674] use org.apache.http.util.VersionInfo instead of a local one | |
870 Contributed by Roland Weber <rolandw at apache.org> | |
871 | |
872 * [HTTPCLIENT-666] Replaced HttpState with CredentialsProvier and CookieStore interfaces | |
873 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
874 | |
875 * [HTTPCORE-100] revised HttpContext hierarchy | |
876 Contributed by Roland Weber <rolandw at apache.org> | |
877 | |
878 * [HTTPCLIENT-618] eliminate class HostConfiguration | |
879 Contributed by Roland Weber <rolandw at apache.org> | |
880 | |
881 * [HTTPCLIENT-672] re-sync with API changes in core alpha6-SNAPSHOT | |
882 Contributed by Roland Weber <rolandw at apache.org> | |
883 | |
884 -------------------------------------- | |
885 | |
886 Release 4.0 Alpha 1 | |
887 ------------------- | |
888 | |
889 HttpClient 4.0 represents a complete, ground-up redesign and almost a complete | |
890 rewrite of the HttpClient 3.x codeline. This release finally addresses several | |
891 design flaws that existed since the 1.0 release and could not be fixed without | |
892 a major code overhaul and breaking API compatibility. | |
893 | |
894 The HttpClient 4.0 API is still very experimental and is bound to change | |
895 during the course of the ALPHA development phase. Several important features | |
896 have not yet been ported to the new API. | |
897 | |
898 Architectural changes | |
899 --------------------- | |
900 | |
901 * Redesign of the HttpClient internals addressing all known | |
902 major architectural shortcomings of the 3.x codeline | |
903 | |
904 * Cleaner, more flexible and expressive API | |
905 | |
906 * Better performance and smaller memory footprint due to a more | |
907 efficient HTTP transport based on HttpCore. HttpClient 4.0 is | |
908 expected to be 10% to 25% faster than HttpClient 3.x codeline | |
909 | |
910 * More modular structure | |
911 | |
912 * Pluggable redirect and authentication handlers | |
913 | |
914 * Support for protocol incerceptors | |
915 | |
916 * Improved connection management | |
917 | |
918 * Improved support for sending requests via a proxy or a chain of | |
919 proxies | |
920 | |
921 * Improved handling redirects of entity enclosing requests | |
922 | |
923 * More flexible SSL context customization | |
924 | |
925 * Reduced intermediate garbage in the process of | |
926 generating HTTP requests and parsing HTTP responses | |
927 | |
928 ------------------- | |
929 | |
930 HttpClient 3.x features that have NOT yet been ported | |
931 ------------------- | |
932 * NTLM authentication scheme | |
933 | |
934 * RFC2965 cookie policy (Cookie2) | |
935 | |
936 * Support for multipart MIME coded entities | |
937 | |
938 ------------------- | |
939 | |
940 Changelog | |
941 ------------------- | |
942 | |
943 The following is a list of contributions tracked in JIRA. | |
944 Note that this is not a complete list of contributions or changes. | |
945 Since the API was redesigned completely, tracking everything outside | |
946 of the source code repository would have been too burdensome. | |
947 | |
948 * [HTTPCLIENT-655] User-Agent string no longer violates RFC | |
949 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
950 | |
951 * [HTTPCLIENT-541] Virtual host API redesign | |
952 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
953 | |
954 * [HTTPCLIENT-614] Allow for different strategies when checking | |
955 CN of x509 certificates | |
956 Contributed by Julius Davies <juliusdavies at gmail.com> | |
957 | |
958 * [HTTPCLIENT-136] Fixed inadequate proxy support | |
959 Long standing architectural problem. Issue opened on 19/Dec/2002. | |
960 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
961 | |
962 * [HTTPCLIENT-63] Support for pluggable redirect and authentication handlers | |
963 Long standing architectural problem. Issue opened on 15/Jul/2002. | |
964 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
965 | |
966 * [HTTPCLIENT-245] Fixed redirect handling. HttpClient can now automatically | |
967 handle redirects of entity enclosing requests. | |
968 Long standing architectural problem. Issue opened on 14/Jul/2003. | |
969 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
970 | |
971 * [HTTPCLIENT-613] HTTPS connections now verify CN of x509 certificates | |
972 Contributed by Julius Davies <juliusdavies at gmail.com> | |
973 | |
974 * [HTTPCLIENT-497] Wire/header logger names consistent with class loggers | |
975 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
976 | |
977 * [HTTPCLIENT-484] AuthSSLProtocolSocketFactory in the main distribution | |
978 Contributed by Oleg Kalnichevski <olegk at apache.org> | |
979 | |
980 * [HTTPCLIENT-589] Do not consume the remaining response content if | |
981 the connection is to be closed | |
982 Contributed by Roland Weber <rolandw at apache.org> | |
983 | |
984 * [HTTPCLIENT-475] Support for unconnected sockets. HTTP requests can now be | |
985 aborted while network socket is still being connected. | |
986 Contributed by Roland Weber <rolandw at apache.org> | |
987 |