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