diff --git a/.classpath b/.classpath
index bb375ec..9f152e5 100644
--- a/.classpath
+++ b/.classpath
@@ -1,13 +1,17 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.gitignore b/.gitignore
index eedcf4f..6978eb6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,3 +9,4 @@
/fuuko.xml
/fuuko08.xml
/xml
+/bin
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
index ead6ab2..bc3368e 100644
--- a/.settings/org.eclipse.core.resources.prefs
+++ b/.settings/org.eclipse.core.resources.prefs
@@ -1,2 +1,3 @@
eclipse.preferences.version=1
-encoding//walker/Go.java=UTF-8
+encoding//src/walker/Go.java=UTF-8
+encoding/=UTF-8
diff --git a/README.md b/README.md
index d7cf870..ab2a6c4 100644
--- a/README.md
+++ b/README.md
@@ -1,15 +1,38 @@
MAWalker
========
+特别说明
+--------
+本人已弃坑,该版本不再维护,另贡献一个改进的版本,见隔壁[MAWalkerMod](https://github.com/tsubasa617/MAWalkerMod),强烈推荐
+
![MAWalker](http://wjsjwr.org/ma-walker/ma.jpg "MAWalker")
### 解放双手 解放手机 尽早弃坑 保住智商
+
+原作者
+--------
[wjsjwr.org/ma-walker](http://wjsjwr.org/ma-walker)
如果你只是使用者
--------
-请进入[wjsjwr.org/ma-walker](http://wjsjwr.org/ma-walker)下载二进制文件,并按说明使用
+1、安装java7,下载地址为www.java.com
+2、从这里下载并安装长度补丁,补丁包名为UnlimitedJCEPolicyJDK7.zip
+3、从这里下载go.jar和c.xml
+4、用记事本打开c.xml文件并按提示编辑
+5、新建一个记事本文件,输入java -jar go.jar c.xml,保存为bat文件,与其他两个文件放在同一文件夹下面
+6、运行bat文件
+
+
+安装补丁的方法
+--------
+将补丁解压得到的两个jar文件解压缩到你的java7安装文件夹下的lib/security中
+java7默认安装在C盘的C:\Program Files\java\jre7\或者C:\Program Files(x86)\java\jre7\下
+
+
+可能出现的问题
+--------
+如果出现运行java -jar go.jar c.xml时出现不能识别java命令的情况,请百度“java 修改path变量”
如果你想写代码
@@ -17,4 +40,4 @@ MAWalker
建议先看一下[面向开发者的MAWalker使用说明](http://wjsjwr.org/blog/2013/08/413)
-### 祝大家玩得愉快 弃得爽快
\ No newline at end of file
+### 祝大家玩得愉快 弃得爽快
diff --git a/UnlimitedJCEPolicyJDK7.zip b/UnlimitedJCEPolicyJDK7.zip
new file mode 100644
index 0000000..0a6890c
Binary files /dev/null and b/UnlimitedJCEPolicyJDK7.zip differ
diff --git a/action/GetFairyList.java b/action/GetFairyList.java
deleted file mode 100644
index 95c5f65..0000000
--- a/action/GetFairyList.java
+++ /dev/null
@@ -1,192 +0,0 @@
-package action;
-
-import info.FairyBattleInfo;
-import info.FairySelectUser;
-
-import java.util.ArrayList;
-
-import javax.xml.xpath.XPath;
-import javax.xml.xpath.XPathConstants;
-import javax.xml.xpath.XPathFactory;
-
-import org.apache.http.NameValuePair;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-import walker.ErrorData;
-import walker.Go;
-import walker.Info;
-import walker.Process;
-import action.ActionRegistry.Action;
-
-public class GetFairyList {
- public static final Action Name = Action.GET_FAIRY_LIST;
-
- private static final String URL_FAIRY_LIST = "http://web.million-arthurs.com/connect/app/private_fairy/private_fairy_select?cyt=1";
-
- private static byte[] response;
-
- public static boolean run() throws Exception {
- try {
- response = Process.network.ConnectToServer(URL_FAIRY_LIST, new ArrayList(), false);
- } catch (Exception ex) {
- ErrorData.currentDataType = ErrorData.DataType.text;
- ErrorData.currentErrorType = ErrorData.ErrorType.ConnectionError;
- ErrorData.text = ex.getMessage();
- throw ex;
- }
-
- Document doc;
- try {
- doc = Process.ParseXMLBytes(response);
- } catch (Exception ex) {
- ErrorData.currentDataType = ErrorData.DataType.bytes;
- ErrorData.currentErrorType = ErrorData.ErrorType.FairyListDataError;
- ErrorData.bytes = response;
- throw ex;
- }
-
- try {
- return parse(doc);
- } catch (Exception ex) {
- throw ex;
- }
-
- }
- private static boolean parse(Document doc) throws Exception {
-
- XPathFactory factory = XPathFactory.newInstance();
- XPath xpath = factory.newXPath();
-
-
- try {
- if (!xpath.evaluate("/response/header/error/code", doc).equals("0")) {
- ErrorData.currentErrorType = ErrorData.ErrorType.FairyListResponse;
- ErrorData.currentDataType = ErrorData.DataType.text;
- ErrorData.text = xpath.evaluate("/response/header/error/message", doc);
- return false;
- }
-
- if (!xpath.evaluate("//remaining_rewards", doc).equals("0")) {
- if (Info.receiveBattlePresent) {
- Process.info.events.push(Info.EventType.fairyReward);
- }
- }
-
- //获取放妖的用户
- NodeList fairyuser = (NodeList)xpath.evaluate("//fairy_select/user", doc, XPathConstants.NODESET);
- for(int i = 0; i < fairyuser.getLength(); i++)
- {
- Node f = fairyuser.item(i).getFirstChild();
- FairySelectUser fsu = new FairySelectUser();
- do {
- if (f.getNodeName().equals("id")) {
- fsu.userID = f.getFirstChild().getNodeValue();
- } else if (f.getNodeName().equals("name")) {
- fsu.userName = f.getFirstChild().getNodeValue();
- }
- f = f.getNextSibling();
- } while (f != null);
- if(!Process.info.FairySelectUserList.containsKey(fsu.userID))
- {
- Process.info.FairySelectUserList.put(fsu.userID,fsu);
- }
- }
-
-
- // TODO: 这两周先是只寻找0BC的,之后再扩展
- //NodeList fairy = (NodeList)xpath.evaluate("//fairy_select/fairy_event[put_down=4]/fairy", doc, XPathConstants.NODESET);
- NodeList fairy = (NodeList)xpath.evaluate("//fairy_select/fairy_event[put_down=1]/fairy", doc, XPathConstants.NODESET);
-
- ArrayList fbis = new ArrayList();
- for (int i = 0; i < fairy.getLength(); i++) {
- Node f = fairy.item(i).getFirstChild();
- FairyBattleInfo fbi = new FairyBattleInfo();
- boolean attack_flag = false;
- do {
- if (f.getNodeName().equals("serial_id")) {
- fbi.SerialId = f.getFirstChild().getNodeValue();
- } else if (f.getNodeName().equals("discoverer_id")) {
- fbi.UserId = f.getFirstChild().getNodeValue();
- } else if (f.getNodeName().equals("lv")) {
- fbi.FairyLevel = f.getFirstChild().getNodeValue();
- } else if (f.getNodeName().equals("name")) {
- fbi.FairyName = f.getFirstChild().getNodeValue();
- } else if (f.getNodeName().equals("rare_flg")) {
- if (f.getFirstChild().getNodeValue().equals("1")) {
- fbi.Type = FairyBattleInfo.PRIVATE | FairyBattleInfo.RARE;
- } else {
- fbi.Type = FairyBattleInfo.PRIVATE;
- }
- } else if (f.getNodeName().equals("hp")){
- fbi.fairyCurrHp = Integer.parseInt(f.getFirstChild().getNodeValue());
- } else if (f.getNodeName().equals("hp_max")){
- fbi.fairyMaxHp = Integer.parseInt(f.getFirstChild().getNodeValue());
- }
- f = f.getNextSibling();
- } while (f != null);
- if (Info.AllowAttackSameFairy) {
- fbis.add(fbi);
- } else {
- for (FairyBattleInfo bi : Process.info.LatestFairyList) {
- if (bi.equals(fbi)) {
- // 已经舔过
- attack_flag = true;
- break;
- }
- }
- if (!attack_flag) fbis.add(fbi);
- }
-
- }
-
-
- if (fbis.size() > 1) Process.info.events.push(Info.EventType.fairyAppear); // 以便再次寻找
- if (fbis.size() > 0) {
- Process.info.events.push(Info.EventType.gotoFloor);
- Process.info.events.push(Info.EventType.recvPFBGood);
- Process.info.events.push(Info.EventType.fairyCanBattle);
- Process.info.fairy = new FairyBattleInfo(fbis.get(0));
- }
-
- NodeList fairy1 = (NodeList) xpath.evaluate(
- "//fairy_select/fairy_event[put_down=5]/fairy", doc,
- XPathConstants.NODESET);
-
- int aa = fairy1.getLength();
-
- Go.log("找到" + aa + "个可赞的PFB...");
- for (int i = 0; i < fairy1.getLength(); i++) {
- Node f = fairy1.item(i).getFirstChild();
- String serial_Id = "";
- String user_Id = "";
- do {
- if (f.getNodeName().equals("serial_id")) {
- serial_Id = f.getFirstChild().getNodeValue();
- } else if (f.getNodeName().equals("discoverer_id")) {
- user_Id = f.getFirstChild().getNodeValue();
- }
- f = f.getNextSibling();
- } while (f != null);
- Process.info.PFBGoodList.push(new info.PFBGood(serial_Id, user_Id));
- }
- if(!Process.info.PFBGoodList.isEmpty())
- {
- Process.info.events.push(Info.EventType.PFBGood);
- }
-
- Process.info.SetTimeoutByAction(Name);
-
- } catch (Exception ex) {
- if (ErrorData.currentErrorType != ErrorData.ErrorType.none) throw ex;
- ErrorData.currentDataType = ErrorData.DataType.bytes;
- ErrorData.currentErrorType = ErrorData.ErrorType.FairyListDataParseError;
- ErrorData.bytes = response;
- throw ex;
- }
-
- return true;
-
- }
-}
diff --git a/c.xml b/c.xml
index 5bbbec3..105efdc 100644
--- a/c.xml
+++ b/c.xml
@@ -2,21 +2,56 @@
- Million/236 (t03gchn; t03gzc; 4.1.2) samsung/t03gzc/t03gchn:4.1.2/JZO54K/N7100ZCDMD3:user/release-keys GooglePlay
- 1
-
+
+
-
+
FairyDeck0
@@ -68,12 +95,11 @@
0
+
+
+
-
- sell
+ 1
diff --git a/go.jar b/go.jar
new file mode 100644
index 0000000..fe616c8
Binary files /dev/null and b/go.jar differ
diff --git a/httpcomponents-client-4.2.3/LICENSE.txt b/httpcomponents-client-4.2.3/LICENSE.txt
deleted file mode 100644
index d9a10c0..0000000
--- a/httpcomponents-client-4.2.3/LICENSE.txt
+++ /dev/null
@@ -1,176 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
diff --git a/httpcomponents-client-4.2.3/NOTICE.txt b/httpcomponents-client-4.2.3/NOTICE.txt
deleted file mode 100644
index ea1911c..0000000
--- a/httpcomponents-client-4.2.3/NOTICE.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Apache HttpComponents Client
-Copyright 1999-2012 The Apache Software Foundation
-
-This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).
-
diff --git a/httpcomponents-client-4.2.3/README.txt b/httpcomponents-client-4.2.3/README.txt
deleted file mode 100644
index b4b201c..0000000
--- a/httpcomponents-client-4.2.3/README.txt
+++ /dev/null
@@ -1,77 +0,0 @@
-Apache HttpComponents Client
-============================
-
-Welcome to the HttpClient component of the Apache HttpComponents project.
-
-Building Instructions
----------------------
-
-For building from source instructions please refer to BUILDING.txt.
-
-Dependencies
-------------
-
-HttpClient main module requires Java 5.0 compatible runtime and
-depends on the following external libraries:
-
-* Apache HttpComponents HttpCore
-* Apache Commons Logging
-* Apache Commons Codec
-
-(for detailed information on external dependencies please see pom.xml)
-
-HttpMime module is optional and requires Java 5.0 compatible runtime
-and depends on the following external libraries:
-
-* Apache HttpComponents HttpCore
-* Apache Commons Logging
-
-(for detailed information on external dependencies please see pom.xml)
-
-Licensing
----------
-
-Apache HttpComponents Client is licensed under the Apache License 2.0.
-See the files called LICENSE.txt and NOTICE.txt for more information.
-
-Cryptographic Software Notice
------------------------------
-
-This distribution may include software that has been designed for use
-with cryptographic software. The country in which you currently reside
-may have restrictions on the import, possession, use, and/or re-export
-to another country, of encryption software. BEFORE using any encryption
-software, please check your country's laws, regulations and policies
-concerning the import, possession, or use, and re-export of encryption
-software, to see if this is permitted. See
-for more information.
-
-The U.S. Government Department of Commerce, Bureau of Industry and
-Security (BIS), has classified this software as Export Commodity
-Control Number (ECCN) 5D002.C.1, which includes information security
-software using or performing cryptographic functions with asymmetric
-algorithms. The form and manner of this Apache Software Foundation
-distribution makes it eligible for export under the License Exception
-ENC Technology Software Unrestricted (TSU) exception (see the BIS
-Export Administration Regulations, Section 740.13) for both object
-code and source code.
-
-The following provides more details on the included software that
-may be subject to export controls on cryptographic software:
-
- Apache HttpComponents Client interfaces with the
- Java Secure Socket Extension (JSSE) API to provide
-
- - HTTPS support
-
- Apache HttpComponents Client does not include any
- implementation of JSSE.
-
-Contact
--------
-
- o For general information visit the main project site at
- http://hc.apache.org/
-
- o For current status information visit the status page at
- http://hc.apache.org/status.html
diff --git a/httpcomponents-client-4.2.3/RELEASE_NOTES.txt b/httpcomponents-client-4.2.3/RELEASE_NOTES.txt
deleted file mode 100644
index 6286341..0000000
--- a/httpcomponents-client-4.2.3/RELEASE_NOTES.txt
+++ /dev/null
@@ -1,1418 +0,0 @@
-Release 4.2.3
--------------------
-
-HttpClient 4.2.3 (GA) is a bug fix release that addresses a number of issues reported since
-release 4.2.2. This release also includes a thoroughly reworked NTLM authentication engine
-which should result in a better compatibility with the newest Microsoft products.
-
-Users of HttpClient 4.x are advised to upgrade.
-
-Changelog
--------------------
-
-* [HTTPCLIENT-1296] NPE gets thrown if you combine a default host with a virtual host
- that has a -1 value for the port.
- Contributed by Karl Wright
-
-* [HTTPCLIENT-1290] 304 cached response never reused with If-modified-since conditional
- requests.
- Contributed by Francois-Xavier Bonnet
-
-* [HTTPCLIENT-1291] Absolute request URIs without an explicitly specified path are rewritten
- to have "/" path).
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1286] Request URI rewriting is inconsistent - URI fragments are not removed
- from absolute request URIs.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1284] HttpClient incorrectly generates Host header when physical connection
- route differs from the host name specified in the request URI.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1293] Kerberos and SPNego auth schemes use incorrect authorization header name
- when authenticating with a proxy.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1283] NTLM needs to use Locale-independent form of
- toUpperCase().
- Contributed by Karl Wright
-
-* [HTTPCLIENT-1279] Target host responding with status 407 (proxy authentication required)
- causes an NPE.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1281] GzipDecompressingEntity does not release InputStream when an IOException
- occurs while reading the Gzip header
- Contributed by Francois-Xavier Bonnet
-
-* [HTTPCLIENT-1277] Caching client sends a 304 to an unconditional request.
- Contributed by Francois-Xavier Bonnet
-
-* [HTTPCLIENT-1278] Update NTLM documentation.
- Contributed by Karl Wright
-
-* SystemDefaultHttpClient misinterprets 'http.keepAlive' default value and disables
- connection persistence if the system property is not set. This causes connection
- based authentication schemes such as NTLM to fail.
-
-* [HTTPCLIENT-1276] cache update on a 304 response causes NPE.
- Contributed by Francois-Xavier Bonnet
-
-* [HTTPCLIENT-1273] DecompressingHttpClient does not automatically consume response
- content in case of an i/o, HTTP or runtime exception thrown by the decompressing
- protocol interceptor leading to a potential connection leak.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1268] NTLM engine refactor fix, to correct a buffer overrun, and get NTLMv2
- flags right.
- Contributed by Karl Wright
-
-* [HTTPCLIENT-1266] NTLM engine refactoring and compatibility improvements.
- Contributed by Karl Wright
-
-* [HTTPCLIENT-1263] BrowserCompatSpec: attribute values containing spaces or special characters
- should be enclosed with quotes marks for version 1 cookies.
- Contributed by Francois-Xavier Bonnet
-
-* [HTTPCLIENT-1263] CachingHttpClient fails to release connections back to the connection
- manager for some type of HTTP response messages when used together with DecompressingHttpClient.
- Contributed by Francois-Xavier Bonnet
-
-* [HTTPCLIENT-1258] Fixed NullPointerException in NTLMEngineImpl caused by null NT domain
- attribute.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1254] Redirect with underscore in hostname causes ProtocolException.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1255] AbstractVerifier incorrectly parses certificate CN containing wildcard.
- Contributed by Oleg Kalnichevski
-
-
-
-Release 4.2.2
--------------------
-
-HttpClient 4.2.2 (GA) is a bug fix release that addresses a number of issues reported since
-release 4.2.1.
-
-Users of HttpClient 4.2 are advised to upgrade.
-
-Changelog
--------------------
-
-* [HTTPCLIENT-1248] Default and lax redirect strategies should not convert requests redirected
- with 307 status to GET method.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1215] BasicAuthCache does not take default ports into consideration when
- looking up cached authentication details by HttpHost key.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1241] (regression) Preemptive BASIC authentication failure should be considered
- final and no further attempts to re-authenticate using the same credentials should be made.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1229] Fixed NPE in BasicClientConnectionManager that can be triggered by releasing
- connection after the connection manager has already been shut down.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1227] Date parsing in DateUtils made more efficient.
- Contributed by Patrick Linskey
-
-* [HTTPCLIENT-1224] (regression) NTLM auth not retried after a redirect over a non-persistent
- connection.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1223] Cache could be more aggressive on cache invalidations
- from Content-Location. Contributed by Jon Moore .
- Contributed by Jon Moore
-
-* [HTTPCLIENT-1217] AutoRetryHttpClient does not release connection used by the previous response
- when request is retried
- Contributed by Oleg Kalnichevski
-
-
-Release 4.2.1
--------------------
-
-HttpClient 4.2.1 (GA) is a bug fix release that addresses a number of issues reported since
-release 4.2.
-
-Users of HttpClient 4.2 are advised to upgrade.
-
-Changelog
--------------------
-
-* [HTTPCLIENT-1209] Redirect URIs are now normalized.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1202] ResponseCachingPolicy should honor explicit cache-control
- directives for other status codes
- Contributed by Jon Moore
-
-* [HTTPCLIENT-1199] DecompressingHttpClient strips content from entity enclosing requests
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1198] HttpHost is not set in HttpContext in CachingHttpClient.
- Contributed by Jon Moore
-
-* [HTTPCLIENT-1200] DecompressingHttpClient fails to generate correct HttpHost context attribute.
- Contributed by Guillaume Castagnino
-
-* [HTTPCLIENT-1192] URIBuilder encodes query parameters twice.
- Contributed by Oleg Kalnichevski and Sebastian Bazley .
-
-* [HTTPCLIENT-1196] Fixed NPE in UrlEncodedFormEntity constructor thrown if charset is null.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1193] Fixed regression in the route tracking logic of the default connection manager
- causing cross-site redirect failures.
- Contributed by Oleg Kalnichevski
-
-Release 4.2
--------------------
-
-This is the first stable (GA) release of HttpClient 4.2. The most notable enhancements included
-in this release are:
-
-* New facade API for HttpClient based on the concept of a fluent interface. The fluent API exposes
- only the most fundamental functions of HttpClient and is intended for relatively simple use cases
- that do not require the full flexibility of HttpClient. However, the fluent API almost fully
- relieves the users from having to deal with connection management and resource deallocation.
-
-* Redesigned and rewritten connection management code.
-
-* Enhanced HTTP authentication API that enables HttpClient to handle more complex authentication
- scenarios. HttpClient 4.2 is now capable of making use of multiple authentication challenges
- and retry authentication with a fall-back scheme in case the primary one fails. This can be
- important for compatibility with Microsoft products that are often configured to use
- SPNEGO/Kerberos as the preferred authentication scheme.
-
-
-Changelog
--------------------
-
-* [HTTPCLIENT-1187] If a revalidation response is deemed too old CachingHttpClient fails to
- consume its content resulting in a connection leak.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1186] State of newly created connections in the connection pool is not always
- correctly updated potentially allowing those connections to be leased to users with a different
- security context.
- Contributed by Ralf Poehlmann
-
-* [HTTPCLIENT-1179] Upgraded Commons Codec dependency to version 1.6
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1177] always remove fragments from request URIs
- Contributed by Oleg Kalnichevski
-
-Incompatible changes
---------------------
-[Compared to release version 4.1.3]
-
-The following fields have been deprecated for some time now and have been deleted:
-
-org.apache.http.client.params.ClientPNames#CONNECTION_MANAGER_FACTORY
-org.apache.http.impl.cookie.BrowserCompatSpec#DATE_PATTERNS
-
-The following methods have been deprecated for some time now and have been deleted:
-
-org.apache.http.client.params.ClientParamBean#setConnectionManagerFactory(org.apache.http.conn.ClientConnectionManagerFactory)
-org.apache.http.client.protocol.ClientContextConfigurer#setAuthSchemePref(java.util.List)
-org.apache.http.entity.mime.content.FileBody#writeTo(java.io.OutputStream, int)
-org.apache.http.entity.mime.content.InputStreamBody#writeTo(java.io.OutputStream, int)
-org.apache.http.entity.mime.content.StringBody#writeTo(java.io.OutputStream, int)
-
-The following classes have been deprecated for some while now and have been deleted:
-
-org.apache.http.impl.conn.tsccm.RefQueueHandler
-org.apache.http.impl.conn.tsccm.AbstractConnPool no longer implements interface org.apache.http.impl.conn.tsccm.RefQueueHandler
-org.apache.http.impl.conn.tsccm.ConnPoolByRoute no longer implements interface org.apache.http.impl.conn.tsccm.RefQueueHandler
-org.apache.http.impl.conn.tsccm.RefQueueWorker
-
-
-
-Release 4.2 BETA1
--------------------
-
-This is the first BETA release of HttpClient 4.2. This release completes development of several
-notable enhancements in HttpClient:
-
-* New facade API for HttpClient based on the concept of a fluent interface. The fluent API exposes
- only the most fundamental functions of HttpClient and is intended for relatively simple use cases
- that do not require the full flexibility of HttpClient. However, the fluent API almost fully
- relieves the users from having to deal with connection management and resource deallocation.
-
-* Redesigned and rewritten connection management code. As of release 4.2 HttpClient will be using
- pooling connection manager per default.
-
-* Enhanced HTTP authentication API that enables HttpClient to handle more complex authentication
- scenarios. HttpClient 4.2 is now capable of making use of multiple authentication challenges
- and retry authentication with a fall-back scheme in case the primary one fails. This can be
- important for compatibility with Microsoft products that are often configured to use
- SPNEGO/Kerberos as the preferred authentication scheme.
-
-
-Changelog
--------------------
-
-* [HTTPCLIENT-1164] Compressed entities are not being cached properly.
- Contributed by Jon Moore .
-
-* [HTTPCLIENT-1154] MemcachedHttpCacheStorage should allow client to
- specify custom prefix string for keys.
- Contributed by Jon Moore .
-
-* [HTTPCLIENT-1153] MemcachedHttpCacheStorage uses URL as cache key;
- shouldn't due to fixed maximum-length memcached keys.
- Contributed by Jon Moore .
-
-* [HTTPCLIENT-1157] MemcachedHttpCacheStroage should throw IOExceptions
- instead of RuntimeExceptions.
- Contributed by James Miller .
-
-* [HTTPCLIENT-1152] MemcachedHttpCacheStorage should verify class of
- returned object before casting.
- Contributed by Rajika Kumarasiri .
-
-* [HTTPCLIENT-1155] CachingHttpClient fails to ensure that the response content gets fully consumed
- when using a ResponseHandler, which can potentially lead to connection leaks.
- Contributed by James Miller
-
-* [HTTPCLIENT-1147] When HttpClient-Cache cannot open cache file, should act like miss.
- Contributed by Joe Campbell
-
-* [HTTPCLIENT-1137] Values for the Via header are cached and reused by httpclient-cache.
- Contributed by Alin Vasile
-
-* [HTTPCLIENT-1142] Infinite loop on NTLM authentication failure.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1143] CachingHttpClient leaks connections with stale-if-error.
- Contributed by James Miller
-
-Release 4.2 ALPHA1
--------------------
-
-This is the first ALPHA release of HttpClient 4.2. The 4.2 branch enhances HttpClient in several
-key areas and includes several notable features and improvements:
-
-* New facade API for HttpClient based on the concept of a fluent interface. The fluent API exposes
- only the most fundamental functions of HttpClient and is intended for relatively simple use cases
- that do not require the full flexibility of HttpClient. However, the fluent API almost fully
- relieves the users from having to deal with connection management and resource deallocation.
-
-* Redesigned and rewritten connection management code. As of release 4.2 HttpClient will be using
- pooling connection manager per default.
-
-* Enhanced HTTP authentication API that enables HttpClient to handle more complex authentication
- scenarios. HttpClient 4.2 is now capable of making use of multiple authentication challenges
- and retry authentication with a fall-back scheme in case the primary one fails. This can be
- important for compatibility with Microsoft products that are often configured to use
- SPNEGO/Kerberos as the preferred authentication scheme.
-
-Please note that new features included in this release are still considered experimental and
-their API may change in the future ALPHA releases.
-
-Changelog
--------------------
-
-* [HTTPCLIENT-1128] SystemDefaultHttpClient (HttpClient implementation initialized using system
- properties).
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1135] RandomAccessFile mode 'w' used by HttpClientCache is not valid.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1131] HttpClient to authenticate preemptively using BASIC scheme if a userinfo
- attribute is specified in the request URI.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1134] make BasicResponseHandler consume response content in case of an unsuccessful
- result (status code >= 300).
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1132] ProxyClient implementation.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1127] fixed dead-lock between SingleClientConnManager and AbstractPooledConnAdapter.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1107] Auth framework redesign.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1116] ResponseCachingPolicy uses integers for sizes
- Contributed by Greg Bowyer
-
-* [HTTPCLIENT-1123] Support for pluggable DNS resolvers.
- Contributed by Alin Vasile
-
-* [HTTPCLIENT-1120] DefaultHttpRequestRetryHandler#retryRequest should not retry aborted requests.
- Contributed by Alin Vasile
-
-* Support for auth-int qop (quality of protection) option in Digest auth scheme.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1076] Fluent facade API (Google summer of code 2011 project).
- Contributed by Xu Lilu
-
-* UriBuilder implementation.
- Contributed by Xu Lilu
-
-* Redesign of connection management classes based on new pooling components from HttpCore.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1111] Added #prepareSocket method to SSLSocketFactory.
- Contributed by Pasi Eronen
-
-* Added #reset() and #releaseConnection() methods to HttpRequestBase.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1105] AutoRetryHttpClient: built-in way to do auto-retry for certain status codes.
- Contributed by Dan Checkoway
-
-* [HTTPCLIENT-1094] Digest auth scheme refactoring.
- Contributed by Oleg Kalnichevski
-
-* Lax implementation of RedirectStrategy.
- Contributed by Bartosz Firyn
-
-* [HTTPCLIENT-1044] HttpRequestRetryHandler implementation compliant with the definition of
- idempotent methods given in the RFC 2616.
- Contributed by Oleg Kalnichevski
-
-
-Release 4.1.2
--------------------
-
-The HttpClient 4.1.2 is a bug fix release that addresses a number of non-critical issues reported
-since release 4.1.1.
-
-* [HTTPCLIENT-1100] Missing Content-Length header makes cached entry invalid
- Contributed by Bart Robeyns
-
-* [HTTPCLIENT-1098] Avoid expensive reverse DNS lookup on connect timeout exception.
- Contributed by Thomas Boettcher
-
-* [HTTPCLIENT-1097] BrowserCompatHostnameVerifier and StrictHostnameVerifier should handle
- wildcards in SSL certificates better.
- Contributed by Sebastian Bazley
-
-* [HTTPCLIENT-1092] If ClientPNames.VIRTUAL_HOST does not provide the port, derive it from the
- current request.
- Contributed by Sebastian Bazley
-
-* [HTTPCLIENT-1087] NTLM proxy authentication fails on retry if the underlying connection is closed
- as a result of a target authentication failure.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1079] Fixed Kerberos cross-realm support
- Contributed by Michael Osipov <1983-01-06 at gmx.net>
-
-* [HTTPCLIENT-1078] Decompressing entities (DeflateDecompressingEntity, GzipDecompressingEntity)
- do not close content stream in #writeTo() method.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1075] Decompressing entities (DeflateDecompressingEntity, GzipDecompressingEntity)
- do not correctly handle content streaming.
- Contributed by James Abley
-
-* [HTTPCLIENT-1051] Avoid reverse DNS lookups when opening SSL connections by IP address.
- Contributed by Oleg Kalnichevski
-
-
-Release 4.1.1
--------------------
-
-HttpClient v4.1.1 is a bug fix release that addresses a number of issues reported since
-release 4.1, including one critical security issue (HTTPCLIENT-1061). All users of HttpClient 4.0.x
-and 4.1 are strongly encouraged to upgrade.
-
-* [HTTPCLIENT-1069] HttpHostConnectException not correctly retried for direct and non-tunnelled
- proxy connections.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1066] Changed the way URIUtils#rewriteURI handles multiple consecutive slashes in the
- URI path component: multiple leading slashes will be replaced by one slash in order to avoid
- confusion with the authority component. The remaining content of the path will not be modified.
- (also see HTTPCLIENT-929).
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1061] Fixed critical bug causing Proxy-Authorization header to be sent to the target
- host when tunneling requests through a proxy server that requires authentication.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1056] Fixed bug causing the RequestAuthCache protocol interceptor to generate
- an invalid AuthScope instance when looking up user credentials for preemptive authentication.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1053] Fixed the way DigestScheme generates nonce-count values.
- Contributed by Oleg Kalnichevski
-
-
-Release 4.1
--------------------
-
-The HttpClient 4.1 release builds upon the stable foundation laid by HttpClient 4.0 and adds several
-functional improvements and popular features.
-
-* Response caching conditionally compliant with HTTP/1.1 specification (full compliance with
- MUST requirements, partial compliance with SHOULD requirements)
-
-* Full support for NTLMv1, NTLMv2, and NTLM2 Session authentication. The NTLM protocol code
- was kindly contributed by the Lucene Connector Framework project.
-
-* Support for SPNEGO/Kerberos authentication.
-
-* Persistence of authentication data between request executions within the same execution context.
-
-* Support for preemptive authentication for BASIC and DIGEST schemes.
-
-* Support for transparent content encoding. Please note transparent content encoding is not
- enabled per default in order to avoid conflicts with already existing custom content encoding
- solutions.
-
-* Mechanism to bypass the standard certificate trust verification (useful when dealing with
- self-signed certificates).
-
-* Simplified configuration for connection managers.
-
-* Transparent support for host multihoming.
-
-IMPORTANT: please note that the HttpClient 3.x branch is now officially END OF LIFE and is no longer
-maintained and supported by the Apache HttpComponents project.
-
-Changelog
--------------------
-* The public API for the caching module had a minor change between 4.1-beta and 4.1-GA to the
- HttpCacheEntry class - the deprecated public Set getVariantURIs() method and constructor
- public HttpCacheEntry(Date requestDate, Date responseDate,
- StatusLine statusLine, Header[] responseHeaders,
- Resource resource, Set variants)
- were both removed. This will not affect you unless you are implementing new storage backends
- that use the deprecated code and/or are implementing custom serializers for cache entries.
-
-* Changed Browser-Compatibility and Best-Match cookie policies to emulate the behaviour of FireFox
- more closely when parsing Netscape style cookies. Comma will no longer be treated as a header
- element separator if Set-Cookie does not contain a Version attribute mandated by the
- RFC2109 / RFC 2965 cookie specifications.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1036] StringBody has incorrect default for characterset. (Default changed
- to US-ASCII)
- Contributed by Sebastian Bazley
-
-* [HTTPCLIENT-975] Support stale-if-error and stale-while-revalidate extension directive (RFC5861).
- Contributed by Mohammed Azeem Uddin ,
- Michajlo Matijkiw , and
- Matthew Hawthorne .
-
-* [HTTPCLIENT-1033] HttpRoute.equals(Object o) is quite inefficient, as it does not take full
- advantage of shortcut logic.
- Contributed by Sebastian Bazley
-
-* [HTTPCLIENT-1030] Implement "ignoreCookies" CookieSpec
- Contributed by Sebastian Bazley
-
-Release 4.1 BETA1
--------------------
-
-HttpClient 4.1 BETA1 finalizes the 4.1 API and brings a number of major improvements to the HTTP
-caching module. This release also adds full support for NTLMv1, NTLMv2, and NTLM2 Session
-authentication. The NTLM protocol code was kindly contributed by the Lucene Connector Framework
-project.
-
-Changelog
--------------------
-* [HTTPCLIENT-1015] Support only-if-cached directive.
- Contributed by Michajlo Matijkiw
-
-* [HTTPCLIENT-990] Allow heuristic freshness caching.
- Contributed by Michajlo Matijkiw
-
-* [HTTPCLIENT-919] Support for NTLMv1, NTLMv2, and NTLM2 Session authentication.
- Contributed by Karl Wright
-
-* [HTTPCLIENT-1008] Send all variants' ETags on "variant miss".
- Contributed by Michajlo Matijkiw and
- Mohammed Azeem Uddin
-
-* [HTTPCLIENT-1011] Handling of IOExceptions thrown by cache components.
- Contributed by Jonathan Moore
-
-* [HTTPCLIENT-1003] Handle conditional requests in cache.
- Contributed by Michajlo Matijkiw and
- Mohammed Azeem Uddin
-
-* [HTTPCLIENT-1002] Stale connection check fails if wire logging is on.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-1000] Maximum connection lifetimes settings for ThreadSafeClientConnManager.
- Contributed by Michajlo Matijkiw
-
-* [HTTPCLIENT-960] HttpMultipart doesn't generate Content-Type header for binary parts in
- BROWSER_COMPATIBLE mode.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-998] Cache should use both Last-Modified and ETag for validations when available.
- Contributed by Jonathan Moore
-
-* [HTTPCLIENT-997] Cache module should handle out-of-order validations properly and unconditionally
- refresh.
- Contributed by Jonathan Moore
-
-* [HTTPCLIENT-994] Cache does not allow client to override origin-specified freshness using
- max-stale.
- Contributed by Jonathan Moore
-
-* [HTTPCLIENT-995] Cache returns cached responses even if validators not consistent with all
- conditional headers.
- Contributed by Jonathan Moore
-
-* [HTTPCLIENT-977] Memcached implementation for HttpCache.
- Contributed by Mohammed Azeem Uddin
-
-* [HTTPCLIENT-992] cache should not generate stale responses to requests explicitly requesting
- first-hand or fresh ones.
- Contributed by Jonathan Moore
-
-* [HTTPCLIENT-991] cache module produces improperly formatted Warning header when revalidation
- fails.
- Contributed by Jonathan Moore
-
-* [HTTPCLIENT-989] DefaultHttpRequestRetryHandler no longer retries non-idempotent http methods
- if NoHttpResponseException is thrown.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-988] Cache module should strip 'Content-Encoding: identity' from responses
- Contributed by Jonathan Moore
-
-* [HTTPCLIENT-987] cache module does not recognize equivalent URIs.
- Contributed by Jonathan Moore
-
-* [HTTPCLIENT-986] cache module does not completely handle upstream Warning headers correctly
- Contributed by Jonathan Moore
-
-* [HTTPCLIENT-985] cache module should populate Via header to capture upstream and downstream protocols
- Contributed by Jonathan Moore
-
-* [HTTPCLIENT-984] Additional conditional compliance tests for the caching module for
- Content-Encoding, Content-Location, Date, Expires, Server, Transfer-Encoding, and Vary headers.
- Contributed by Jonathan Moore
-
-* [HTTPCLIENT-978] HTTP cache update exception handling
- Contributed by Michajlo Matijkiw
-
-* [HTTPCLIENT-981] CachingHttpClient returns a 411 respones when executing a POST (HttpPost)
- request.
- Contributed by Joe Campbell
-
-* [HTTPCLIENT-980] CachingHttpClient returns a 503 response when the backend HttpClient produces
- an IOException.
- Contributed by Jonathan Moore
-
-* [HTTPCLIENT-978] Ehcache based HTTP cache implementation
- Contributed by Michajlo Matijkiw
-
-* [HTTPCLIENT-967] support for non-shared (private) caches
- Contributed by Jonathan Moore
-
-* [HTTPCLIENT-969] BasicCookieStore#getCookies() to return a copy of Cookie list
- Contributed by David Smiley
-
-* [HTTPCLIENT-965] Fixed problem with cache not honoring must-revalidate or
- proxy-revalidate Cache-Control directives.
- Contributed by Jonathan Moore
-
-* [HTTPCLIENT-964] 'no-cache' directives with field names are no longer transmitted
- downstream.
- Contributed by Jonathan Moore
-
-* [HTTPCLIENT-963] Fixed handling of 'Cache-Control: no-store' on requests.
- Contributed by Jonathan Moore
-
-* [HTTPCLIENT-962] Fixed handling of Authorization headers in shared cache mode.
- Contributed by Jonathan Moore
-
-* [HTTPCLIENT-961] Not all applicable URIs are invalidated on PUT/POST/DELETEs
- that pass through client cache.
- Contributed by Jonathan Moore
-
-* [HTTPCLIENT-958] Client cache no longer allows incomplete responses to be
- passed on to the client.
- Contributed by Jonathan Moore
-
-* [HTTPCLIENT-951] Non-repeatable entity enclosing requests are not correctly
- retried when 'expect-continue' handshake is active.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-948] In rare circumstances the idle connection handling code
- can leave closed connections in a inconsistent state.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-953] IllegalStateException thrown by RouteSpecificPool.
- Contributed by Guillaume
-
-* [HTTPCLIENT-952] Trust store parameter is ignored by SSLSocketFactory
- (affects version 4.1-alpha2 only)
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-937] CacheEntry made immutable; now uses immutable HttpEntity
- to store cached content.
- Contributed by David Mays and
- Oleg Kalnichevski
-
-Release 4.1 ALPHA2
--------------------
-
-HttpClient 4.1 ALPHA2 fixes a number of non-severe bugs discovered since
-the last release and introduces support for two frequently requested features:
-
-* HTTP/1.1 response caching
-
-* transparent support for host multihoming
-
-* a mechanism to bypass the standard certificate trust verification
-(useful when dealing with self-signed certificates)
-
-Compatibility notes
--------------------
-(1) Please note the HTTP caching module is still considered experimental and
-its API may change significantly in the future releases.
-
-(2) This release eliminates Mime4J as a dependency for the HttpMime module.
-HttpMime is no longer binary compatible with the previous releases.
-Full API and binary compatibility between minor versions of HttpMime will be
-maintained as of 4.1 GA release.
-
-Changelog
--------------------
-
-* [HTTPCLIENT-936] Fixed bug causing NPE or an infinite loop in
- the authentication code in case of a SPNEGO authentication failure.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-427] HTTP caching support
- Contributed by Joe Campbell, David Cleaver, David Mays, Jon Moore, Brad Spenla
-
-* Dropped dependency on Mime4j for HttpMime.
- Contributed by Oleg Kalnichevski
-
-* Extended SSLSocketFactory with a mechanism to bypass the standard certificate
- trust verification (primarily to simplify dealing with self-signed
- certificates)
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-898] Improved support for host multihoming
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-916] UsernamePasswordCredentials, NTUserPrincipal,
- BasicClientCookie, BasicClientCookie2 and BasicCookieStore made Serializable.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-914] Upgraded Commons Codec dependency to version 1.4
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-903] Use ConcurrentHashMap instead of [Linked]HashMap for
- thread-safety. Improve performance of AuthSchemeRegistry, CookieSpecRegistry
- and SchemeRegistry classes.
- Contributed by Sebastian Bazley
-
-* [HTTPCLIENT-902] HttpRequestRetryHandler not called on I/O exceptions
- thrown when opening a new connection.
- Contributed by Olivier Lamy and
- Oleg Kalnichevski
-
-Release 4.1 ALPHA1
--------------------
-
-HttpClient 4.1 ALPHA1 builds on the stable 4.0 release and adds several
-functionality improvements and new features.
-
-* Simplified configuration of connection managers.
-
-* Persistence of authentication data between request executions within
- the same execution context.
-
-* Support for SPNEGO/Kerberos authentication scheme
-
-* Support for transparent content encoding. Please note transparent content
- encoding is not enabled per default in order to avoid conflicts with
- already existing custom content encoding solutions.
-
-* 5 to 10% performance increase due to elimination of unnecessary Log object
- lookups by short-lived components.
-
-Please note all methods and classes added in this release and marked as
-4.1 are API unstable and can change in the future 4.1 ALPHA releases.
-
-Changelog
--------------------
-
-* [HTTPCLIENT-889] 'expect: continue' handshake disabled per default.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-862] Extended client's redirect handling interface to allow
- control of the content of the redirect.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-872] HttpClient can now persist authentication data between request
- executions as long as they share the same execution context. It has also become
- much easier to make HttpClient authenticate preemptively by pre-populating
- authentication data cache.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-883] SO_TIMEOUT is not reset on persistent (re-used) connections.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-832] Distinguish cookie format errors from violations of
- restrictions imposed by a cookie specification. In the latter case
- CookieRestrictionViolationException will be thrown.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-523] Support for SPNEGO authentication scheme.
- Contributed by Matthew Stevenson
-
-* Simplified configuration of connection managers. Total connection maximum
- and maximum connection per route limits can be set using methods of
- the class instead of HTTP parameters.
- Contributed by Oleg Kalnichevski
-
-* Added parameters to define the order of preference for supported auth
- schemes for target host and proxy authentication.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-875] DefaultClientConnectionOperator#openConnection doesn't
- update the connection state if the connection socket changed after
- the call to SocketFactory#connectSocket().
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-834] Transparent content encoding support.
- Contributed by James Abley
-
-Release 4.0.1
--------------------
-
-This is a bug fix release that addresses a number of issues discovered since
-the previous stable release. None of the fixed bugs is considered critical.
-Most notably this release eliminates eliminates dependency on JCIP annotations.
-
-This release is also expected to improve performance by 5 to 10% due to
-elimination of unnecessary Log object lookups by short-lived components.
-
-Changelog
--------------------
-
-* [HTTPCLIENT-895] Eliminated Log lookups in short lived objects impairing
- performance.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-885] URLEncodedUtils now correctly parses form-url-encoded
- entities that specify a charset.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-884] UrlEncodedFormEntity now sets charset on the Content-Type
- header.
- Contributed by Jared Jacobs
-
-* [HTTPCLIENT-883] SO_TIMEOUT is not reset on persistent (re-used) connections.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-882] Auth state is now correctly updated if a successful NTLM
- authentication results in a redirect. This is a minor bug as HttpClient
- manages to recover from the problem automatically.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-881] Fixed race condition in AbstractClientConnAdapter that makes
- it possible for an aborted connection to be returned to the pool.
- Contributed by Tim Boemker and
- Oleg Kalnichevski
-
-* [HTTPCLIENT-866] Removed dependency on jcip-annotations.jar.
- Contributed by Oleg Kalnichevski
- and Sebastian Bazley
-
-
-Release 4.0
--------------------
-
-HttpClient 4.0 represents a complete, ground-up redesign and almost a complete
-rewrite of the HttpClient 3.x codeline. This release finally addresses several
-design flaws that existed since the 1.0 release and could not be fixed without
-a major code overhaul and breaking API compatibility.
-
-
-Architectural changes
----------------------
-
-* Redesign of the HttpClient internals addressing all known major
- architectural shortcomings of the 3.x codeline.
-
-* Cleaner, more flexible and expressive API.
-
-* More modular structure.
-
-* Better performance and smaller memory footprint due to a more efficient HTTP
- transport based on HttpCore.
-
-* Implementation of cross-cutting HTTP protocol aspects through protocol
- interceptors.
-
-* Improved connection management, better handling of persistent connections,
- support for stateful connections
-
-* Pluggable redirect and authentication handlers.
-
-* Improved support for sending requests via a proxy or a chain of proxies
-
-* More flexible SSL context customization
-
-* Reduced intermediate garbage in the process of generating HTTP requests
- and parsing HTTP responses
-
-
-Important notes
--------------------
-
-* Future releases of HttpMime module may be binary incompatible with this
- release due to possible API changes in Apache Mime4J. Apache Mime4J is
- still being actively developed and its API is considered unstable.
-
-* HttpClient 4.0 is not fully binary compatible with 4.0 BETA1 release.
- Some protected variables in connection management class have been
- made final in order to help ensure their thread safety:
-
- org.apache.http.conn.BasicEofSensorWatcher#attemptReuse
- org.apache.http.conn.BasicEofSensorWatcher#managedConn
- org.apache.http.impl.conn.DefaultClientConnectionOperator#schemeRegistry
- org.apache.http.impl.conn.DefaultHttpRoutePlanner#schemeRegistry
- org.apache.http.impl.conn.ProxySelectorRoutePlanner#schemeRegistry
- org.apache.http.impl.conn.SingleClientConnManager#alwaysShutDown
- org.apache.http.impl.conn.SingleClientConnManager#connOperator
- org.apache.http.impl.conn.SingleClientConnManager#schemeRegistry
- org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager#connOperator
- org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager#schemeRegistry
-
-
-Bug fixes since 4.0 BETA2 release
--------------------
-
-* [HTTPCLIENT-861] URIUtils#resolve is now compatible with all examples given
- in RFC 3986.
- Contributed by Johannes Koch
-
-* [HTTPCLIENT-860] HttpClient no longer converts redirects of PUT/POST to GET
- for status codes 301, 302, 307, as required by the HTTP spec.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-859] CookieIdentityComparator now takes path attribute into
- consideration when comparing cookies.
- Contributed by Oleg Kalnichevski
-
-* HttpClient will no longer send expired cookies back to the origin server.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-856] Proxy NTLM authentication no longer fails on a redirect to
- a different host.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-841] Removed automatic connection release using garbage collection
- due to a memory leak.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-853] Fixed bug causing invalid cookie origin port to be selected
- when the target is accessed on the default port and the connection is
- established via a proxy.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-852] Fixed bug causing automatically retried redirects fail with
- CircularRedirectException.
- Contributed by Oleg Kalnichevski
-
-* Fixed problem with the default HTTP response parser failing to handle garbage
- preceding a valid HTTP response.
- Contributed by Oleg Kalnichevski
-
-* NonRepeatableRequestExceptions now include the cause that the original
- request failed.
- Contributed by Sam Berlin
-
-* [HTTPCLIENT-837] Fixed problem with the wire log skipping zero byte values
- if read one byte at a time.
- Contributed by Kirill Safonov
-
-* [HTTPCLIENT-823] 'http.conn-manager.max-total' parameter can be adjusted
- dynamically. However, the size of existing connection pools per route,
- once allocated, will not be adjusted.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-822] Default socket factories to rethrow SocketTimeoutException
- as ConnectTimeoutException in case of connect failure due to a time out.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-813] Fixed default port resolution. Invalid ports no longer
- get replaced with the default port value.
- Contributed by Oleg Kalnichevski
-
-Release 4.0 beta 2
--------------------
-
-BETA2 is a maintenance release, which addresses a number of issues
-discovered since the previous release.
-
-The only significant new feature is an addition of an OSGi compliant
-bundle combining HttpClient and HttpMime jars.
-
-All upstream projects are strongly encouraged to upgrade.
-
-* Fixed NPE in DefaultRequestDirector thrown when retrying a failed
- request over a proxied connection.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-803] Fixed bug in SSL host verifier implementations
- causing the SSL certificate to be rejected as invalid if the connection
- is established using an IP address.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-806] DefaultHttpMethodRetryHandler will no longer retry
- on ConnectExceptions.
- Contributed by Oleg Kalnichevski
-
-* DigestScheme can use an arbitrary digest algorithm requested by the
- target server (such as SHA) as long as this algorithm is supported by
- the Java runtime.
- Contributed by Oleg Kalnichevski
-
-* Fixed parsing and validation of RFC2109 compliant Set-Cookie headers
- by the Best-Match cookie spec.
- Contributed by Oleg Kalnichevski
-
-* Fixed bug that can cause a managed connection to be returned from the
- pool in an inconsistent state.
- Contributed by Oleg Kalnichevski
-
-
-4.0 Beta 1
--------------------
-
-BETA1 release brings yet another round of API enhancements and
-improvements in the area of connection management. Among the most notable
-ones is the capability to handle stateful connections such as persistent
-NTLM connections and private key authenticated SSL connections.
-
-This is the first API stable release of HttpClient 4.0. All further
-releases in the 4.0 code line will maintain API compatibility with this
-release.
-
-There has been a number of important bug fixes since ALPHA4. All upstream
-projects are encouraged to upgrade to the latest release.
-
-Please note HttpClient currently provides only limited support for NTLM
-authentication. For details please see NTLM_SUPPORT.txt.
-
--------------------
-
-Changelog:
--------------------
-
-* [HTTPCLIENT-790] Protocol interceptors are now correctly invoked when
- executing CONNECT methods.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-668] Do not use static loggers.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-781] Respect Keep-Alive header's timeout value.
- Contributed by Sam Berlin
-
-* [HTTPCLIENT-779] Top-level classes (HttpClient, and HttpGet, HttpPut
- and similar HttpMethods) throw fewer checked exceptions.
- Contributed by Sam Berlin
-
-* HttpClient will throw an exception if an attempt is made to retry
- a request with a non-repeatable request entity.
- Contributed by Oleg Kalnichevski
-
-* Fixed request re-generation logic when retrying a failed request.
- Auto-generated headers will no accumulate.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-424] Preemptive authentication no longer limited to BASIC
- scheme only. HttpClient can be customized to authenticate preemptively
- with DIGEST scheme.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-670] Pluggable hostname resolver.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-719] Clone support for HTTP request and cookie objects.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-776] Fixed concurrency issues with AbstractPoolEntry.
- Contributed by Sam Berlin
-
-* Resolved a long standing problem with HttpClient not taking into account
- the user context when pooling / re-using connections. HttpClient now
- correctly handles stateful / user specific connections such as persistent
- NTLM connections and SSL connections with client side authentication.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-773] Improved handling of the 'expires' attribute by the
- 'Best Match' cookie spec.
- Contributed by Oleg Kalnichevski
-
-* Partial NTLM support (requires an external NTLM engine). For details see
- NTLM_SUPPORT.txt
- Contributed by Oleg Kalnichevski
-
-* Redesigned local execution context management.
- Contributed by Oleg Kalnichevski
-
---------------------------------------
-
-Release 4.0 Alpha 4
--------------------
-
-ALPHA4 marks the completion of the overhaul of the connection management
-code in HttpClient. All known shortcomings of the old HttpClient 3.x
-connection management API have been addressed.
-
-NTLM authentication remains the only missing major feature in the new
-codeline that prevents us from moving awards the API freeze.
-
-There has been a number of important bug fixes since ALPHA3. All upstream
-projects are encouraged to upgrade to the latest release.
-
--------------------
-
-HttpClient 3.x features that have NOT yet been ported:
--------------------
-
-* NTLM authentication scheme
-
--------------------
-
-Changelog:
--------------------
-
-* [HTTPCLIENT-765] String.toLowerCase() / toUpperCase() should specify
- Locale.ENGLISH
- Contributed by Sebastian Bazley
-
-* [HTTPCLIENT-769] Do not pool connection marked non-reusable.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-763] Fixed problem with AbstractClientConnAdapter#abortConnection()
- not releasing the connection if called from the main execution thread while
- there is no blocking I/O operation.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-652] Added optional state attribute to managed client connections.
- This enables connection managers to correctly handle stateful connections.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-673] Revised max connections per route configuration
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-753] Class Scheme and related classes moved to a separate package
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-757] Improved request wrapping in the DefaultClientRequestDirector.
- This also fixed the problem with the default proxy set at the client level
- having no effect.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-734] Request abort will unblock the thread waiting for a connection
- Contributed by Sam Berlin
-
-* [HTTPCLIENT-759] Ensure release of connections back to the connection manager
- on exceptions.
- Contributed by Sam Berlin
-
-* [HTTPCLIENT-758] Fixed the use of generics in AbstractHttpClient
- #removeRequestInterceptorByClass and #removeResponseInterceptorByClass
- Contributed by Johannes Koch
-
-* [HTTPCLIENT-749] HttpParams beans
- Contributed by Stojce Dimski
-
-* [HTTPCLIENT-755] Workaround for known bugs in java.net.URI.resolve()
- Bug ID: 4708535
- Contributed by Johannes Koch
-
---------------------------------------
-
-Release 4.0 Alpha 3
--------------------
-
-ALPHA3 release brings another round of API refinements and improvements in
-functionality. As of this release HttpClient requires Java 5 compatible
-runtime environment and takes full advantage of generics and new concurrency
-primitives.
-
-This release also introduces new default cookie policy that selects a cookie
-specification depending on the format of cookies sent by the target host.
-It is no longer necessary to know beforehand what kind of HTTP cookie support
-the target host provides. HttpClient is now able to pick up either a lenient
-or a strict cookie policy depending on the compliance level of the target host.
-
-Another notable improvement is a completely reworked support for multipart
-entities based on Apache mime4j library.
-
--------------------
-
-HttpClient 3.x features that have NOT yet been ported:
--------------------
-
-* NTLM authentication scheme
-
--------------------
-
-Changelog:
--------------------
-
-* [HTTPCLIENT-742] common interface for HttpRoute and RouteTracker
- Contributed by Roland Weber
-
-* [HTTPCLIENT-741] Fixed concurrency issues in AbstractClientConnAdapter.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-726] testcase for spurious wakeups in ThreadSafeClientConnManager
- Contributed by Roland Weber
-
-* [HTTPCLIENT-643] Automatic connect fail-over for multi-home remote servers.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-735] unsetting of DEFAULT_PROXY and FORCED_ROUTE in hierarchies
- Contributed by Roland Weber
-
-* [HTTPCLIENT-723] route planner based on java.net.ProxySelector
- Contributed by Roland Weber
-
-* [HTTPCLIENT-740] don't start connection GC thread in pool constructor
- Contributed by Roland Weber
-
-* [HTTPCLIENT-736] route planners use SchemeRegistry instead of ConnManager
- Contributed by Roland Weber
-
-* [HTTPCLIENT-730] Fixed rewriting of URIs containing escaped characters
- Contributed by Sam Berlin and
- Oleg Kalnichevski
-
-* [HTTPCLIENT-667] Added 'Meta' cookie policy that selects a cookie
- specification depending on the format of the cookie(s).
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-729] Move HttpRoute and related classes to routing package.
- Contributed by Roland Weber
-
-* [HTTPCLIENT-725] Use TimeUnit arguments for timeouts in connection manager.
- Contributed by Roland Weber
-
-* [HTTPCLIENT-677] Connection manager no longer uses Thread.interrupt().
- Contributed by Roland Weber
-
-* [HTTPCLIENT-716] Allow application-defined routes.
- Contributed by Roland Weber
-
-* [HTTPCLIENT-712] Improve HttpRoute API
- Contributed by Roland Weber
-
-* [HTTPCLIENT-711] Bad route computed for redirected requests
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-715] Remove RoutedRequest from API
- Contributed by Roland Weber
-
-* [HTTPCLIENT-705] Fixed incorrect handling of URIs with null path component.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-688] HttpOptions#getAllowedMethods can now handle multiple
- Allow headers.
- Contributed by Andrea Selva
-
---------------------------------------
-
-Release 4.0 Alpha 2
--------------------
-
-ALPHA2 release is another milestone in the redesign of HttpClient. It includes
-a number of improvements since ALPHA1, among which are improved connection
-pooling, support for proxy chains, redesigned HTTP state and authentication
-credentials management API, improved RFC 2965 cookie specification.
-
--------------------
-
-HttpClient 3.x features that have NOT yet been ported
--------------------
-* NTLM authentication scheme
-
-* Support for multipart MIME coded entities
-
--------------------
-
-Changelog
--------------------
-
-* [HTTPCLIENT-698] Resolve non-absolute redirect URIs relative to
- the request URI
- Contributed by Johannes Koch
-
-* [HTTPCLIENT-697] Throw a more intelligible exception when connection
- to a remote host cannot be established.
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-689] Caching of SimpleDateFormat in DateUtils
- Contributed by Daniel Müller
-
-* [HTTPCLIENT-689] stackable parameters in AbstractHttpClient
- Contributed by Roland Weber
-
-* [HTTPCLIENT-477] Use distinct instances of the authentication handler
- interface for authentication with target and proxy hosts
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-690] ManagedClientConnection provides access to SSLSession
- Contributed by Roland Weber
-
-* [HTTPCLIENT-692] ClientConnectionManager throws InterruptedException
- Contributed by Roland Weber
-
-* [HTTPCORE-116] moved parameter names to interfaces
- Contributed by Roland Weber
-
-* [HTTPCLIENT-649] support for proxy chains in HttpConn
- Contributed by Roland Weber
-
-* [HTTPCLIENT-636] refactor ThreadSafeClientConnManager in separate package
- Contributed by Roland Weber
-
-* [HTTPCLIENT-669] new HttpRoutePlanner interface and implementation
- Contributed by Andrea Selva
-
-* [HTTPCLIENT-653] detached connection wrapper no longer prevents
- garbage collection of ThreadSafeClientConnManager
- Contributed by Roland Weber
-
-* [HTTPCLIENT-674] use org.apache.http.util.VersionInfo instead of a local one
- Contributed by Roland Weber
-
-* [HTTPCLIENT-666] Replaced HttpState with CredentialsProvier and CookieStore interfaces
- Contributed by Oleg Kalnichevski
-
-* [HTTPCORE-100] revised HttpContext hierarchy
- Contributed by Roland Weber
-
-* [HTTPCLIENT-618] eliminate class HostConfiguration
- Contributed by Roland Weber
-
-* [HTTPCLIENT-672] re-sync with API changes in core alpha6-SNAPSHOT
- Contributed by Roland Weber
-
---------------------------------------
-
-Release 4.0 Alpha 1
--------------------
-
-HttpClient 4.0 represents a complete, ground-up redesign and almost a complete
-rewrite of the HttpClient 3.x codeline. This release finally addresses several
-design flaws that existed since the 1.0 release and could not be fixed without
-a major code overhaul and breaking API compatibility.
-
-The HttpClient 4.0 API is still very experimental and is bound to change
-during the course of the ALPHA development phase. Several important features
-have not yet been ported to the new API.
-
-Architectural changes
----------------------
-
-* Redesign of the HttpClient internals addressing all known
- major architectural shortcomings of the 3.x codeline
-
-* Cleaner, more flexible and expressive API
-
-* Better performance and smaller memory footprint due to a more
- efficient HTTP transport based on HttpCore. HttpClient 4.0 is
- expected to be 10% to 25% faster than HttpClient 3.x codeline
-
-* More modular structure
-
-* Pluggable redirect and authentication handlers
-
-* Support for protocol incerceptors
-
-* Improved connection management
-
-* Improved support for sending requests via a proxy or a chain of
- proxies
-
-* Improved handling redirects of entity enclosing requests
-
-* More flexible SSL context customization
-
-* Reduced intermediate garbage in the process of
- generating HTTP requests and parsing HTTP responses
-
--------------------
-
-HttpClient 3.x features that have NOT yet been ported
--------------------
-* NTLM authentication scheme
-
-* RFC2965 cookie policy (Cookie2)
-
-* Support for multipart MIME coded entities
-
--------------------
-
-Changelog
--------------------
-
-The following is a list of contributions tracked in JIRA.
-Note that this is not a complete list of contributions or changes.
-Since the API was redesigned completely, tracking everything outside
-of the source code repository would have been too burdensome.
-
-* [HTTPCLIENT-655] User-Agent string no longer violates RFC
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-541] Virtual host API redesign
- Contributed by Oleg Kalnichevski
-
-* [HTTPCLIENT-614] Allow for different strategies when checking
- CN of x509 certificates
- Contributed by Julius Davies
-
-* [HTTPCLIENT-136] Fixed inadequate proxy support
- Long standing architectural problem. Issue opened on 19/Dec/2002.
- Contributed by Oleg Kalnichevski