Pull up CONNECTORS-916 changes

git-svn-id: https://svn.apache.org/repos/asf/manifoldcf/branches/CONNECTORS-916-rebased@1596720 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/CHANGES.txt b/CHANGES.txt
index 2568d4c..019d3e6 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,7 +1,48 @@
 ManifoldCF Change Log
 $Id$
 
-======================= 1.6-dev =====================
+======================= 1.7-dev =====================
+
+CONNECTORS-942: Add output connector method to handle notification
+of removal of all connection-related records.
+(Karl Wright)
+
+CONNECTORS-940: Upgrade slf4j and commons-logging to latest versions.
+(Karl Wright)
+
+CONNECTORS-933: Simplified chinese localizations.
+(Mingchun Zhao)
+
+CONNECTORS-938: Allow JSPs to all work properly with Java 8.
+(Arcadius Ahouansou, Ahmet Arslan)
+
+CONNECTORS-936: Handle null content streams in CMIS connector.
+(Cetra Free)
+
+CONNECTORS-935 : Use Java 7 in ant build
+(Ahmet Arslan)
+
+CONNECTORS-932 : Avoid UnsupportedEncodingException handling
+(Ahmet Arslan)
+
+CONNECTORS-927: Override JDK's entity expansion limit for Solr
+connector.
+(David Morana, Karl Wright)
+
+======================= Release 1.6 =====================
+
+CONNECTORS-928: Remove unused directory.
+(Ahmet Arslan, Karl Wright)
+
+CONNECTORS-925: Fix ant exclusions for zip/tar distributions on Linux variants.
+(Ahmet Arslan)
+
+CONNECTORS-923: Fix bandwidth throttling.
+(Karl Wright)
+
+CONNECTORS-920: Be more explicit in Solr connector about handling
+SocketTimeoutException.
+(Hitoshi Tatsumi, Karl Wright)
 
 CONNECTORS-919: Fix example-proprietary.
 (Karl Wright)
diff --git a/KEYS b/KEYS
index db1f8c1..239d140 100644
--- a/KEYS
+++ b/KEYS
@@ -185,3 +185,61 @@
 dKYkqiwOV26TcVVLpfYqvLx8vuC2qEsx
 =i/Xs
 -----END PGP PUBLIC KEY BLOCK-----
+pub   4096R/3D7558E5 2014-04-15
+uid                  Ahmet Arslan (CODE SIGNING KEY) <iorixxx@apache.org>
+sig 3        3D7558E5 2014-04-15  Ahmet Arslan (CODE SIGNING KEY) <iorixxx@apache.org>
+sub   4096R/55C9450F 2014-04-15
+sig          3D7558E5 2014-04-15  Ahmet Arslan (CODE SIGNING KEY) <iorixxx@apache.org>
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1
+
+mQINBFNNk30BEAC06STETxE0u7EiJ5ZirlpnnFTKWvSjX4kyNUvX69C5fy0MjA7K
+DH//dygA1HxVHq4jKyhrm6U3WqSyKOHos39C3h4DeZZ0uNrmhfjHC5Wj0DeVkzmu
+mKpIho6EDFsLl25slQA9ptvZ3XEf5Gx0554yq+363F9Z7JEyeMM7AQQ1L19NjzKe
+IKMP6TQmo7u7dCn2gcAvpW2IFwaw1yQOw7+KpDcUSXTjmVv8FfdvtScTwWyjkNp/
+ZI5aTuAmLZofIiX/PHRAgvnuxzbqY3PCzCwvPSO5/KyiIceK6PoSfFnKxbbbHSgS
+eofl7HKw9tga4I2GzR0LVAduV90w2yUwqq2UtP/e1SU4ATkvoEYMMHphmcGLGs1I
+/mymyzT9A8WuH2ReeoUkRHF+DaePivlOyyyvO1BodwVdqzQmqOXAt0QMapSXSzdo
+/mrEXD2BSyDpE6hbrtIe+4YzFTgxr6OsjyCk7KHBlYynEVWl7BqXHQPva7bQ8u64
+jvzf6IhdslixZ/pvJGrc0/BYInbS1vVXtSiU7uJvnVzAFGfyf4bKrhRFuOVXEcUk
+B4g8Ut9xmrBC/9qh5XzG0CUh6yogqA70iOSut/zZ/C/EfcvMJ6HdtkI/5tfVF89B
+h/qtnw74ne0yA/fyGgrqOwELtJ+YMgNUguFZupNaaZMuiY35RkVrzYprSwARAQAB
+tDRBaG1ldCBBcnNsYW4gKENPREUgU0lHTklORyBLRVkpIDxpb3JpeHh4QGFwYWNo
+ZS5vcmc+iQI3BBMBCAAhBQJTTZN9AhsDBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheA
+AAoJECF+KNk9dVjlU00P/2dEBa9s4jvS0Oiy01Yj6WJz0lxlQD8/OYMpaySxYKr6
+VE0jwUBzbByZPOx/MJ+YPmrwj89O02GJKb6mHhI9vSR7q4eofw2myV19RFezlqrR
+X4oL3rmuGQ1SfY1pL6Zqlqiw072fm+hz/V800OWO7/d+dEUA8iI/LjQbxAiOjijX
+hxAiSHvqO7wyoUgYglhgh6vXIkV9xdBVvqcU8YRlL3FoABMfhgW4MjkWyQxHEjgr
++zUZh2aE0LBuj79U5ALLzjUh9uRfTQata/Mrs9CNiIVRfK/0eGJzAMTf/rIdVrgE
+8J/MbqercwHYlsOjcoOd6uqnI7w+Ily3p3GMqvYmlPnSRIpvTL/8XfH0zIBoUHNH
+qfrbMS9Es6wOomVp7QAYhFbchYIXn2M8zlou7SC7+u6PJkVYUzPNKuDbtbG8sCP2
+LUV9gXsVXwgZLwKiXUOB39O6Hy+u3XSNGX9xK+7KCS/HkADOeAHU29PKIxptxYoS
+kWDxSrnpgOreWRa501/CofZJU9jhuauOJWQDbg7Qv8IC6QrkfAT53u5r2D662qRx
+weaP13BRaXrYezNG3Nvh1SP/2P4lQc0rZCdYCa/cC/uw3u4xPECxuYdNWmKMecIz
+99EQCECwTNVvLnRxkdbJDy0wvikwWbneCu2T3ariJgygb36dlLJ0CU2m+sJGTW8/
+uQINBFNNk30BEACvL/LLUOf9zhDEXHzb4N9CIWDQr4RKTAwFf0+g5VFxYZiPDhod
+GZ2cXxGS6GSxxlL9g/hF1puC9k8lHkSn9WQ6zqlXkZIBGsgQgb23Dqj1FJhk4ULd
+eO6WUXiFoSm6hGL69xgy7SjTOAB37cqtBkSfcnx9DlZ5ZT3YKiM1ezAqN84Af9Dp
+WNVRdh3u1moCaUwQyIq3YOVYMZQ6adQ7pMOK1C+3gkA+vvfVrbQY/51KfZ8pUZOn
+kWrH9kxoRoyWFG1Xip0yG7vfLpmfPzArw4MkJYqyivlh5EURIgMPHUgPN9SdAK7n
+IBPK5Q1Nz0DA6AkfAK5k0DZxMj9UAGzuKX/Acrb9dYO5wGkw2FDjAsaL+APIOngF
+IRZDjlGgOdt2bEwe1b6EsoIQ2Ct0jBSFAYGX4k59PmKYeucOizvUpI3HOlDrSqbL
+QJ6chTEP1CNOTyLRbIPskUEfO8W7zxePNZLytCqd5rpuomSWela0h2ZqgYzcKOpG
+N1FRbguhIrIbNomJ723aocgM2QE2DEV/RGWZ/RXr9ALk4zwKrLrO7T3fPWq0cqa5
+MOyeSLlzehrK4bPRTnjaUnNjjA/Yk6VjrUPdysjp9BYn1RitCm1Z8sCqetd0Zuzw
+fd2j6dvlQ5D8z2Y4ASlBZQTljsIpep0bboDgDyLDSF8wwGrtUSXZLyJ50wARAQAB
+iQIfBBgBCAAJBQJTTZN9AhsMAAoJECF+KNk9dVjlrIAP/08Sbm4vgwBC2qWsfH0/
+LP4j3xx1DBpoFfXAie5V6diUSIjsQTB8vLF1WAGjCzwUyfB/53hBAVwx2fglylfQ
+SMxgURLtBEC9zm7eRrEVJO4uUyHZSgNtAlf+sKlV4A5Ix9NLje2B7808yU5PuGB/
+rAw6kMrhCJvjuXqWS1A4Lgw+H6gOMZ8m9iomPEb2Gvtnf9yE7S96B9ZE3yrVCpAj
+8HRjhW5Sbaf2BKmAs0k5ejIjGG1/IF6Nwch5Ig2YoBEMq5BYCAlMZxGx7FWlfIiW
+5HJDSET4XvJ59ztsQPIf5k+5HwEqLi3rG2eoA5ITgrylucXx/09KZi/QYj4EFPAH
+aY9mIhZX77halI9BLBkCezzCIo/30E7OtSKWzpFOseXOiNfrHLrjD95sdOm0us4Z
+yuX2c7YuhfVXPI73mHqQt3ThadniH0a/HJ4+g4ll06Qi+OxoY+4rljlwsK9sJ0NF
+G0ba71P1RAUqQT893RMBV7fVocHH72RMZqj1OBFc2ooXGF37nH+EA3fVoFMgKnDH
+kdbJThdxKZ938WUsk6zWP0XD5N4Kj07o/xOK9k1HU+cYDxtD77hphXhJFDSUXzxD
+Pm7NsfA29wLXsd3ZZZiS3y3JmVJeyyBimFKtyVBKC97hVrMLpNkdn6fM3k2HrFCL
+OWUgArPPt7zCcZpWTJCZOvhy
+=qHkm
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/build.xml b/build.xml
index 0b57d5c..3ceddbf 100644
--- a/build.xml
+++ b/build.xml
@@ -17,10 +17,18 @@
 
 <project name="manifoldcf" default="help">
 
+    <presetdef name="javac">
+      <javac includeantruntime="false" />
+    </presetdef>
+
     <import file="site-options.xml" optional="true"/>
 
     <import file="common-build.xml"/>
     
+    <defaultexcludes add="**/*.patch"/>   
+    <defaultexcludes add="**/*.iml"/> 
+    <defaultexcludes add="**/.idea/**"/> 
+    
     <target name="downloaded-condition">
         <!-- Spot check a few of the dependent jars; no point including ALL of them here... -->
         <available file="lib/derby.jar" property="derby-found"/>
@@ -372,21 +380,21 @@
     <target name="doc" depends="deliver-site-doc"/>
     
     <target name="set-version">
-      <property name="release-version" value="1.6-dev"/>
+      <property name="release-version" value="1.7-dev"/>
     </target>
     
     <target name="create-source-zip" depends="set-version">
       <zip destfile="apache-manifoldcf-${release-version}-src.zip" update="false">
         <zipfileset dir="." prefix="apache-manifoldcf-${release-version}">
-          <exclude name="/lib/"/>
-          <exclude name="/connectors/*/lib/"/>
-          <exclude name="/framework/lib/"/>
+          <exclude name="lib/"/>
+          <exclude name="connectors/*/lib/"/>
+          <exclude name="framework/lib/"/>
           <exclude name="**/build/"/>
           <exclude name="**/tmp/"/>
-          <exclude name="/site/fonts/"/>
-          <exclude name="/dist/"/>
-          <exclude name="/connectors/*/dist/"/>
-          <exclude name="/framework/dist/"/>
+          <exclude name="site/fonts/"/>
+          <exclude name="dist/"/>
+          <exclude name="connectors/*/dist/"/>
+          <exclude name="framework/dist/"/>
           <exclude name="**/target/"/>
           <exclude name="**/test-output/"/>
           <exclude name="**/test-derby-output/"/>
@@ -403,8 +411,8 @@
           <exclude name="**/lib-proprietary/*.xsd"/>
           <exclude name="**/test-materials-proprietary/*.xsd"/>
           <exclude name="connectors/elasticsearch/test-materials-proprietary/elasticsearch-1.0.1/"/>
-          <exclude name="/legacy-*/"/>
-          <exclude name="apache-manifoldcf-*"/>
+          <exclude name="legacy-*/"/>
+          <exclude name="apache-manifoldcf-*/"/>        
         </zipfileset>
       </zip>
     </target>
@@ -414,19 +422,19 @@
         <zipfileset dir="lib" prefix="apache-manifoldcf-${release-version}"/>
       </zip>
     </target>
-
-    <target name="create-source-tar" depends="set-version">
-      <tar destfile="apache-manifoldcf-${release-version}-src.tar.gz" compression="gzip" longfile="gnu">
+      
+    <target name="create-source-tar" depends="set-version">  
+      <tar destfile="apache-manifoldcf-${release-version}-src.tar.gz" compression="gzip" longfile="gnu">        
         <tarfileset dir="." prefix="apache-manifoldcf-${release-version}">
-          <exclude name="/lib/"/>
-          <exclude name="/connectors/*/lib/"/>
-          <exclude name="/framework/lib/"/>
+          <exclude name="lib/"/>
+          <exclude name="connectors/*/lib/"/>
+          <exclude name="framework/lib/"/>
           <exclude name="**/build/"/>
           <exclude name="**/tmp/"/>
-          <exclude name="/site/fonts/"/>
-          <exclude name="/dist/"/>
-          <exclude name="/connectors/*/dist/"/>
-          <exclude name="/framework/dist/"/>
+          <exclude name="site/fonts/"/>
+          <exclude name="dist/"/>
+          <exclude name="connectors/*/dist/"/>
+          <exclude name="framework/dist/"/>
           <exclude name="**/target/"/>
           <exclude name="**/test-output/"/>
           <exclude name="**/test-derby-output/"/>
@@ -443,8 +451,8 @@
           <exclude name="**/lib-proprietary/*.xsd"/>
           <exclude name="**/test-materials-proprietary/*.xsd"/>
           <exclude name="connectors/elasticsearch/test-materials-proprietary/elasticsearch-1.0.1/"/>
-          <exclude name="/legacy-*/"/>
-          <exclude name="apache-manifoldcf-*"/>
+          <exclude name="legacy-*/"/>
+          <exclude name="apache-manifoldcf-*/"/>
         </tarfileset>
       </tar>
     </target>
@@ -463,10 +471,10 @@
           <exclude name="lib-proprietary/*.jar"/>
           <exclude name="connector-lib-proprietary/*-PLACEHOLDER.txt"/>
           <exclude name="connectors-proprietary.xml"/>
-          <exclude name="/example-proprietary/"/>
-          <exclude name="/multiprocess-file-example-proprietary/"/>
-          <exclude name="/multiprocess-zk-example-proprietary/"/>
-          <exclude name="/web-proprietary/"/>
+          <exclude name="example-proprietary/"/>
+          <exclude name="multiprocess-file-example-proprietary/"/>
+          <exclude name="multiprocess-zk-example-proprietary/"/>
+          <exclude name="web-proprietary/"/>
         </zipfileset>
       </zip>
     </target>
@@ -479,10 +487,10 @@
           <exclude name="lib-proprietary/*.jar"/>
           <exclude name="connector-lib-proprietary/*-PLACEHOLDER.txt"/>
           <exclude name="connectors-proprietary.xml"/>
-          <exclude name="/example-proprietary/"/>
-          <exclude name="/multiprocess-file-example-proprietary/"/>
-          <exclude name="/multiprocess-zk-example-proprietary/"/>
-          <exclude name="/web-proprietary/"/>
+          <exclude name="example-proprietary/"/>
+          <exclude name="multiprocess-file-example-proprietary/"/>
+          <exclude name="multiprocess-zk-example-proprietary/"/>
+          <exclude name="web-proprietary/"/>
         </tarfileset>
       </tar>
     </target>
@@ -897,7 +905,7 @@
         </antcall>
         <antcall target="download-via-maven"><param name="target" value="lib"/>
             <param name="project-path" value="commons-logging"/>
-            <param name="artifact-version" value="1.1.1"/>
+            <param name="artifact-version" value="1.1.3"/>
             <param name="artifact-name" value="commons-logging"/>
             <param name="artifact-type" value="jar"/>
         </antcall>
@@ -917,7 +925,7 @@
   
     <target name="download-slf4j">
         <mkdir dir="lib"/>
-        <property name="slf4j-version" value="1.6.6"/>
+        <property name="slf4j-version" value="1.7.7"/>
         <property name="slf4j-package" value="org/slf4j"/>
         <antcall target="download-via-maven"><param name="project-path" value="${slf4j-package}"/><param name="artifact-version" value="${slf4j-version}"/><param name="target" value="lib"/>
             <param name="artifact-name" value="slf4j-api"/>
@@ -1049,7 +1057,7 @@
         <mkdir dir="lib"/>
         <antcall target="download-via-maven"><param name="target" value="lib"/>
             <param name="project-path" value="org/eclipse/jdt/core/compiler"/>
-            <param name="artifact-version" value="3.7.1"/>
+            <param name="artifact-version" value="4.3.1"/>
             <param name="artifact-name" value="ecj"/>
             <param name="artifact-type" value="jar"/>
         </antcall>
diff --git a/connectors/activedirectory/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/activedirectory/common_zh_CN.properties b/connectors/activedirectory/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/activedirectory/common_zh_CN.properties
new file mode 100644
index 0000000..6977132
--- /dev/null
+++ b/connectors/activedirectory/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/activedirectory/common_zh_CN.properties
@@ -0,0 +1,42 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+ActiveDirectoryAuthority.DomainController=域控制器
+ActiveDirectoryAuthority.Cache=缓存
+ActiveDirectoryAuthority.DomainControllers=域控制器:
+ActiveDirectoryAuthority.DomainControllerName=域控制器名
+ActiveDirectoryAuthority.DomainSuffix=域后缀
+ActiveDirectoryAuthority.AdministrativeUserName=管理员名
+ActiveDirectoryAuthority.AdministrativePassword=管理员密码
+ActiveDirectoryAuthority.Authentication=认证
+ActiveDirectoryAuthority.LoginNameADAttribute=登录名AD属性
+ActiveDirectoryAuthority.CacheLifetime=缓存寿命: 
+ActiveDirectoryAuthority.CacheLRUSize=缓存LRU大小: 
+ActiveDirectoryAuthority.minutes=分
+ActiveDirectoryAuthority.AddToEnd=添加到末尾
+ActiveDirectoryAuthority.AddRuleToEnd=添加规则到列表末尾
+ActiveDirectoryAuthority.Delete=删除
+ActiveDirectoryAuthority.DeleteRuleNumber=删除规则 #
+ActiveDirectoryAuthority.InsertBefore=向前插入
+ActiveDirectoryAuthority.InsertBeforeRuleNumber=插入到规则号的前面 #
+ActiveDirectoryAuthority.EnterADomainControllerServerName=请输入域控制器服务器名
+ActiveDirectoryAuthority.Domain Controller2=域控制器
+ActiveDirectoryAuthority.AdministrativeUserNameCannotBeNull=请输入管理员名
+ActiveDirectoryAuthority.AuthenticationCannotBeNull=请输入认证信息
+ActiveDirectoryAuthority.CacheLifetimeCannotBeNull=请输入缓存寿命
+ActiveDirectoryAuthority.CacheLifetimeMustBeAnInteger=缓存寿命必须为整数
+ActiveDirectoryAuthority.CacheLRUSizeCannotBeNull=请输入缓存LRU大小
+ActiveDirectoryAuthority.CacheLRUSizeMustBeAnInteger=缓存LRU大小必须为整数
+ActiveDirectoryAuthority.certificate=证书
diff --git a/connectors/activedirectory/pom.xml b/connectors/activedirectory/pom.xml
index 9e7fbbf..6a4f060 100644
--- a/connectors/activedirectory/pom.xml
+++ b/connectors/activedirectory/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/alfresco/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/alfresco/common_zh_CN.properties b/connectors/alfresco/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/alfresco/common_zh_CN.properties
new file mode 100644
index 0000000..26333a1
--- /dev/null
+++ b/connectors/alfresco/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/alfresco/common_zh_CN.properties
@@ -0,0 +1,52 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Fill in this file with Japanese words and phrases
+
+AlfrescoConnector.Server=服务器
+
+AlfrescoConnector.ParametersColon=参数: 
+
+AlfrescoConnector.TenantDomainColon=Tenant域: 
+AlfrescoConnector.UserNameColon=用户名: 
+AlfrescoConnector.PasswordColon=密码: 
+AlfrescoConnector.ProtocolColon=协议: 
+AlfrescoConnector.ServerColon=服务器: 
+AlfrescoConnector.PortColon=端口: 
+AlfrescoConnector.PathColon=路径: 
+AlfrescoConnector.SocketTimeoutColon=套接字超时值:
+
+AlfrescoConnector.TenantDomainEquals=Tenant域=
+AlfrescoConnector.UserNameEquals=用户名=
+AlfrescoConnector.PasswordEquals=密码=
+AlfrescoConnector.ProtocolEquals=协议=
+AlfrescoConnector.ServerEquals=服务器=
+AlfrescoConnector.PortEquals=端口=
+AlfrescoConnector.PathEquals=路径=
+AlfrescoConnector.SocketTimeoutEquals=套接字超时值=
+
+AlfrescoConnector.TheUsernameMustNotBeNull=请输入用户名
+AlfrescoConnector.ThePasswordMustNotBeNull=请输入密码
+AlfrescoConnector.ServerNameMustNotBeNull=请输入服务器名
+AlfrescoConnector.ServerNameCantContainSlash=服务器名不能包含‘/’字符
+AlfrescoConnector.ThePortMustNotBeNull=请输入端口号
+AlfrescoConnector.TheServerPortMustBeAValidInteger=服务器端口必须为有效的整数
+AlfrescoConnector.PathMustNotBeNull=请输入路径
+AlfrescoConnector.TheSocketTimeoutMustNotBeNull=连接器超时值不能为空
+AlfrescoConnector.TheSocketTimeoutMustBeAValidInteger=套接字超时值必须为有效的整数
+
+AlfrescoConnector.LuceneQuery=Lucene查询
+
+AlfrescoConnector.LuceneQueryColon=Lucene查询: 
diff --git a/connectors/alfresco/pom.xml b/connectors/alfresco/pom.xml
index e89ef25..6b379fc 100644
--- a/connectors/alfresco/pom.xml
+++ b/connectors/alfresco/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   
diff --git a/connectors/cmis/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/cmis/CmisRepositoryConnector.java b/connectors/cmis/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/cmis/CmisRepositoryConnector.java
index f351df5..e874a20 100644
--- a/connectors/cmis/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/cmis/CmisRepositoryConnector.java
+++ b/connectors/cmis/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/cmis/CmisRepositoryConnector.java
@@ -66,6 +66,8 @@
 import org.apache.manifoldcf.crawler.interfaces.ISeedingActivity;
 import org.apache.manifoldcf.crawler.system.Logging;
 
+import org.apache.commons.io.input.NullInputStream;
+
 /**
  * This is the "repository connector" for a CMIS-compliant repository.
  * 
@@ -1098,6 +1100,8 @@
           if(fileLength>0 && document.getContentStream()!=null){
             is = document.getContentStream().getStream();
             rd.setBinary(is, fileLength);
+          } else {
+            rd.setBinary(new NullInputStream(0),0);
           }
 
           //properties
diff --git a/connectors/cmis/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/cmis/common_zh_CN.properties b/connectors/cmis/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/cmis/common_zh_CN.properties
new file mode 100644
index 0000000..e1f1bd8
--- /dev/null
+++ b/connectors/cmis/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/cmis/common_zh_CN.properties
@@ -0,0 +1,58 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+CmisAuthorityConnector.Endpoint=端点: 
+CmisAuthorityConnector.RepositoryID=存储库ID: 
+CmisAuthorityConnector.UserMapping=用户映射: 
+CmisAuthorityConnector.TheEndpointMustBeNotNull=端点不能为Null
+CmisAuthorityConnector.Parameters=参数: 
+
+CmisRepositoryConnector.Server=服务器
+
+CmisRepositoryConnector.BindingColon=绑定: 
+CmisRepositoryConnector.UsernameColon=用户名: 
+CmisRepositoryConnector.PasswordColon=密码: 
+CmisRepositoryConnector.ProtocolColon=协议: 
+CmisRepositoryConnector.ServerColon=服务器: 
+CmisRepositoryConnector.PortColon=端口: 
+CmisRepositoryConnector.PathColon=路径: 
+CmisRepositoryConnector.RepositoryIDColon=存储库ID: 
+CmisRepositoryConnector.Optional=(可选)
+
+CmisRepositoryConnector.TheUsernameMustNotBeNull=请输入用户名
+CmisRepositoryConnector.ThePasswordMustNotBeNull=请输入密码
+CmisRepositoryConnector.TheBindingMustNotBeNull=请输入绑定
+CmisRepositoryConnector.ServerNameMustNotBeNull=请输入服务器名
+CmisRepositoryConnector.ServerNameCantContainSlash=服务器名不能包含‘/’字符
+CmisRepositoryConnector.ThePortMustNotBeNull=请输入端口号
+CmisRepositoryConnector.TheServerPortMustBeValidInteger=服务器端口必须为有效的整数
+CmisRepositoryConnector.PathMustNotBeNull=请输入路径
+
+CmisRepositoryConnector.CMISQuery=CMIS查询
+
+CmisRepositoryConnector.CMISQueryColon=CMIS查询: 
+
+CmisRepositoryConnector.ParametersColon=参数: 
+CmisRepositoryConnector.UsernameEquals=用户名=
+CmisRepositoryConnector.PasswordEquals=密码=
+CmisRepositoryConnector.BindingEquals=绑定=
+CmisRepositoryConnector.ProtocolEquals=协议=
+CmisRepositoryConnector.ServerEquals=服务器=
+CmisRepositoryConnector.PortEquals=端口=
+CmisRepositoryConnector.PathEquals=路径=
+CmisRepositoryConnector.RepositoryIdEquals=存储库ID=
+
+CmisAuthorityConnector.Repository=存储库
+CmisAuthorityConnector.UserMapping=用户映射
diff --git a/connectors/cmis/pom.xml b/connectors/cmis/pom.xml
index acca9c0..6031829 100644
--- a/connectors/cmis/pom.xml
+++ b/connectors/cmis/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   
@@ -224,6 +224,11 @@
         <artifactId>commons-lang</artifactId>
         <version>2.6</version>
     </dependency>
+     <dependency>
+        <groupId>commons-io</groupId>
+        <artifactId>commons-io</artifactId>
+        <version>${commons-io.version}</version>
+    </dependency>
     
     <!-- Test scope -->
     <dependency>
diff --git a/connectors/documentum/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/authorities/DCTM/common_zh_CN.properties b/connectors/documentum/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/authorities/DCTM/common_zh_CN.properties
new file mode 100644
index 0000000..b8d6404
--- /dev/null
+++ b/connectors/documentum/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/authorities/DCTM/common_zh_CN.properties
@@ -0,0 +1,87 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+DCTM.NoAccessTokensPresent=访问令牌不存在
+DCTM.NoAccessTokensSpecified=访问令牌未指定
+DCTM.Cache=缓存
+DCTM.CacheLifetime=缓存寿命: 
+DCTM.CacheLRUSize=缓存LRU大小: 
+DCTM.minutes=分
+DCTM.Docbase=Docbase
+DCTM.DocbaseName=Docbase名: 
+DCTM.DocbaseUserName=Docbase用户名: 
+DCTM.DocbasePassword=Docbase密码: 
+DCTM.DocbaseDomain=Docbase域: 
+DCTM.Webtop=Webtop
+DCTM.WebtopBaseURL=Webtop基URL
+DCTM.Parameters=参数: 
+DCTM.Paths=路径
+DCTM.DocumentTypes=文档类型
+DCTM.ContentTypes=内容类型
+DCTM.ContentLength=内容长度
+DCTM.Security=安全
+DCTM.PathMetadata=路径元数据
+DCTM.Security2=安全: 
+DCTM.PathAttributeName=路径属性名: 
+DCTM.Delete=删除
+DCTM.DeleteMapping=删除映射 #
+DCTM.NoMappingsSpecified=映射未指定
+DCTM.Add=添加
+DCTM.AddToMappings=添加到映射
+DCTM.MatchRegexp=匹配正则表达式: 
+DCTM.ReplaceString=替换字符串: 
+DCTM.CabinetFolderPaths=档案柜/文件夹路径: 
+DCTM.NoCabinetFolderPathsSpecified=档案柜/文件夹路径未指定(将扫描所有Docbase)
+DCTM.ObjectTypes=对象类型: 
+DCTM.allMetadataAttributes=(所有元数据属性)
+DCTM.NoDocumentTypesSpecified=文档类型未指定
+DCTM.ContentTypes2=内容类型: 
+DCTM.NoMimeTypesSpecified=MIME类型请指定 - 将处理所有文档
+DCTM.MaximumDocumentLength=最大文档长度: 
+DCTM.AccessTokens=访问令牌: 
+DCTM.PathNameMetadataAttribute=路径名元数据属性: 
+DCTM.NoPathNameMetadataAttributeSpecified=路径名元数据属性未指定
+DCTM.PathValueMapping=路径值映射: 
+DCTM.NoMappingsSpecified=映射未指定
+DCTM.PleaseSupplyTheNameOfADocbase=请输入Docbase名
+DCTM.TheConnectionRequiresAValidDocumentumUserName=请输入Documentum用户名
+DCTM.TheConnectionRequiresTheDocumentumUsersPassword=请输入Documentum用户密码
+DCTM.AuthenticationUsernameMatching=认证用户名匹配: 
+DCTM.CaseInsensitive=不区分大小写
+DCTM.CaseSensitive=区分大小写
+DCTM.UseSystemAcls=使用系统ACL: 
+DCTM.DontUseSystemAcls=不要使用系统ACL
+DCTM.certificate=证书
+DCTM.MaximumDocumentLengthMustBeNullOrAnInteger=最大文档长度必须为Null或整数
+DCTM.SelectAFolderFirst=请先选择文件夹
+DCTM.NullTokensNotAllowed=令牌不能为Null
+DCTM.EnterASpecificationFirst=请先输入规范
+DCTM.SpecificationMustBeValidRegularExpression=规范必须为有效的正则表达式
+DCTM.DeletePath=删除路径:  #
+DCTM.NoSpecificCabinetFolderPathsGiven=档案柜/文件夹路径未指定(将扫描所有docbase)
+DCTM.AddPath=添加路径
+DCTM.RemoveFromPath=从路径删除
+DCTM.AddToPath=添加到路径
+DCTM.PickAFolder=-- 请选择文件夹 --
+DCTM.DeleteAccessToken=删除访问令牌:  #
+DCTM.AddAccessToken=添加访问令牌
+DCTM.ServiceInterruptionOrInvalidCredentials=服务器中断或无效证书 - 请重新确认存储库连接
+DCTM.ContentLength=内容长度:
+DCTM.UserMapping=用户映射
+DCTM.SystemACLs=系统ACL
+DCTM.CacheLifetimeCannotBeNull=缓存寿命不能为Null
+DCTM.CacheLifetimeMustBeAnInteger=缓存寿命必须为整数
+DCTM.CacheLRUSizeCannotBeNull=缓存LRU大小不能为Null
+DCTM.CacheLRUSizeMustBeAnInteger=缓存LRU大小必须为整数
diff --git a/connectors/documentum/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/DCTM/common_zh_CN.properties b/connectors/documentum/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/DCTM/common_zh_CN.properties
new file mode 100644
index 0000000..2329d0e
--- /dev/null
+++ b/connectors/documentum/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/DCTM/common_zh_CN.properties
@@ -0,0 +1,80 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+DCTM.NoAccessTokensPresent=访问令牌不存在
+DCTM.NoAccessTokensSpecified=访问令牌未指定
+DCTM.Docbase=Docbase
+DCTM.DocbaseName=Docbase名: 
+DCTM.DocbaseUserName=Docbase用户名: 
+DCTM.DocbasePassword=Docbase密码: 
+DCTM.DocbaseDomain=Docbase域: 
+DCTM.Webtop=Webtop
+DCTM.WebtopBaseURL=Webtop基URL
+DCTM.Parameters=参数: 
+DCTM.Paths=路径
+DCTM.DocumentTypes=文档类型
+DCTM.ContentTypes=内容类型
+DCTM.ContentLength=内容长度
+DCTM.Security=安全
+DCTM.PathMetadata=路径元数据
+DCTM.Security2=安全: 
+DCTM.PathAttributeName=路径属性名: 
+DCTM.Delete=删除
+DCTM.DeleteMapping=删除映射 #
+DCTM.NoMappingsSpecified=映射未指定
+DCTM.Add=添加
+DCTM.AddToMappings=添加到映射
+DCTM.MatchRegexp=匹配正则表达式: 
+DCTM.ReplaceString=替换字符串: 
+DCTM.CabinetFolderPaths=档案柜/文件夹路径: 
+DCTM.NoCabinetFolderPathsSpecified=档案柜/文件夹路径未指定(扫描所有docbase)
+DCTM.ObjectTypes=对象类型: 
+DCTM.allMetadataAttributes=(所有元数据属性)
+DCTM.NoDocumentTypesSpecified=文档类型未指定
+DCTM.ContentTypes2=内容类型: 
+DCTM.NoMimeTypesSpecified=MIME类型未指定 - 读取所有
+DCTM.MaximumDocumentLength=最大文档长度: 
+DCTM.AccessTokens=访问令牌: 
+DCTM.PathNameMetadataAttribute=路径名元数据属性: 
+DCTM.NoPathNameMetadataAttributeSpecified=路径名元数据属性未指定
+DCTM.PathValueMapping=路径值映射: 
+DCTM.NoMappingsSpecified=映射未指定
+DCTM.PleaseSupplyTheNameOfADocbase=请输入Docbase名
+DCTM.TheConnectionRequiresAValidDocumentumUserName=请输入Documentum用户名
+DCTM.TheConnectionRequiresTheDocumentumUsersPassword=请输入Documentum密码
+DCTM.AuthenticationUsernameMatching=认证用户名匹配: 
+DCTM.CaseInsensitive=不区分大小写
+DCTM.CaseSensitive=区分大小写
+DCTM.UseSystemAcls=使用系统ACL: 
+DCTM.DontUseSystemAcls=不使用系统ACL
+DCTM.certificate=证书
+DCTM.MaximumDocumentLengthMustBeNullOrAnInteger=最大文档长度必须为Null或整数
+DCTM.SelectAFolderFirst=请先选择文件夹
+DCTM.NullTokensNotAllowed=请输入令牌
+DCTM.EnterASpecificationFirst=请先输入规范
+DCTM.SpecificationMustBeValidRegularExpression=规范必须为有效的正则表达式
+DCTM.DeletePath=删除路径:  #
+DCTM.NoSpecificCabinetFolderPathsGiven=档案柜/文件夹未指定(扫描所有docbase)
+DCTM.AddPath=添加路径
+DCTM.RemoveFromPath=从路径删除
+DCTM.AddToPath=添加到路径
+DCTM.PickAFolder=-- 请选择文件夹 --
+DCTM.DeleteAccessToken=删除访问令牌:  #
+DCTM.AddAccessToken=添加访问令牌
+DCTM.ServiceInterruptionOrInvalidCredentials=服务器中断或无效证书 - 请重新检查存储库连接
+DCTM.ContentLength=内容长度:
+DCTM.UserMapping=用户映射
+DCTM.SystemACLs=系统ACL
+
diff --git a/connectors/dropbox/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/dropbox/common_zh_CN.properties b/connectors/dropbox/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/dropbox/common_zh_CN.properties
new file mode 100644
index 0000000..8a7b2cc
--- /dev/null
+++ b/connectors/dropbox/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/dropbox/common_zh_CN.properties
@@ -0,0 +1,39 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+DropboxRepositoryConnector.Server=服务器
+DropboxRepositoryConnector.Security=安全
+DropboxRepositoryConnector.DropboxPath=Dropbox路径
+
+DropboxRepositoryConnector.AppKeyColon=Application Key:
+DropboxRepositoryConnector.AppSecretColon=Application Secret:
+DropboxRepositoryConnector.KeyColon=Key:
+DropboxRepositoryConnector.SecretColon=Secret:
+
+DropboxRepositoryConnector.TheAppKeyMustNotBeNull=Application Key不能为Null
+DropboxRepositoryConnector.TheAppSecretMustNotBeNull=Application Secret不能为Null
+DropboxRepositoryConnector.TheKeyMustNotBeNull=Key不能为Null
+DropboxRepositoryConnector.TheSecretMustNotBeNull=Secret不能为Null
+DropboxRepositoryConnector.PathMustNotBeNull=路径不能为Null
+DropboxRepositoryConnector.TypeInAnAccessToken=输入访问令牌
+
+DropboxRepositoryConnector.DropboxPathColon=索引对象的Dropbox路径:
+
+DropboxRepositoryConnector.NoAccessTokensPresent=访问令牌不存在
+DropboxRepositoryConnector.Add=添加
+DropboxRepositoryConnector.AddAccessToken=添加访问令牌
+DropboxRepositoryConnector.Delete=删除
+DropboxRepositoryConnector.DeleteToken=删除令牌 #
+DropboxRepositoryConnector.AccessTokensColon=访问令牌:
diff --git a/connectors/dropbox/pom.xml b/connectors/dropbox/pom.xml
index 9259cb2..fe3a251 100644
--- a/connectors/dropbox/pom.xml
+++ b/connectors/dropbox/pom.xml
@@ -22,7 +22,7 @@
     <parent>

         <groupId>org.apache.manifoldcf</groupId>

         <artifactId>mcf-connectors</artifactId>

-        <version>1.6-SNAPSHOT</version>

+        <version>1.7-SNAPSHOT</version>

     </parent>

     <modelVersion>4.0.0</modelVersion>

 

diff --git a/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchConnection.java b/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchConnection.java
index 1a0b9e4..c2749a3 100644
--- a/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchConnection.java
+++ b/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchConnection.java
@@ -20,15 +20,14 @@
 package org.apache.manifoldcf.agents.output.elasticsearch;
 
 import java.io.IOException;
-import java.io.UnsupportedEncodingException;
 import java.io.Writer;
 import java.io.StringWriter;
 import java.io.Reader;
 import java.io.InputStreamReader;
 import java.io.InputStream;
 import java.io.InterruptedIOException;
-import java.net.URLEncoder;
 import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 
 import org.apache.http.client.HttpClient;
 import org.apache.http.impl.client.DefaultRedirectStrategy;
@@ -52,9 +51,9 @@
 import org.apache.http.HttpException;
 import org.apache.http.ParseException;
 
-import org.apache.commons.io.IOUtils;
 import org.apache.manifoldcf.core.interfaces.ManifoldCFException;
 import org.apache.manifoldcf.agents.interfaces.ServiceInterruption;
+import org.apache.manifoldcf.core.util.URLEncoder;
 
 public class ElasticSearchConnection
 {
@@ -80,8 +79,6 @@
   }
 
   private Result result;
-
-  private final static Charset UTF_8 = Charset.forName("UTF-8");
   
   protected ElasticSearchConnection(ElasticSearchConfig config, HttpClient client)
   {
@@ -95,16 +92,6 @@
     indexName = config.getIndexName();
   }
 
-  protected final String urlEncode(String t) throws ManifoldCFException
-  {
-    try
-    {
-      return URLEncoder.encode(t, "UTF-8");
-    } catch (UnsupportedEncodingException e)
-    {
-      throw new ManifoldCFException(e);
-    }
-  }
 
   protected StringBuffer getApiUrl(String command, boolean checkConnection) throws ManifoldCFException
   {
@@ -112,7 +99,7 @@
     if (!serverLocation.endsWith("/"))
       url.append('/');
     if(!checkConnection)
-      url.append(urlEncode(indexName)+"/");
+      url.append(URLEncoder.encode(indexName)).append("/");
     url.append(command);
     callUrlSnippet = url.toString();
     return url;
@@ -291,13 +278,13 @@
         {
           ContentType ct = ContentType.get(entity);
           if (ct == null)
-            charSet = UTF_8;
+            charSet = StandardCharsets.UTF_8;
           else
             charSet = ct.getCharset();
         }
         catch (ParseException e)
         {
-          charSet = UTF_8;
+          charSet = StandardCharsets.UTF_8;
         }
         char[] buffer = new char[65536];
         Reader r = new InputStreamReader(is,charSet);
diff --git a/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchDelete.java b/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchDelete.java
index a6eaad5..9e02092 100644
--- a/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchDelete.java
+++ b/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchDelete.java
@@ -24,7 +24,7 @@
 
 import org.apache.manifoldcf.core.interfaces.ManifoldCFException;
 import org.apache.manifoldcf.agents.interfaces.ServiceInterruption;
-import org.apache.manifoldcf.agents.output.elasticsearch.ElasticSearchConnection.Result;
+import org.apache.manifoldcf.core.util.URLEncoder;
 import org.apache.manifoldcf.crawler.system.Logging;
 
 public class ElasticSearchDelete extends ElasticSearchConnection
@@ -38,9 +38,7 @@
   public void execute(String documentURI)
       throws ManifoldCFException, ServiceInterruption
   {
-    try
-    {
-      String idField = java.net.URLEncoder.encode(documentURI,"utf-8");
+      String idField = URLEncoder.encode(documentURI);
       HttpDelete method = new HttpDelete(config.getServerLocation() +
           "/" + config.getIndexName() + "/" + config.getIndexType()
           + "/" + idField);
@@ -52,10 +50,5 @@
       // Log the result as an error, but proceed anyway.
       setResult(Result.ERROR, error);
       Logging.connectors.warn("ES: Delete failed: "+getResponse());
-    }
-    catch (java.io.UnsupportedEncodingException e)
-    {
-      throw new ManifoldCFException(e.getMessage(),e);
-    }
   }
 }
diff --git a/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchIndex.java b/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchIndex.java
index a3427ca..a76f3e2 100644
--- a/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchIndex.java
+++ b/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchIndex.java
@@ -24,6 +24,7 @@
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
+import java.nio.charset.StandardCharsets;
 import java.util.Iterator;
 
 import org.apache.http.client.HttpClient;
@@ -39,6 +40,7 @@
 import org.apache.manifoldcf.agents.output.elasticsearch.ElasticSearchConnection.Result;
 import org.apache.manifoldcf.core.common.Base64;
 import org.apache.manifoldcf.core.interfaces.ManifoldCFException;
+import org.apache.manifoldcf.core.util.URLEncoder;
 import org.apache.manifoldcf.crawler.system.Logging;
 
 public class ElasticSearchIndex extends ElasticSearchConnection
@@ -112,7 +114,7 @@
     @Override
     public void writeTo(OutputStream out)
       throws IOException {
-      PrintWriter pw = new PrintWriter(new OutputStreamWriter(out, "utf-8"));
+      PrintWriter pw = new PrintWriter(new OutputStreamWriter(out, StandardCharsets.UTF_8));
       try
       {
         pw.print("{");
@@ -267,14 +269,8 @@
     throws ManifoldCFException, ServiceInterruption
   {
     String idField;
-    try
-    {
-      idField = java.net.URLEncoder.encode(documentURI,"utf-8");
-    }
-    catch (java.io.UnsupportedEncodingException e)
-    {
-      throw new ManifoldCFException(e.getMessage(),e);
-    }
+
+    idField = URLEncoder.encode(documentURI);
 
     StringBuffer url = getApiUrl(config.getIndexType() + "/" + idField, false);
     HttpPut put = new HttpPut(url.toString());
diff --git a/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_zh_CN.properties b/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_zh_CN.properties
new file mode 100644
index 0000000..14f03ce
--- /dev/null
+++ b/connectors/elasticsearch/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/elasticsearch/common_zh_CN.properties
@@ -0,0 +1,31 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+ElasticSearchConnector.Parameters=参数
+
+ElasticSearchConnector.ServerLocation=服务器
+ElasticSearchConnector.URLColon=(URL):
+ElasticSearchConnector.IndexNameColon=索引名: 
+ElasticSearchConnector.IndexTypeColon=索引类型: 
+
+ElasticSearchConnector.PleaseSupplyValidElasticSearchLocation=请输入有效的Elasticsearch服务器URL
+ElasticSearchConnector.PleaseSupplyValidIndexName=请输入有效的索引名
+ElasticSearchConnector.PleaseSupplyValidIndexType=请输入有效的索引类型
+
+ElasticSearchConnector.ElasticSearch=Elasticsearch
+
+ElasticSearchConnector.MaxFileSizeBytesColon=最大文件大小(字节):
+ElasticSearchConnector.AllowedMIMETypesColon=被允许的MIME类型: 
+ElasticSearchConnector.AllowedFileExtensionsColon=被允许的文件扩展名: 
diff --git a/connectors/elasticsearch/pom.xml b/connectors/elasticsearch/pom.xml
index 658c962..47f7e83 100644
--- a/connectors/elasticsearch/pom.xml
+++ b/connectors/elasticsearch/pom.xml
@@ -20,7 +20,7 @@
   <parent>

     <groupId>org.apache.manifoldcf</groupId>

     <artifactId>mcf-connectors</artifactId>

-    <version>1.6-SNAPSHOT</version>

+    <version>1.7-SNAPSHOT</version>

   </parent>

   <modelVersion>4.0.0</modelVersion>

   

diff --git a/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConnector.java b/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConnector.java
index 9d493c0..971f1b1 100644
--- a/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConnector.java
+++ b/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConnector.java
@@ -23,6 +23,7 @@
 import org.apache.manifoldcf.agents.interfaces.RepositoryDocument;
 import org.apache.manifoldcf.agents.interfaces.ServiceInterruption;
 import org.apache.manifoldcf.core.interfaces.*;
+import org.apache.manifoldcf.core.util.URLEncoder;
 import org.apache.manifoldcf.crawler.interfaces.*;
 import org.apache.manifoldcf.crawler.system.Logging;
 
@@ -1120,18 +1121,14 @@
   /** Create a document's URI given a template, a folder name, and a message ID */
   protected static String makeDocumentURI(String urlTemplate, String folderName, String id)
   {
-    try {
       // First, URL encode folder name and id
-      String encodedFolderName = java.net.URLEncoder.encode(folderName, "utf-8");
-      String encodedId = java.net.URLEncoder.encode(id, "utf-8");
+      String encodedFolderName = URLEncoder.encode(folderName);
+      String encodedId = URLEncoder.encode(id);
       // The template is already URL encoded, except for the substitution points
       Map<String,String> subsMap = new HashMap<String,String>();
       subsMap.put("FOLDERNAME", encodedFolderName);
       subsMap.put("MESSAGEID", encodedId);
       return substitute(urlTemplate, subsMap);
-    } catch (UnsupportedEncodingException e) {
-      throw new RuntimeException("No utf-8 encoder found: "+e.getMessage(), e);
-    }
   }
 
   protected static String substitute(String template, Map<String,String> map)
diff --git a/connectors/email/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/email/common_zh_CN.properties b/connectors/email/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/email/common_zh_CN.properties
new file mode 100644
index 0000000..7e7a1c2
--- /dev/null
+++ b/connectors/email/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/email/common_zh_CN.properties
@@ -0,0 +1,57 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+EmailConnector.Server=服务器
+EmailConnector.URL=URL
+EmailConnector.Metadata=元数据
+EmailConnector.Filter=过滤器
+
+EmailConnector.EnterAMailServerHostName=请输入邮件服务器主机名
+EmailConnector.PleaseSelectAConfigurationParameterName=请选择配置参数名
+EmailConnector.PleaseSelectAMetadataName=请选择元数据名
+EmailConnector.ValueCannotBeBlank=值不能为空
+EmailConnector.URLTemplateCannotBeBlank=URL模版不能为空
+
+EmailConnector.URLTemplateColon=URL模版:
+EmailConnector.ConfigurationPropertiesColon=配置属性:
+EmailConnector.ProtocolColon=协议:
+EmailConnector.HostNameColon=主机名:
+EmailConnector.PortColon=端口:
+EmailConnector.UserNameColon=用户名:
+EmailConnector.PasswordColon=密码:
+EmailConnector.MatchesColon=匹配:
+EmailConnector.FoldersColon=文件夹:
+EmailConnector.RecordFilterColon=记录过滤器:
+EmailConnector.ServerProperty=服务器属性
+EmailConnector.Value=值
+EmailConnector.NoServerPropertiesSpecified=服务器属性未指定
+EmailConnector.AddNewMatch=添加新匹配
+EmailConnector.AddNewProperty=添加新属性
+EmailConnector.Add=添加
+EmailConnector.DeleteMatchNumber=删除匹配 #
+EmailConnector.DeletePropertyNumber=删除属性 #
+EmailConnector.Delete=删除
+EmailConnector.MetadataName=元数据名
+EmailConnector.NoMetadataSpecified=元数据未指定
+EmailConnector.SelectMetadataName=-- 选择元数据名 --
+EmailConnector.IncludedMetadataColon=被包含的元数据:
+
+
+
+
+
+
+
+
diff --git a/connectors/email/pom.xml b/connectors/email/pom.xml
index fd50a3a..81a8b31 100644
--- a/connectors/email/pom.xml
+++ b/connectors/email/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/filenet/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/filenet/common_zh_CN.properties b/connectors/filenet/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/filenet/common_zh_CN.properties
new file mode 100644
index 0000000..ed14b69
--- /dev/null
+++ b/connectors/filenet/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/filenet/common_zh_CN.properties
@@ -0,0 +1,84 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+FilenetConnector.NoAccessTokensPresent=访问令牌不存在
+FilenetConnector.NoAccessTokensSpecified=访问令牌未指定
+FilenetConnector.Server=服务器
+FilenetConnector.ObjectStore=对象存储
+FilenetConnector.DocumentURL=文档URL
+FilenetConnector.Credentials=凭证
+FilenetConnector.ServerProtocol=服务器协议: 
+FilenetConnector.ServerHostName=服务器主机名: 
+FilenetConnector.ServerPort=服务器端口: 
+FilenetConnector.ServerWebServiceLocation=服务器Web服务位置: 
+FilenetConnector.DocumentURLProtocol=文档URL协议: 
+FilenetConnector.DocumentURLHostName=文档URL主机名: 
+FilenetConnector.DocumentURLPort=文档URL端口: 
+FilenetConnector.DocumentURLLocation=文档URL: 
+FilenetConnector.FileNetDomainName=FileNet域名: 
+FilenetConnector.ObjectStoreName=对象存储名: 
+FilenetConnector.UserID=用户ID: 
+FilenetConnector.Password=密码: 
+FilenetConnector.Parameters=参数: 
+FilenetConnector.Delete=删除
+FilenetConnector.DeletePath=删除路径 #
+FilenetConnector.NoFoldersChosen=文件夹未选定 - 将处理所有文档
+FilenetConnector.Add=添加
+FilenetConnector.AddPath=添加路径
+FilenetConnector.RemoveFromPath=从路径排除
+FilenetConnector.AddToPath=添加到路径
+FilenetConnector.PickAFolder=请选择文件夹
+FilenetConnector.Include=包含
+FilenetConnector.DocumentCriteria=文档标准: 
+FilenetConnector.NoCriteriaSpecified=(标准未指定 - 将处理所有文档)
+FilenetConnector.IngestAllMetadataFields=爬取所有元数据字段
+FilenetConnector.MetadataFields=元数据字段: 
+FilenetConnector.MimeTypesToInclude=包含对象MIME类型: 
+FilenetConnector.Security2=安全: 
+FilenetConnector.Folders=文件夹
+FilenetConnector.DocumentClasses=文档类
+FilenetConnector.MimeTypes=MIME类型
+FilenetConnector.Security=安全
+FilenetConnector.NoIncludedDocumentClasses=文档类不存在
+FilenetConnector.IncludedDocumentClasses=所包含的文档类: 
+FilenetConnector.Metadata=元数据: 
+FilenetConnector.DocumentsMatching=文档匹配: 
+FilenetConnector.IncludedMimeTypes=所包含的MIME类型: 
+FilenetConnector.NoIncludedMimeTypes=MIME类型不存在 - 将处理所有文档
+FilenetConnector.Folders2=文件夹: 
+FilenetConnector.AllFoldersSpecified=指定了所有文件夹
+FilenetConnector.Security2=安全: 
+FilenetConnector.AccessTokens=访问令牌: 
+FilenetConnector.TheConnectionRequiresAFileNetHostName=请输入FileNet主机名
+FilenetConnector.TheServerPortMustBeAnInteger=端口号必须为整数
+FilenetConnector.TheDocumentURLRequiresAHostName=请输入文档URL的主机名
+FilenetConnector.TheDocumentURLPortMustBeAnInteger=文档URL端口必须为整数
+FilenetConnector.TheFileNetDomainNameCannotBeNull=FileNet域名不能为Null
+FilenetConnector.TheObjectStoreNameCannotBeNull=对象存储名不能为Null
+FilenetConnector.TheConnectionRequiresAValidFileNetUserID=请输入有效的FileNet用户ID
+FilenetConnector.TheConnectionRequiresTheFileNetUsersPassword=请输入FileNet用户密码
+FilenetConnector.SelectAFolderFirst=请先选择文件夹
+FilenetConnector.SelectAFieldFirst=请先选择字段
+FilenetConnector.SelectAMatchType=请选择匹配类型
+FilenetConnector.NullTokensNotAllowed=令牌不能为Null
+FilenetConnector.AddMatchFor=添加匹配
+FilenetConnector.Equals=等于
+FilenetConnector.NotEquals=不等于
+FilenetConnector.Like=‘Like’ (通配符‘%’)
+FilenetConnector.Enabled=有效&nbsp;\n
+FilenetConnector.Disabled=无效\n
+FilenetConnector.DeleteAccessToken=删除访问令牌:  #
+FilenetConnector.AddAccessToken=添加访问令牌
+FilenetConnector.AllDocumentsInClass=类中所有文档
diff --git a/connectors/filesystem/connector/src/main/java/org/apache/manifoldcf/agents/output/filesystem/FileOutputConnector.java b/connectors/filesystem/connector/src/main/java/org/apache/manifoldcf/agents/output/filesystem/FileOutputConnector.java
index 291d8d5..33d61b7 100644
--- a/connectors/filesystem/connector/src/main/java/org/apache/manifoldcf/agents/output/filesystem/FileOutputConnector.java
+++ b/connectors/filesystem/connector/src/main/java/org/apache/manifoldcf/agents/output/filesystem/FileOutputConnector.java
@@ -25,10 +25,10 @@
 import java.io.IOException;
 import java.io.InterruptedIOException;
 import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
+
 import java.net.URI;
 import java.net.URISyntaxException;
-import java.net.URLEncoder;
+
 import java.nio.channels.ClosedChannelException;
 import java.nio.channels.FileChannel;
 import java.nio.channels.FileLock;
diff --git a/connectors/filesystem/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/filesystem/FileConnector.java b/connectors/filesystem/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/filesystem/FileConnector.java
index e185db9..c21b681 100644
--- a/connectors/filesystem/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/filesystem/FileConnector.java
+++ b/connectors/filesystem/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/filesystem/FileConnector.java
@@ -27,8 +27,6 @@
 import java.io.*;
 import java.net.URI;
 import java.net.URISyntaxException;
-import java.net.URLDecoder;
-import java.net.URLEncoder;
 
 /** This is the "repository connector" for a file system.  It's a relative of the share crawler, and should have
 * comparable basic functionality, with the exception of the ability to use ActiveDirectory and look at other shares.
diff --git a/connectors/solr/upstream-diffs/README b/connectors/filesystem/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/filesystem/common_zh_CN.properties
similarity index 65%
copy from connectors/solr/upstream-diffs/README
copy to connectors/filesystem/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/filesystem/common_zh_CN.properties
index 3fcfe2f..69f624d 100644
--- a/connectors/solr/upstream-diffs/README
+++ b/connectors/filesystem/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/filesystem/common_zh_CN.properties
@@ -1,11 +1,11 @@
 # Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
+# contributor license agreements.  See the NOTICE file distributed with
 # this work for additional information regarding copyright ownership.
 # The ASF licenses this file to You under the Apache License, Version 2.0
 # (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
+# the License.  You may obtain a copy of the License at
 #
-# http://www.apache.org/licenses/LICENSE-2.0
+#     http://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
@@ -13,4 +13,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-The lucene output connector furnishes an output connection between Connector Framework and SOLR.  There are no upstream dependencies.
+FileConnector.PathTabName=路径标签名
+FileConnector.RootPath=根路径
+FileConnector.RootPathCannotBeNull=根路径不能为Null
diff --git a/connectors/filesystem/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/filesystem/common_zh_CN.properties b/connectors/filesystem/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/filesystem/common_zh_CN.properties
new file mode 100644
index 0000000..f945ed2
--- /dev/null
+++ b/connectors/filesystem/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/filesystem/common_zh_CN.properties
@@ -0,0 +1,41 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+FileConnector.Paths=存储库路径
+FileConnector.Paths2=存储库路径: 
+FileConnector.RootPath=根路径
+FileConnector.ConvertToURI=转换成URI
+FileConnector.ConvertToURIExample= 例) http/xyz/index.html => http://xyz/index.html
+FileConnector.Yes=是
+FileConnector.No=否
+FileConnector.Rules=规则
+FileConnector.Delete=删除
+FileConnector.DeletePath=删除路径 #
+FileConnector.IncludeExclude=包含/排除
+FileConnector.FileDirectory=文件/目录
+FileConnector.Match=匹配
+FileConnector.include=包含
+FileConnector.exclude=排除
+FileConnector.File=文件
+FileConnector.Directory=目录
+FileConnector.NoDocumentsSpecified=文档未指定
+FileConnector.Add=添加
+FileConnector.InsertHere=在这里插入
+FileConnector.include=包含
+FileConnector.NoRulesDefined=规则未指定
+FileConnector.InsertNewMatchForPath=为路径插入新匹配:  #
+FileConnector.DeletePath=删除路径:  #
+FileConnector.AddNewMatchForPath=为路径添加新匹配:  #
+FileConnector.AddNewPath=添加新路径
diff --git a/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/FileHelper.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/FileHelper.java
index 68b1cb2..c0491e5 100644
--- a/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/FileHelper.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/FileHelper.java
@@ -19,6 +19,7 @@
 package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import java.io.*;
+import java.nio.charset.StandardCharsets;
 import java.util.*;
 
 /** Helper class for local file manipulation */
@@ -57,7 +58,7 @@
     OutputStream os = new FileOutputStream(f);
     try
     {
-      Writer w = new OutputStreamWriter(os,"utf-8");
+      Writer w = new OutputStreamWriter(os, StandardCharsets.UTF_8);
       try
       {
         w.write(contents);
diff --git a/connectors/filesystem/pom.xml b/connectors/filesystem/pom.xml
index f2cede6..cb17cd0 100644
--- a/connectors/filesystem/pom.xml
+++ b/connectors/filesystem/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/filesystem/upstream-diffs/README b/connectors/filesystem/upstream-diffs/README
deleted file mode 100644
index 97a0f3e..0000000
--- a/connectors/filesystem/upstream-diffs/README
+++ /dev/null
@@ -1,16 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-The file system connector is a repository connector that is used mainly in testing, and as an example.  It has no upstream requirements or modifications.
diff --git a/connectors/generic/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/generic/GenericAuthority.java b/connectors/generic/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/generic/GenericAuthority.java
index cffc4cc..5599b03 100644
--- a/connectors/generic/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/generic/GenericAuthority.java
+++ b/connectors/generic/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/generic/GenericAuthority.java
@@ -16,10 +16,11 @@
 package org.apache.manifoldcf.authorities.authorities.generic;
 
 import java.io.IOException;
-import java.io.UnsupportedEncodingException;
 import java.net.MalformedURLException;
 import java.net.URL;
-import java.net.URLEncoder;
+import org.apache.manifoldcf.core.util.URLEncoder;
+
+import java.nio.charset.StandardCharsets;
 import java.util.List;
 import java.util.Locale;
 import javax.xml.bind.JAXBContext;
@@ -284,12 +285,9 @@
   protected AuthorizationResponse getAuthorizationResponseUncached(HttpClient client, String userName)
     throws ManifoldCFException {
     StringBuilder url = new StringBuilder(genericEntryPoint);
-    try {
-      url.append("?").append(ACTION_PARAM_NAME).append("=").append(ACTION_AUTH);
-      url.append("&username=").append(URLEncoder.encode(userName, "UTF-8"));
-    } catch (UnsupportedEncodingException ex) {
-      throw new ManifoldCFException("getAuthorizationResponseUncached error: " + ex.getMessage(), ex);
-    }
+    url.append("?").append(ACTION_PARAM_NAME).append("=").append(ACTION_AUTH);
+    url.append("&username=").append(URLEncoder.encode(userName));
+
 
     try {
       FetchTokensThread t = new FetchTokensThread(client, url.toString());
diff --git a/connectors/generic/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/generic/GenericConnector.java b/connectors/generic/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/generic/GenericConnector.java
index 70cbb16..66a4a7e 100644
--- a/connectors/generic/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/generic/GenericConnector.java
+++ b/connectors/generic/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/generic/GenericConnector.java
@@ -20,7 +20,8 @@
 import java.io.*;

 import java.net.MalformedURLException;

 import java.net.URL;

-import java.net.URLEncoder;

+import org.apache.manifoldcf.core.util.URLEncoder;

+import java.nio.charset.StandardCharsets;

 import java.text.SimpleDateFormat;

 import java.util.*;

 import java.util.concurrent.ConcurrentHashMap;

@@ -204,13 +205,9 @@
     for (int i = 0; i < spec.getChildCount(); i++) {

       SpecificationNode sn = spec.getChild(i);

       if (sn.getType().equals("param")) {

-        try {

           String paramName = sn.getAttributeValue("name");

           String paramValue = sn.getValue();

-          url.append("&").append(URLEncoder.encode(paramName, "UTF-8")).append("=").append(URLEncoder.encode(paramValue, "UTF-8"));

-        } catch (UnsupportedEncodingException ex) {

-          throw new ManifoldCFException("addSeedDocuments error: " + ex.getMessage(), ex);

-        }

+          url.append("&").append(URLEncoder.encode(paramName)).append("=").append(URLEncoder.encode(paramValue));

       }

     }

     ExecuteSeedingThread t = new ExecuteSeedingThread(client, url.toString());

@@ -272,22 +269,19 @@
 

     HttpClient client = getClient();

     StringBuilder url = new StringBuilder(genericEntryPoint);

-    try {

+

       url.append("?").append(ACTION_PARAM_NAME).append("=").append(ACTION_ITEMS);

       for (int i = 0; i < documentIdentifiers.length; i++) {

-        url.append("&id[]=").append(URLEncoder.encode(documentIdentifiers[i], "UTF-8"));

+        url.append("&id[]=").append(URLEncoder.encode(documentIdentifiers[i]));

       }

       for (int i = 0; i < spec.getChildCount(); i++) {

         SpecificationNode sn = spec.getChild(i);

         if (sn.getType().equals("param")) {

           String paramName = sn.getAttributeValue("name");

           String paramValue = sn.getValue();

-          url.append("&").append(URLEncoder.encode(paramName, "UTF-8")).append("=").append(URLEncoder.encode(paramValue, "UTF-8"));

+          url.append("&").append(URLEncoder.encode(paramName)).append("=").append(URLEncoder.encode(paramValue));

         }

       }

-    } catch (UnsupportedEncodingException ex) {

-      throw new ManifoldCFException("getDocumentVersions error: " + ex.getMessage(), ex);

-    }

     try {

       DocumentVersionThread versioningThread = new DocumentVersionThread(client, url.toString(), documentIdentifiers, genericAuthMode, rights, documentCache);

       versioningThread.start();

@@ -401,7 +395,7 @@
       }

       if (item.content != null) {

         try {

-          byte[] content = item.content.getBytes("UTF-8");

+          byte[] content = item.content.getBytes(StandardCharsets.UTF_8);

           ByteArrayInputStream is = new ByteArrayInputStream(content);

           try {

             doc.setBinary(is, content.length);

@@ -415,20 +409,18 @@
         }

       } else {

         StringBuilder url = new StringBuilder(genericEntryPoint);

-        try {

+

           url.append("?").append(ACTION_PARAM_NAME).append("=").append(ACTION_ITEM);

-          url.append("&id=").append(URLEncoder.encode(documentIdentifiers[i], "UTF-8"));

+          url.append("&id=").append(URLEncoder.encode(documentIdentifiers[i]));

           for (int j = 0; j < spec.getChildCount(); j++) {

             SpecificationNode sn = spec.getChild(j);

             if (sn.getType().equals("param")) {

               String paramName = sn.getAttributeValue("name");

               String paramValue = sn.getValue();

-              url.append("&").append(URLEncoder.encode(paramName, "UTF-8")).append("=").append(URLEncoder.encode(paramValue, "UTF-8"));

+              url.append("&").append(URLEncoder.encode(paramName)).append("=").append(URLEncoder.encode(paramValue));

             }

           }

-        } catch (UnsupportedEncodingException ex) {

-          throw new ManifoldCFException("processDocuments error: " + ex.getMessage(), ex);

-        }

+

 

         ExecuteProcessThread t = new ExecuteProcessThread(client, url.toString());

         try {

diff --git a/connectors/generic/pom.xml b/connectors/generic/pom.xml
index e5b0ae7..72df13e 100644
--- a/connectors/generic/pom.xml
+++ b/connectors/generic/pom.xml
@@ -20,7 +20,7 @@
     <parent>

         <groupId>org.apache.manifoldcf</groupId>

         <artifactId>mcf-connectors</artifactId>

-        <version>1.6-SNAPSHOT</version>

+        <version>1.7-SNAPSHOT</version>

     </parent>

     <modelVersion>4.0.0</modelVersion>

 

diff --git a/connectors/googledrive/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/googledrive/common_zh_CN.properties b/connectors/googledrive/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/googledrive/common_zh_CN.properties
new file mode 100644
index 0000000..679e915
--- /dev/null
+++ b/connectors/googledrive/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/googledrive/common_zh_CN.properties
@@ -0,0 +1,38 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+GoogleDriveRepositoryConnector.Server=服务器
+GoogleDriveRepositoryConnector.GoogleDriveQuery=种子查询
+GoogleDriveRepositoryConnector.Security=安全
+
+GoogleDriveRepositoryConnector.RefreshTokenColon=刷新令牌:
+GoogleDriveRepositoryConnector.ClientIDColon=Client ID:
+GoogleDriveRepositoryConnector.ClientSecretColon=Client Secret:
+
+
+GoogleDriveRepositoryConnector.RefreshTokenMustNotBeNull=刷新令牌不能为Null
+GoogleDriveRepositoryConnector.ClientSecretMustNotBeNull=Client Secret不能为Null
+GoogleDriveRepositoryConnector.ClientMustNotBeNull=客户端不能为Null
+
+GoogleDriveRepositoryConnector.SeedQueryCannotBeNull=种子查询不能为Null
+GoogleDriveRepositoryConnector.GoogleDriveQueryColon=Google Drive种子查询:
+
+GoogleDriveRepositoryConnector.NoAccessTokensPresent=访问令牌不存在
+GoogleDriveRepositoryConnector.Add=添加
+GoogleDriveRepositoryConnector.AddAccessToken=添加访问令牌
+GoogleDriveRepositoryConnector.Delete=删除
+GoogleDriveRepositoryConnector.DeleteToken=删除令牌 #
+GoogleDriveRepositoryConnector.AccessTokensColon=访问令牌:
+GoogleDriveRepositoryConnector.TypeInAnAccessToken=输入访问令牌
diff --git a/connectors/googledrive/pom.xml b/connectors/googledrive/pom.xml
index d2d9943..14a1b49 100644
--- a/connectors/googledrive/pom.xml
+++ b/connectors/googledrive/pom.xml
@@ -22,7 +22,7 @@
     <parent>

         <groupId>org.apache.manifoldcf</groupId>

         <artifactId>mcf-connectors</artifactId>

-        <version>1.6-SNAPSHOT</version>

+        <version>1.7-SNAPSHOT</version>

     </parent>

     <modelVersion>4.0.0</modelVersion>

 

diff --git a/connectors/gts/connector/src/main/java/org/apache/manifoldcf/agents/output/gts/HttpPoster.java b/connectors/gts/connector/src/main/java/org/apache/manifoldcf/agents/output/gts/HttpPoster.java
index 2348095..edc501d 100644
--- a/connectors/gts/connector/src/main/java/org/apache/manifoldcf/agents/output/gts/HttpPoster.java
+++ b/connectors/gts/connector/src/main/java/org/apache/manifoldcf/agents/output/gts/HttpPoster.java
@@ -25,6 +25,7 @@
 
 import java.io.*;
 import java.net.*;
+import java.nio.charset.StandardCharsets;
 import java.util.*;
 import javax.net.*;
 import javax.net.ssl.*;
@@ -102,14 +103,7 @@
   {
     if (userID != null && userID.length() > 0 && password != null)
     {
-      try
-      {
-        this.encodedCredentials = new org.apache.manifoldcf.core.common.Base64().encodeByteArray((userID+":"+password).getBytes("UTF-8"));
-      }
-      catch (java.io.UnsupportedEncodingException e)
-      {
-        throw new ManifoldCFException("Couldn't convert to utf-8 bytes",e);
-      }
+      this.encodedCredentials = new org.apache.manifoldcf.core.common.Base64().encodeByteArray((userID+":"+password).getBytes(StandardCharsets.UTF_8));
       this.realm = realm;
     }
     this.postURI = postURI;
@@ -553,10 +547,10 @@
     if (encodedCredentials != null)
     {
       Logging.ingest.debug("Applying credentials");
-      byte[] tmp = ("Authorization: Basic " + encodedCredentials + "\r\n").getBytes("UTF-8");
+      byte[] tmp = ("Authorization: Basic " + encodedCredentials + "\r\n").getBytes(StandardCharsets.UTF_8);
       out.write(tmp, 0, tmp.length);
 
-      tmp = ("WWW-Authenticate: Basic realm=\"" + ((realm != null) ? realm : "") + "\"\r\n").getBytes("UTF-8");
+      tmp = ("WWW-Authenticate: Basic realm=\"" + ((realm != null) ? realm : "") + "\"\r\n").getBytes(StandardCharsets.UTF_8);
       out.write(tmp, 0, tmp.length);
     }
   }
@@ -733,11 +727,11 @@
                   String uri = url.getFile();
                   if (uri.length() == 0)
                     uri = "/";
-                  byte[] tmp = ("POST " + uri + " HTTP/1.0\r\n").getBytes("UTF-8");
+                  byte[] tmp = ("POST " + uri + " HTTP/1.0\r\n").getBytes(StandardCharsets.UTF_8);
                   out.write(tmp, 0, tmp.length);
 
                   // Set all the headers
-                  tmp = ("Document-URI: " + documentURI + "\r\n").getBytes("UTF-8");
+                  tmp = ("Document-URI: " + documentURI + "\r\n").getBytes(StandardCharsets.UTF_8);
                   out.write(tmp, 0, tmp.length);
 
                   writeCredentials(out);
@@ -746,7 +740,7 @@
                   if (aclXmlString.length() > 0)
                   {
 
-                    String encodedACL = new Base64().encodeByteArray(aclXmlString.getBytes("UTF-8"));
+                    String encodedACL = new Base64().encodeByteArray(aclXmlString.getBytes(StandardCharsets.UTF_8));
 
                     // Break into chunks - 4K each - 'cause otherwise we blow up the ingester.
                     int index = 0;
@@ -754,11 +748,11 @@
                     {
                       if (index + HEADER_CHUNK >= encodedACL.length())
                       {
-                        tmp = ("Document-ACL: " + encodedACL.substring(index) + "\r\n").getBytes("UTF-8");
+                        tmp = ("Document-ACL: " + encodedACL.substring(index) + "\r\n").getBytes(StandardCharsets.UTF_8);
                         out.write(tmp, 0, tmp.length);
                         break;
                       }
-                      tmp = ("Document-ACL: " + encodedACL.substring(index,index + HEADER_CHUNK) + "\r\n").getBytes("UTF-8");
+                      tmp = ("Document-ACL: " + encodedACL.substring(index,index + HEADER_CHUNK) + "\r\n").getBytes(StandardCharsets.UTF_8);
                       out.write(tmp, 0, tmp.length);
                       index += HEADER_CHUNK;
                     }
@@ -773,7 +767,7 @@
                       String collectionName = collections[index++];
                       String encodedValue = metadataEncode(collectionName);
                       //System.out.println("collection metadata: collection_name = '"+encodedValue+"'");
-                      tmp = ("Document-Metadata: collection_name="+encodedValue+"\r\n").getBytes("UTF-8");
+                      tmp = ("Document-Metadata: collection_name="+encodedValue+"\r\n").getBytes(StandardCharsets.UTF_8);
                       out.write(tmp, 0, tmp.length);
                     }
                   }
@@ -781,18 +775,18 @@
                   // Do the document template
                   if (documentTemplate != null && documentTemplate.length() > 0)
                   {
-                    String encodedTemplate = new Base64().encodeByteArray(documentTemplate.getBytes("UTF-8"));
+                    String encodedTemplate = new Base64().encodeByteArray(documentTemplate.getBytes(StandardCharsets.UTF_8));
                     // Break into chunks - 4K each - 'cause otherwise we blow up the ingester.
                     int index = 0;
                     while (true)
                     {
                       if (index + HEADER_CHUNK >= encodedTemplate.length())
                       {
-                        tmp = ("Document-Template: " + encodedTemplate.substring(index) + "\r\n").getBytes("UTF-8");
+                        tmp = ("Document-Template: " + encodedTemplate.substring(index) + "\r\n").getBytes(StandardCharsets.UTF_8);
                         out.write(tmp, 0, tmp.length);
                         break;
                       }
-                      tmp = ("Document-Template: " + encodedTemplate.substring(index,index + HEADER_CHUNK) + "\r\n").getBytes("UTF-8");
+                      tmp = ("Document-Template: " + encodedTemplate.substring(index,index + HEADER_CHUNK) + "\r\n").getBytes(StandardCharsets.UTF_8);
                       out.write(tmp, 0, tmp.length);
                       index += HEADER_CHUNK;
                     }
@@ -812,12 +806,12 @@
 
                       String encodedValue = metadataEncode(value);
                       //System.out.println("Metadata: Name = '"+fieldName+"', value = '"+encodedValue+"'");
-                      tmp = ("Document-Metadata: "+ fieldName+"="+encodedValue+"\r\n").getBytes("UTF-8");
+                      tmp = ("Document-Metadata: "+ fieldName+"="+encodedValue+"\r\n").getBytes(StandardCharsets.UTF_8);
                       out.write(tmp, 0, tmp.length);
                     }
                   }
 
-                  tmp = ("Content-length: " + new Long(length).toString() + "\r\n\n").getBytes("UTF-8");
+                  tmp = ("Content-length: " + new Long(length).toString() + "\r\n\n").getBytes(StandardCharsets.UTF_8);
                   out.write(tmp, 0, tmp.length);
 
                   long total = 0;
@@ -1017,10 +1011,6 @@
             }
           }
         }
-        catch (UnsupportedEncodingException ioe)
-        {
-          throw new ManifoldCFException("Fatal ingestion error: "+ioe.getMessage(),ioe);
-        }
         catch (java.net.SocketTimeoutException ioe)
         {
           // These are just like IO errors, but since they are derived from InterruptedIOException, they have to be caught first.
@@ -1156,16 +1146,16 @@
                 {
                   long startTime = System.currentTimeMillis();
                   // Create the output stream to GTS
-                  byte[] tmp = ("POST " + deleteURL.getFile() + " HTTP/1.0\r\n").getBytes("UTF-8");
+                  byte[] tmp = ("POST " + deleteURL.getFile() + " HTTP/1.0\r\n").getBytes(StandardCharsets.UTF_8);
                   out.write(tmp, 0, tmp.length);
 
                   // Set all the headers
-                  tmp = ("Document-URI: " + documentURI + "\r\n").getBytes("UTF-8");
+                  tmp = ("Document-URI: " + documentURI + "\r\n").getBytes(StandardCharsets.UTF_8);
                   out.write(tmp, 0, tmp.length);
 
                   writeCredentials(out);
 
-                  tmp = ("Content-length: 0\r\n\n").getBytes("UTF-8");
+                  tmp = ("Content-length: 0\r\n\n").getBytes(StandardCharsets.UTF_8);
                   out.write(tmp, 0, tmp.length);
 
                   if (Logging.ingest.isDebugEnabled())
@@ -1246,10 +1236,6 @@
             }
           }
         }
-        catch (UnsupportedEncodingException ioe)
-        {
-          throw new ManifoldCFException("Fatal ingestion error: "+ioe.getMessage(),ioe);
-        }
         catch (InterruptedIOException ioe)
         {
           return;
@@ -1331,12 +1317,12 @@
                 try
                 {
                   // Create the output stream to GTS
-                  byte[] tmp = ("GET " + infoURL.getFile() + " HTTP/1.0\r\n").getBytes("UTF-8");
+                  byte[] tmp = ("GET " + infoURL.getFile() + " HTTP/1.0\r\n").getBytes(StandardCharsets.UTF_8);
                   out.write(tmp, 0, tmp.length);
 
                   writeCredentials(out);
 
-                  tmp = ("Content-length: 0\r\n\n").getBytes("UTF-8");
+                  tmp = ("Content-length: 0\r\n\n").getBytes(StandardCharsets.UTF_8);
                   out.write(tmp, 0, tmp.length);
 
                   if (Logging.ingest.isDebugEnabled())
@@ -1398,10 +1384,6 @@
             }
           }
         }
-        catch (UnsupportedEncodingException ioe)
-        {
-          throw new ManifoldCFException("Fatal ingestion error: "+ioe.getMessage(),ioe);
-        }
         catch (InterruptedIOException ioe)
         {
           // Exit the thread.
diff --git a/connectors/gts/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/gts/common_zh_CN.properties b/connectors/gts/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/gts/common_zh_CN.properties
new file mode 100644
index 0000000..054bb2f
--- /dev/null
+++ b/connectors/gts/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/gts/common_zh_CN.properties
@@ -0,0 +1,28 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+GTSConnector.Appliance=设备
+GTSConnector.IngestURI=爬取URI:
+GTSConnector.Realm=区域: 
+GTSConnector.UserID=用户ID: 
+GTSConnector.Password=密码: 
+GTSConnector.CollectionName=采集名: 
+GTSConnector.GTSCollections=GTS采集
+GTSConnector.GTSTemplate=GTS模版
+GTSConnector.DocumentTemplate=文档模版: 
+GTSConnector.Collection=采集: 
+GTSConnector.PleaseSupplyAValidIngestionURI=请指定有效的爬取URI
+GTSConnector.Parameters=参数: 
+GTSConnector.CollectionNameMustBeLessThanOrEqualToCharacters=采集名需少于或等于230字符
diff --git a/connectors/gts/pom.xml b/connectors/gts/pom.xml
index 9363ef8..1e9558f 100644
--- a/connectors/gts/pom.xml
+++ b/connectors/gts/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/gts/upstream-diffs/README b/connectors/gts/upstream-diffs/README
deleted file mode 100644
index 7da77db..0000000
--- a/connectors/gts/upstream-diffs/README
+++ /dev/null
@@ -1,16 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-The GTS output connection is provided mainly as an example of a functioning output connector that has more complex output description specifications.  It works against MetaCarta's GTS ingestion interface, and requires no client libraries or upstream changes.  The code here was tested against version 4.5.0 of the GTS software.
diff --git a/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/agents/output/hdfs/HDFSOutputConnector.java b/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/agents/output/hdfs/HDFSOutputConnector.java
index 5521983..9d8e559 100644
--- a/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/agents/output/hdfs/HDFSOutputConnector.java
+++ b/connectors/hdfs/connector/src/main/java/org/apache/manifoldcf/agents/output/hdfs/HDFSOutputConnector.java
@@ -25,10 +25,8 @@
 import java.io.IOException;
 import java.io.InterruptedIOException;
 import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
 import java.net.URI;
 import java.net.URISyntaxException;
-import java.net.URLEncoder;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
diff --git a/connectors/hdfs/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/hdfs/common_zh_CN.properties b/connectors/hdfs/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/hdfs/common_zh_CN.properties
new file mode 100644
index 0000000..5e5b423
--- /dev/null
+++ b/connectors/hdfs/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/hdfs/common_zh_CN.properties
@@ -0,0 +1,30 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+HDFSOutputConnector.ServerTabName=服务器标签名
+HDFSOutputConnector.NameNodeProtocol=名称节点协议:
+HDFSOutputConnector.NameNodeHost=名称节点主机:
+HDFSOutputConnector.NameNodePort=名称节点端口:
+HDFSOutputConnector.User=用户:
+HDFSOutputConnector.NameNodeHostCannotBeNull=名称节点主机不能为Null
+HDFSOutputConnector.NameNodePortCannotBeNull=名称节点端口不能为Null
+HDFSOutputConnector.NameNodePortMustBeAnInteger=名称节点端口必须为整数
+HDFSOutputConnector.UserCannotBeNull=用户不能为Null
+
+HDFSOutputConnector.PathTabName=路径标签名
+HDFSOutputConnector.Path=路径: 
+HDFSOutputConnector.RootPath=根路径: 
+HDFSOutputConnector.RootPathCannotBeNull=根路径不能为Null
+
diff --git a/connectors/hdfs/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/hdfs/common_zh_CN.properties b/connectors/hdfs/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/hdfs/common_zh_CN.properties
new file mode 100644
index 0000000..f3e4775
--- /dev/null
+++ b/connectors/hdfs/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/hdfs/common_zh_CN.properties
@@ -0,0 +1,51 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+HDFSRepositoryConnector.ServerTabName=服务器
+HDFSRepositoryConnector.NameNodeProtocol=名称节点协议:
+HDFSRepositoryConnector.NameNodeHost=名称节点主机:
+HDFSRepositoryConnector.NameNodePort=名称节点端口:
+HDFSRepositoryConnector.User=用户: 
+HDFSRepositoryConnector.NameNodeHostCannotBeNull=名称节点主机不能为Null
+HDFSRepositoryConnector.NameNodePortCannotBeNull=名称节点端口不能为Null
+HDFSRepositoryConnector.NameNodePortMustBeAnInteger=名称节点端口必须为整数
+HDFSRepositoryConnector.UserCannotBeNull=用户不能为Null
+
+HDFSRepositoryConnector.Paths=存储库路径
+HDFSRepositoryConnector.Paths2=存储库路径: 
+HDFSRepositoryConnector.RootPath=根路径
+HDFSRepositoryConnector.ConvertToURI=转换成URI?
+HDFSRepositoryConnector.ConvertToURIExample= 例) http/xyz/index.html => http://xyz/index.html
+HDFSRepositoryConnector.Yes=是
+HDFSRepositoryConnector.No=否
+HDFSRepositoryConnector.Rules=规则
+HDFSRepositoryConnector.Delete=删除
+HDFSRepositoryConnector.DeletePath=删除路径 #
+HDFSRepositoryConnector.IncludeExclude=包含/排除
+HDFSRepositoryConnector.FileDirectory=文件/目录
+HDFSRepositoryConnector.Match=匹配
+HDFSRepositoryConnector.include=包含
+HDFSRepositoryConnector.exclude=排除
+HDFSRepositoryConnector.File=文件
+HDFSRepositoryConnector.Directory=目录
+HDFSRepositoryConnector.NoDocumentsSpecified=文档未指定
+HDFSRepositoryConnector.Add=添加
+HDFSRepositoryConnector.InsertHere=在这里插入
+HDFSRepositoryConnector.include=包含
+HDFSRepositoryConnector.NoRulesDefined=规则未定义
+HDFSRepositoryConnector.InsertNewMatchForPath=为路径插入新匹配:  #
+HDFSRepositoryConnector.DeletePath=删除路径:  #
+HDFSRepositoryConnector.AddNewMatchForPath=为路径添加新匹配:  #
+HDFSRepositoryConnector.AddNewPath=添加新路径
diff --git a/connectors/hdfs/pom.xml b/connectors/hdfs/pom.xml
index 7a3312b..ec86f91 100644
--- a/connectors/hdfs/pom.xml
+++ b/connectors/hdfs/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/jcifs/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharedrive/SharedDriveConnector.java b/connectors/jcifs/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharedrive/SharedDriveConnector.java
index 5823219..5c5d93c 100644
--- a/connectors/jcifs/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharedrive/SharedDriveConnector.java
+++ b/connectors/jcifs/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharedrive/SharedDriveConnector.java
@@ -16,6 +16,7 @@
 */
 package org.apache.manifoldcf.crawler.connectors.sharedrive;
 
+import org.apache.manifoldcf.core.util.URLEncoder;
 import org.apache.manifoldcf.crawler.system.ManifoldCF;
 import java.io.FileOutputStream;
 import java.io.FileInputStream;
@@ -28,6 +29,7 @@
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
+import java.nio.charset.StandardCharsets;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
@@ -301,9 +303,8 @@
     {
       // URI translation.
       // First step is to perform utf-8 translation and %-encoding.
-      try
-      {
-        byte[] byteArray = serverPath.getBytes("utf-8");
+
+        byte[] byteArray = serverPath.getBytes(StandardCharsets.UTF_8);
         StringBuilder output = new StringBuilder();
         int i = 0;
         while (i < byteArray.length)
@@ -325,12 +326,6 @@
 
         // Second step is to perform the mapping.  This strips off the server name and glues on the protocol and web server name, most likely.
         return uriMap.translate(output.toString());
-      }
-      catch (java.io.UnsupportedEncodingException e)
-      {
-        // Should not happen...
-        throw new ManifoldCFException(e.getMessage(),e);
-      }
     }
     else
     {
@@ -340,8 +335,7 @@
       // Second, the ingestion API does not (and will never) accept anything other than a well-formed URI.  Thus, file
       // specifications are ingested in a canonical form (which happens to be pretty much what this connector used prior to
       // 3.9.0), and the various clients are responsible for converting that form into something the browser will accept.
-      try
-      {
+
         StringBuilder output = new StringBuilder();
 
         int i = 0;
@@ -352,7 +346,7 @@
             pos = serverPath.length();
           String piece = serverPath.substring(i,pos);
           // Note well.  This does *not* %-encode some characters such as '#', which are legal in URI's but have special meanings!
-          String replacePiece = java.net.URLEncoder.encode(piece,"utf-8");
+          String replacePiece = URLEncoder.encode(piece);
           // Convert the +'s back to %20's
           int j = 0;
           while (j < replacePiece.length())
@@ -377,12 +371,6 @@
           i = pos;
         }
         return "file://///"+output.toString();
-      }
-      catch (java.io.UnsupportedEncodingException e)
-      {
-        // Should not happen...
-        throw new ManifoldCFException(e.getMessage(),e);
-      }
     }
   }
 
diff --git a/connectors/jcifs/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/sharedrive/common_zh_CN.properties b/connectors/jcifs/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/sharedrive/common_zh_CN.properties
new file mode 100644
index 0000000..987955c
--- /dev/null
+++ b/connectors/jcifs/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/sharedrive/common_zh_CN.properties
@@ -0,0 +1,98 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SharedDriveConnector.Paths=路径
+SharedDriveConnector.Security=安全
+SharedDriveConnector.Metadata=元数据
+SharedDriveConnector.ContentLength=文档长度
+SharedDriveConnector.FileMapping=文件映射
+SharedDriveConnector.URLMapping=URL映射
+SharedDriveConnector.NeedAServerName=请输入服务器名
+SharedDriveConnector.UseSIDSForSecurity=为了安全起见使用SIDS:
+SharedDriveConnector.Server=服务器
+SharedDriveConnector.Server2=服务器
+SharedDriveConnector.ServerNameCannotIncludePathInformation=服务器名不能包含路径信息
+SharedDriveConnector.NeedAUserName=请输入用户名
+SharedDriveConnector.Server3=服务器: 
+SharedDriveConnector.AuthenticationDomain=认证域(可选): 
+SharedDriveConnector.UserName=用户名: 
+SharedDriveConnector.Password=密码: 
+SharedDriveConnector.Parameters=参数: 
+SharedDriveConnector.certificate= 证书
+SharedDriveConnector.NeedAValidNumberForMaximumDocumentLength=最大文档长度需为有效的数字
+SharedDriveConnector.SelectAFolderOrTypeInAPathFirst=先选择文件夹或输入路径
+SharedDriveConnector.EitherSelectAFolderORTypeInAPath=选择文件夹或输入路径
+SharedDriveConnector.EnterAFileSpecificationFirst=请先输入文件规范
+SharedDriveConnector.EnterAFileSpecificationFirst=请先输入文件规范
+SharedDriveConnector.NullAccessTokensNotAllowed=请输入访问令牌
+SharedDriveConnector.MatchStringCannotBeEmpty=匹配字符串不能为空
+SharedDriveConnector.MatchStringMustBeValidRegularExpression=匹配字符串必须为有效的正则表达式
+SharedDriveConnector.MatchStringCannotBeEmpty=匹配字符串不能为空
+SharedDriveConnector.MatchStringMustBeValidRegularExpression=匹配字符串必须为有效的正则表达式
+SharedDriveConnector.MatchStringCannotBeEmpty=匹配字符串不能为空
+SharedDriveConnector.MatchStringMustBeValidRegularExpression=匹配字符串必须为有效的正则表达式
+SharedDriveConnector.MaximumDocumentLength=最大文档长度: 
+SharedDriveConnector.DeletePath=删除路径:  #
+SharedDriveConnector.InsertNewMatchForPath=为路径插入新匹配模式:  #
+SharedDriveConnector.Include=包含
+SharedDriveConnector.Exclude=排除
+SharedDriveConnector.AnyFileOrDirectory=-- 可选文件或目录 --
+SharedDriveConnector.files=文件
+SharedDriveConnector.indexableFiles=可索引化的文件
+SharedDriveConnector.unindexableFiles=不可索引化的文件
+SharedDriveConnector.directorys=目录
+SharedDriveConnector.matching=匹配
+SharedDriveConnector.DeletePath=删除路径:  #
+SharedDriveConnector.matchSpec=,匹配规范:  #
+SharedDriveConnector.NoRulesDefined=规则未定义
+SharedDriveConnector.AddNewMatchForPath=为路径添加新匹配模式:  #
+SharedDriveConnector.NoStartingPointsDefined=开始点未指定
+SharedDriveConnector.AddPath=添加路径
+SharedDriveConnector.RemoveFromPath=从路径删除
+SharedDriveConnector.PickAFolder=-- 请选择文件夹 --
+SharedDriveConnector.orTypeAPath= 或输入路径: \n"
+SharedDriveConnector.FileSecurity=文件安全: 
+SharedDriveConnector.Enabled=有效
+SharedDriveConnector.Disabled=无效
+SharedDriveConnector.DeleteToken=删除令牌:  #
+SharedDriveConnector.NoFileAccessTokensPresent=文件访问令牌不存在
+SharedDriveConnector.AddToken=添加令牌
+SharedDriveConnector.ShareSecurity=共享安全: 
+SharedDriveConnector.ParentFolderSecurity=父文件夹安全: 
+SharedDriveConnector.PathAttributeName=路径属性名: 
+SharedDriveConnector.DeleteMapping=删除映射:  #
+SharedDriveConnector.NoMappingsSpecified=映射未指定
+SharedDriveConnector.AddToMappings=添加到映射
+SharedDriveConnector.MatchRegexp=匹配正则表达式: 
+SharedDriveConnector.ReplaceString=替换字符串: 
+SharedDriveConnector.DeleteFileMapping=删除文件映射 #
+SharedDriveConnector.NoFileMappingsSpecified=请指定文件规范
+SharedDriveConnector.AddToFileMappings=添加到文件映射
+SharedDriveConnector.DeleteUrlMapping=删除URI映射:  #
+SharedDriveConnector.NoURLMappingsSpecifiedWillProduceAFileIRI=URI映射未指定。将生成文件IRI
+SharedDriveConnector.AddToURLMappings=添加到URI映射
+SharedDriveConnector.NoDocumentsSpecified=文档未指定
+SharedDriveConnector.FileSecurity=文件安全: 
+SharedDriveConnector.FileAccessTokens=文件访问令牌: 
+SharedDriveConnector.NoFileAccessTokensSpecified=文件访问令牌未指定
+SharedDriveConnector.ShareSecurity=共享安全: 
+SharedDriveConnector.PathNameMetadataAttribute=路径名元数据属性: 
+SharedDriveConnector.NoPathNameMetadataAttributeSpecified=路径名元数据属性未指定
+SharedDriveConnector.PathValueMapping=路径值映射: 
+SharedDriveConnector.FileNameMapping=文件名映射: 
+SharedDriveConnector.NoFileNameMappingsSpecified=请指定文件名映射
+SharedDriveConnector.URLMappingColon=URL映射: 
+SharedDriveConnector.MaximumDocumentLength=最大文档长度: 
+
diff --git a/connectors/jcifs/pom.xml b/connectors/jcifs/pom.xml
index ede145f..efee7e9 100644
--- a/connectors/jcifs/pom.xml
+++ b/connectors/jcifs/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jdbc/JDBCConnector.java b/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jdbc/JDBCConnector.java
index a75a69e..063b5db 100644
--- a/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jdbc/JDBCConnector.java
+++ b/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jdbc/JDBCConnector.java
@@ -28,6 +28,7 @@
 import org.apache.manifoldcf.jdbc.IDynamicResultSet;
 import org.apache.manifoldcf.jdbc.IDynamicResultRow;
 
+import java.nio.charset.StandardCharsets;
 import java.sql.*;
 import javax.naming.*;
 import javax.sql.*;
@@ -659,7 +660,7 @@
                       String value = contents.toString();
                       try
                       {
-                        byte[] bytes = value.getBytes("utf-8");
+                        byte[] bytes = value.getBytes(StandardCharsets.UTF_8);
                         RepositoryDocument rd = new RepositoryDocument();
 
                         // Default content type is text/plain for character data
diff --git a/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/jdbc/JDBCConnection.java b/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/jdbc/JDBCConnection.java
index 6ebcadf..4c4d530 100644
--- a/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/jdbc/JDBCConnection.java
+++ b/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/jdbc/JDBCConnection.java
@@ -23,6 +23,7 @@
 import org.apache.manifoldcf.core.jdbcpool.*;
 import org.apache.manifoldcf.agents.interfaces.*;
 
+import java.nio.charset.StandardCharsets;
 import java.sql.*;
 import javax.naming.*;
 import javax.sql.*;
@@ -285,7 +286,7 @@
         InputStream is = bi.getStream();
         try
         {
-          InputStreamReader reader = new InputStreamReader(is,"utf-8");
+          InputStreamReader reader = new InputStreamReader(is, StandardCharsets.UTF_8);
           StringBuilder sb = new StringBuilder();
           while (true)
           {
diff --git a/connectors/jdbc/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/jdbc/common_zh_CN.properties b/connectors/jdbc/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/jdbc/common_zh_CN.properties
new file mode 100644
index 0000000..9609294
--- /dev/null
+++ b/connectors/jdbc/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/jdbc/common_zh_CN.properties
@@ -0,0 +1,38 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+JDBCAuthority.DatabaseType=数据库类型
+JDBCAuthority.AccessMethod=访问方式
+JDBCAuthority.ByName=按名称
+JDBCAuthority.ByLabel=按标签
+JDBCAuthority.Server=服务器
+JDBCAuthority.Credentials=凭证
+JDBCAuthority.DatabaseType2=数据库类型:
+JDBCAuthority.DatabaseHostAndPort=数据库主机/端口:
+JDBCAuthority.DatabaseServiceNameOrInstanceDatabase=数据库服务名或实例/数据库:
+JDBCAuthority.RawDatabaseConnectString=原始数据库连接字符串:
+JDBCAuthority.UserName=用户名:
+JDBCAuthority.Password=密码:
+JDBCAuthority.Parameters=参数:
+JDBCAuthority.Queries=查询
+JDBCAuthority.UserIdQuery=用户ID查询:
+JDBCAuthority.TokenQuery=证书令牌查询:
+JDBCAuthority.returnUserIdOrEmptyResultset=(用户存在则返回用户ID,否则返回空结果集)
+JDBCAuthority.returnTokensForUser=(返回用户的授权令牌)
+JDBCAuthority.NoAccessTokensPresent=访问令牌不存在
+JDBCAuthority.NoAccessTokensSpecified=访问令牌未指定
+JDBCAuthority.PleaseFillInADatabaseServerName=请输入数据库服务器名
+JDBCAuthority.PleaseFillInTheNameOfTheDatabase=请输入数据库名
+JDBCAuthority.PleaseSupplyTheDatabaseUsernameForThisConnection=请输入此连接的数据库用户名
diff --git a/connectors/jdbc/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jdbc/common_zh_CN.properties b/connectors/jdbc/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jdbc/common_zh_CN.properties
new file mode 100644
index 0000000..8f7e71e
--- /dev/null
+++ b/connectors/jdbc/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jdbc/common_zh_CN.properties
@@ -0,0 +1,57 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+JDBCConnector.DatabaseType=数据库类型
+JDBCConnector.AccessMethod=访问方式
+JDBCConnector.ByName=按名称
+JDBCConnector.ByLabel=按标签
+JDBCConnector.Server=服务器
+JDBCConnector.Credentials=凭证
+JDBCConnector.DatabaseType2=数据库类型: 
+JDBCConnector.DatabaseHostAndPort=数据库主机/端口: 
+JDBCConnector.DatabaseServiceNameOrInstanceDatabase=数据库服务名或实例/数据库: 
+JDBCConnector.RawDatabaseConnectString=原始数据库连接字符串:
+JDBCConnector.UserName=用户名: 
+JDBCConnector.Password=密码: 
+JDBCConnector.Parameters=参数: 
+JDBCConnector.TypeInAnAccessToken=请输入访问令牌
+JDBCConnector.Queries=查询
+JDBCConnector.Security=安全
+JDBCConnector.SeedingQuery=播种查询: 
+JDBCConnector.VersionCheckQuery=版本检查查询: 
+JDBCConnector.returnIdsAndVersionsForASetOfDocuments=(返回文档集的ID和版本
+JDBCConnector.leaveBlankIfNoVersioningCapability=若无版本管理则置空)
+JDBCConnector.DataQuery=数据查询: 
+JDBCConnector.returnIdsUrlsAndDataForASetOfDocuments=(返回文档集的ID,URL,数据)
+JDBCConnector.returnIdsThatNeedToBeChecked=(返回检查对象ID)
+JDBCConnector.NoAccessTokensPresent=访问令牌不存在
+JDBCConnector.NoAccessTokensSpecified=访问令牌未指定
+JDBCConnector.PleaseFillInADatabaseServerName=请输入数据库服务器名
+JDBCConnector.PleaseFillInTheNameOfTheDatabase=请输入数据库名
+JDBCConnector.PleaseSupplyTheDatabaseUsernameForThisConnection=请输入此连接的数据库用户名
+JDBCConnector.EnterASeedingQuery=请输入播种查询
+JDBCConnector.MustReturnIDCOLUMNInTheResult=结果需要返回$(IDCOLUMN)。\\n例: SELECT idfield AS $(IDCOLUMN) FROM ...
+JDBCConnector.MustReturnVERSIONCOLUMNInTheResult=返回结果必须包含文档版本信息$(VERSIONCOLUMN)\\n例: SELECT versionfield AS $(VERSIONCOLUMN), ...
+JDBCConnector.MustUseIDLISTInWHEREClause=WHERE语句务必使用$(IDLIST)。\\n例: SELECT ... WHERE idfield IN $(IDLIST) ...
+JDBCConnector.EnterADataQuery=请输入数据查询
+JDBCConnector.MustReturnIDCOLUMNInTheResult2=结果需要返回$(IDCOLUMN)。\\n例: SELECT idfield AS $(IDCOLUMN), ...
+JDBCConnector.MustReturnURLCOLUMNInTheResult=返回结果必须包含取得文档用URI$(URLCOLUMN)。\\n例: SELECT urlfield AS $(URLCOLUMN), ...
+JDBCConnector.MustReturnDATACOLUMNInTheResult=返回结果必须包含文档内容$(DATACOLUMN)。\\n例: SELECT datafield AS $(DATACOLUMN), ...
+JDBCConnector.DeleteToken=删除令牌:  #
+JDBCConnector.AddAccessToken=添加访问令牌
+JDBCConnector.SeedingQuery=播种查询: 
+JDBCConnector.VersionCheckQuery=版本检查查询: 
+JDBCConnector.DataQuery=数据查询: 
+JDBCConnector.AccessTokens=访问令牌: 
diff --git a/connectors/jdbc/pom.xml b/connectors/jdbc/pom.xml
index a4b6304..719ba44 100644
--- a/connectors/jdbc/pom.xml
+++ b/connectors/jdbc/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/jira/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/jira/JiraSession.java b/connectors/jira/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/jira/JiraSession.java
index c9f4a29..27edd4b 100644
--- a/connectors/jira/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/jira/JiraSession.java
+++ b/connectors/jira/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/jira/JiraSession.java
@@ -20,6 +20,7 @@
 import org.apache.manifoldcf.core.common.*;
 import org.apache.manifoldcf.core.interfaces.KeystoreManagerFactory;
 import org.apache.manifoldcf.core.interfaces.ManifoldCFException;
+import org.apache.manifoldcf.core.util.URLEncoder;
 
 import java.io.Reader;
 import java.io.Writer;
@@ -31,9 +32,9 @@
 import java.io.InterruptedIOException;
 import java.io.OutputStream;
 import java.net.URL;
-import java.net.URLEncoder;
 import java.nio.charset.Charset;
 
+import java.nio.charset.StandardCharsets;
 import java.util.Map;
 import java.util.HashMap;
 import java.util.List;
@@ -100,8 +101,6 @@
     }
   }
 
-  protected static final Charset UTF_8 = Charset.forName("UTF-8");
-
   /**
    * Constructor. Create a session.
    */
@@ -251,13 +250,13 @@
     {
       ContentType ct = ContentType.get(entity);
       if (ct == null)
-        charSet = UTF_8;
+        charSet = StandardCharsets.UTF_8;
       else
         charSet = ct.getCharset();
     }
     catch (ParseException e)
     {
-      charSet = UTF_8;
+      charSet = StandardCharsets.UTF_8;
     }
     return charSet;
   }
@@ -292,9 +291,9 @@
 
   /** Check if user exists.
   */
-  public boolean checkUserExists(String userName) throws IOException, ResponseException {
+  public boolean checkUserExists(String userName) throws IOException, ResponseException, ManifoldCFException {
     JiraUserQueryResults qr = new JiraUserQueryResults();
-    getRest("user/search?username="+URLEncoder.encode(userName,"utf-8")+"&maxResults=1&startAt=0", qr);
+    getRest("user/search?username="+URLEncoder.encode(userName)+"&maxResults=1&startAt=0", qr);
     List<String> values = new ArrayList<String>();
     qr.getNames(values);
     if (values.size() == 0)
diff --git a/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraRepositoryConnector.java b/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraRepositoryConnector.java
index daf169e..56596ad 100644
--- a/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraRepositoryConnector.java
+++ b/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraRepositoryConnector.java
@@ -25,6 +25,7 @@
 import java.io.IOException;

 import java.io.InputStream;

 import java.io.InterruptedIOException;

+import java.nio.charset.StandardCharsets;

 import java.util.HashMap;

 import java.util.HashSet;

 import java.util.ArrayList;

@@ -978,7 +979,7 @@
             String documentURI = jiraFile.getSelf();

             String document = getJiraBody(jiraFile);

             try {

-              byte[] documentBytes = document.getBytes("UTF-8");

+              byte[] documentBytes = document.getBytes(StandardCharsets.UTF_8);

               InputStream is = new ByteArrayInputStream(documentBytes);

               try {

                 rd.setBinary(is, documentBytes.length);

diff --git a/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraSession.java b/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraSession.java
index 657a0e4..e25527a 100644
--- a/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraSession.java
+++ b/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraSession.java
@@ -28,12 +28,11 @@
 import java.io.IOException;

 import java.io.InputStream;

 import java.io.InputStreamReader;

-import java.io.InterruptedIOException;

-import java.io.OutputStream;

-import java.net.URL;

-import java.net.URLEncoder;

+

+import org.apache.manifoldcf.core.util.URLEncoder;

 import java.nio.charset.Charset;

 

+import java.nio.charset.StandardCharsets;

 import java.util.Map;

 import java.util.HashMap;

 import java.util.List;

@@ -100,8 +99,6 @@
     }

   }

 

-  protected static final Charset UTF_8 = Charset.forName("UTF-8");

-

   /**

    * Constructor. Create a session.

    */

@@ -251,13 +248,13 @@
     {

       ContentType ct = ContentType.get(entity);

       if (ct == null)

-        charSet = UTF_8;

+        charSet = StandardCharsets.UTF_8;

       else

         charSet = ct.getCharset();

     }

     catch (ParseException e)

     {

-      charSet = UTF_8;

+      charSet = StandardCharsets.UTF_8;

     }

     return charSet;

   }

@@ -296,13 +293,13 @@
    * Get the list of matching root documents, e.g. seeds.

    */

   public void getSeeds(XThreadStringBuffer idBuffer, String jiraDriveQuery)

-      throws IOException, ResponseException, InterruptedException {

+      throws IOException, ResponseException, InterruptedException, ManifoldCFException {

     long startAt = 0L;

     long setSize = 800L;

     long totalAmt = 0L;

     do {

       JiraQueryResults qr = new JiraQueryResults();

-      getRest("search?maxResults=" + setSize + "&startAt=" + startAt + "&jql=" + URLEncoder.encode(jiraDriveQuery, "UTF-8"), qr);

+      getRest("search?maxResults=" + setSize + "&startAt=" + startAt + "&jql=" + URLEncoder.encode(jiraDriveQuery), qr);

       Long total = qr.getTotal();

       if (total == null)

         return;

@@ -316,13 +313,13 @@
   * Get the list of users that can see the specified issue.

   */

   public List<String> getUsers(String issueKey)

-    throws IOException, ResponseException {

+    throws IOException, ResponseException, ManifoldCFException {

     List<String> rval = new ArrayList<String>();

     long startAt = 0L;

     long setSize = 800L;

     while (true) {

       JiraUserQueryResults qr = new JiraUserQueryResults();

-      getRest("user/viewissue/search?username=&issueKey="+URLEncoder.encode(issueKey,"utf-8")+"&maxResults=" + setSize + "&startAt=" + startAt, qr);

+      getRest("user/viewissue/search?username=&issueKey="+URLEncoder.encode(issueKey)+"&maxResults=" + setSize + "&startAt=" + startAt, qr);

       qr.getNames(rval);

       startAt += setSize;

       if (rval.size() < startAt)

@@ -335,9 +332,9 @@
    * Get an individual issue.

    */

   public JiraIssue getIssue(String issueKey)

-    throws IOException, ResponseException {

+    throws IOException, ResponseException, ManifoldCFException {

     JiraIssue ji = new JiraIssue();

-    getRest("issue/" + URLEncoder.encode(issueKey,"utf-8"), ji);

+    getRest("issue/" + URLEncoder.encode(issueKey), ji);

     return ji;

   }

 

diff --git a/connectors/jira/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/jira/common_zh_CN.properties b/connectors/jira/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/jira/common_zh_CN.properties
new file mode 100644
index 0000000..7602a9f
--- /dev/null
+++ b/connectors/jira/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/jira/common_zh_CN.properties
@@ -0,0 +1,39 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+JiraAuthorityConnector.Server=服务器
+JiraAuthorityConnector.Proxy=代理
+
+JiraAuthorityConnector.JiraProtocolColon=JIRA协议:
+JiraAuthorityConnector.JiraHostColon=JIRA主机:
+JiraAuthorityConnector.JiraPortColon=JIRA端口:
+JiraAuthorityConnector.JiraRESTAPIPathColon=JIRA REST API路径:
+JiraAuthorityConnector.ClientIDColon=Client ID(可选):
+JiraAuthorityConnector.ClientSecretColon=Client Secret(可选):
+
+JiraAuthorityConnector.JiraProxyHostColon=代理主机:
+JiraAuthorityConnector.JiraProxyPortColon=代理端口:
+JiraAuthorityConnector.JiraProxyDomainColon=代理授权域:
+JiraAuthorityConnector.JiraProxyUsernameColon=代理授权用户名:
+JiraAuthorityConnector.JiraProxyPasswordColon=代理授权密码:
+
+JiraAuthorityConnector.JiraHostMustNotBeNull=JIRA主机不能为Null
+JiraAuthorityConnector.JiraHostMustNotIncludeSlash=JIRA主机不能包含‘/’字符
+JiraAuthorityConnector.JiraPortMustBeAnInteger=JIRA端口必须为整数
+JiraAuthorityConnector.JiraPathMustNotBeNull=JIRA路径不能为Null
+JiraAuthorityConnector.JiraPathMustBeginWithASlash=JIRA路径的第一个字符必须为‘/’字符
+
+JiraAuthorityConnector.JiraProxyPortMustBeAnInteger=代理端口必须为整数
+JiraAuthorityConnector.JiraProxyHostMustNotIncludeSlash=代理主机不能包含‘/’字符
diff --git a/connectors/jira/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jira/common_zh_CN.properties b/connectors/jira/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jira/common_zh_CN.properties
new file mode 100644
index 0000000..a48acf4
--- /dev/null
+++ b/connectors/jira/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/jira/common_zh_CN.properties
@@ -0,0 +1,56 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+JiraRepositoryConnector.Server=服务器
+JiraRepositoryConnector.Proxy=代理
+JiraRepositoryConnector.JiraQuery=JIRA查询
+JiraRepositoryConnector.Security=安全
+
+JiraRepositoryConnector.JiraProtocolColon=JIRA协议:
+JiraRepositoryConnector.JiraHostColon=JIRA主机:
+JiraRepositoryConnector.JiraPortColon=JIRA端口:
+JiraRepositoryConnector.JiraRESTAPIPathColon=JIRA REST API路径:
+JiraRepositoryConnector.ClientIDColon=Client ID (可选):
+JiraRepositoryConnector.ClientSecretColon=Client Secret(可选):
+
+JiraRepositoryConnector.JiraProxyHostColon=代理主机:
+JiraRepositoryConnector.JiraProxyPortColon=代理端口:
+JiraRepositoryConnector.JiraProxyDomainColon=代理授权域:
+JiraRepositoryConnector.JiraProxyUsernameColon=代理授权用户名:
+JiraRepositoryConnector.JiraProxyPasswordColon=代理授权密码:
+
+JiraRepositoryConnector.JiraHostMustNotBeNull=JIRA主机不能为Null
+JiraRepositoryConnector.JiraHostMustNotIncludeSlash=JIRA主机不能包含‘/’字符
+JiraRepositoryConnector.JiraPortMustBeAnInteger=JIRA端口必须为整数
+JiraRepositoryConnector.JiraPathMustNotBeNull=JIRA路径不能为空
+JiraRepositoryConnector.JiraPathMustBeginWithASlash=JIRA路径的第一个字符必须为‘/’字符
+
+JiraRepositoryConnector.JiraProxyPortMustBeAnInteger=代理端口必须为整数
+JiraRepositoryConnector.JiraProxyHostMustNotIncludeSlash=代理主机不能包含‘/’字符
+
+JiraRepositoryConnector.JiraQueryColon=JIRA查询:
+JiraRepositoryConnector.SeedQueryCannotBeNull=种子查询不能为Null
+
+JiraRepositoryConnector.SecurityColon=安全:
+JiraRepositoryConnector.Enabled=有效
+JiraRepositoryConnector.Disabled=无效
+
+JiraRepositoryConnector.NoAccessTokensPresent=访问令牌不存在
+JiraRepositoryConnector.Add=添加
+JiraRepositoryConnector.AddAccessToken=添加访问令牌
+JiraRepositoryConnector.Delete=删除
+JiraRepositoryConnector.DeleteToken=删除令牌 #
+JiraRepositoryConnector.AccessTokensColon=访问令牌:
+JiraRepositoryConnector.TypeInAnAccessToken=请输入访问令牌
diff --git a/connectors/jira/pom.xml b/connectors/jira/pom.xml
index 060e1af..6b930e9 100644
--- a/connectors/jira/pom.xml
+++ b/connectors/jira/pom.xml
@@ -22,7 +22,7 @@
     <parent>

         <groupId>org.apache.manifoldcf</groupId>

         <artifactId>mcf-connectors</artifactId>

-        <version>1.6-SNAPSHOT</version>

+        <version>1.7-SNAPSHOT</version>

     </parent>

     <modelVersion>4.0.0</modelVersion>

 

diff --git a/connectors/ldap/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/ldap/common_zh_CN.properties b/connectors/ldap/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/ldap/common_zh_CN.properties
new file mode 100644
index 0000000..10f7de0
--- /dev/null
+++ b/connectors/ldap/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/ldap/common_zh_CN.properties
@@ -0,0 +1,50 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LDAP.LDAP=LDAP
+LDAP.LDAPServerNameColon=LDAP服务器名:
+LDAP.LDAPServerPortColon=LDAP服务器端口:
+LDAP.LDAPServerBaseColon=LDAP服务器基(例 'dc=office,dc=com'):
+LDAP.LDAPBindUserColon=绑定用户(不需要则置空):
+LDAP.LDAPBindPasswordColon=绑定密码:
+LDAP.UserSearchBaseColon=用户搜索基:
+LDAP.UserSearchFilterColon=用户搜索过滤器:
+LDAP.GroupSearchBaseColon=组搜索基:
+LDAP.GroupSearchFilterColon=组搜索过滤器:
+LDAP.GroupNameAttributeColon=组名属性:
+LDAP.AddUserAuthColon=添加用户认证令牌:
+LDAP.UserNameAttrColon=用户名属性:
+LDAP.GroupMemberDnColon=组成员DN:
+
+LDAP.ServerNameCannotBeBlank=服务器名不能为空
+LDAP.ServerPortCannotBeBlank=服务器端口不能为空
+LDAP.UserSearchCannotBeBlank=用户搜索不能为空
+LDAP.GroupSearchCannotBeBlank=组搜索不能为空
+LDAP.GroupNameAttrCannotBeBlank=组名属性不能为空
+LDAP.UserSearchMustIncludeSubstitution=用户搜索必须要包含用户替代式({0})
+LDAP.GroupSearchMustIncludeSubstitution=组搜索必须要包含用户替代式({0})
+LDAP.ServerPortMustBeAnInteger=服务器端口必须为整数
+LDAP.ServerNameCannotIncludeSlash=服务器名不能包含‘/’字符
+LDAP.ServerBaseCannotIncludeSlash=服务器基不能包含‘/’字符
+
+LDAP.ForcedTokens=强制令牌
+LDAP.ForcedTokensColon=强制令牌:
+LDAP.Add=添加
+LDAP.Delete=删除
+LDAP.AddToken=添加令牌
+LDAP.TypeInToken=令牌不能为空
+LDAP.NoTokensSpecified=令牌未指定
+LDAP.NoTokensPresent=令牌不存在
+LDAP.ForcedTokensDisclaimer=强制令牌是为了充实由授权中心明确处理的通常令牌如“Everyone”的结果。使用时要特别注意,因为这种机制可以授予权限给授权目录外的每一个用户!
diff --git a/connectors/ldap/pom.xml b/connectors/ldap/pom.xml
index 37136e2..d3d39ab 100644
--- a/connectors/ldap/pom.xml
+++ b/connectors/ldap/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/livelink/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/livelink/LLSERVER.java b/connectors/livelink/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/livelink/LLSERVER.java
index 1e4d7f0..fea90a1 100644
--- a/connectors/livelink/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/livelink/LLSERVER.java
+++ b/connectors/livelink/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/livelink/LLSERVER.java
@@ -26,6 +26,7 @@
 import org.apache.manifoldcf.crawler.system.ManifoldCF;
 
 import java.io.*;
+import java.nio.charset.StandardCharsets;
 
 import com.opentext.api.LLSession;
 import com.opentext.api.LLValue;
@@ -133,7 +134,7 @@
               OutputStream fos = new FileOutputStream(fileName);
               try
               {
-                Writer osw = new OutputStreamWriter(fos,"utf-8");
+                Writer osw = new OutputStreamWriter(fos,StandardCharsets.UTF_8);
                 try
                 {
                   String certBase64 = new Base64().encodeByteArray(certData);
diff --git a/connectors/livelink/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/livelink/LivelinkConnector.java b/connectors/livelink/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/livelink/LivelinkConnector.java
index cdc6251..8c474ae 100644
--- a/connectors/livelink/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/livelink/LivelinkConnector.java
+++ b/connectors/livelink/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/livelink/LivelinkConnector.java
@@ -209,6 +209,17 @@
   {
   }
 
+  /** Tell the world what model this connector uses for getDocumentIdentifiers().
+  * This must return a model value as specified above.
+  *@return the model type value.
+  */
+  @Override
+  public int getConnectorModel()
+  {
+    // Livelink is a chained hierarchy model
+    return MODEL_CHAINED_ADD_CHANGE;
+  }
+
   /** Connect.  The configuration parameters are included.
   *@param configParams are the configuration parameters for this connection.
   */
@@ -4190,24 +4201,17 @@
   protected String createLivelinkLoginURI()
     throws ManifoldCFException
   {
-    try
-    {
       StringBuilder llURI = new StringBuilder();
 
       llURI.append(ingestCgiPath);
       llURI.append("?func=ll.login&CurrentClientTime=D%2F2005%2F3%2F9%3A13%3A16%3A30&NextURL=");
-      llURI.append(URLEncoder.encode(ingestCgiPath,"UTF-8"));
+      llURI.append(org.apache.manifoldcf.core.util.URLEncoder.encode(ingestCgiPath));
       llURI.append("%3FRedirect%3D1&Username=");
-      llURI.append(URLEncoder.encode(llServer.getLLUser(),"UTF-8"));
+      llURI.append(org.apache.manifoldcf.core.util.URLEncoder.encode(llServer.getLLUser()));
       llURI.append("&Password=");
-      llURI.append(URLEncoder.encode(llServer.getLLPwd(),"UTF-8"));
+      llURI.append(org.apache.manifoldcf.core.util.URLEncoder.encode(llServer.getLLPwd()));
 
       return llURI.toString();
-    }
-    catch (UnsupportedEncodingException e)
-    {
-      throw new ManifoldCFException("Login URI setup error: "+e.getMessage(),e);
-    }
   }
 
   /**
diff --git a/connectors/livelink/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/livelink/common_zh_CN.properties b/connectors/livelink/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/livelink/common_zh_CN.properties
new file mode 100644
index 0000000..501e184
--- /dev/null
+++ b/connectors/livelink/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/livelink/common_zh_CN.properties
@@ -0,0 +1,151 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LivelinkConnector.NoAccessTokensPresent=访问令牌不存在
+LivelinkConnector.NoAccessTokensSpecified=访问令牌未指定
+LivelinkConnector.Cache=缓存
+LivelinkConnector.CacheLifetime=缓存寿命: 
+LivelinkConnector.CacheLRUSize=缓存LRU大小: 
+LivelinkConnector.minutes=分
+LivelinkConnector.Server=服务器
+LivelinkConnector.DocumentAccess=文档访问
+LivelinkConnector.DocumentView=文档显示
+LivelinkConnector.Paths=路径
+LivelinkConnector.Filters=过滤器
+LivelinkConnector.Security=安全
+LivelinkConnector.Metadata=元数据
+LivelinkConnector.UserMapping=用户映射
+LivelinkConnector.AValidNumberIsRequired=请输入有效的数字
+LivelinkConnector.UserNameRegularExpressionMustBeValidRegularExpression=请输入有效的用户名正则表达式
+LivelinkConnector.EnterALivelinkServerName=请输入LiveLink服务器名
+LivelinkConnector.AServerPortNumberIsRequired=请输入服务器端口号
+LivelinkConnector.UserNameRegularExpressionCannotBeNull=请输入用户名正则表达式
+LivelinkConnector.ServerName=服务器名: 
+LivelinkConnector.ServerPort=服务器端口: 
+LivelinkConnector.ServerUserName=服务器用户名: 
+LivelinkConnector.ServerPassword=服务器密码: 
+LivelinkConnector.UserNameRegularExpression=用户名正则表达式: 
+LivelinkConnector.LivelinkUserExpression=Livelink用户表达式: 
+LivelinkConnector.Parameters=参数: 
+LivelinkConnector.ChooseACertificateFile=请选择证书文件
+LivelinkConnector.AValidNumberIsRequired=请输入有效的数字
+LivelinkConnector.AValidNumberOrBlankIsRequired=请输入有效的数字或设为空
+LivelinkConnector.EnterALivelinkServerName=请输入LiveLink服务器名
+LivelinkConnector.AServerPortNumberIsRequired=请输入服务器端口号
+LivelinkConnector.EnterTheCrawlCgiPathToLivelink=请输入指向LiveLink的爬取CGI路径
+LivelinkConnector.TheIngestCgiPathMustBeginWithACharacter=爬取CGI路径的第一个字符必须为‘/’
+LivelinkConnector.TheViewCgiPathMustBeBlankOrBeginWithACharacter=显示CGI路径需设为空或始于‘/’字符
+LivelinkConnector.DocumentFetchProtocol=文档提取协议: 
+LivelinkConnector.DocumentFetchPort=文档提取端口号: 
+LivelinkConnector.DocumentFetchSSLCertificateList=文档提取SSL证书列表: 
+LivelinkConnector.NoCertificatesPresent=证书不存在
+LivelinkConnector.DeleteCert=删除证书 
+LivelinkConnector.AddCert=添加证书
+LivelinkConnector.Certificate=证书
+LivelinkConnector.DocumentFetchCGIPath=文档提取CGI路径: 
+LivelinkConnector.DocumentFetchNTLMDomain=文档提取NTLM域: 
+LivelinkConnector.SetIfNTLMAuthDesired=(使用NTLM权限时设置)
+LivelinkConnector.DocumentFetchNTLMUserName=文档提取NTLM用户名: 
+LivelinkConnector.SetIfDifferentFromServerUserName=(与服务器用户名不同时设置)
+LivelinkConnector.DocumentFetchNTLMPassword=文档提取NTLM密码: 
+LivelinkConnector.SetIfDifferentFromServerPassword=(与服务器密码不同时设置)
+LivelinkConnector.DocumentViewProtocol=文档显示协议: 
+LivelinkConnector.SameAsFetchProtocol=与提取协议相同
+LivelinkConnector.DocumentViewServerName=文档显示服务器名: 
+LivelinkConnector.BlankSameAsFetchServer=(空白 = 与提取服务器相同)
+LivelinkConnector.DocumentViewPort=文档显示端口号: 
+LivelinkConnector.DocumentViewCGIPath=文档显示CGI路径
+LivelinkConnector.Parameters=参数: 
+LivelinkConnector.certificates=证书
+LivelinkConnector.SelectAFolderFirst=请选择文件夹
+LivelinkConnector.TypeInAFileSpecification=请输入文件规范
+LivelinkConnector.TypeInAnAccessToken=请输入访问令牌
+LivelinkConnector.SelectAWorkspaceFirst=请选择工作区
+LivelinkConnector.SelectACategoryFirst=请选择分类
+LivelinkConnector.SelectAtLeastOneAttributeFirst=请至少选择一个属性。不要选择下拉式标题
+LivelinkConnector.MatchStringCannotBeEmpty=匹配字符串不能为空
+LivelinkConnector.MatchStringMustBeValidRegularExpression=匹配字符串需输入有效的正则表达式
+LivelinkConnector.DeletePath=删除路径:  #
+LivelinkConnector.NoStartingPointsDefined=请指定起点
+LivelinkConnector.AddPath=添加路径
+LivelinkConnector.AddToPath=添加到路径
+LivelinkConnector.PickAFolder=-- 请选择文件夹 --
+LivelinkConnector.DeleteFilespec=删除文件规范:  #
+LivelinkConnector.NoIncludeExcludeFilesDefined=请选择包含/排除文件
+LivelinkConnector.AddFileSpecification=添加文件规范
+LivelinkConnector.Include=包含
+LivelinkConnector.Exclude=排除
+LivelinkConnector.SecurityColon=安全: 
+LivelinkConnector.Enabled=有效
+LivelinkConnector.Disabled=无效
+LivelinkConnector.DeleteToken=删除令牌:  #
+LivelinkConnector.AddAccessToken=添加访问令牌
+LivelinkConnector.IngestALLMetadata=爬取所有元数据?
+LivelinkConnector.Yes=是
+LivelinkConnector.No=否
+LivelinkConnector.DeleteMetadata=删除元数据:  #
+LivelinkConnector.NoMetadataSpecified=元数据未指定
+LivelinkConnector.AddMetadataItem=添加元数据
+LivelinkConnector.BackUpMetadataPath=备份元数据路径
+LivelinkConnector.AllAttributesInThisCategory=此分类的所有属性
+LivelinkConnector.PickAttributes=-- 请选择属性 --
+LivelinkConnector.AddToMetadataPath=添加到元数据路径
+LivelinkConnector.PickWorkspace=-- 请选择工作区 --
+LivelinkConnector.BackUpMetadataPath=备份元数据路径
+LivelinkConnector.PickAFolder=-- 请选择文件夹 --
+LivelinkConnector.AddCategory=添加分类
+LivelinkConnector.PickACategory=-- 请选择分类 --
+LivelinkConnector.PathAttributeName=路径属性名: 
+LivelinkConnector.PathSeparatorString=路径分隔符:
+LivelinkConnector.DeleteMapping=删除映射:  #
+LivelinkConnector.NoMappingsSpecified=映射未指定
+LivelinkConnector.AddToMappings=添加到映射
+LivelinkConnector.Roots=根: 
+LivelinkConnector.NoStartPointsSpecified=起点未指定
+LivelinkConnector.FileSpecs=文件规范: 
+LivelinkConnector.NoFileSpecsSpecified=文件规范未指定
+LivelinkConnector.Enabled2=有效
+LivelinkConnector.AccessTokens=访问令牌: 
+LivelinkConnector.OnlySpecifiedMetadataWillBeIngested=只爬取指定的元数据
+LivelinkConnector.AllDocumentMetadataWillBeIngested=爬取所有文档元数据
+LivelinkConnector.MetadataSpecification=元数据规范: 
+LivelinkConnector.SpecificMetadata=特定元数据: 
+LivelinkConnector.NoMetadataSpecified=元数据未指定
+LivelinkConnector.PathNameMetadataAttribute=路径名元数据属性: 
+LivelinkConnector.NoPathNameMetadataAttributeSpecified=路径名元数据属性未指定
+LivelinkConnector.PathValueMapping=路径值映射: 
+LivelinkConnector.NoMappingsSpecified=映射未指定
+LivelinkConnector.CacheLifetimeCannotBeNull=请输入缓存寿命
+LivelinkConnector.CacheLifetimeMustBeAnInteger=缓存寿命需输入整数
+LivelinkConnector.CacheLRUSizeCannotBeNull=缓存LRU大小不能为空
+LivelinkConnector.CacheLRUSizeMustBeAnInteger=缓存LRU大小需输入整数
+
+LivelinkConnector.ServerProtocol=服务器协议: 
+LivelinkConnector.internal=内部
+LivelinkConnector.ServerHTTPCGIPath=服务器HTTP CGI路径:  
+LivelinkConnector.ServerHTTPNTLMDomain=服务器HTTP域:  
+LivelinkConnector.ServerHTTPNTLMUserName=服务器HTTP NTLM用户名:  
+LivelinkConnector.ServerHTTPNTLMPassword=服务器HTTP NTLM密码:  
+LivelinkConnector.ServerSSLCertificateList=服务器SSL证书列表:  
+LivelinkConnector.EnterTheServerCgiPathToLivelink=请输入指向Livelink的服务器CGI路径 
+LivelinkConnector.TheServerCgiPathMustBeginWithACharacter=服务器CGI路径需始于'/'字符
+LivelinkConnector.Delete=删除
+LivelinkConnector.Add=添加
+LivelinkConnector.CrawlUserWorkspaces=爬取用户工作区
+
+LivelinkConnector.EnterTheViewCgiPathToLivelink=请输入指向LiveLink的显示CGI路径 
+LivelinkConnector.TheIngestCgiPathMustBeBlankOrBeginWithACharacter=爬取CGI路径需设为空或始于'/'字符
+LivelinkConnector.UseLAPI=使用LAPI
+LivelinkConnector.SelectAViewProtocol=请选择显示协议
diff --git a/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/CommonsHTTPSender.java b/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/CommonsHTTPSender.java
index 6b934cd..be66554 100644
--- a/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/CommonsHTTPSender.java
+++ b/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/CommonsHTTPSender.java
@@ -83,6 +83,7 @@
 import java.util.Map;
 import java.util.List;
 import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 
 /* Class to use httpcomponents to communicate with a SOAP server.
 * I've replaced the original rather complicated class with a much simpler one that
@@ -96,8 +97,6 @@
   protected static Log log =
     LogFactory.getLog(CommonsHTTPSender.class.getName());
 
-  protected static final Charset UTF_8 = Charset.forName("UTF-8");
-
   /** Properties */
   protected CommonsHTTPClientProperties clientProperties;
 
@@ -365,7 +364,7 @@
       {
         Charset charSet = methodThread.getCharSet();
         if (charSet == null)
-          charSet = UTF_8;
+          charSet = StandardCharsets.UTF_8;
         char[] buffer = new char[65536];
         Reader r = new InputStreamReader(is,charSet);
         Writer w = new StringWriter();
diff --git a/connectors/meridio/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/meridio/common_zh_CN.properties b/connectors/meridio/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/meridio/common_zh_CN.properties
new file mode 100644
index 0000000..d74ebfc
--- /dev/null
+++ b/connectors/meridio/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/meridio/common_zh_CN.properties
@@ -0,0 +1,123 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+MeridioConnector.NoAccessTokensPresent=访问令牌不存在
+MeridioConnector.NoAccessTokensSpecified=访问令牌未指定
+MeridioConnector.Cache=缓存
+MeridioConnector.CacheLifetime=缓存寿命: 
+MeridioConnector.CacheLRUSize=缓存LRU大小: 
+MeridioConnector.minutes=分
+MeridioConnector.DocumentServer=文档服务器
+MeridioConnector.RecordsServer=记录服务器
+MeridioConnector.UserServiceServer=用户服务服务器
+MeridioConnector.Credentials=凭证
+MeridioConnector.PleaseSupplyAValidNumber=请输入有效的数字
+MeridioConnector.AValidMeridioUserNameHasTheForm=Meridio用户名需指定为 <域>\\<用户>\ 的格式
+MeridioConnector.PleaseFillInAMeridioDocumentManagementServerName=请输入Meridio文档管理服务器名
+MeridioConnector.PleaseFillInAMeridioRecordsManagementServerName=请输入Meridio记录管理服务器名
+MeridioConnector.PleaseFillInAUserServiceServerName=请输入用户服务服务器名
+MeridioConnector.PleaseSupplyAMeridioDocumentManagementPortNumber=请输入Meridio文档管理端口号(如使用缺省值则设为空)
+MeridioConnector.PleaseSupplyAUserServicePortNumber=请输入用户服务端口号(如使用缺省值则设为空)
+MeridioConnector.TheConnectionRequiresAValidMeridioUserNameOfTheForm=连接的Meridio用户名需指定为 <域>\\<用户>\ 的格式
+MeridioConnector.ChooseACertificateFile=请选择证书文件
+MeridioConnector.DocumentWebserviceServerProtocol=文档Web服务服务器协议: 
+MeridioConnector.DocumentWebserviceServerName=文档Web服务服务器名: 
+MeridioConnector.DocumentWebserviceServerPort=文档Web服务服务器端口: 
+MeridioConnector.DocumentWebserviceLocation=文档Web服务位置: 
+MeridioConnector.DocumentWebserviceServerProxyHost=文档Web服务服务器代理主机: 
+MeridioConnector.DocumentWebserviceServerProxyPort=文档Web服务服务器代理端口: 
+MeridioConnector.RecordWebserviceServerProtocol=记录Web服务服务器协议: 
+MeridioConnector.RecordWebserviceServerName=记录Web服务服务器名: 
+MeridioConnector.RecordWebserviceServerPort=记录Web服务服务器端口: 
+MeridioConnector.RecordWebserviceLocation=记录Web服务位置: 
+MeridioConnector.RecordWebserviceServerProxyHost=记录Web服务服务器代理主机: 
+MeridioConnector.RecordWebserviceServerProxyPort=记录Web服务服务器代理端口: 
+MeridioConnector.UserWebserviceServerName=用户Web服务服务器名: 
+MeridioConnector.UserWebserviceServerPort=用户Web服务服务器端口: 
+MeridioConnector.UserWebserviceLocation=用户Web服务位置: 
+MeridioConnector.UserWebserviceServerProxyHost=用户Web服务服务器代理主机: 
+MeridioConnector.UserWebserviceServerProxyPort=用户Web服务服务器代理端口: 
+MeridioConnector.UserName=用户名: 
+MeridioConnector.Password=密码: 
+MeridioConnector.SSLCertificateList=SSL证书列表: 
+MeridioConnector.NoCertificatesPresent=证书不存在
+MeridioConnector.DeleteCert=删除证书 
+MeridioConnector.AddCert=添加证书
+MeridioConnector.Parameters=参数: 
+MeridioConnector.certificates=证书
+MeridioConnector.WebClient=Web客户端
+MeridioConnector.PleaseFillInAMeridioWebClientServerName=请输入Meridio的Web客户端服务器名
+MeridioConnector.PleaseSupplyAMeridioWebClientPortNumberOrNoneForDefault=请输入Meridio的Web客户端端口号(如使用缺省值则设为空)
+MeridioConnector.DocumentWebserviceServerProtocol=文档Web服务服务器协议: 
+MeridioConnector.WebClientProtocol=Web客户端协议
+MeridioConnector.WebClientServerName=Web客户端服务器名: 
+MeridioConnector.WebClientServerPort=Web客户端服务器端口: 
+MeridioConnector.WebClientServerDocLocation=Web客户端服务器文档位置: 
+MeridioConnector.Parameters=参数: 
+MeridioConnector.SearchPaths=検索路径
+MeridioConnector.ContentTypes=文档类型
+MeridioConnector.Categories=分类
+MeridioConnector.DataTypes=数据类型
+MeridioConnector.Security=安全
+MeridioConnector.Metadata=元数据
+MeridioConnector.SelectAFolderOrClassFirst=请先选择文件夹或类
+MeridioConnector.AccessTokenCannotBeNull=访问令牌不能为空
+MeridioConnector.MatchStringCannotBeEmpty=匹配字符串不能为空
+MeridioConnector.DeletePath=删除路径:  #
+MeridioConnector.NoPathsSpecified=路径未指定
+MeridioConnector.AddPath=添加路径
+MeridioConnector.DeleteFromPath=从路径删除
+MeridioConnector.AddToPath=添加到路径
+MeridioConnector.PickAFolder=-- 选择文件夹 --
+MeridioConnector.ServiceInterruption=服务中断:  
+MeridioConnector.MimeTypes=MIME类型: 
+MeridioConnector.Categories=分类: 
+MeridioConnector.DataTypesToIngest=爬取对象数据类型: 
+MeridioConnector.Documents=文档
+MeridioConnector.Records=记录
+MeridioConnector.DocumentsAndRecords=文档和记录
+MeridioConnector.Security2=安全: 
+MeridioConnector.Enabled=有效
+MeridioConnector.Disabled=无效
+MeridioConnector.DeleteToken=删除令牌:  #
+MeridioConnector.AddAccessToken=添加访问令牌
+MeridioConnector.IncludeAllMetadata=包含所有元数据: 
+MeridioConnector.IncludeSpecified=包含指定项目
+MeridioConnector.IncludeAll=包含所有
+MeridioConnector.Metadata=元数据: 
+MeridioConnector.PathAttributeMetadataName=路径属性元数据名: 
+MeridioConnector.DeleteMapping=删除映射:  #
+MeridioConnector.NoMappingsSpecified=映射未指定
+MeridioConnector.AddToMappings=添加到映射
+MeridioConnector.MatchRegexp=匹配正则表达式: 
+MeridioConnector.ReplaceString=替换字符串: 
+MeridioConnector.Paths=路径: 
+MeridioConnector.NoPathsSpecified=路径未指定
+MeridioConnector.DataType=数据类型: 
+MeridioConnector.Categories=分类: 
+MeridioConnector.MimeTypes=MIME类型: 
+MeridioConnector.AccessTokens=访问令牌: 
+MeridioConnector.MetadataPropertiesToIngest=爬取对象元数据属性: 
+MeridioConnector.AllMetadata=所有元数据
+MeridioConnector.MetadataPropertiesToIngest=爬取对象元数据属性: 
+MeridioConnector.NoMetadataPropertiesToIngest=没有爬取对象元数据属性
+MeridioConnector.PathNameMetadataAttribute=路径名元数据属性: 
+MeridioConnector.NoPathNameMetadataAttributeSpecified=路径名元数据属性未指定
+MeridioConnector.PathValueMapping=路径值映射: 
+MeridioConnector.CacheLifetimeCannotBeNull=缓存寿命不能为空
+MeridioConnector.CacheLifetimeMustBeAnInteger=缓存寿命必须为整数
+MeridioConnector.CacheLRUSizeCannotBeNull=缓存LRU大小不能为空
+MeridioConnector.CacheLRUSizeMustBeAnInteger=缓存LRU大小必须为整数
+
diff --git a/connectors/solr/upstream-diffs/README b/connectors/nullauthority/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/nullauthority/common_zh_CN.properties
similarity index 65%
rename from connectors/solr/upstream-diffs/README
rename to connectors/nullauthority/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/nullauthority/common_zh_CN.properties
index 3fcfe2f..ee20027 100644
--- a/connectors/solr/upstream-diffs/README
+++ b/connectors/nullauthority/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/nullauthority/common_zh_CN.properties
@@ -1,11 +1,11 @@
 # Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
+# contributor license agreements.  See the NOTICE file distributed with
 # this work for additional information regarding copyright ownership.
 # The ASF licenses this file to You under the Apache License, Version 2.0
 # (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
+# the License.  You may obtain a copy of the License at
 #
-# http://www.apache.org/licenses/LICENSE-2.0
+#     http://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
@@ -13,4 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-The lucene output connector furnishes an output connection between Connector Framework and SOLR.  There are no upstream dependencies.
+# Add stuff here as needed
diff --git a/connectors/nullauthority/pom.xml b/connectors/nullauthority/pom.xml
index be160ee..48fff28 100644
--- a/connectors/nullauthority/pom.xml
+++ b/connectors/nullauthority/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/solr/upstream-diffs/README b/connectors/nulloutput/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/nullconnector/common_zh_CN.properties
similarity index 65%
copy from connectors/solr/upstream-diffs/README
copy to connectors/nulloutput/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/nullconnector/common_zh_CN.properties
index 3fcfe2f..9fe9639 100644
--- a/connectors/solr/upstream-diffs/README
+++ b/connectors/nulloutput/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/nullconnector/common_zh_CN.properties
@@ -1,11 +1,11 @@
 # Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
+# contributor license agreements.  See the NOTICE file distributed with
 # this work for additional information regarding copyright ownership.
 # The ASF licenses this file to You under the Apache License, Version 2.0
 # (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
+# the License.  You may obtain a copy of the License at
 #
-# http://www.apache.org/licenses/LICENSE-2.0
+#     http://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
@@ -13,4 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-The lucene output connector furnishes an output connection between Connector Framework and SOLR.  There are no upstream dependencies.
+# Add stuff as needed
diff --git a/connectors/nulloutput/pom.xml b/connectors/nulloutput/pom.xml
index 4cd9b74..33032b8 100644
--- a/connectors/nulloutput/pom.xml
+++ b/connectors/nulloutput/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/nulloutput/upstream-diffs/README b/connectors/nulloutput/upstream-diffs/README
deleted file mode 100644
index 6f860fe..0000000
--- a/connectors/nulloutput/upstream-diffs/README
+++ /dev/null
@@ -1,16 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-The null output connector is provided mainly as a convenience for those developing repository and authority connectors, who do not want to spend time and effort ingesting documents into a real search index.  There are no third-party client libraries or upstream changes required for this output connector.
diff --git a/connectors/opensearchserver/connector/src/main/java/org/apache/manifoldcf/agents/output/opensearchserver/OpenSearchServerConnection.java b/connectors/opensearchserver/connector/src/main/java/org/apache/manifoldcf/agents/output/opensearchserver/OpenSearchServerConnection.java
index 059fba5..b642dfb 100644
--- a/connectors/opensearchserver/connector/src/main/java/org/apache/manifoldcf/agents/output/opensearchserver/OpenSearchServerConnection.java
+++ b/connectors/opensearchserver/connector/src/main/java/org/apache/manifoldcf/agents/output/opensearchserver/OpenSearchServerConnection.java
@@ -19,15 +19,14 @@
 
 import java.io.IOException;
 import java.io.StringReader;
-import java.io.UnsupportedEncodingException;
 import java.io.Writer;
 import java.io.StringWriter;
 import java.io.Reader;
 import java.io.InputStreamReader;
 import java.io.InputStream;
 import java.io.InterruptedIOException;
-import java.net.URLEncoder;
 import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
@@ -52,6 +51,7 @@
 import org.apache.http.ParseException;
 
 import org.apache.manifoldcf.core.interfaces.ManifoldCFException;
+import org.apache.manifoldcf.core.util.URLEncoder;
 import org.w3c.dom.Document;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
@@ -84,9 +84,7 @@
   }
 
   private Result result;
-
-  private final static Charset UTF_8 = Charset.forName("UTF-8");
-
+    
   protected OpenSearchServerConnection(HttpClient client, OpenSearchServerConfig config) {
     this.httpClient = client;
     result = Result.UNKNOWN;
@@ -100,26 +98,18 @@
     apiKey = config.getApiKey();
   }
 
-  protected final String urlEncode(String t) throws ManifoldCFException {
-    try {
-      return URLEncoder.encode(t, "UTF-8");
-    } catch (UnsupportedEncodingException e) {
-      throw new ManifoldCFException(e);
-    }
-  }
-
   protected StringBuffer getApiUrl(String command) throws ManifoldCFException {
     StringBuffer url = new StringBuffer(serverLocation);
     if (!serverLocation.endsWith("/"))
       url.append('/');
     url.append(command);
     url.append("?use=");
-    url.append(urlEncode(indexName));
+    url.append(URLEncoder.encode(indexName));
     callUrlSnippet = url.toString();
     if (userName != null && apiKey != null && userName.length() > 0
         && apiKey.length() > 0) {
       url.append("&login=");
-      url.append(urlEncode(userName));
+      url.append(URLEncoder.encode(userName));
       url.append("&key=");
       url.append(apiKey);
     }
@@ -245,13 +235,13 @@
         {
           ContentType ct = ContentType.get(entity);
           if (ct == null)
-            charSet = UTF_8;
+            charSet = StandardCharsets.UTF_8;
           else
             charSet = ct.getCharset();
         }
         catch (ParseException e)
         {
-          charSet = UTF_8;
+          charSet = StandardCharsets.UTF_8;
         }
         char[] buffer = new char[65536];
         Reader r = new InputStreamReader(is,charSet);
diff --git a/connectors/opensearchserver/connector/src/main/java/org/apache/manifoldcf/agents/output/opensearchserver/OpenSearchServerConnector.java b/connectors/opensearchserver/connector/src/main/java/org/apache/manifoldcf/agents/output/opensearchserver/OpenSearchServerConnector.java
index 983eef2..758bcf9 100644
--- a/connectors/opensearchserver/connector/src/main/java/org/apache/manifoldcf/agents/output/opensearchserver/OpenSearchServerConnector.java
+++ b/connectors/opensearchserver/connector/src/main/java/org/apache/manifoldcf/agents/output/opensearchserver/OpenSearchServerConnector.java
@@ -17,12 +17,12 @@
 
 package org.apache.manifoldcf.agents.output.opensearchserver;
 
-import java.io.BufferedReader;
+
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.UnsupportedEncodingException;
+
+
 import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
@@ -42,7 +42,6 @@
 import org.apache.http.protocol.HttpContext;
 
 import org.apache.commons.io.FilenameUtils;
-import org.apache.commons.io.IOUtils;
 import org.apache.manifoldcf.agents.interfaces.IOutputAddActivity;
 import org.apache.manifoldcf.agents.interfaces.IOutputNotifyActivity;
 import org.apache.manifoldcf.agents.interfaces.IOutputRemoveActivity;
diff --git a/connectors/opensearchserver/connector/src/main/java/org/apache/manifoldcf/agents/output/opensearchserver/OpenSearchServerDelete.java b/connectors/opensearchserver/connector/src/main/java/org/apache/manifoldcf/agents/output/opensearchserver/OpenSearchServerDelete.java
index 69156de..41ee687 100644
--- a/connectors/opensearchserver/connector/src/main/java/org/apache/manifoldcf/agents/output/opensearchserver/OpenSearchServerDelete.java
+++ b/connectors/opensearchserver/connector/src/main/java/org/apache/manifoldcf/agents/output/opensearchserver/OpenSearchServerDelete.java
@@ -21,6 +21,7 @@
 import org.apache.http.client.methods.HttpGet;
 
 import org.apache.manifoldcf.core.interfaces.ManifoldCFException;
+import org.apache.manifoldcf.core.util.URLEncoder;
 
 public class OpenSearchServerDelete extends OpenSearchServerConnection {
 
@@ -29,7 +30,7 @@
     super(client, config);
     StringBuffer url = getApiUrl("delete");
     url.append("&uniq=");
-    url.append(urlEncode(documentURI));
+    url.append(URLEncoder.encode(documentURI));
     HttpGet method = new HttpGet(url.toString());
     call(method);
     if ("OK".equals(checkXPath(xPathStatus)))
diff --git a/connectors/opensearchserver/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/opensearchserver/common_zh_CN.properties b/connectors/opensearchserver/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/opensearchserver/common_zh_CN.properties
new file mode 100644
index 0000000..aedc638
--- /dev/null
+++ b/connectors/opensearchserver/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/opensearchserver/common_zh_CN.properties
@@ -0,0 +1,32 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+OpenSearchServerConnector.Parameters=参数
+
+OpenSearchServerConnector.ServerLocation=服务器位置
+OpenSearchServerConnector.URLColon=(URL):
+OpenSearchServerConnector.ServerLocationColon=服务器位置:
+OpenSearchServerConnector.IndexNameColon=索引名: 
+OpenSearchServerConnector.UserNameColon=用户名: 
+OpenSearchServerConnector.APIKeyColon=APIKey: 
+
+OpenSearchServerConnector.PleaseSupplyValidLocation=请输入有效的OpenSearchServer服务器URL
+OpenSearchServerConnector.PleaseSupplyValidIndexName=请输入有效的索引名
+
+OpenSearchServerConnector.OpenSearchServer=OpenSearchServer
+
+OpenSearchServerConnector.MaxFileSizeBytesColon=最大文件大小(字节):
+OpenSearchServerConnector.AllowedMIMETypesColon=被允许的MIME类型: 
+OpenSearchServerConnector.AllowedFileExtensionsColon=被允许的文件扩展名: 
diff --git a/connectors/opensearchserver/pom.xml b/connectors/opensearchserver/pom.xml
index d90f3ec..1d530ed 100644
--- a/connectors/opensearchserver/pom.xml
+++ b/connectors/opensearchserver/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   
diff --git a/connectors/pom.xml b/connectors/pom.xml
index 8dcba15..688e5f9 100644
--- a/connectors/pom.xml
+++ b/connectors/pom.xml
@@ -20,13 +20,13 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-parent</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
   <groupId>org.apache.manifoldcf</groupId>
   <artifactId>mcf-connectors</artifactId>
-  <version>1.6-SNAPSHOT</version>
+  <version>1.7-SNAPSHOT</version>
 
   <name>ManifoldCF - Connectors</name>
   <packaging>pom</packaging>
diff --git a/connectors/regexpmapper/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/mappers/regexp/common_zh_CN.properties b/connectors/regexpmapper/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/mappers/regexp/common_zh_CN.properties
new file mode 100644
index 0000000..0c03bc8
--- /dev/null
+++ b/connectors/regexpmapper/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/mappers/regexp/common_zh_CN.properties
@@ -0,0 +1,20 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+RegexpMapper.UserMapping=用户映射
+RegexpMapper.UserNameRegularExpressionColon=用户映射正则表达式:
+RegexpMapper.UserExpressionColon=用户表达式:
+RegexpMapper.UserNameRegularExpressionMustBeValidRegularExpression=用户名正则表达式必须为有效的正则表达式
+RegexpMapper.UserNameRegularExpressionCannotBeNull=用户名正则表达式不能为Null
diff --git a/connectors/regexpmapper/pom.xml b/connectors/regexpmapper/pom.xml
index c8b8ba6..199ca09 100644
--- a/connectors/regexpmapper/pom.xml
+++ b/connectors/regexpmapper/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/rss/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/rss/RSSConnector.java b/connectors/rss/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/rss/RSSConnector.java
index 8e5d689..c20d889 100644
--- a/connectors/rss/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/rss/RSSConnector.java
+++ b/connectors/rss/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/rss/RSSConnector.java
@@ -193,7 +193,7 @@
         {
           int maxKBytesPerSecondPerServer = Integer.parseInt(x);
           if (maxKBytesPerSecondPerServer > 0)
-            minimumMillisecondsPerBytePerServer = 1000.0/(double)maxKBytesPerSecondPerServer;
+            minimumMillisecondsPerBytePerServer = 1.0/(double)maxKBytesPerSecondPerServer;
         }
         catch (NumberFormatException e)
         {
@@ -877,10 +877,6 @@
                 is.close();
               }
             }
-            catch (UnsupportedEncodingException e)
-            {
-              throw new ManifoldCFException("Unsupported encoding: "+e.getMessage(),e);
-            }
             catch (java.net.SocketTimeoutException e)
             {
               throw new ManifoldCFException("IO exception reading data from string: "+e.getMessage(),e);
diff --git a/connectors/rss/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/rss/Robots.java b/connectors/rss/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/rss/Robots.java
index 1ff565d..546501d 100644
--- a/connectors/rss/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/rss/Robots.java
+++ b/connectors/rss/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/rss/Robots.java
@@ -22,6 +22,8 @@
 import org.apache.manifoldcf.agents.interfaces.*;
 import org.apache.manifoldcf.crawler.interfaces.*;
 import org.apache.manifoldcf.crawler.system.Logging;
+
+import java.nio.charset.StandardCharsets;
 import java.util.*;
 import java.io.*;
 import java.net.*;
@@ -456,7 +458,7 @@
             InputStream is = connection.getResponseBodyStream();
             try
             {
-              Reader r = new InputStreamReader(is,"utf-8");
+              Reader r = new InputStreamReader(is, StandardCharsets.UTF_8);
               try
               {
                 BufferedReader br = new BufferedReader(r);
diff --git a/connectors/rss/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/rss/common_zh_CN.properties b/connectors/rss/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/rss/common_zh_CN.properties
new file mode 100644
index 0000000..b16df7f
--- /dev/null
+++ b/connectors/rss/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/rss/common_zh_CN.properties
@@ -0,0 +1,101 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+RSSConnector.EmailAddressToContactColon=邮箱联系地址: 
+RSSConnector.Email=电子邮件
+RSSConnector.Robots=机器人
+RSSConnector.Bandwidth=带宽
+RSSConnector.Proxy=代理
+RSSConnector.RobotsTxtUsageColon=使用Robots.txt: 
+RSSConnector.DontLookAtRobotsTxt=不使用robots.txt
+RSSConnector.ObeyRobotsTxtForDataFetchesOnly=只在提取数据时服从robots.txt
+RSSConnector.ObeyRobotsTxtForAllFetches=每次提取均服从robots.txt
+RSSConnector.MaxKBytesPerSecondPerServerColon=(最大Kbytes/秒)/服务器: 
+RSSConnector.MaxConnectionsPerServerColon=最大连接数/服务器: 
+RSSConnector.MaxFetchesPerMinutePerServerColon=(最大提取数/分)/服务器: 
+RSSConnector.ThrottleGroupNameColon=限流器组名: 
+RSSConnector.ProxyHostColon=代理主机: 
+RSSConnector.ProxyPortColon=代理端口: 
+RSSConnector.ProxyAuthenticationDomainColon=代理认证域: 
+RSSConnector.ProxyAuthenticationUserNameColon=代理认证用户名: 
+RSSConnector.ProxyAuthenticationPasswordColon=代理认证密码: 
+RSSConnector.ParametersColon=参数: 
+RSSConnector.URLs=URLs
+RSSConnector.Canonicalization=规范化
+RSSConnector.URLMappings=URL映射
+RSSConnector.TimeValues=时间
+RSSConnector.Security=安全
+RSSConnector.Metadata=元数据
+RSSConnector.DechromedContent=脱鉻内容
+RSSConnector.NoAccessTokensSpecified=请指定访问令牌
+RSSConnector.MetadataColon=元数据: 
+RSSConnector.NoMetadataSpecified=请指定元数据
+RSSConnector.NoAccessTokensPresent=访问令牌不存在
+RSSConnector.NeedAValidEmailAddress=请输入有效的邮箱地址
+RSSConnector.EnterAValidNumberOrBlankForNoLimit=请输入有效的数字或置空(表示无限)
+RSSConnector.EnterAValidNumberForTheMaxNumberOfOpenConnectionsPerServer=请输入有效的数字指定每台服务器可打开的最大连接数
+RSSConnector.EmailAddressRequiredToBeIncludedInAllRequestHeaders=请输入邮箱地址。它将包含在所有请求头中
+RSSConnector.certificates= 证书
+RSSConnector.MatchMustHaveARegexpValue=匹配必须为正则表达式
+RSSConnector.TypeInAnAccessToken=请输入访问令牌
+RSSConnector.TypeInMetadataName=请输入元数据名
+RSSConnector.TypeInMetadataValue=请输入元数据值
+RSSConnector.ATimeoutValueInSecondsIsRequired=请输入超时(秒)
+RSSConnector.ARefetchIntervalInMinutesIsRequired=请输入重新提取间隔(分)
+RSSConnector.AMinimumRefetchIntervalInMinutesIsRequire=请输入重新提取最小间隔(分)
+RSSConnector.ABadFeedRefetchIntervalInMinutesIsRequired=进料重新提取间隔(分)无效
+RSSConnector.URLRegularExpression=URI正则表达式
+RSSConnector.Description=説明
+RSSConnector.Reorder=重排
+RSSConnector.RemoveJSPSessions=删除JSP会话
+RSSConnector.RemoveASPSessions=删除ASP会话
+RSSConnector.RemovePHPSessions=删除PHP会话
+RSSConnector.RemoveBVSessions=删除BV会话
+RSSConnector.DeleteUrlRegexp=删除URI正则表达式
+RSSConnector.NoCanonicalizationSpecified=规范化未指定。将排序所有URI并删除所有会话
+RSSConnector.AddUlRegexp=添加URI正则表达式
+RSSConnector.RemoveRegexp=删除正则表达式:  #
+RSSConnector.AddRegexp=添加正则表达式
+RSSConnector.FeedConnectTimeout=进料连接超时(秒): 
+RSSConnector.DefaultFeedRefetchTime=进料重新提取缺省间隔(分): 
+RSSConnector.MinimumFeedRefetchTime=进料重新提取最小间隔(分): 
+RSSConnector.BadFeedRefetchTime=无效的进料重新提取间隔(分): 
+RSSConnector.NoDechromedContent=脱鉻内容不存在
+RSSConnector.DechromedContentIfPresentInDescriptionField=当脱鉻内容存在于Description字段时
+RSSConnector.DechromedContentIfPresentInContentField=当脱鉻内容存在于Content字段时
+RSSConnector.UseChromedContentIfNoDechromedContentFound=当未发现脱鉻内容时使用镀鉻内容
+#RSSConnector.NeverUseChromedContent=不使用镀鉻内容
+RSSConnector.NeverUseChromedContent=当无法获取脱鉻内容时跳过文档
+RSSConnector.NoContentMetadataOnly=当无法获取脱鉻内容时只包含元数据
+RSSConnector.DeleteToken=删除令牌:  #
+RSSConnector.AddAccessToken=添加访问令牌
+RSSConnector.DeleteMetadata=删除元数据:  #
+RSSConnector.NoMetadataPresent=元数据不存在
+RSSConnector.AddMetadata=添加元数据
+RSSConnector.RSSUrls=RSS URL: 
+RSSConnector.NoRSSUrlsSpecified=RSS URL未指定
+RSSConnector.URLCanonicalization=URL规范化: 
+RSSConnector.URLRegexp=URL正则表达式
+RSSConnector.URLMappingsColon=URL映射: 
+RSSConnector.NoMappingsSpecifiedWillAcceptAllUrls=映射未指定。访问所有URI
+RSSConnector.FeedConnectionTimeout=进料连接超时(秒): 
+RSSConnector.DefaultFeedRescanInterval=重新进料缺省间隔(分): 
+RSSConnector.MinimumFeedRescanInterval=重新进料最小间隔(分): 
+RSSConnector.BadFeedRescanInterval=无效重新进料间隔(分): 
+RSSConnector.DechromedContentSource=脱鉻内容源: 
+RSSConnector.ChromedContent=镀鉻内容: 
+RSSConnector.AccessTokens=访问令牌: 
+RSSConnector.Exclusions=排除
+RSSConnector.Exclude=排除: 
diff --git a/connectors/rss/pom.xml b/connectors/rss/pom.xml
index 8f041de..79d3bb3 100644
--- a/connectors/rss/pom.xml
+++ b/connectors/rss/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/rss/upstream-diffs/README b/connectors/rss/upstream-diffs/README
deleted file mode 100644
index 3239af5..0000000
--- a/connectors/rss/upstream-diffs/README
+++ /dev/null
@@ -1,16 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-For the rss connector, no upstream differences/instructions are necessary, other than to follow the master upstream-diffs patches at the root level pertaining to commons-httpclient and xerces2-java.
diff --git a/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/sharepoint/SharePointADAuthority.java b/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/sharepoint/SharePointADAuthority.java
index 102f147..8e5e1db 100644
--- a/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/sharepoint/SharePointADAuthority.java
+++ b/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/sharepoint/SharePointADAuthority.java
@@ -23,6 +23,7 @@
 import org.apache.manifoldcf.authorities.interfaces.*;
 import org.apache.manifoldcf.authorities.system.Logging;
 import org.apache.manifoldcf.authorities.system.ManifoldCF;
+import org.apache.manifoldcf.core.util.URLEncoder;
 
 import java.io.*;
 import java.util.*;
@@ -471,14 +472,7 @@
   
   protected static String userTokenFromLoginName(String loginName)
   {
-    try
-    {
-      return "Ui:0#.w|"+URLEncoder.encode(loginName,"utf-8").toLowerCase(Locale.ROOT);
-    }
-    catch (UnsupportedEncodingException e)
-    {
-      throw new RuntimeException("Utf-8 encoding unrecognized");
-    }
+      return "Ui:0#.w|"+URLEncoder.encode(loginName).toLowerCase(Locale.ROOT);
   }
   
   // UI support methods.
@@ -519,8 +513,8 @@
     Map<String,Object> velocityContext = new HashMap<String,Object>();
     velocityContext.put("TabName",tabName);
     fillInDomainControllerTab(velocityContext,out,parameters);
-    fillInCacheTab(velocityContext,out,parameters);
-    Messages.outputResourceWithVelocity(out,locale,"editADConfiguration_DomainController.html",velocityContext);
+    fillInCacheTab(velocityContext, out, parameters);
+    Messages.outputResourceWithVelocity(out, locale, "editADConfiguration_DomainController.html", velocityContext);
     Messages.outputResourceWithVelocity(out,locale,"editADConfiguration_Cache.html",velocityContext);
   }
 
@@ -544,7 +538,7 @@
         domainControllers.add(createDomainControllerMap(mapper,dcSuffix,dcDomainController,dcUserName,dcPassword,dcAuthentication,dcUserACLsUsername));
       }
     }
-    velocityContext.put("DOMAINCONTROLLERS",domainControllers);
+    velocityContext.put("DOMAINCONTROLLERS", domainControllers);
   }
 
   protected static Map<String,String> createDomainControllerMap(IPasswordMapperActivity mapper, String suffix, String domainControllerName,
diff --git a/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/sharepoint/SharePointAuthority.java b/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/sharepoint/SharePointAuthority.java
index 4640b95..f63a0f9 100644
--- a/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/sharepoint/SharePointAuthority.java
+++ b/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/sharepoint/SharePointAuthority.java
@@ -23,6 +23,8 @@
 import org.apache.manifoldcf.authorities.interfaces.*;
 import org.apache.manifoldcf.authorities.system.Logging;
 import org.apache.manifoldcf.authorities.system.ManifoldCF;
+import org.apache.manifoldcf.core.util.URLEncoder;
+import org.apache.manifoldcf.core.util.URLDecoder;
 
 import java.io.*;
 import java.util.*;
@@ -777,31 +779,16 @@
   */
   public static String pathItemDecode(String pathItem)
   {
-    try
-    {
-      return java.net.URLDecoder.decode(pathItem.replaceAll("\\%20","+"),"utf-8");
-    }
-    catch (UnsupportedEncodingException e)
-    {
-      // Bad news, utf-8 not available!
-      throw new RuntimeException("No utf-8 encoding available");
-    }
+      return URLDecoder.decode(pathItem.replaceAll("\\%20","+"));
   }
 
   /** Encode a path item.
   */
   public static String pathItemEncode(String pathItem)
   {
-    try
-    {
-      String output = java.net.URLEncoder.encode(pathItem,"utf-8");
+      String output = URLEncoder.encode(pathItem);
       return output.replaceAll("\\+","%20");
-    }
-    catch (UnsupportedEncodingException e)
-    {
-      // Bad news, utf-8 not available!
-      throw new RuntimeException("No utf-8 encoding available");
-    }
+
   }
 
   /** Given a path that is /-separated, and otherwise encoded, decode properly to convert to
diff --git a/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharepoint/SharePointRepository.java b/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharepoint/SharePointRepository.java
index 8a17648..7396f04 100644
--- a/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharepoint/SharePointRepository.java
+++ b/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharepoint/SharePointRepository.java
@@ -25,6 +25,8 @@
 import org.apache.manifoldcf.crawler.system.ManifoldCF;
 import org.apache.manifoldcf.core.common.*;
 import org.apache.manifoldcf.core.extmimemap.ExtensionMimeMap;
+import org.apache.manifoldcf.core.util.URLEncoder;
+import org.apache.manifoldcf.core.util.URLDecoder;
 
 import java.io.*;
 import java.util.Date;
@@ -4469,31 +4471,16 @@
   */
   public static String pathItemDecode(String pathItem)
   {
-    try
-    {
-      return java.net.URLDecoder.decode(pathItem.replaceAll("\\%20","+"),"utf-8");
-    }
-    catch (UnsupportedEncodingException e)
-    {
-      // Bad news, utf-8 not available!
-      throw new RuntimeException("No utf-8 encoding available");
-    }
+      return URLDecoder.decode(pathItem.replaceAll("\\%20","+"));
+
   }
 
   /** Encode a path item.
   */
   public static String pathItemEncode(String pathItem)
   {
-    try
-    {
-      String output = java.net.URLEncoder.encode(pathItem,"utf-8");
+      String output = URLEncoder.encode(pathItem);
       return output.replaceAll("\\+","%20");
-    }
-    catch (UnsupportedEncodingException e)
-    {
-      // Bad news, utf-8 not available!
-      throw new RuntimeException("No utf-8 encoding available");
-    }
   }
 
   /** Given a path that is /-separated, and otherwise encoded, decode properly to convert to
diff --git a/connectors/sharepoint/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/sharepoint/common_zh_CN.properties b/connectors/sharepoint/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/sharepoint/common_zh_CN.properties
new file mode 100644
index 0000000..8ce4fab
--- /dev/null
+++ b/connectors/sharepoint/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/sharepoint/common_zh_CN.properties
@@ -0,0 +1,77 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SharePointAuthority.DomainController=域控制器
+SharePointAuthority.Cache=缓存
+SharePointAuthority.DomainControllers=域控制器:
+SharePointAuthority.DomainControllerName=域控制器名
+SharePointAuthority.DomainSuffix=域后缀
+SharePointAuthority.AdministrativeUserName=管理员名
+SharePointAuthority.AdministrativePassword=管理员密码
+SharePointAuthority.Authentication=认证
+SharePointAuthority.LoginNameADAttribute=登录名AD属性
+SharePointAuthority.CacheLifetime=缓存寿命: 
+SharePointAuthority.CacheLRUSize=缓存LRU大小: 
+SharePointAuthority.minutes=分
+SharePointAuthority.AddToEnd=添加到末尾
+SharePointAuthority.AddRuleToEnd=添加规则到列表末尾
+SharePointAuthority.Delete=删除
+SharePointAuthority.DeleteRuleNumber=删除规则号 #
+SharePointAuthority.InsertBefore=向前插入
+SharePointAuthority.InsertBeforeRuleNumber=插入到规则号的前面 #
+SharePointAuthority.EnterADomainControllerServerName=请输入域控制器服务器名
+SharePointAuthority.Domain Controller2=域控制器
+SharePointAuthority.AdministrativeUserNameCannotBeNull=管理员名不能为Null
+SharePointAuthority.AuthenticationCannotBeNull=认证信息不能为Null
+SharePointAuthority.CacheLifetimeCannotBeNull=缓存寿命不能为Null
+SharePointAuthority.CacheLifetimeMustBeAnInteger=缓存寿命必须为整数
+SharePointAuthority.CacheLRUSizeCannotBeNull=缓存LRU大小不能为Null
+SharePointAuthority.CacheLRUSizeMustBeAnInteger=缓存LRU大小必须为整数
+SharePointAuthority.certificate=证书
+
+SharePointAuthority.Server=服务器
+SharePointAuthority.ServerSharePointVersion=服务器共享点版本: 
+SharePointAuthority.ServerClaimSpace=服务器Claim空间:
+SharePointAuthority.Disabled=无效
+SharePointAuthority.Enabled=有效
+SharePointAuthority.ServerProtocol=服务器协议: 
+SharePointAuthority.ServerName=服务器名: 
+SharePointAuthority.ServerPort=服务器端口号: 
+SharePointAuthority.SitePath=网站路径: 
+SharePointAuthority.UserName=用户名: 
+SharePointAuthority.Password=密码: 
+SharePointAuthority.SSLCertificateList=SSL证书列表: 
+SharePointAuthority.NoCertificatesPresent=证书不存在
+SharePointAuthority.Delete=删除
+SharePointAuthority.DeleteCert=删除证书
+SharePointAuthority.Add=添加
+SharePointAuthority.AddCert=添加证书
+SharePointAuthority.Parameters=参数: 
+SharePointAuthority.ChooseACertificateFile=请选择证书文件
+SharePointAuthority.PleaseSupplyAValidNumber=请输入有效的数字
+SharePointAuthority.PleaseSpecifyAnyServerPathInformation=请在网站路径字段输入服务器路径信息,而不是服务器名
+SharePointAuthority.SitePathMustBeginWithWCharacter=网站路径的第一个字符必须为‘/’
+SharePointAuthority.SitePathCannotEndWithACharacter=网站路径的最后一个字符不能为‘/’
+SharePointAuthority.AValidSharePointUserNameHasTheForm=共享点用户名需指定为 <域>\\<用户>\ 的格式
+SharePointAuthority.PleaseFillInASharePointServerName=请输入共享点服务器名
+SharePointAuthority.PleaseSpecifyAnyServerPathInformationInTheSitePathField=请在网站路径字段输入服务器路径信息,而不是服务器名
+SharePointAuthority.PleaseSupplyASharePointPortNumber=请输入共享点端口号。如使用缺省值则设为空
+SharePointAuthority.TheConnectionRequiresAValidSharePointUserName=连接的共享点用户名需指定为 <域>\\<用户>\ 的格式
+SharePointAuthority.Certificate=证书: 
+
+SharePointAuthority.AuthorizationModel=授权模型
+SharePointAuthority.AuthorizationModelColon=授权模型:
+SharePointAuthority.Classic=经典
+SharePointAuthority.ClaimSpace=Claim空间
diff --git a/connectors/sharepoint/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/sharepoint/common_zh_CN.properties b/connectors/sharepoint/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/sharepoint/common_zh_CN.properties
new file mode 100644
index 0000000..110b7fd
--- /dev/null
+++ b/connectors/sharepoint/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/sharepoint/common_zh_CN.properties
@@ -0,0 +1,150 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SharePointRepository.AuthorityTypeColon=权限类型:
+SharePointRepository.SharePoint=共享点
+SharePointRepository.ActiveDirectory=Active Directory
+
+SharePointRepository.List=列表
+SharePointRepository.AddList=添加列表
+SharePointRepository.SelectList=选择列表
+SharePointRepository.AddListToRulePath=添加列表到规则路径
+SharePointRepository.PleaseSelectAListFirst=请先选择列表
+SharePointRepository.AddListToMetadataRulePath=添加列表到元数据规则路径
+
+SharePointRepository.AddToMappings=添加到映射
+SharePointRepository.AddPathMapping=添加路径映射
+
+SharePointRepository.NoAccessTokensPresent=访问令牌不存在
+SharePointRepository.NoAccessTokensSpecified=访问令牌未指定
+SharePointRepository.Server=服务器
+SharePointRepository.AuthorityType=权限类型
+SharePointRepository.Paths=路径
+SharePointRepository.Security=安全
+SharePointRepository.Metadata=元数据
+SharePointRepository.ServerSharePointVersion=服务器共享点版本: 
+SharePointRepository.ServerProtocol=服务器协议: 
+SharePointRepository.ServerName=服务器名: 
+SharePointRepository.ServerPort=服务器端口号: 
+SharePointRepository.SitePath=网站路径: 
+SharePointRepository.UserName=用户名: 
+SharePointRepository.Password=密码: 
+SharePointRepository.SSLCertificateList=SSL证书列表: 
+SharePointRepository.NoCertificatesPresent=证书不存在
+SharePointRepository.Delete=删除
+SharePointRepository.DeleteCert=删除证书
+SharePointRepository.Add=添加
+SharePointRepository.AddCert=添加证书
+SharePointRepository.Parameters=参数: 
+SharePointRepository.PathRules=路径规则: 
+SharePointRepository.PathMatch=路径匹配
+SharePointRepository.Type=类型
+SharePointRepository.Action=动作
+SharePointRepository.InsertNewRule=插入新规则
+SharePointRepository.Delete=删除
+SharePointRepository.DeleteRule=删除规则 #
+SharePointRepository.InsertNewRule=插入新规则
+SharePointRepository.NoDocumentsCurrentlyIncluded=当前没有可包含的文档
+SharePointRepository.AddNewRule=添加新规则
+SharePointRepository.File=文件
+SharePointRepository.Library=库
+SharePointRepository.Site=网站
+SharePointRepository.Include=包含
+SharePointRepository.Exclude=排除
+SharePointRepository.AddSite=添加网站
+SharePointRepository.SelectSite=选择网站
+SharePointRepository.AddLibrary=添加库
+SharePointRepository.SelectLibrary=选择库
+SharePointRepository.AddText=添加文本
+SharePointRepository.Security2=安全: 
+SharePointRepository.MetadataRules=元数据规则: 
+SharePointRepository.PathMatch=路径匹配
+SharePointRepository.Action=动作
+SharePointRepository.AllMetadata=所有元数据
+SharePointRepository.Fields=字段
+SharePointRepository.InsertNewRule=插入规则
+SharePointRepository.AddNewRule=添加新规则
+SharePointRepository.ResetPath=重置路径
+SharePointRepository.PathMetadata=路径元数据: 
+SharePointRepository.AttributeName=属性名: 
+SharePointRepository.NoMappingsSpecified=映射未指定
+SharePointRepository.MatchRegexp=匹配正则表达式: 
+SharePointRepository.ReplaceString=替换字符串: 
+SharePointRepository.PathRules=路径规则: 
+SharePointRepository.PathMatch=路径匹配
+SharePointRepository.RuleType=规则类型
+SharePointRepository.file=文件
+SharePointRepository.NoDocumentsWillBeIncluded=没有可包含的文档
+SharePointRepository.Metadata2=元数据: 
+SharePointRepository.include2=包含
+SharePointRepository.NoMetadataWillBeIncluded=没有可包含的元数据
+SharePointRepository.AccessToken=访问令牌: 
+SharePointRepository.PathMetadataAttributeName=路径元数据属性名: 
+SharePointRepository.NoPathNameMetadataAttributeSpecified=路径名元数据属性未指定
+SharePointRepository.PathValueMapping=路径值映射: 
+SharePointRepository.NoMappingsSpecified=映射未指定
+SharePointRepository.ChooseACertificateFile=请选择证书文件
+SharePointRepository.PleaseSupplyAValidNumber=请输入有效的数字
+SharePointRepository.PleaseSpecifyAnyServerPathInformation=请在网站路径字段输入服务器路径信息,而不是服务器名
+SharePointRepository.SitePathMustBeginWithWCharacter=网站路径的第一个字符必须为‘/’
+SharePointRepository.SitePathCannotEndWithACharacter=网站路径的最后一个字符不能为‘/’
+SharePointRepository.AValidSharePointUserNameHasTheForm=共享点用户名需指定为 <域>\\<用户>\ 的格式
+SharePointRepository.PleaseFillInASharePointServerName=请输入共享点服务器名
+SharePointRepository.PleaseSpecifyAnyServerPathInformationInTheSitePathField=请在网站路径字段输入服务器路径信息,而不是服务器名
+SharePointRepository.PleaseSupplyASharePointPortNumber=请输入共享点端口号。如使用缺省值则设为空
+SharePointRepository.TheConnectionRequiresAValidSharePointUserName=连接的共享点用户名需指定为 <域>\\<用户>\ 的格式
+SharePointRepository.Certificate=证书: 
+SharePointRepository.PleaseSelectATypeFirst=请先选择类型
+SharePointRepository.PleaseSelectAnActionFirst=请先选择动作
+SharePointRepository.PleaseSelectASiteFirst=请先选择网站
+SharePointRepository.PleaseSelectALibraryFirst=请先选择库
+SharePointRepository.PleaseProvideMatchTextFirst=请先输入匹配文本
+SharePointRepository.PleaseSelectAnActionFirst=请先选择动作
+SharePointRepository.PleaseSelectASiteFirst=请先选择网站
+SharePointRepository.AccessTokenCannotBeNull=请选择访问令牌
+SharePointRepository.MatchStringCannotBeEmpty=请输入匹配字符串
+SharePointRepository.MatchStringMustBeValidRegularExpression=匹配字符串需为有效的正则表达式
+SharePointRepository.InsertNewRuleBeforeRule=在规则前插入新规则:  #
+SharePointRepository.DeleteRule=删除规则:  #
+SharePointRepository.InsertNewRuleBeforeRule=在规则前插入新规则:  #
+SharePointRepository.NewRule=新规则: 
+SharePointRepository.ResetRulePath=重置规则路径
+SharePointRepository.RemoveFromRulePath=从规则路径删除
+SharePointRepository.AddSiteToRulePath=添加网站到规则路径
+SharePointRepository.AddLibraryToRulePath=添加库到规则路径
+SharePointRepository.AddTextToRulePath=添加文本到规则路径
+SharePointRepository.Enabled=有效
+SharePointRepository.Disabled=无效
+SharePointRepository.DeleteToken=删除令牌:  #
+SharePointRepository.AddAccessToken=添加访问令牌
+SharePointRepository.InsertNewMetadataRuleBeforeRule=在规则前插入新元数据规则:  #
+SharePointRepository.DeleteMetadataRule=删除元数据规则 #
+SharePointRepository.include=包含
+SharePointRepository.DeleteMetadataRule=删除元数据规则:  #
+SharePointRepository.NoMetadataIncluded=没有可包含的元数据
+SharePointRepository.AddRule=添加规则
+SharePointRepository.NewRule=新规则: 
+SharePointRepository.IncludeAllMetadata=包含所有元数据
+SharePointRepository.ResetMetadataRulePath=重置元数据规则路径
+SharePointRepository.RemoveFromMetadataRulePath=从元数据规则路径删除
+SharePointRepository.AddSiteToMetadataRulePath=添加网站到元数据规则路径
+SharePointRepository.SelectSite=-- 请选择网站 --
+SharePointRepository.AddLibraryToMetadataRulePath=添加库到元数据规则路径
+SharePointRepository.SelectLibrary=-- 请选择库 --
+SharePointRepository.AddTextToMetadataRulePath=添加文本到元数据规则路径
+SharePointRepository.DeleteMapping=删除映射:  #
+SharePointRepository.DeletePathMapping=删除路径映射
+SharePointRepository.Enabled2=有效
+
diff --git a/connectors/sharepoint/pom.xml b/connectors/sharepoint/pom.xml
index 55f44d4..8e22264 100644
--- a/connectors/sharepoint/pom.xml
+++ b/connectors/sharepoint/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
@@ -34,8 +34,8 @@
 
   <build>
     <defaultGoal>integration-test</defaultGoal>
-    <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
-    <testSourceDirectory>${basedir}/src/test/java</testSourceDirectory>
+    <sourceDirectory>${basedir}/connector/src/main/java</sourceDirectory>
+    <testSourceDirectory>${basedir}/connector/src/test/java</testSourceDirectory>
     <resources>
       <resource>
         <directory>${basedir}/connector/src/main/native2ascii</directory>
diff --git a/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/HttpPoster.java b/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/HttpPoster.java
index 5fcdf60..7392328 100644
--- a/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/HttpPoster.java
+++ b/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/HttpPoster.java
@@ -32,7 +32,7 @@
 import org.apache.manifoldcf.agents.system.*;
 
 import java.io.*;
-import java.net.*;
+import java.net.MalformedURLException;
 import java.util.*;
 import java.util.regex.*;
 
@@ -40,6 +40,7 @@
 import org.apache.http.auth.Credentials;
 import org.apache.http.auth.UsernamePasswordCredentials;
 
+import org.apache.manifoldcf.core.util.URLEncoder;
 import org.apache.solr.client.solrj.SolrServer;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.impl.CloudSolrServer;
@@ -435,6 +436,18 @@
         true);
     }
     
+    if (e instanceof java.net.SocketTimeoutException)
+    {
+      String message2 = "Socket timeout exception during "+context+": "+e.getMessage();
+      Logging.ingest.warn(message2,e);
+      throw new ServiceInterruption(message2,
+        e,
+        currentTime + interruptionRetryTime,
+        currentTime + 20L * 60000L,
+        -1,
+        false);
+    }
+      
     if (e.getClass().getName().equals("java.net.SocketException"))
     {
       // In the past we would have treated this as a straight document rejection, and
@@ -465,7 +478,7 @@
       // Other socket exceptions are service interruptions - but if we keep getting them, it means 
       // that a socket timeout is probably set too low to accept this particular document.  So
       // we retry for a while, then skip the document.
-      String message2 = "Socket timeout exception during "+context+": "+e.getMessage();
+      String message2 = "Socket exception during "+context+": "+e.getMessage();
       Logging.ingest.warn(message2,e);
       throw new ServiceInterruption(message2,
         e,
@@ -474,7 +487,7 @@
         -1,
         false);
     }
-    
+
     // Otherwise, no idea what the trouble is, so presume that retries might fix it.
     String message3 = "IO exception during "+context+": "+e.getMessage();
     Logging.ingest.warn(message3,e);
@@ -749,14 +762,7 @@
   */
   protected static String preEncode(String fieldName)
   {
-    try
-    {
-      return java.net.URLEncoder.encode(fieldName, "utf-8");
-    }
-    catch (IOException e)
-    {
-      throw new RuntimeException("Could not find utf-8 encoding!");
-    }
+      return URLEncoder.encode(fieldName);
   }
   
   /** Write a field */
diff --git a/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedHttpSolrServer.java b/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedHttpSolrServer.java
index cf896c3..fba3410 100644
--- a/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedHttpSolrServer.java
+++ b/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedHttpSolrServer.java
@@ -21,6 +21,7 @@
 import java.net.ConnectException;
 import java.net.SocketTimeoutException;
 import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.LinkedList;
@@ -48,6 +49,7 @@
 import org.apache.http.message.BasicNameValuePair;
 import org.apache.http.util.EntityUtils;
 import org.apache.http.entity.ContentType;
+import org.apache.manifoldcf.core.util.URLDecoder;
 import org.apache.solr.client.solrj.impl.HttpSolrServer;
 import org.apache.solr.client.solrj.ResponseParser;
 import org.apache.solr.client.solrj.SolrRequest;
@@ -81,23 +83,11 @@
 {
   // Here we duplicate all the private fields we need
   
-  private static final String UTF_8 = "UTF-8";
+
   private static final String DEFAULT_PATH = "/select";
 
   private static Charset UTF8_CHARSET;
-  static
-  {
-    try
-    {
-      UTF8_CHARSET = Charset.forName(UTF_8);
-    }
-    catch (Exception e)
-    {
-      e.printStackTrace();
-      System.exit(-100);
-      UTF8_CHARSET = null;
-    }
-  }
+
   
   private final HttpClient httpClient;
   private boolean followRedirects = false;
@@ -183,7 +173,7 @@
                 if (vals != null) {
                   for (String v : vals) {
                     if (isMultipart) {
-                      parts.add(new FormBodyPart(p, new StringBody(v, Charset.forName("UTF-8"))));
+                      parts.add(new FormBodyPart(p, new StringBody(v, StandardCharsets.UTF_8)));
                     } else {
                       postParams.add(new BasicNameValuePair(p, v));
                     }
@@ -207,14 +197,14 @@
               }
               
               if (parts.size() > 0) {
-                ModifiedMultipartEntity entity = new ModifiedMultipartEntity(HttpMultipartMode.STRICT, null, UTF8_CHARSET);
+                ModifiedMultipartEntity entity = new ModifiedMultipartEntity(HttpMultipartMode.STRICT, null, StandardCharsets.UTF_8);
                 for(FormBodyPart p: parts) {
                   entity.addPart(p);
                 }
                 post.setEntity(entity);
               } else {
                 //not using multipart
-                post.setEntity(new UrlEncodedFormEntity(postParams, "UTF-8"));
+                post.setEntity(new UrlEncodedFormEntity(postParams, StandardCharsets.UTF_8));
               }
 
               method = post;
@@ -338,7 +328,7 @@
           msg.append(response.getStatusLine().getReasonPhrase());
           msg.append("\n\n");
           msg.append("request: " + method.getURI());
-          reason = java.net.URLDecoder.decode(msg.toString(), UTF_8);
+          reason = URLDecoder.decode(msg.toString());
         }
         throw new SolrException(
             SolrException.ErrorCode.getErrorCode(httpStatus), reason);
diff --git a/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/SolrConnector.java b/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/SolrConnector.java
index c9fbcfd..6ccb4d4 100644
--- a/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/SolrConnector.java
+++ b/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/SolrConnector.java
@@ -84,6 +84,11 @@
   
   /** Idle connection expiration interval */
   protected final static long EXPIRATION_INTERVAL = 300000L;
+
+  static
+  {
+    System.setProperty("jdk.xml.maxGeneralEntitySizeLimit",new Integer(Integer.MAX_VALUE).toString());
+  }
   
   /** Constructor.
   */
diff --git a/connectors/solr/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/solr/common_zh_CN.properties b/connectors/solr/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/solr/common_zh_CN.properties
new file mode 100644
index 0000000..3f3256d
--- /dev/null
+++ b/connectors/solr/connector/src/main/native2ascii/org/apache/manifoldcf/agents/output/solr/common_zh_CN.properties
@@ -0,0 +1,103 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SolrConnector.Arguments=参数
+SolrConnector.KeepAllMetadata=保持所有元数据:
+SolrConnector.Arguments2=参数: 
+SolrConnector.Commits=提交
+SolrConnector.Documents=文档
+SolrConnector.Schema=模式
+SolrConnector.Server=服务器
+SolrConnector.Paths=路径
+SolrConnector.SolrType=Solr类型
+SolrConnector.Zookeeper=ZooKeeper
+SolrConnector.SolrType2=Solr类型:
+SolrConnector.SingleServer=单服务器
+SolrConnector.SolrCloud=SolrCloud
+SolrConnector.ZookeeperHosts=ZooKeeper主机:
+SolrConnector.Host=主机
+SolrConnector.Port=端口:
+SolrConnector.ZnodePath=Znode路径:
+SolrConnector.Protocol=协议: 
+SolrConnector.ServerName=服务器名: 
+SolrConnector.WebApplicationName=Web应用程序名: 
+SolrConnector.CoreName=Core/Collection名:
+SolrConnector.CollectionName=Collection名:
+SolrConnector.ConnectionTimeout=连接超时(秒):
+SolrConnector.SocketTimeout=套接字超时(秒):
+SolrConnector.ZookeeperClientTimeout=ZooKeeper客户端超时(秒):
+SolrConnector.ZookeeperConnectTimeout=ZooKeeper连接超时(秒):
+SolrConnector.UpdateHandler=更新处理器: 
+SolrConnector.RemoveHandler=排除处理器: 
+SolrConnector.StatusHandler=状态处理器: 
+SolrConnector.Realm=区域: 
+SolrConnector.UserID=用户ID
+SolrConnector.Password=密码: 
+SolrConnector.SSLTrustCertificateList=SSL信任证书列表: 
+SolrConnector.NoCertificatesPresent=证书不存在
+SolrConnector.AddCert=添加证书
+SolrConnector.Add=添加
+SolrConnector.AddZookeeperHost=添加ZooKeeper主机
+SolrConnector.Certificate=证书: 
+SolrConnector.IDFieldName=ID字段名: 
+SolrConnector.ModifiedDateFieldName=更新日期字段名: 
+SolrConnector.CreatedDateFieldName=生成日期字段名: 
+SolrConnector.IndexedDateFieldName=索引化的日期字段名:
+SolrConnector.FileNameFieldName=文件名字段名: 
+SolrConnector.MimeTypeFieldName=MIME类型字段名: 
+SolrConnector.MaximumDocumentLength=最大文档长度: 
+SolrConnector.IncludedMimeTypes=所包含的MIME类型: 
+SolrConnector.ExcludedMimeTypes=被排除的MIME类型: 
+SolrConnector.CommitAtEndOfEveryJob=提交每个作业: 
+SolrConnector.CommitEachDocumentWithin=在指定时间内(毫秒)提交每个文档: 
+SolrConnector.Name=名称
+SolrConnector.Value=值
+SolrConnector.NoArgumentsSpecified=请指定参数
+SolrConnector.Parameters=参数: 
+SolrConnector.Arguments3=参数: 
+SolrConnector.NoArguments=参数未指定
+SolrConnector.SolrFieldMapping=Solr字段映射
+SolrConnector.FieldMappings=字段映射: 
+SolrConnector.MetadataFieldName=元数据字段名
+SolrConnector.SolrFieldName=Solr字段名
+SolrConnector.NoFieldMappingSpecified=字段映射未指定
+SolrConnector.NoZookeeperHostsSpecified=ZooKeeper主机未指定
+SolrConnector.AddFieldMapping=添加字段映射
+SolrConnector.ChooseACertificateFile=请选择证书文件
+SolrConnector.ZookeeperHostCannotBeNull=ZooKeeper主机不能为Null
+SolrConnector.ZookeeperPortCannotBeNull=ZooKeeper端口不能为Null
+SolrConnector.ZookeeperPortMustBeAnInteger=ZooKeeper端口必须为整数
+SolrConnector.ZnodePathMustStartWithACharacter=Znode路径的第一个字符必须为‘/’
+SolrConnector.PleaseSupplyAValidSolrServerName=请输入有效的Solr服务器名
+SolrConnector.SolrServerPortMustBeAValidInteger=Solr服务器端口必须为有效的整数
+SolrConnector.WebApplicationNameCannotHaveCharacters=Web应用程序名不能包含字符‘/’
+SolrConnector.CoreNameCannotHaveCharacters=Core名不能包含字符‘/’
+SolrConnector.WebApplicationMustBeSpecifiedIfCoreIsSpecified=如Core已指定则需指定Web应用程序
+SolrConnector.ConnectionTimeoutMustBeInteger=连接超时值必须为整数
+SolrConnector.SocketTimeoutMustBeInteger=套接字超时值必须为整数
+SolrConnector.UpdatePathMustStartWithACharacter=更新路径的第一个字符必须为‘/’
+SolrConnector.RemovePathMustStartWithACharacter=删除路径的第一个字符必须为‘/’
+SolrConnector.StatusPathMustStartWithACharacter=状态路径的第一个字符必须为‘/’
+SolrConnector.MaximumDocumentLengthMustBAnInteger=最大文档长度必须为整数
+SolrConnector.CommitWithinValueMustBeAnInteger=CommitWithin值必须为整数
+SolrConnector.MaximumDocumentLengthMustBeAnInteger=最大文档长度必须为整数
+SolrConnector.ArgumentNameCannotBeAnEmptyString=请输入参数名
+SolrConnector.DeleteCert=删除证书 
+SolrConnector.Delete=删除
+SolrConnector.DeleteArgument=删除参数 #
+SolrConnector.DeleteZookeeperHost=删除ZooKeeper主机 #
+SolrConnector.FieldMapMustHaveNonNullSource=请输入字段映射
+SolrConnector.DeleteFieldMapping=删除字段映射 #
+
diff --git a/connectors/solr/pom.xml b/connectors/solr/pom.xml
index 151a200..60b6e08 100644
--- a/connectors/solr/pom.xml
+++ b/connectors/solr/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/webcrawler/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/webcrawler/RobotsManager.java b/connectors/webcrawler/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/webcrawler/RobotsManager.java
index d04b78a..9f25f21 100644
--- a/connectors/webcrawler/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/webcrawler/RobotsManager.java
+++ b/connectors/webcrawler/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/webcrawler/RobotsManager.java
@@ -18,6 +18,7 @@
 */
 package org.apache.manifoldcf.crawler.connectors.webcrawler;
 
+import java.nio.charset.StandardCharsets;
 import java.util.*;
 import java.io.*;
 import org.apache.manifoldcf.core.interfaces.*;
@@ -311,7 +312,7 @@
         records = null;
         return;
       }
-      Reader r = new InputStreamReader(is,"utf-8");
+      Reader r = new InputStreamReader(is, StandardCharsets.UTF_8);
       try
       {
         BufferedReader br = new BufferedReader(r);
diff --git a/connectors/webcrawler/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/webcrawler/ThrottleDescription.java b/connectors/webcrawler/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/webcrawler/ThrottleDescription.java
index 3b7988f..753c72f 100644
--- a/connectors/webcrawler/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/webcrawler/ThrottleDescription.java
+++ b/connectors/webcrawler/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/webcrawler/ThrottleDescription.java
@@ -91,7 +91,7 @@
               {
                 double kbPerSecond = new Double(value).doubleValue();
                 if (kbPerSecond > 0)
-                  minMillisecondsPerByte = new Double(1000.0/(double)kbPerSecond);
+                  minMillisecondsPerByte = new Double(1.0/(double)kbPerSecond);
               }
               catch (NumberFormatException e)
               {
diff --git a/connectors/webcrawler/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/webcrawler/ThrottledFetcher.java b/connectors/webcrawler/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/webcrawler/ThrottledFetcher.java
index 95c2273..5fdcd1f 100644
--- a/connectors/webcrawler/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/webcrawler/ThrottledFetcher.java
+++ b/connectors/webcrawler/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/webcrawler/ThrottledFetcher.java
@@ -23,15 +23,16 @@
 import org.apache.manifoldcf.core.common.XThreadInputStream;
 import org.apache.manifoldcf.core.common.InterruptibleSocketFactory;
 import org.apache.manifoldcf.agents.interfaces.*;
+import org.apache.manifoldcf.core.util.URLEncoder;
 import org.apache.manifoldcf.crawler.interfaces.*;
 import org.apache.manifoldcf.crawler.system.Logging;
 import org.apache.manifoldcf.crawler.system.ManifoldCF;
+
+import java.nio.charset.StandardCharsets;
 import java.util.*;
 import java.io.*;
-import java.net.*;
 import java.util.zip.GZIPInputStream;
 import java.util.concurrent.TimeUnit;
-import java.nio.charset.Charset;
 
 import org.apache.http.conn.HttpClientConnectionManager;
 import org.apache.http.client.HttpClient;
@@ -143,8 +144,6 @@
     }
   }
 
-  protected static final Charset UTF_8 = Charset.forName("UTF-8");
-
   private static final Registry<CookieSpecProvider> cookieSpecRegistry =
     RegistryBuilder.<CookieSpecProvider>create()
       .register(CookieSpecs.BEST_MATCH, new BestMatchSpecFactory())
@@ -593,8 +592,7 @@
             appendChar = '?';
           else
             appendChar = '&';
-          try
-          {
+
             while (iter.hasNext())
             {
               FormDataElement el = (FormDataElement)iter.next();
@@ -602,17 +600,13 @@
               appendChar = '&';
               String param = el.getElementName();
               String value = el.getElementValue();
-              psb.append(java.net.URLEncoder.encode(param,"utf-8"));
+              psb.append(URLEncoder.encode(param));
               if (value != null)
               {
-                psb.append('=').append(java.net.URLEncoder.encode(value,"utf-8"));
+                psb.append('=').append(URLEncoder.encode(value));
               }
             }
-          }
-          catch (java.io.UnsupportedEncodingException e)
-          {
-            throw new ManifoldCFException("Unsupported encoding: "+e.getMessage(),e);
-          }
+
 
           fullUrlPath = psb.toString();
         }
@@ -648,7 +642,7 @@
             nvps.add(new BasicNameValuePair(param,value));
           }
         }
-        postMethod.setEntity(new UrlEncodedFormEntity(nvps,UTF_8));
+        postMethod.setEntity(new UrlEncodedFormEntity(nvps, StandardCharsets.UTF_8));
         fetchMethod = postMethod;
         break;
       default:
diff --git a/connectors/webcrawler/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/webcrawler/WebcrawlerConnector.java b/connectors/webcrawler/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/webcrawler/WebcrawlerConnector.java
index fa80b58..3de3e03 100644
--- a/connectors/webcrawler/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/webcrawler/WebcrawlerConnector.java
+++ b/connectors/webcrawler/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/webcrawler/WebcrawlerConnector.java
@@ -4248,7 +4248,7 @@
 "    <td class=\"value\">\n"+
 "      "+Encoder.bodyEscape(name)+"\n"+
 "    </td>\n"+
-"    <td class=\"value\">=</td>\n"+
+"    <td class=\"value\">==&gt;&nbsp;</td>\n"+
 "    <td class=\"value\">\n"+
 "      "+Encoder.bodyEscape(value)+"\n"+
 "    </td>\n"+
@@ -4279,7 +4279,7 @@
 "    <td class=\"value\">\n"+
 "      <input type=\"text\" size=\"30\" name=\"specmetaname\" value=\"\"/>\n"+
 "    </td>\n"+
-"    <td class=\"value\">=</td>\n"+
+"    <td class=\"value\">==&gt;&nbsp;</td>\n"+
 "    <td class=\"value\">\n"+
 "      <input type=\"text\" size=\"80\" name=\"specmetavalue\" value=\"\"/>\n"+
 "    </td>\n"+
diff --git a/connectors/webcrawler/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/webcrawler/common_zh_CN.properties b/connectors/webcrawler/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/webcrawler/common_zh_CN.properties
new file mode 100644
index 0000000..589dd3a
--- /dev/null
+++ b/connectors/webcrawler/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/webcrawler/common_zh_CN.properties
@@ -0,0 +1,169 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http: //www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+WebcrawlerConnector.Email=邮件
+WebcrawlerConnector.Robots=机器人
+WebcrawlerConnector.Bandwidth=带宽
+WebcrawlerConnector.AccessCredentials=访问凭证
+WebcrawlerConnector.Certificates=证书
+WebcrawlerConnector.Proxy=代理
+WebcrawlerConnector.ProxyHostColon=代理主机: 
+WebcrawlerConnector.ProxyPortColon=代理端口: 
+WebcrawlerConnector.ProxyAuthenticationDomainColon=代理认证域: 
+WebcrawlerConnector.ProxyAuthenticationUserNameColon=代理认证用户名: 
+WebcrawlerConnector.ProxyAuthenticationPasswordColon=代理认证密码: 
+WebcrawlerConnector.EmailAddressToContact=邮箱联系地址: 
+WebcrawlerConnector.RobotsTxtUsage=使用Robots.txt: 
+WebcrawlerConnector.DontLookAtRobotsTxt=不使用robots.txt
+WebcrawlerConnector.ObeyRobotsTxtForDataFetchesOnly=只在提取数据时服从robots.txt
+WebcrawlerConnector.ObeyRobotsTxtForAllFetches=每次提取均服从robots.txt
+WebcrawlerConnector.Throttles=限流器: 
+WebcrawlerConnector.BinRegularExpression=Bin正则表达式
+WebcrawlerConnector.CaseInsensitive=不区分大小写
+WebcrawlerConnector.MaxConnections=最大连接数
+WebcrawlerConnector.MaxKbytesSec=最大Kbytes/秒
+WebcrawlerConnector.MaxFetchesMin=最大提取数/分
+WebcrawlerConnector.Delete=删除
+WebcrawlerConnector.DeleteBinRegularExpression=删除bin正则表达式 #
+WebcrawlerConnector.Add=添加
+WebcrawlerConnector.AddBinRegularExpression=添加bin正则表达式
+WebcrawlerConnector.PageAccessCredentials=页面访问凭证: 
+WebcrawlerConnector.URLRegularExpression=URL正则表达式
+WebcrawlerConnector.AddPageAuthenticationUrlRegularExpression=添加页面认证URL正则表达式
+WebcrawlerConnector.PageAccessCredentials=页面访问凭证: 
+WebcrawlerConnector.URLRegularExpression=URL正则表达式
+WebcrawlerConnector.CredentialType=凭证类型
+WebcrawlerConnector.CredentialDomain=凭证域
+WebcrawlerConnector.UserName=用户名
+WebcrawlerConnector.NoPageAccessCredentials=无页面访问凭证
+WebcrawlerConnector.SessionBasedAccessCredentials=基于会话的访问凭证: 
+WebcrawlerConnector.LoginPages=登录页面
+WebcrawlerConnector.LoginURLRegularExpression=登录URL正则表达式
+WebcrawlerConnector.PageType=页面类型
+WebcrawlerConnector.FormNamelinkTargetRegularExpression=表单名/链接目标正则表达式
+WebcrawlerConnector.OverrideFormParameters=覆盖表单参数
+WebcrawlerConnector.OverrideTargetURL=覆盖目标URL
+WebcrawlerConnector.NoLoginPagesSpecified=登录页面未指定
+WebcrawlerConnector.NoSessionBasedAccessCredentials=无基于会话的访问凭证
+WebcrawlerConnector.TrustCertificates=信任证书: 
+WebcrawlerConnector.URLRegularExpression=URL正则表达式
+WebcrawlerConnector.Certificate=证书
+WebcrawlerConnector.TrustEverything=信任所有
+WebcrawlerConnector.NoTrustCertificates=无信任证书
+WebcrawlerConnector.Description=説明
+WebcrawlerConnector.Reorder=重排
+WebcrawlerConnector.RemoveJSPSessions=删除JSP会话
+WebcrawlerConnector.RemoveASPSessions=删除ASP会话
+WebcrawlerConnector.RemovePHPSessions=删除PHP会话
+WebcrawlerConnector.RemoveBVSessions=删除VB会话
+WebcrawlerConnector.DeleteUrlRegexp2=删除URL正则表达式
+WebcrawlerConnector.NoCanonicalizationSpecified=规范化未指定 - 所有URL将被重排,会话被排除
+WebcrawlerConnector.AddUrlRegexp=添加URL正则表达式
+WebcrawlerConnector.IncludeInCrawl=包含于爬虫内: 
+WebcrawlerConnector.IncludeInIndex=包含于索引内: 
+WebcrawlerConnector.IncludeOnlyHostsMatchingSeeds=只包含和种子匹配的主机
+WebcrawlerConnector.ExcludeFromCrawl=排除于爬虫外: 
+WebcrawlerConnector.ExcludeFromIndex=排除于索引外: 
+WebcrawlerConnector.DeleteToken=删除令牌 #
+WebcrawlerConnector.NoAccessTokensPresent=访问令牌不存在
+WebcrawlerConnector.AddAccessToken=添加访问令牌
+WebcrawlerConnector.DeleteMetadata=删除元数据 #
+WebcrawlerConnector.NoMetadataPresent=元数据不存在
+WebcrawlerConnector.AddMetadata=添加元数据
+WebcrawlerConnector.SeedsColon=种子: 
+WebcrawlerConnector.URLCanonicalization=URL规范化: 
+WebcrawlerConnector.URLRegexp=URL正则表达式
+WebcrawlerConnector.AccessTokens=访问令牌: 
+WebcrawlerConnector.NoAccessTokensSpecified=访问令牌未指定
+WebcrawlerConnector.Metadata=元数据: 
+WebcrawlerConnector.NoMetadataSpecified=元数据未指定
+WebcrawlerConnector.BasicAuthentication=Basic认证
+WebcrawlerConnector.NTLMAuthentication=NTLM认证
+WebcrawlerConnector.UploadCertificate=上传证书: 
+WebcrawlerConnector.DeletePageAuthenticationUrlRegularExpression=删除页面认证URL正则表达式 #
+WebcrawlerConnector.SessionBasedAccessCredentials=基于会话的访问凭证: 
+WebcrawlerConnector.URLRegularExpression=URL正则表达式
+WebcrawlerConnector.LoginPages=登录页面
+WebcrawlerConnector.TrustCertificates=信任证书: 
+WebcrawlerConnector.URLRegularExpression=URL正则表达式
+WebcrawlerConnector.Certificate=证书
+WebcrawlerConnector.DeleteSessionAuthenticationUrlRegularExpression=删除会话认证URL正则表达式 #
+WebcrawlerConnector.LoginURLRegularExpression=登录URL正则表达式
+WebcrawlerConnector.PageType=页面类型
+WebcrawlerConnector.NoTrustCertificatesSpecified=信任证书未指定
+WebcrawlerConnector.AddUrlRegularExpressionForTruststore=添加URL正则表达式到信任存储区
+WebcrawlerConnector.TrustEverything=信任所有
+WebcrawlerConnector.NoSessionBasedAccessCredentialsSpecified=基于会话的访问凭证未指定
+WebcrawlerConnector.NoPageAccessCredentialsSpecified=页面访问凭证未指定
+WebcrawlerConnector.AuthenticationType=认证类型
+WebcrawlerConnector.Domain=域
+WebcrawlerConnector.UserName=用户名
+WebcrawlerConnector.Password=密码
+WebcrawlerConnector.EmailAaddressRequired=请输入邮箱地址。它将包含在所有请求头中
+WebcrawlerConnector.MaximumConnectionsMustBeAnInteger=最大连接数需输入整数
+WebcrawlerConnector.NeedAValidEmailAddress=需输入有效的邮箱地址
+WebcrawlerConnector.MaximumKbytesPerSecondMustBeAnInteger=最大KB/秒需输入整数
+WebcrawlerConnector.MaximumFetchesPerMinuteMustBeAnInteger=最大収集/分需输入整数
+WebcrawlerConnector.CredentialMustHaveNonNullUserName=凭证用户名不能为空
+WebcrawlerConnector.MatchExpressionMustBeAValidRegularExpression=匹配表达式需输入有效的正则表达式
+WebcrawlerConnector.ParameterMustHaveNonEmptyName=参数名不能为空
+WebcrawlerConnector.ParameterCanEitherBeHidden=参数可选择隐藏或显示。但不能同时选择
+WebcrawlerConnector.MaximumKbytesPerSecondMustBeAnInteger=最大KB/秒需输入整数
+WebcrawlerConnector.MaximumFetchesPerMinuteMustBeAnInteger=最大提取数/分需输入整数
+WebcrawlerConnector.AValidRegularExpressionIsRequired=请输入有效正则表达式
+WebcrawlerConnector.CredentialMustIncludeANonNullUserName=凭证用户名不能为空
+WebcrawlerConnector.ParameterNameMustBeARegularExpression=参数名需输入正则表达式
+WebcrawlerConnector.SpecifyATrustCertificateFileToUploadFirst=请指定要上传的信任证书文件或选择“信任所有”
+WebcrawlerConnector.NoBandwidthOrConnectionThrottlingSpecified=带宽及连接限流未指定
+WebcrawlerConnector.DeleteLoginPage=删除登录页面:  #
+WebcrawlerConnector.ParameterRegularExpression=参数正则表达式
+WebcrawlerConnector.Value=值
+WebcrawlerConnector.Password=密码
+WebcrawlerConnector.DeleteParameter=删除参数:  #
+WebcrawlerConnector.ForLoginPage= 登录页面 #
+WebcrawlerConnector.ForCredential= 凭证 #
+WebcrawlerConnector.AddParameterToLoginPage=添加参数到登录页面 #
+WebcrawlerConnector.AddLoginPageToCredential=添加登录页面到凭证:  #
+WebcrawlerConnector.FormName=表单名
+WebcrawlerConnector.LinkTarget=链接目标
+WebcrawlerConnector.RedirectionTo=重定向到
+WebcrawlerConnector.PageContent=页面内容
+WebcrawlerConnector.AddSessionAuthenticationUrlRegularExpression=添加会话认证URI正则表达式
+WebcrawlerConnector.DeleteTrustUrlRegularExpression=删除信任URI正则表达式:  #
+WebcrawlerConnector.TrustEverything=信任所有
+WebcrawlerConnector.EmailAddress=邮箱地址: 
+WebcrawlerConnector.RobotsUsage=使用机器人: 
+WebcrawlerConnector.BandwidthThrottling=带宽限流: 
+WebcrawlerConnector.BinRegularExpression=Bin正则表达式
+WebcrawlerConnector.CaseInsensitive=不区分大小写
+WebcrawlerConnector.MaxConnections=最大连接数
+WebcrawlerConnector.MaxKbytesSec=最大kb/秒
+WebcrawlerConnector.MaxFetchesMin=最大提取数/分
+WebcrawlerConnector.NoBandwidthThrottling=无带宽限流
+WebcrawlerConnector.Seeds=种子
+WebcrawlerConnector.Canonicalization=规范化
+WebcrawlerConnector.Inclusions=包含
+WebcrawlerConnector.Exclusions=排除
+WebcrawlerConnector.Security=安全
+WebcrawlerConnector.Metadata=元数据
+WebcrawlerConnector.FoundAnIllegalRegularExpressionIn=非法正则表达式
+WebcrawlerConnector.ErrorWas=错误:  
+WebcrawlerConnector.TypeInAnAccessToken=输入访问令牌
+WebcrawlerConnector.TypeInMetadataName=输入元数据名
+WebcrawlerConnector.TypeInMetadataValue=输入元数据值
+WebcrawlerConnector.InvalidUrlsInSeedsList=种子列表包含无效URL: 
+WebcrawlerConnector.yes=是
+WebcrawlerConnector.no=否
+WebcrawlerConnector.ExcludedHeadersColon=被排除的头: 
diff --git a/connectors/webcrawler/pom.xml b/connectors/webcrawler/pom.xml
index d70426e..5729f02 100644
--- a/connectors/webcrawler/pom.xml
+++ b/connectors/webcrawler/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/webcrawler/upstream-diffs/README b/connectors/webcrawler/upstream-diffs/README
deleted file mode 100644
index 5763a41..0000000
--- a/connectors/webcrawler/upstream-diffs/README
+++ /dev/null
@@ -1,17 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-For the web connector, no upstream differences/instructions are necessary, other than to follow the master upstream-diffs patches at the root level pertaining to commons-httpclient and xerces2-java.
-
diff --git a/connectors/wiki/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/wiki/WikiConnector.java b/connectors/wiki/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/wiki/WikiConnector.java
index 7520ff2..256e670 100644
--- a/connectors/wiki/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/wiki/WikiConnector.java
+++ b/connectors/wiki/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/wiki/WikiConnector.java
@@ -24,6 +24,8 @@
 import org.apache.manifoldcf.crawler.system.Logging;
 
 import org.apache.manifoldcf.core.common.*;
+import org.apache.manifoldcf.core.util.URLEncoder;
+
 
 import org.xml.sax.Attributes;
 
@@ -70,14 +72,13 @@
 import org.apache.http.ParseException;
 
 import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 import java.util.*;
 import java.io.*;
-import java.net.*;
+
 
 import java.util.concurrent.TimeUnit;
 
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 /** This is the repository connector for a wiki.
 */
@@ -149,8 +150,6 @@
     }
   }
 
-  protected static final Charset UTF_8 = Charset.forName("UTF-8");
-
   /** Constructor.
   */
   public WikiConnector()
@@ -2010,7 +2009,7 @@
       pairs.add(new BasicNameValuePair(key, params.get(key)));
     }
     
-    method.setEntity(new UrlEncodedFormEntity(pairs, UTF_8));
+    method.setEntity(new UrlEncodedFormEntity(pairs, StandardCharsets.UTF_8));
     
     return method;
   }
@@ -2465,18 +2464,11 @@
   protected String getListPagesURL(String startingTitle, String namespace, String prefix)
     throws ManifoldCFException
   {
-    try
-    {
       return baseURL + "action=query&list=allpages" +
-        ((prefix != null)?"&apprefix="+URLEncoder.encode(prefix,"utf-8"):"") +
-        ((namespace != null)?"&apnamespace="+URLEncoder.encode(namespace,"utf-8"):"") +
-        ((startingTitle!=null)?"&apfrom="+URLEncoder.encode(startingTitle,"utf-8"):"") +
+        ((prefix != null)?"&apprefix="+URLEncoder.encode(prefix):"") +
+        ((namespace != null)?"&apnamespace="+URLEncoder.encode(namespace):"") +
+        ((startingTitle!=null)?"&apfrom="+URLEncoder.encode(startingTitle):"") +
         "&aplimit=500";
-    }
-    catch (UnsupportedEncodingException e)
-    {
-      throw new ManifoldCFException(e.getMessage(),e);
-    }
   }
 
   protected static class ReturnString
@@ -2865,14 +2857,7 @@
         sb.append("|");
       sb.append(documentIdentifiers[i]);
     }
-    try
-    {
-      return baseURL + "action=query&prop=info&pageids="+URLEncoder.encode(sb.toString(),"utf-8")+"&inprop=url";
-    }
-    catch (UnsupportedEncodingException e)
-    {
-      throw new ManifoldCFException(e.getMessage(),e);
-    }
+      return baseURL + "action=query&prop=info&pageids="+URLEncoder.encode(sb.toString())+"&inprop=url";
   }
 
   /** Thread to execute a "get timestamp" operation.  This thread both executes the operation and parses the result. */
@@ -3189,14 +3174,7 @@
         sb.append("|");
       sb.append(documentIdentifiers[i]);
     }
-    try
-    {
-      return baseURL + "action=query&prop=revisions&pageids="+URLEncoder.encode(sb.toString(),"utf-8")+"&rvprop=timestamp";
-    }
-    catch (UnsupportedEncodingException e)
-    {
-      throw new ManifoldCFException(e.getMessage(),e);
-    }
+      return baseURL + "action=query&prop=revisions&pageids="+URLEncoder.encode(sb.toString())+"&rvprop=timestamp";
   }
 
   /** Thread to execute a "get timestamp" operation.  This thread both executes the operation and parses the result. */
@@ -4671,13 +4649,13 @@
         {
           ContentType ct = ContentType.get(entity);
           if (ct == null)
-            charSet = UTF_8;
+            charSet = StandardCharsets.UTF_8;
           else
             charSet = ct.getCharset();
         }
         catch (ParseException e)
         {
-          charSet = UTF_8;
+          charSet = StandardCharsets.UTF_8;
         }
         char[] buffer = new char[65536];
         Reader r = new InputStreamReader(is,charSet);
diff --git a/connectors/wiki/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/wiki/common_zh_CN.properties b/connectors/wiki/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/wiki/common_zh_CN.properties
new file mode 100644
index 0000000..283ef03
--- /dev/null
+++ b/connectors/wiki/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/wiki/common_zh_CN.properties
@@ -0,0 +1,62 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+WikiConnector.Server=服务器
+WikiConnector.Email=电子邮件
+WikiConnector.Proxy=代理
+
+WikiConnector.Protocol=协议: 
+WikiConnector.ServerName=服务器名: 
+WikiConnector.Port=端口: 
+WikiConnector.PathName=路径名: 
+WikiConnector.ServerLogin=API登录:
+WikiConnector.ServerPassword=API密码:
+WikiConnector.ServerDomain=API域:
+WikiConnector.NamespaceAndTitles=命名空间和标题
+WikiConnector.NamespaceAndTitles2=命名空间和标题: 
+WikiConnector.Namespace=命名空间
+WikiConnector.TitlePrefix=标题前缀
+WikiConnector.Security=安全
+WikiConnector.TypeInAnAccessToken=请输入访问令牌
+WikiConnector.NoAccessTokensPresent=访问令牌不存在
+WikiConnector.AccessTokens=访问令牌:
+WikiConnector.NoAccessTokensSpecified=访问令牌未指定
+WikiConnector.Delete=删除
+WikiConnector.NoSpecification=未指定。包含所有缺省命名空间的文档
+WikiConnector.Add=添加
+WikiConnector.AddNamespacePrefix=添加命名空间/前缀
+WikiConnector.UseDefault=使用缺省值
+WikiConnector.TransientError=暂时性错误:  
+WikiConnector.AllDefaultNamespaceDocumentsIncluded=包含所有缺省命名空间
+WikiConnector.WikiServerPortMustBeAValidInteger=Wiki服务器端口必须为有效的整数
+WikiConnector.PathMustStartWithACharacter=路径的第一个字符必须为‘/’
+WikiConnector.PleaseSupplyAValidWikiServerName=请输入有效的Wiki服务器名
+WikiConnector.NeedAValidEmailAddress=需要有效的邮箱地址
+WikiConnector.EmailAddressRequiredToBeIncludedInAllRequestHeaders=请输入邮箱地址,它将包含在所有请求头中
+WikiConnector.EmailAddressToContactColon=邮箱联系地址:
+WikiConnector.Parameters=参数: 
+WikiConnector.certificates= 证书
+WikiConnector.DeleteNamespaceTitle=删除命名空间/标题:  #
+WikiConnector.AccessUser=基本认证用户:
+WikiConnector.AccessPassword=基本认证密码:
+WikiConnector.AccessRealm=基本认证区域:
+
+WikiConnector.ProxyHostColon=代理主机:
+WikiConnector.ProxyPortColon=代理端口:
+WikiConnector.ProxyDomainColon=代理域:
+WikiConnector.ProxyUsernameColon=代理用户:
+WikiConnector.ProxyPasswordColon=代理密码:
+
+WikiConnector.ProxyPortMustBeAValidInteger=代理端口必须为有效的整数
diff --git a/connectors/wiki/pom.xml b/connectors/wiki/pom.xml
index dd763fb..976e756 100644
--- a/connectors/wiki/pom.xml
+++ b/connectors/wiki/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/framework/agents/pom.xml b/framework/agents/pom.xml
index 090d896..e7361df 100644
--- a/framework/agents/pom.xml
+++ b/framework/agents/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-framework</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
diff --git a/framework/agents/src/main/java/org/apache/manifoldcf/agents/common/XMLFileContext.java b/framework/agents/src/main/java/org/apache/manifoldcf/agents/common/XMLFileContext.java
index 318ecda..e5ff560 100644
--- a/framework/agents/src/main/java/org/apache/manifoldcf/agents/common/XMLFileContext.java
+++ b/framework/agents/src/main/java/org/apache/manifoldcf/agents/common/XMLFileContext.java
@@ -27,7 +27,6 @@
 
 import java.io.File;
 import java.io.FileOutputStream;
-import java.io.UnsupportedEncodingException;
 import java.io.FileNotFoundException;
 
 import org.apache.manifoldcf.core.interfaces.*;
@@ -41,7 +40,7 @@
 
   /** Full constructor.  Used for individual tags. */
   public XMLFileContext(XMLStream theStream, String namespaceURI, String localname, String qname, Attributes theseAttributes, File f)
-    throws ManifoldCFException, UnsupportedEncodingException, FileNotFoundException
+    throws FileNotFoundException
   {
     // Construct an appropriate writer
     super(theStream,namespaceURI,localname,qname,theseAttributes,new FileOutputStream(f));
diff --git a/framework/agents/src/main/java/org/apache/manifoldcf/agents/common/XMLOutputStreamContext.java b/framework/agents/src/main/java/org/apache/manifoldcf/agents/common/XMLOutputStreamContext.java
index 12241ea..5cf573c 100644
--- a/framework/agents/src/main/java/org/apache/manifoldcf/agents/common/XMLOutputStreamContext.java
+++ b/framework/agents/src/main/java/org/apache/manifoldcf/agents/common/XMLOutputStreamContext.java
@@ -27,9 +27,9 @@
 
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
-import java.io.UnsupportedEncodingException;
 import java.io.IOException;
 import java.io.InterruptedIOException;
+import java.nio.charset.StandardCharsets;
 
 import org.apache.manifoldcf.core.interfaces.*;
 
@@ -42,10 +42,9 @@
 
   /** Full constructor.  Used for individual tags. */
   public XMLOutputStreamContext(XMLStream theStream, String namespaceURI, String localname, String qname, Attributes theseAttributes, OutputStream os)
-    throws ManifoldCFException, UnsupportedEncodingException
   {
     // Construct an appropriate writer
-    super(theStream,namespaceURI,localname,qname,theseAttributes,new OutputStreamWriter(os,"utf-8"));
+    super(theStream,namespaceURI,localname,qname,theseAttributes,new OutputStreamWriter(os, StandardCharsets.UTF_8));
     // Save the stream
     outputStream = os;
   }
diff --git a/framework/agents/src/main/java/org/apache/manifoldcf/agents/common/XMLStream.java b/framework/agents/src/main/java/org/apache/manifoldcf/agents/common/XMLStream.java
index 6a223f4..1000cf8 100644
--- a/framework/agents/src/main/java/org/apache/manifoldcf/agents/common/XMLStream.java
+++ b/framework/agents/src/main/java/org/apache/manifoldcf/agents/common/XMLStream.java
@@ -29,6 +29,7 @@
 import java.io.InputStream;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -186,7 +187,7 @@
       throws SAXException, java.io.IOException
     {
       // ALL references resolve to blank documents
-      return new org.xml.sax.InputSource(new ByteArrayInputStream("<?xml version='1.0' encoding='UTF-8'?>".getBytes()));
+      return new org.xml.sax.InputSource(new ByteArrayInputStream("<?xml version='1.0' encoding='UTF-8'?>".getBytes(StandardCharsets.UTF_8)));
     }
   }
 
diff --git a/framework/agents/src/main/java/org/apache/manifoldcf/agents/common/XMLWriterContext.java b/framework/agents/src/main/java/org/apache/manifoldcf/agents/common/XMLWriterContext.java
index b81b9fa..706e15b 100644
--- a/framework/agents/src/main/java/org/apache/manifoldcf/agents/common/XMLWriterContext.java
+++ b/framework/agents/src/main/java/org/apache/manifoldcf/agents/common/XMLWriterContext.java
@@ -41,7 +41,6 @@
 
   /** Full constructor.  Used for individual tags. */
   public XMLWriterContext(XMLStream theStream, String namespaceURI, String localname, String qname, Attributes theseAttributes, Writer writer)
-    throws ManifoldCFException
   {
     super(theStream,namespaceURI,localname,qname,theseAttributes);
     theWriter = writer;
diff --git a/framework/agents/src/main/java/org/apache/manifoldcf/agents/incrementalingest/IncrementalIngester.java b/framework/agents/src/main/java/org/apache/manifoldcf/agents/incrementalingest/IncrementalIngester.java
index f7f12cd..9d9109a 100644
--- a/framework/agents/src/main/java/org/apache/manifoldcf/agents/incrementalingest/IncrementalIngester.java
+++ b/framework/agents/src/main/java/org/apache/manifoldcf/agents/incrementalingest/IncrementalIngester.java
@@ -1396,11 +1396,27 @@
   public void removeOutputConnection(String outputConnectionName)
     throws ManifoldCFException
   {
+    IOutputConnection connection = connectionManager.load(outputConnectionName);
+    
     ArrayList list = new ArrayList();
     String query = buildConjunctionClause(list,new ClauseDescription[]{
       new UnitaryClause(outputConnNameField,outputConnectionName)});
       
     performDelete("WHERE "+query,list,null);
+      
+    // Notify the output connection of the removal of all the records for the connection
+    IOutputConnector connector = outputConnectorPool.grab(connection);
+    if (connector == null)
+      return;
+    try
+    {
+      connector.noteAllRecordsRemoved();
+    }
+    finally
+    {
+      outputConnectorPool.release(connection,connector);
+    }
+
   }
   
   /** Note the ingestion of a document, or the "update" of a document.
diff --git a/framework/agents/src/main/java/org/apache/manifoldcf/agents/interfaces/IOutputConnector.java b/framework/agents/src/main/java/org/apache/manifoldcf/agents/interfaces/IOutputConnector.java
index 3960420..f928e17 100644
--- a/framework/agents/src/main/java/org/apache/manifoldcf/agents/interfaces/IOutputConnector.java
+++ b/framework/agents/src/main/java/org/apache/manifoldcf/agents/interfaces/IOutputConnector.java
@@ -160,6 +160,13 @@
   public void noteJobComplete(IOutputNotifyActivity activities)
     throws ManifoldCFException, ServiceInterruption;
 
+  /** Notify the connector that all records associated with this connection have been removed.
+  * This method allows the connector to remove any internal data storage that is associated with records sent to the index on
+  * behalf of a connection. It should not attempt to communicate with the output index.
+  */
+  public void noteAllRecordsRemoved()
+    throws ManifoldCFException;
+
   // UI support methods.
   //
   // These support methods come in two varieties.  The first bunch (inherited from IConnector) is involved in setting up connection configuration information.
diff --git a/framework/agents/src/main/java/org/apache/manifoldcf/agents/output/BaseOutputConnector.java b/framework/agents/src/main/java/org/apache/manifoldcf/agents/output/BaseOutputConnector.java
index 2feabed..d8b79ac 100644
--- a/framework/agents/src/main/java/org/apache/manifoldcf/agents/output/BaseOutputConnector.java
+++ b/framework/agents/src/main/java/org/apache/manifoldcf/agents/output/BaseOutputConnector.java
@@ -211,6 +211,16 @@
     // Does nothing in the base class
   }
   
+  /** Notify the connector that all records associated with this connection have been removed.
+  * This method allows the connector to remove any internal data storage that is associated with records sent to the index on
+  * behalf of a connection. It should not attempt to communicate with the output index.
+  */
+  public void noteAllRecordsRemoved()
+    throws ManifoldCFException
+  {
+    // Does nothing in the base class
+  }
+
   // UI support methods.
   //
   // These support methods come in two varieties.  The first bunch is involved in setting up connection configuration information.  The second bunch
diff --git a/framework/api-service/pom.xml b/framework/api-service/pom.xml
index 9788890..4097524 100644
--- a/framework/api-service/pom.xml
+++ b/framework/api-service/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-framework</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/framework/api-servlet/pom.xml b/framework/api-servlet/pom.xml
index e4179a8..a7cc773 100644
--- a/framework/api-servlet/pom.xml
+++ b/framework/api-servlet/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-framework</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/framework/api-servlet/src/main/java/org/apache/manifoldcf/apiservlet/APIServlet.java b/framework/api-servlet/src/main/java/org/apache/manifoldcf/apiservlet/APIServlet.java
index c960ed1..6f42a6b 100644
--- a/framework/api-servlet/src/main/java/org/apache/manifoldcf/apiservlet/APIServlet.java
+++ b/framework/api-servlet/src/main/java/org/apache/manifoldcf/apiservlet/APIServlet.java
@@ -23,10 +23,11 @@
 import org.apache.manifoldcf.crawler.interfaces.*;
 import org.apache.manifoldcf.crawler.system.ManifoldCF;
 import org.apache.manifoldcf.crawler.system.Logging;
-
+import org.apache.manifoldcf.core.util.URLDecoder;
 import java.io.*;
+import java.nio.charset.StandardCharsets;
 import java.util.*;
-import java.net.*;
+
 
 import javax.servlet.*;
 import javax.servlet.http.*;
@@ -259,7 +260,7 @@
     if (readResult == ManifoldCF.READRESULT_NOTFOUND)
       response.setStatus(response.SC_NOT_FOUND);
 
-    byte[] responseValue = outputText.getBytes("utf-8");
+    byte[] responseValue = outputText.getBytes(StandardCharsets.UTF_8);
 
     // Set response mime type
     response.setContentType("text/plain; charset=utf-8");
@@ -303,7 +304,7 @@
     // We presume the data is utf-8
     StringBuilder sb = new StringBuilder();
     char[] buffer = new char[65536];
-    Reader r = new InputStreamReader(data,"utf-8");
+    Reader r = new InputStreamReader(data,StandardCharsets.UTF_8);
     while (true)
     {
       int amt = r.read(buffer);
@@ -373,7 +374,7 @@
     else if (writeResult == ManifoldCF.WRITERESULT_NOTFOUND)
       response.setStatus(response.SC_NOT_FOUND);
     
-    byte[] responseValue = outputText.getBytes("utf-8");
+    byte[] responseValue = outputText.getBytes(StandardCharsets.UTF_8);
 
     // Set response mime type
     response.setContentType("text/plain; charset=utf-8");
@@ -417,7 +418,7 @@
     // We presume the data is utf-8
     StringBuilder sb = new StringBuilder();
     char[] buffer = new char[65536];
-    Reader r = new InputStreamReader(data,"utf-8");
+    Reader r = new InputStreamReader(data,StandardCharsets.UTF_8);
     while (true)
     {
       int amt = r.read(buffer);
@@ -484,7 +485,7 @@
     else if (writeResult == ManifoldCF.POSTRESULT_NOTFOUND)
       response.setStatus(response.SC_NOT_FOUND);
     
-    byte[] responseValue = outputText.getBytes("utf-8");
+    byte[] responseValue = outputText.getBytes(StandardCharsets.UTF_8);
 
     // Set response mime type
     response.setContentType("text/plain; charset=utf-8");
@@ -560,7 +561,7 @@
     if (result == ManifoldCF.DELETERESULT_NOTFOUND)
       response.setStatus(response.SC_NOT_FOUND);
     
-    byte[] responseValue = outputText.getBytes("utf-8");
+    byte[] responseValue = outputText.getBytes(StandardCharsets.UTF_8);
 
     // Set response mime type
     response.setContentType("text/plain; charset=utf-8");
@@ -580,7 +581,6 @@
   }
   
   protected static Map<String,List<String>> parseQueryString(String queryString)
-    throws UnsupportedEncodingException
   {
     if (queryString == null)
       return null;
@@ -590,9 +590,9 @@
     {
       int index = term.indexOf("=");
       if (index == -1)
-        addValue(rval,URLDecoder.decode(term,"utf-8"),"");
+        addValue(rval,URLDecoder.decode(term),"");
       else
-        addValue(rval,URLDecoder.decode(term.substring(0,index),"utf-8"),URLDecoder.decode(term.substring(index+1),"utf-8"));
+        addValue(rval,URLDecoder.decode(term.substring(0,index)),URLDecoder.decode(term.substring(index+1)));
     }
     return rval;
   }
diff --git a/framework/authority-service/pom.xml b/framework/authority-service/pom.xml
index 9b9a1aa..3a449be 100644
--- a/framework/authority-service/pom.xml
+++ b/framework/authority-service/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-framework</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/framework/authority-servlet/pom.xml b/framework/authority-servlet/pom.xml
index 9e05fc4..e1c4962 100644
--- a/framework/authority-servlet/pom.xml
+++ b/framework/authority-servlet/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-framework</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/framework/authority-servlet/src/main/java/org/apache/manifoldcf/authorityservlet/UserACLServlet.java b/framework/authority-servlet/src/main/java/org/apache/manifoldcf/authorityservlet/UserACLServlet.java
index 7ce2aa7..b5c3189 100644
--- a/framework/authority-servlet/src/main/java/org/apache/manifoldcf/authorityservlet/UserACLServlet.java
+++ b/framework/authority-servlet/src/main/java/org/apache/manifoldcf/authorityservlet/UserACLServlet.java
@@ -25,10 +25,12 @@
 import org.apache.manifoldcf.authorities.system.RequestQueue;
 import org.apache.manifoldcf.authorities.system.AuthRequest;
 import org.apache.manifoldcf.authorities.system.MappingRequest;
+import org.apache.manifoldcf.core.util.URLEncoder;
 
 import java.io.*;
+import java.nio.charset.StandardCharsets;
 import java.util.*;
-import java.net.*;
+
 
 import javax.servlet.*;
 import javax.servlet.http.*;
@@ -370,27 +372,27 @@
           {
             if (Logging.authorityService.isDebugEnabled())
               Logging.authorityService.debug("User '"+ar.getUserID()+"' mapping failed for authority '"+ar.getIdentifyingString()+"'");
-            sb.append(USERNOTFOUND_VALUE).append(java.net.URLEncoder.encode(ar.getIdentifyingString(),"UTF-8")).append("\n");
+            sb.append(USERNOTFOUND_VALUE).append(URLEncoder.encode(ar.getIdentifyingString())).append("\n");
           }
           else if (reply.getResponseStatus() == AuthorizationResponse.RESPONSE_UNREACHABLE)
           {
             Logging.authorityService.warn("Authority '"+ar.getIdentifyingString()+"' is unreachable for user '"+ar.getUserID()+"'");
-            sb.append(UNREACHABLE_VALUE).append(java.net.URLEncoder.encode(ar.getIdentifyingString(),"UTF-8")).append("\n");
+            sb.append(UNREACHABLE_VALUE).append(URLEncoder.encode(ar.getIdentifyingString())).append("\n");
           }
           else if (reply.getResponseStatus() == AuthorizationResponse.RESPONSE_USERUNAUTHORIZED)
           {
             if (Logging.authorityService.isDebugEnabled())
               Logging.authorityService.debug("Authority '"+ar.getIdentifyingString()+"' does not authorize user '"+ar.getUserID()+"'");
-            sb.append(UNAUTHORIZED_VALUE).append(java.net.URLEncoder.encode(ar.getIdentifyingString(),"UTF-8")).append("\n");
+            sb.append(UNAUTHORIZED_VALUE).append(URLEncoder.encode(ar.getIdentifyingString())).append("\n");
           }
           else if (reply.getResponseStatus() == AuthorizationResponse.RESPONSE_USERNOTFOUND)
           {
             if (Logging.authorityService.isDebugEnabled())
               Logging.authorityService.debug("User '"+ar.getUserID()+"' unknown to authority '"+ar.getIdentifyingString()+"'");
-            sb.append(USERNOTFOUND_VALUE).append(java.net.URLEncoder.encode(ar.getIdentifyingString(),"UTF-8")).append("\n");
+            sb.append(USERNOTFOUND_VALUE).append(URLEncoder.encode(ar.getIdentifyingString())).append("\n");
           }
           else
-            sb.append(AUTHORIZED_VALUE).append(java.net.URLEncoder.encode(ar.getIdentifyingString(),"UTF-8")).append("\n");
+            sb.append(AUTHORIZED_VALUE).append(URLEncoder.encode(ar.getIdentifyingString())).append("\n");
 
           String[] acl = reply.getAccessTokens();
           if (acl != null)
@@ -402,7 +404,7 @@
               {
                 if (Logging.authorityService.isDebugEnabled())
                   Logging.authorityService.debug("  User '"+ar.getUserID()+"' has Acl = '"+acl[j]+"' from authority '"+ar.getIdentifyingString()+"'");
-                sb.append(TOKEN_PREFIX).append(java.net.URLEncoder.encode(authGroup,"UTF-8")).append(":").append(java.net.URLEncoder.encode(acl[j++],"UTF-8")).append("\n");
+                sb.append(TOKEN_PREFIX).append(URLEncoder.encode(authGroup)).append(":").append(URLEncoder.encode(acl[j++])).append("\n");
               }
             }
           }
@@ -410,9 +412,10 @@
 
         // Maintained for backwards compatibility only; no practical use that I can determine here
         if (idneeded && userID != null)
-          sb.append(ID_PREFIX).append(java.net.URLEncoder.encode(userID,"UTF-8")).append("\n");
+          sb.append(ID_PREFIX).append(URLEncoder.encode(userID)).append("\n");
 
-        byte[] responseValue = sb.toString().getBytes("ISO8859-1");
+        byte[] responseValue = sb.toString().getBytes(StandardCharsets.ISO_8859_1);
+
 
         response.setIntHeader("Content-Length", (int)responseValue.length);
         out.write(responseValue,0,responseValue.length);
@@ -443,11 +446,6 @@
     {
       // Shut down and don't bother to respond
     }
-    catch (java.io.UnsupportedEncodingException e)
-    {
-      Logging.authorityService.error("Unsupported encoding: "+e.getMessage(),e);
-      throw new ServletException("Fatal error occurred: "+e.getMessage(),e);
-    }
     catch (ManifoldCFException e)
     {
       Logging.authorityService.error("User ACL servlet error: "+e.getMessage(),e);
diff --git a/framework/build.xml b/framework/build.xml
index b4ea10f..1bbb7bc 100644
--- a/framework/build.xml
+++ b/framework/build.xml
@@ -84,7 +84,7 @@
     
     <target name="doc">
         <mkdir dir="dist/doc"/>
-        <javadoc destdir="dist/doc" maxmemory="256M" source="1.6" useexternalfile="true">
+        <javadoc destdir="dist/doc" maxmemory="256M" source="1.7" useexternalfile="true">
             <classpath>
                 <path refid="framework-classpath"/>
             </classpath>
@@ -102,7 +102,7 @@
         <copy todir="build/core/classes">
             <fileset dir="core/src/main/resources"/>
         </copy>
-        <javac srcdir="core/src/main/java" destdir="build/core/classes" deprecation="true" target="1.6" source="1.6" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
+        <javac srcdir="core/src/main/java" destdir="build/core/classes" deprecation="true" target="1.7" source="1.7" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
             <classpath>
                 <path refid="framework-classpath"/>
             </classpath>
@@ -111,7 +111,7 @@
 
     <target name="compile-ui-core" depends="compile-core">
         <mkdir dir="build/ui-core/classes"/>
-        <javac srcdir="ui-core/src/main/java" destdir="build/ui-core/classes" deprecation="true" target="1.6" source="1.6" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
+        <javac srcdir="ui-core/src/main/java" destdir="build/ui-core/classes" deprecation="true" target="1.7" source="1.7" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
             <classpath>
                 <path refid="framework-classpath"/>
                 <pathelement location="build/core/classes"/>
@@ -122,7 +122,7 @@
 
     <target name="compile-agents" depends="compile-core">
         <mkdir dir="build/agents/classes"/>
-        <javac srcdir="agents/src/main/java" destdir="build/agents/classes" deprecation="true" target="1.6" source="1.6" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
+        <javac srcdir="agents/src/main/java" destdir="build/agents/classes" deprecation="true" target="1.7" source="1.7" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
             <classpath>
                 <path refid="framework-classpath"/>
                 <pathelement location="build/core/classes"/>
@@ -132,7 +132,7 @@
 
     <target name="compile-pull-agent" depends="compile-core,compile-agents">
         <mkdir dir="build/pull-agent/classes"/>
-        <javac srcdir="pull-agent/src/main/java" destdir="build/pull-agent/classes" deprecation="true" target="1.6" source="1.6" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
+        <javac srcdir="pull-agent/src/main/java" destdir="build/pull-agent/classes" deprecation="true" target="1.7" source="1.7" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
             <classpath>
                 <path refid="framework-classpath"/>
                 <pathelement location="build/core/classes"/>
@@ -143,7 +143,7 @@
 
     <target name="compile-jetty-runner" depends="compile-core,compile-agents">
         <mkdir dir="build/jetty-runner/classes"/>
-        <javac srcdir="jetty-runner/src/main/java" destdir="build/jetty-runner/classes" deprecation="true" target="1.6" source="1.6" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
+        <javac srcdir="jetty-runner/src/main/java" destdir="build/jetty-runner/classes" deprecation="true" target="1.7" source="1.7" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
             <classpath>
                 <path refid="framework-classpath"/>
                 <pathelement location="build/core/classes"/>
@@ -155,7 +155,7 @@
 
     <target name="compile-script-engine" depends="compile-core">
         <mkdir dir="build/script-engine/classes"/>
-        <javac srcdir="script-engine/src/main/java" destdir="build/script-engine/classes" deprecation="true" target="1.6" source="1.6" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
+        <javac srcdir="script-engine/src/main/java" destdir="build/script-engine/classes" deprecation="true" target="1.7" source="1.7" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
             <classpath>
                 <path refid="framework-classpath"/>
                 <pathelement location="build/core/classes"/>
@@ -165,7 +165,7 @@
 
     <target name="compile-authority-servlet" depends="compile-core,compile-agents,compile-pull-agent">
         <mkdir dir="build/authority-servlet/classes"/>
-        <javac srcdir="authority-servlet/src/main/java" destdir="build/authority-servlet/classes" deprecation="true" target="1.6" source="1.6" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
+        <javac srcdir="authority-servlet/src/main/java" destdir="build/authority-servlet/classes" deprecation="true" target="1.7" source="1.7" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
             <classpath>
                 <path refid="framework-classpath"/>
                 <pathelement location="build/core/classes"/>
@@ -177,7 +177,7 @@
 
     <target name="compile-authority-service" depends="compile-core,compile-agents,compile-pull-agent,compile-authority-servlet">
         <mkdir dir="build/authority-service/classes"/>
-        <javac srcdir="authority-service/src/main/java" destdir="build/authority-service/classes" deprecation="true" target="1.6" source="1.6" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
+        <javac srcdir="authority-service/src/main/java" destdir="build/authority-service/classes" deprecation="true" target="1.7" source="1.7" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
             <classpath>
                 <path refid="framework-classpath"/>
                 <pathelement location="build/core/classes"/>
@@ -190,7 +190,7 @@
 
     <target name="compile-api-servlet" depends="compile-core,compile-ui-core,compile-agents,compile-pull-agent">
         <mkdir dir="build/api-servlet/classes"/>
-        <javac srcdir="api-servlet/src/main/java" destdir="build/api-servlet/classes" deprecation="true" target="1.6" source="1.6" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
+        <javac srcdir="api-servlet/src/main/java" destdir="build/api-servlet/classes" deprecation="true" target="1.7" source="1.7" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
             <classpath>
                 <path refid="framework-classpath"/>
                 <pathelement location="build/core/classes"/>
@@ -203,7 +203,7 @@
 
     <target name="compile-api-service" depends="compile-core,compile-ui-core,compile-agents,compile-pull-agent,compile-api-servlet">
         <mkdir dir="build/api-service/classes"/>
-        <javac srcdir="api-service/src/main/java" destdir="build/api-service/classes" deprecation="true" target="1.6" source="1.6" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
+        <javac srcdir="api-service/src/main/java" destdir="build/api-service/classes" deprecation="true" target="1.7" source="1.7" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
             <classpath>
                 <path refid="framework-classpath"/>
                 <pathelement location="build/core/classes"/>
@@ -217,7 +217,7 @@
 
     <target name="compile-combined-service" depends="compile-core,compile-ui-core,compile-agents,compile-pull-agent,compile-api-servlet,compile-authority-servlet">
         <mkdir dir="build/combined-service/classes"/>
-        <javac srcdir="combined-service/src/main/java" destdir="build/combined-service/classes" deprecation="true" target="1.6" source="1.6" encoding="utf-8" debug="true" debuglevel="lines,vars,source">
+        <javac srcdir="combined-service/src/main/java" destdir="build/combined-service/classes" deprecation="true" target="1.7" source="1.7" encoding="utf-8" debug="true" debuglevel="lines,vars,source">
             <classpath>
                 <path refid="framework-classpath"/>
                 <pathelement location="build/core/classes"/>
@@ -232,7 +232,7 @@
 
     <target name="compile-crawler-ui" depends="compile-core,compile-ui-core,compile-agents,compile-pull-agent">
         <mkdir dir="build/crawler-ui/classes"/>
-        <javac srcdir="crawler-ui/src/main/java" destdir="build/crawler-ui/classes" deprecation="true" target="1.6" source="1.6" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
+        <javac srcdir="crawler-ui/src/main/java" destdir="build/crawler-ui/classes" deprecation="true" target="1.7" source="1.7" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
             <classpath>
                 <path refid="framework-classpath"/>
                 <pathelement location="build/core/classes"/>
@@ -258,7 +258,7 @@
         <jasper2 validateXml="false" uriroot="crawler-ui/src/main/webapp" webXmlFragment="build/crawler-ui/web-generated.xml" outputDir="build/crawler-ui/java" /> 
         <!-- Compile java classes -->
         <mkdir dir="build/crawler-ui/classes"/>
-        <javac srcdir="build/crawler-ui/java" destdir="build/crawler-ui/classes" deprecation="true" target="1.6" source="1.6" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
+        <javac srcdir="build/crawler-ui/java" destdir="build/crawler-ui/classes" deprecation="true" target="1.7" source="1.7" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
             <classpath id="classpath">
                 <pathelement location="${java.home}/../lib/tools.jar"/>
                 <path refid="framework-classpath"/>
@@ -1516,7 +1516,7 @@
 
     <target name="compile-core-tests" depends="compile-core">
         <mkdir dir="build/core-tests/classes"/>
-        <javac srcdir="core/src/test/java" destdir="build/core-tests/classes" deprecation="true" target="1.6" source="1.6" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
+        <javac srcdir="core/src/test/java" destdir="build/core-tests/classes" deprecation="true" target="1.7" source="1.7" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
             <classpath>
                 <path refid="framework-classpath"/>
                 <pathelement location="build/core/classes"/>
@@ -1526,7 +1526,7 @@
 
     <target name="compile-agents-tests" depends="compile-core-tests,compile-agents">
         <mkdir dir="build/agents-tests/classes"/>
-        <javac srcdir="agents/src/test/java" destdir="build/agents-tests/classes" deprecation="true" target="1.6" source="1.6" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
+        <javac srcdir="agents/src/test/java" destdir="build/agents-tests/classes" deprecation="true" target="1.7" source="1.7" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
             <classpath>
                 <path refid="framework-classpath"/>
                 <pathelement location="build/core/classes"/>
@@ -1538,7 +1538,7 @@
 
     <target name="compile-pull-agent-tests" depends="compile-agents-tests,compile-pull-agent">
         <mkdir dir="build/pull-agent-tests/classes"/>
-        <javac srcdir="pull-agent/src/test/java" destdir="build/pull-agent-tests/classes" deprecation="true" target="1.6" source="1.6" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
+        <javac srcdir="pull-agent/src/test/java" destdir="build/pull-agent-tests/classes" deprecation="true" target="1.7" source="1.7" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
             <classpath>
                 <path refid="framework-classpath"/>
                 <pathelement location="build/core/classes"/>
@@ -1552,7 +1552,7 @@
 
     <target name="compile-script-engine-tests" depends="compile-core,compile-script-engine">
         <mkdir dir="build/script-engine-tests/classes"/>
-        <javac srcdir="script-engine/src/test/java" destdir="build/script-engine-tests/classes" deprecation="true" target="1.6" source="1.6" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
+        <javac srcdir="script-engine/src/test/java" destdir="build/script-engine-tests/classes" deprecation="true" target="1.7" source="1.7" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
             <classpath>
                 <path refid="framework-classpath"/>
                 <pathelement location="build/core/classes"/>
diff --git a/framework/buildfiles/connector-build.xml b/framework/buildfiles/connector-build.xml
index 7072fb6..01c2ed7 100644
--- a/framework/buildfiles/connector-build.xml
+++ b/framework/buildfiles/connector-build.xml
@@ -284,7 +284,7 @@
 
     <target name="compile-stubs" depends="build-stubs-check" if="buildStubs">
         <mkdir dir="build/stubclasses"/>
-        <javac srcdir="build-stub/src/main/java" destdir="build/stubclasses" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
+        <javac srcdir="build-stub/src/main/java" destdir="build/stubclasses" deprecation="true" target="1.7" source="1.7" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
             <classpath>
             </classpath>
         </javac>
@@ -376,7 +376,7 @@
 
     <target name="compile-wsdls" depends="has-wsdls-check" if="hasWSDLs">
         <mkdir dir="build/wsdlclasses"/>
-        <javac srcdir="build/wsdljava" destdir="build/wsdlclasses" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
+        <javac srcdir="build/wsdljava" destdir="build/wsdlclasses" deprecation="true" target="1.7" source="1.7" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
             <classpath>
                 <fileset dir="${mcf-dist}/lib">
                     <include name="axis*.jar"/>
@@ -398,7 +398,7 @@
 
     <target name="compile-xsds" depends="has-xsds-check" if="hasXSDs">
         <mkdir dir="build/xsdclasses"/>
-        <javac srcdir="build/xsdjava" destdir="build/xsdclasses" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
+        <javac srcdir="build/xsdjava" destdir="build/xsdclasses" deprecation="true" target="1.7" source="1.7" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
             <classpath>
                 <fileset dir="${mcf-dist}/lib">
                     <include name="castor*.jar"/>
@@ -427,7 +427,7 @@
 
     <target name="doc-rmi" depends="compile-wsdls,compile-xsds,has-RMI-check" if="hasRMI">
         <mkdir dir="dist/doc"/>
-        <javadoc destdir="dist/doc" source="1.6">
+        <javadoc destdir="dist/doc" source="1.7">
             <classpath>
                 <path refid="connector-classpath"/>
             </classpath>
@@ -438,7 +438,7 @@
 
     <target name="doc" depends="compile-stubs,doc-rmi,compile-wsdls,compile-xsds,has-RMI-check,precompile-check" if="canBuild" unless="hasRMI">
         <mkdir dir="dist/doc"/>
-        <javadoc destdir="dist/doc" source="1.6">
+        <javadoc destdir="dist/doc" source="1.7">
             <classpath>
                 <path refid="connector-classpath"/>
             </classpath>
@@ -475,7 +475,7 @@
     
     <target name="compile-server" depends="compile-interface,compile-implementation,compile-rmic,has-RMI-check" if="hasRMI">
         <mkdir dir="build/server/classes"/>
-        <javac srcdir="server/src/main/java" destdir="build/server/classes" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
+        <javac srcdir="server/src/main/java" destdir="build/server/classes" deprecation="true" target="1.7" source="1.7" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
             <classpath>
                 <pathelement location="build/interface/classes"/>
                 <pathelement location="build/implementation/classes"/>
@@ -487,7 +487,7 @@
 
     <target name="compile-registry" depends="compile-interface,has-RMI-check" if="hasRMI">
         <mkdir dir="build/registry/classes"/>
-        <javac srcdir="registry/src/main/java" destdir="build/registry/classes" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
+        <javac srcdir="registry/src/main/java" destdir="build/registry/classes" deprecation="true" target="1.7" source="1.7" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
             <classpath>
                 <pathelement location="build/interface/classes"/>
             </classpath>
@@ -496,7 +496,7 @@
 
     <target name="compile-connector" depends="compile-stubs,compile-connector-native2ascii,compile-connector-resources,compile-wsdls,compile-xsds,compile-interface,compile-rmic,precompile-check" if="canBuild">
         <mkdir dir="build/connector/classes"/>
-        <javac srcdir="connector/src/main/java" destdir="build/connector/classes" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
+        <javac srcdir="connector/src/main/java" destdir="build/connector/classes" deprecation="true" target="1.7" source="1.7" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
             <classpath>
                 <path refid="connector-classpath"/>
             </classpath>
@@ -505,7 +505,7 @@
 
     <target name="compile-implementation" depends="compile-stubs,compile-interface,has-RMI-check" if="hasRMI">
         <mkdir dir="build/implementation/classes"/>
-        <javac srcdir="implementation/src/main/java" destdir="build/implementation/classes" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
+        <javac srcdir="implementation/src/main/java" destdir="build/implementation/classes" deprecation="true" target="1.7" source="1.7" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
             <classpath>
                 <path refid="implementation-classpath"/>
             </classpath>
@@ -514,7 +514,7 @@
 
     <target name="compile-interface" depends="has-RMI-check" if="hasRMI">
         <mkdir dir="build/interface/classes"/>
-        <javac srcdir="interface/src/main/java" destdir="build/interface/classes" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
+        <javac srcdir="interface/src/main/java" destdir="build/interface/classes" deprecation="true" target="1.7" source="1.7" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
             <classpath>
                 <path refid="interface-classpath"/>
             </classpath>
@@ -530,7 +530,7 @@
 
     <target name="compile-tests" depends="compile-connector,compile-test-resources,has-tests-check" if="hasTests">
         <mkdir dir="build/connector-tests/classes"/>
-        <javac srcdir="connector/src/test/java" destdir="build/connector-tests/classes" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
+        <javac srcdir="connector/src/test/java" destdir="build/connector-tests/classes" deprecation="true" target="1.7" source="1.7" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
             <classpath>
                 <path refid="connector-test-classpath"/>
             </classpath>
diff --git a/framework/combined-service/pom.xml b/framework/combined-service/pom.xml
index 1533763..5246d45 100644
--- a/framework/combined-service/pom.xml
+++ b/framework/combined-service/pom.xml
@@ -20,7 +20,7 @@
   <parent>

     <groupId>org.apache.manifoldcf</groupId>

     <artifactId>mcf-framework</artifactId>

-    <version>1.6-SNAPSHOT</version>

+    <version>1.7-SNAPSHOT</version>

   </parent>

   <modelVersion>4.0.0</modelVersion>

 

diff --git a/framework/core/pom.xml b/framework/core/pom.xml
index 5d7b44e..80d5801 100644
--- a/framework/core/pom.xml
+++ b/framework/core/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-framework</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/framework/core/src/main/java/org/apache/manifoldcf/core/cachemanager/CacheManager.java b/framework/core/src/main/java/org/apache/manifoldcf/core/cachemanager/CacheManager.java
index f743ccd..e72e3d5 100644
--- a/framework/core/src/main/java/org/apache/manifoldcf/core/cachemanager/CacheManager.java
+++ b/framework/core/src/main/java/org/apache/manifoldcf/core/cachemanager/CacheManager.java
@@ -19,6 +19,8 @@
 package org.apache.manifoldcf.core.cachemanager;
 
 import org.apache.manifoldcf.core.interfaces.*;
+
+import java.nio.charset.StandardCharsets;
 import java.util.*;
 import org.apache.manifoldcf.core.system.Logging;
 import org.apache.manifoldcf.core.system.ManifoldCF;
@@ -847,15 +849,11 @@
     byte[] cacheResourceData = lockManager.readData("cache-"+key);
     if (cacheResourceData == null)
       return 0L;
-    try
-    {
-      String expiration = new String(cacheResourceData,"utf-8");
-      return new Long(expiration).longValue();
-    }
-    catch (UnsupportedEncodingException e)
-    {
-      throw new ManifoldCFException(e.getMessage(),e);
-    }
+
+    String expiration = new String(cacheResourceData, StandardCharsets.UTF_8);
+    return new Long(expiration).longValue();
+
+
   }
 
   /** Write the invalidation file contents.
@@ -869,14 +867,7 @@
       lockManager.writeData(key,null);
     else
     {
-      try
-      {
-        lockManager.writeData("cache-"+key,Long.toString(value).getBytes("utf-8"));
-      }
-      catch (UnsupportedEncodingException e)
-      {
-        throw new ManifoldCFException(e.getMessage(),e);
-      }
+      lockManager.writeData("cache-"+key,Long.toString(value).getBytes(StandardCharsets.UTF_8));
     }
   }
 
diff --git a/framework/core/src/main/java/org/apache/manifoldcf/core/common/CommonsHTTPSender.java b/framework/core/src/main/java/org/apache/manifoldcf/core/common/CommonsHTTPSender.java
index 8017b4f..c957bf8 100644
--- a/framework/core/src/main/java/org/apache/manifoldcf/core/common/CommonsHTTPSender.java
+++ b/framework/core/src/main/java/org/apache/manifoldcf/core/common/CommonsHTTPSender.java
@@ -74,6 +74,7 @@
 import java.io.FileOutputStream;
 import java.io.FileInputStream;
 import java.net.URL;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Hashtable;
 import java.util.Iterator;
@@ -96,8 +97,6 @@
   protected static Log log =
     LogFactory.getLog(CommonsHTTPSender.class.getName());
 
-  protected static final Charset UTF_8 = Charset.forName("UTF-8");
-
   /** Properties */
   protected CommonsHTTPClientProperties clientProperties;
 
@@ -366,7 +365,7 @@
       {
         Charset charSet = methodThread.getCharSet();
         if (charSet == null)
-          charSet = UTF_8;
+          charSet = StandardCharsets.UTF_8;
         char[] buffer = new char[65536];
         Reader r = new InputStreamReader(is,charSet);
         Writer w = new StringWriter();
diff --git a/framework/core/src/main/java/org/apache/manifoldcf/core/common/XMLDoc.java b/framework/core/src/main/java/org/apache/manifoldcf/core/common/XMLDoc.java
index 2185e02..f6449f7 100644
--- a/framework/core/src/main/java/org/apache/manifoldcf/core/common/XMLDoc.java
+++ b/framework/core/src/main/java/org/apache/manifoldcf/core/common/XMLDoc.java
@@ -18,6 +18,7 @@
 */
 package org.apache.manifoldcf.core.common;
 
+import java.nio.charset.StandardCharsets;
 import java.util.*;
 import java.io.*;
 import javax.xml.transform.*;
@@ -231,14 +232,8 @@
   public String getXML()
     throws ManifoldCFException
   {
-    try
-    {
-      return new String(toByteArray(),"utf-8");
-    }
-    catch (UnsupportedEncodingException e)
-    {
-      throw new ManifoldCFException(e.getMessage(),e);
-    }
+    return new String(toByteArray(), StandardCharsets.UTF_8);
+
   }
 
   /** Get XML with no entity preamble */
@@ -287,15 +282,10 @@
   public XMLDoc(String data)
     throws ManifoldCFException
   {
-    try
-    {
-      ByteArrayInputStream bis = new ByteArrayInputStream(data.getBytes("utf-8"));
+      ByteArrayInputStream bis = new ByteArrayInputStream(data.getBytes(StandardCharsets.UTF_8));
       _doc = init(bis);
-    }
-    catch (UnsupportedEncodingException e)
-    {
-      throw new ManifoldCFException(e.getMessage(),e);
-    }
+
+
   }
 
   /** Construct a new document tree from a StringBuilder form of
@@ -305,16 +295,10 @@
   public XMLDoc(StringBuilder data)
     throws ManifoldCFException
   {
-    try
-    {
       ByteArrayInputStream bis =
-        new ByteArrayInputStream(data.toString().getBytes("utf-8"));
+        new ByteArrayInputStream(data.toString().getBytes(StandardCharsets.UTF_8));
       _doc = init(bis);
-    }
-    catch (UnsupportedEncodingException e)
-    {
-      throw new ManifoldCFException(e.getMessage(),e);
-    }
+
   }
 
   /** Build a document object tree from an input
@@ -392,7 +376,7 @@
           {
             // Append the bytes we have, and stop.  Presume the encoding is utf-8;
             // if we're wrong it will come out as garbage, but that can't be helped.
-            sw.append(new String(buf, 0, len, "UTF-8"));
+            sw.append(new String(buf, 0, len, StandardCharsets.UTF_8));
             if (len == buf.length)
               sw.append("...");
           }
@@ -746,7 +730,7 @@
       throws SAXException, java.io.IOException
     {
       // ALL references resolve to blank documents
-      return new org.xml.sax.InputSource(new ByteArrayInputStream("<?xml version='1.0' encoding='UTF-8'?>".getBytes()));
+      return new org.xml.sax.InputSource(new ByteArrayInputStream("<?xml version='1.0' encoding='UTF-8'?>".getBytes(StandardCharsets.UTF_8)));
     }
   }
 
diff --git a/framework/core/src/main/java/org/apache/manifoldcf/core/fuzzyml/XMLFileParsingContext.java b/framework/core/src/main/java/org/apache/manifoldcf/core/fuzzyml/XMLFileParsingContext.java
index e60848b..9cf8d64 100644
--- a/framework/core/src/main/java/org/apache/manifoldcf/core/fuzzyml/XMLFileParsingContext.java
+++ b/framework/core/src/main/java/org/apache/manifoldcf/core/fuzzyml/XMLFileParsingContext.java
@@ -31,7 +31,7 @@
 
   /** Full constructor.  Used for individual tags. */
   public XMLFileParsingContext(XMLFuzzyHierarchicalParseState theStream, String namespace, String localname, String qname, Map<String,String> theseAttributes, File f)
-    throws ManifoldCFException, UnsupportedEncodingException, FileNotFoundException
+    throws ManifoldCFException, FileNotFoundException
   {
     // Construct an appropriate writer
     super(theStream,namespace,localname,qname,theseAttributes,new FileOutputStream(f));
diff --git a/framework/core/src/main/java/org/apache/manifoldcf/core/fuzzyml/XMLOutputStreamParsingContext.java b/framework/core/src/main/java/org/apache/manifoldcf/core/fuzzyml/XMLOutputStreamParsingContext.java
index d69d13c..696e7bf 100644
--- a/framework/core/src/main/java/org/apache/manifoldcf/core/fuzzyml/XMLOutputStreamParsingContext.java
+++ b/framework/core/src/main/java/org/apache/manifoldcf/core/fuzzyml/XMLOutputStreamParsingContext.java
@@ -20,6 +20,7 @@
 
 import org.apache.manifoldcf.core.interfaces.*;
 import java.io.*;
+import java.nio.charset.StandardCharsets;
 import java.util.*;
 
 /** An instance of this class represents a parsing context within a node.  Data is written to the supplied output stream in utf-8 format.
@@ -31,10 +32,10 @@
 
   /** Full constructor.  Used for individual tags. */
   public XMLOutputStreamParsingContext(XMLFuzzyHierarchicalParseState theStream, String namespace, String localname, String qname, Map<String,String> theseAttributes, OutputStream os)
-    throws ManifoldCFException, UnsupportedEncodingException
+    throws ManifoldCFException
   {
     // Construct an appropriate writer
-    super(theStream,namespace,localname,qname,theseAttributes,new OutputStreamWriter(os,"utf-8"));
+    super(theStream,namespace,localname,qname,theseAttributes,new OutputStreamWriter(os, StandardCharsets.UTF_8));
     // Save the stream
     outputStream = os;
   }
diff --git a/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/IDFactory.java b/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/IDFactory.java
index 972c4ce..8b983e5 100644
--- a/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/IDFactory.java
+++ b/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/IDFactory.java
@@ -21,6 +21,7 @@
 import org.apache.manifoldcf.core.system.ManifoldCF;
 import org.apache.manifoldcf.core.system.Logging;
 import java.io.*;
+import java.nio.charset.StandardCharsets;
 import java.util.*;
 
 /** The purpose of this class is to create global unique identifiers.  For performance, every JVM has a local pool of identifiers as well
@@ -68,7 +69,7 @@
           if (idData == null)
             _id = 0L;
           else
-            _id = new Long(new String(idData,"utf-8")).longValue();
+            _id = new Long(new String(idData, StandardCharsets.UTF_8)).longValue();
           
           int i = 0;
           while (i < poolSize)
@@ -83,11 +84,7 @@
             i++;
           }
 
-          lockManager.writeData(globalIDDataName,Long.toString(_id).getBytes("utf-8"));
-        }
-        catch (UnsupportedEncodingException e)
-        {
-          throw new ManifoldCFException(e.getMessage(),e);
+          lockManager.writeData(globalIDDataName,Long.toString(_id).getBytes(StandardCharsets.UTF_8));
         }
         finally
         {
diff --git a/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/ILockManager.java b/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/ILockManager.java
index 37ccc83..24206f0 100644
--- a/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/ILockManager.java
+++ b/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/ILockManager.java
@@ -139,8 +139,6 @@
   public boolean checkServiceActive(String serviceType, String serviceName)
     throws ManifoldCFException;
 
-  /** Read specified service-associated data.  The data returned will be blank (empty) if the service
-  * is not active.
   // Configuration
   
   /** Get the current shared configuration.  This configuration is available in common among all nodes,
diff --git a/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/TempFileCharacterInput.java b/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/TempFileCharacterInput.java
index 7d94588..306dd7e 100644
--- a/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/TempFileCharacterInput.java
+++ b/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/TempFileCharacterInput.java
@@ -19,6 +19,8 @@
 package org.apache.manifoldcf.core.interfaces;
 
 import java.io.*;
+import java.nio.charset.StandardCharsets;
+
 import org.apache.manifoldcf.core.system.ManifoldCF;
 
 /** This class represents a temporary file character input
@@ -72,7 +74,7 @@
 
         FileOutputStream outStream = new FileOutputStream(outfile);
         // Create a Writer corresponding to the file output stream, and encode using utf-8
-        OutputStreamWriter outWriter = new OutputStreamWriter(outStream,"utf-8");
+        OutputStreamWriter outWriter = new OutputStreamWriter(outStream,StandardCharsets.UTF_8);
         try
         {
           char[] buffer = new char[CHUNK_SIZE];
@@ -187,16 +189,12 @@
     {
       // Open the file and create a stream.
       InputStream binaryStream = new FileInputStream(file);
-      stream = new InputStreamReader(binaryStream,"utf-8");
+      stream = new InputStreamReader(binaryStream, StandardCharsets.UTF_8);
     }
     catch (FileNotFoundException e)
     {
       throw new ManifoldCFException("Can't create stream: "+e.getMessage(),e,ManifoldCFException.GENERAL_ERROR);
     }
-    catch (UnsupportedEncodingException e)
-    {
-      throw new ManifoldCFException("Can't create stream: "+e.getMessage(),e,ManifoldCFException.GENERAL_ERROR);
-    }
   }
 
   /** Transfer to a new object; this causes the current object to become "already discarded" */
@@ -253,7 +251,7 @@
     {
       // Open the file and create a stream.
       InputStream binaryStream = new FileInputStream(file);
-      Reader reader = new InputStreamReader(binaryStream,"utf-8");
+      Reader reader = new InputStreamReader(binaryStream,StandardCharsets.UTF_8);
       try
       {
         // Set up hash digest and character length counter before we start anything.
diff --git a/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/UTF8Stderr.java b/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/UTF8Stderr.java
index ca633c8..3f6eaaf 100644
--- a/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/UTF8Stderr.java
+++ b/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/UTF8Stderr.java
@@ -18,9 +18,9 @@
 */
 package org.apache.manifoldcf.core.interfaces;
 
-import java.io.UnsupportedEncodingException;
 import java.io.PrintWriter;
 import java.io.OutputStreamWriter;
+import java.nio.charset.StandardCharsets;
 
 /** This factory returns a database interface appropriate for
 * a specified client connection.  The client or company name is
@@ -35,14 +35,7 @@
   // this is called before invoking any methods
   static
   {
-    try
-    {
-      err = new PrintWriter(new OutputStreamWriter(System.err, "UTF-8"), true);
-    }
-    catch (UnsupportedEncodingException e)
-    {
-      System.err.println(e);
-    }
+     err = new PrintWriter(new OutputStreamWriter(System.err, StandardCharsets.UTF_8), true);
   }
 
   private UTF8Stderr()
diff --git a/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/UTF8Stdout.java b/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/UTF8Stdout.java
index 117bc1c..fefcfef 100644
--- a/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/UTF8Stdout.java
+++ b/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/UTF8Stdout.java
@@ -18,9 +18,9 @@
 */
 package org.apache.manifoldcf.core.interfaces;
 
-import java.io.UnsupportedEncodingException;
 import java.io.PrintWriter;
 import java.io.OutputStreamWriter;
+import java.nio.charset.StandardCharsets;
 
 /** This factory returns a database interface appropriate for
 * a specified client connection.  The client or company name is
@@ -35,14 +35,7 @@
   // this is called before invoking any methods
   static
   {
-    try
-    {
-      out = new PrintWriter(new OutputStreamWriter(System.out, "UTF-8"), true);
-    }
-    catch (UnsupportedEncodingException e)
-    {
-      System.out.println(e);
-    }
+    out = new PrintWriter(new OutputStreamWriter(System.out, StandardCharsets.UTF_8), true);
   }
 
   private UTF8Stdout()
diff --git a/framework/core/src/main/java/org/apache/manifoldcf/core/keystore/KeystoreManager.java b/framework/core/src/main/java/org/apache/manifoldcf/core/keystore/KeystoreManager.java
index 7d3d437..b1e8d50 100644
--- a/framework/core/src/main/java/org/apache/manifoldcf/core/keystore/KeystoreManager.java
+++ b/framework/core/src/main/java/org/apache/manifoldcf/core/keystore/KeystoreManager.java
@@ -82,16 +82,12 @@
     try
     {
       keystore = KeyStore.getInstance("JKS");
-      byte[] decodedBytes = new Base64().decodeString(base64String);
-      InputStream base64Input = new ByteArrayInputStream(decodedBytes);
-      try
+      byte[] decodedBytes = new org.apache.manifoldcf.core.common.Base64().decodeString(base64String);
+
+      try(InputStream base64Input = new ByteArrayInputStream(decodedBytes))
       {
         keystore.load(base64Input,passcode.toCharArray());
       }
-      finally
-      {
-        base64Input.close();
-      }
     }
     catch (KeyStoreException e)
     {
@@ -283,7 +279,7 @@
       try
       {
         keystore.store(output,passcode.toCharArray());
-        return new Base64().encodeByteArray(output.toByteArray());
+        return new org.apache.manifoldcf.core.common.Base64().encodeByteArray(output.toByteArray());
       }
       catch (KeyStoreException e)
       {
diff --git a/framework/core/src/main/java/org/apache/manifoldcf/core/lockmanager/BaseLockManager.java b/framework/core/src/main/java/org/apache/manifoldcf/core/lockmanager/BaseLockManager.java
index e347bdc..33a1f0c 100644
--- a/framework/core/src/main/java/org/apache/manifoldcf/core/lockmanager/BaseLockManager.java
+++ b/framework/core/src/main/java/org/apache/manifoldcf/core/lockmanager/BaseLockManager.java
@@ -21,6 +21,8 @@
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.core.system.Logging;
 import org.apache.manifoldcf.core.system.ManifoldCF;
+
+import java.nio.charset.StandardCharsets;
 import java.util.*;
 import java.io.*;
 
@@ -574,27 +576,15 @@
     byte[] bytes = readData(resourceName);
     if (bytes == null)
       return null;
-    try
-    {
-      return new String(bytes, "utf-8");
-    }
-    catch (UnsupportedEncodingException e)
-    {
-      throw new RuntimeException("Unsupported encoding: "+e.getMessage(),e);
-    }
+
+    return new String(bytes, StandardCharsets.UTF_8);
+
   }
   
   protected void writeServiceName(String resourceName, String serviceName)
     throws ManifoldCFException
   {
-    try
-    {
-      writeData(resourceName, (serviceName==null)?null:serviceName.getBytes("utf-8"));
-    }
-    catch (UnsupportedEncodingException e)
-    {
-      throw new RuntimeException("Unsupported encoding: "+e.getMessage(),e);
-    }
+    writeData(resourceName, (serviceName==null)?null:serviceName.getBytes(StandardCharsets.UTF_8));
   }
   
   protected static String buildServiceListEntry(String serviceType, int i)
diff --git a/framework/core/src/main/java/org/apache/manifoldcf/core/system/ManifoldCF.java b/framework/core/src/main/java/org/apache/manifoldcf/core/system/ManifoldCF.java
index 59683d8..a4ce0a8 100644
--- a/framework/core/src/main/java/org/apache/manifoldcf/core/system/ManifoldCF.java
+++ b/framework/core/src/main/java/org/apache/manifoldcf/core/system/ManifoldCF.java
@@ -20,6 +20,7 @@
 
 import org.apache.manifoldcf.core.interfaces.*;
 import java.io.*;
+import java.nio.charset.StandardCharsets;
 import java.util.*;
 import java.security.MessageDigest;
 
@@ -584,7 +585,7 @@
   {
     try
     {
-      byte[] inputBytes = input.getBytes("UTF-8");
+      byte[] inputBytes = input.getBytes(StandardCharsets.UTF_8);
       digest.update(inputBytes);
     }
     catch (Exception e)
@@ -655,14 +656,12 @@
   public static String obfuscate(String input)
     throws ManifoldCFException
   {
-    try
-    {
       if (input == null)
         return null;
       if (input.length() == 0)
         return input;
       // First, convert to binary
-      byte[] array = input.getBytes("UTF-8");
+      byte[] array = input.getBytes(StandardCharsets.UTF_8);
       // Shift and xor
       // We shift by some number not a multiple of 4.
       // The resulting hexadecimal is then not a simple shift.
@@ -686,11 +685,6 @@
         rval.append(writeNibble(x & 0x0f));
       }
       return rval.toString();
-    }
-    catch (java.io.UnsupportedEncodingException e)
-    {
-      throw new ManifoldCFException("UTF-8 not supported",e,ManifoldCFException.GENERAL_ERROR);
-    }
   }
 
   /** Write a hex nibble.
@@ -713,8 +707,6 @@
   public static String deobfuscate(String input)
     throws ManifoldCFException
   {
-    try
-    {
       if (input == null)
         return null;
       if (input.length() == 0)
@@ -748,12 +740,7 @@
       }
 
       // Convert from utf-8 to a string
-      return new String(bytes,"UTF-8");
-    }
-    catch (java.io.UnsupportedEncodingException e)
-    {
-      throw new ManifoldCFException("UTF-8 unsupported",e,ManifoldCFException.GENERAL_ERROR);
-    }
+      return new String(bytes,StandardCharsets.UTF_8);
   }
 
   /** Read a hex nibble.
@@ -1047,7 +1034,7 @@
   public static void writeBytes(OutputStream os, byte[] byteArray)
     throws IOException
   {
-    os.write(byteArray,0,byteArray.length);
+    os.write(byteArray, 0, byteArray.length);
   }
 
   /** Write a byte to an output stream */
@@ -1085,7 +1072,7 @@
     buffer[1] = (byte)((dwordValue >>> 8) & 0xff);
     buffer[2] = (byte)((dwordValue >>> 16) & 0xff);
     buffer[3] = (byte)((dwordValue >>> 24) & 0xff);
-    writeBytes(os,buffer);
+    writeBytes(os, buffer);
   }
 
   /** Write a Long to an output stream */
@@ -1119,8 +1106,8 @@
     if (stringValue == null)
       characters = null;
     else
-      characters = stringValue.getBytes("utf-8");
-    writeByteArray(os,characters);
+      characters = stringValue.getBytes(StandardCharsets.UTF_8);
+    writeByteArray(os, characters);
   }
 
   /** Write a byte array to an output stream */
@@ -1140,7 +1127,7 @@
   public static void writefloat(OutputStream os, float floatValue)
     throws IOException
   {
-    writeSdword(os,Float.floatToIntBits(floatValue));
+    writeSdword(os, Float.floatToIntBits(floatValue));
   }
 
   /** Read  bytes from the input stream into specified array. */
@@ -1227,7 +1214,7 @@
     byte[] bytes = readByteArray(is);
     if (bytes == null)
       return null;
-    return new String(bytes,"utf-8");
+    return new String(bytes,StandardCharsets.UTF_8);
   }
 
   /** Read a byte array from an input stream */
diff --git a/framework/core/src/main/java/org/apache/manifoldcf/core/util/URLDecoder.java b/framework/core/src/main/java/org/apache/manifoldcf/core/util/URLDecoder.java
new file mode 100644
index 0000000..aafc2f6
--- /dev/null
+++ b/framework/core/src/main/java/org/apache/manifoldcf/core/util/URLDecoder.java
@@ -0,0 +1,48 @@
+package org.apache.manifoldcf.core.util;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.UnsupportedEncodingException;
+import java.nio.charset.StandardCharsets;
+
+/**
+ * Wrapper of {@link java.net.URLDecoder}
+ * Intends to replace java.net.URLDecoder.decode(String s, "UTF-8")
+ * avoiding {@link UnsupportedEncodingException} handling.
+ * {@link StandardCharsets} are guaranteed to be available
+ * on every implementation of the Java platform.
+ *
+ * @since 1.7
+ */
+public class URLDecoder {
+
+  public static String decode(String s) {
+
+    String str = null;
+
+    try {
+      str = java.net.URLDecoder.decode(s, StandardCharsets.UTF_8.name());
+    } catch (UnsupportedEncodingException e) {
+      // Can't happen. java.nio.charset.StandardCharsets are guaranteed
+      // to be available on every implementation of the Java platform.
+      throw new RuntimeException("UTF-8 not supported " + e.getMessage(), e);
+    }
+
+    return str;
+  }
+}
diff --git a/framework/core/src/main/java/org/apache/manifoldcf/core/util/URLEncoder.java b/framework/core/src/main/java/org/apache/manifoldcf/core/util/URLEncoder.java
new file mode 100644
index 0000000..34b34c8
--- /dev/null
+++ b/framework/core/src/main/java/org/apache/manifoldcf/core/util/URLEncoder.java
@@ -0,0 +1,48 @@
+package org.apache.manifoldcf.core.util;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.UnsupportedEncodingException;
+import java.nio.charset.StandardCharsets;
+
+/**
+ * Wrapper of {@link java.net.URLEncoder}
+ * Intends to replace java.net.URLEncoder.encode(String s, "UTF-8")
+ * avoiding {@link UnsupportedEncodingException} handling.
+ * {@link StandardCharsets} are guaranteed to be available
+ * on every implementation of the Java platform.
+ *
+ * @since 1.7
+ */
+public class URLEncoder {
+
+  public static String encode(String s) {
+
+    String str = null;
+
+    try {
+      str = java.net.URLEncoder.encode(s, StandardCharsets.UTF_8.name());
+    } catch (UnsupportedEncodingException e) {
+      // Can't happen. java.nio.charset.StandardCharsets are guaranteed
+      // to be available on every implementation of the Java platform.
+      throw new RuntimeException("UTF-8 not supported " + e.getMessage(), e);
+    }
+
+    return str;
+  }
+}
diff --git a/framework/core/src/test/java/org/apache/manifoldcf/core/fuzzyml/TestFuzzyML.java b/framework/core/src/test/java/org/apache/manifoldcf/core/fuzzyml/TestFuzzyML.java
index ab058f0..75d991e 100644
--- a/framework/core/src/test/java/org/apache/manifoldcf/core/fuzzyml/TestFuzzyML.java
+++ b/framework/core/src/test/java/org/apache/manifoldcf/core/fuzzyml/TestFuzzyML.java
@@ -22,6 +22,7 @@
 import org.apache.manifoldcf.core.system.ManifoldCF;
 
 import java.io.*;
+import java.nio.charset.StandardCharsets;
 import java.util.*;
 import org.junit.*;
 
@@ -184,7 +185,7 @@
     throws IOException, ManifoldCFException
   {
     org.apache.manifoldcf.core.system.Logging.misc = org.apache.log4j.Logger.getLogger("test");
-    InputStream is = new ByteArrayInputStream(fuzzyTestString.getBytes("utf-8"));
+    InputStream is = new ByteArrayInputStream(fuzzyTestString.getBytes(StandardCharsets.UTF_8));
     Parser p = new Parser();
     // Parse the document.  This will cause various things to occur, within the instantiated XMLParsingContext class.
     XMLFuzzyHierarchicalParseState x = new XMLFuzzyHierarchicalParseState();
diff --git a/framework/core/src/test/java/org/apache/manifoldcf/core/tests/Base.java b/framework/core/src/test/java/org/apache/manifoldcf/core/tests/Base.java
index d1cea32..4421a9d 100644
--- a/framework/core/src/test/java/org/apache/manifoldcf/core/tests/Base.java
+++ b/framework/core/src/test/java/org/apache/manifoldcf/core/tests/Base.java
@@ -22,6 +22,7 @@
 import org.apache.manifoldcf.core.system.ManifoldCF;
 
 import java.io.*;
+import java.nio.charset.StandardCharsets;
 import java.util.*;
 import org.junit.*;
 
@@ -250,7 +251,7 @@
     OutputStream os = new FileOutputStream(f);
     try
     {
-      Writer w = new OutputStreamWriter(os,"UTF-8");
+      Writer w = new OutputStreamWriter(os, StandardCharsets.UTF_8);
       try
       {
         w.write(fileContents);
diff --git a/framework/core/src/test/java/org/apache/manifoldcf/core/tests/HTMLTester.java b/framework/core/src/test/java/org/apache/manifoldcf/core/tests/HTMLTester.java
index f5c8274..53f12d5 100644
--- a/framework/core/src/test/java/org/apache/manifoldcf/core/tests/HTMLTester.java
+++ b/framework/core/src/test/java/org/apache/manifoldcf/core/tests/HTMLTester.java
@@ -19,6 +19,7 @@
 package org.apache.manifoldcf.core.tests;
 
 import java.io.*;
+import java.nio.charset.StandardCharsets;
 import java.util.*;
 import org.junit.*;
 
@@ -75,8 +76,8 @@
       InputStream is = getClass().getResourceAsStream(resName);
       try
       {
-        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os,"UTF-8"));
-        BufferedReader br = new BufferedReader(new InputStreamReader(is,"UTF-8"));
+        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os, StandardCharsets.UTF_8));
+        BufferedReader br = new BufferedReader(new InputStreamReader(is,StandardCharsets.UTF_8));
         while (true)
         {
           String line = br.readLine();
diff --git a/framework/crawler-ui/pom.xml b/framework/crawler-ui/pom.xml
index 20af773..4efa34e 100644
--- a/framework/crawler-ui/pom.xml
+++ b/framework/crawler-ui/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-framework</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/framework/crawler-ui/src/main/webapp/error.jsp b/framework/crawler-ui/src/main/webapp/error.jsp
index 35a2d6d..de65879 100644
--- a/framework/crawler-ui/src/main/webapp/error.jsp
+++ b/framework/crawler-ui/src/main/webapp/error.jsp
@@ -49,7 +49,7 @@
 	<table class="displaytable">
 		<tr><td class="message"><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(errorText)%></td></tr>
 		<tr><td class="separator"><hr/></td></tr>
-		<tr><td class="message"><a href='<%=java.net.URLEncoder.encode(target,"UTF-8")%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"error.Return")%>">OK</a></td></tr>
+		<tr><td class="message"><a href='<%=org.apache.manifoldcf.core.util.URLEncoder.encode(target)%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"error.Return")%>">OK</a></td></tr>
 	</table>
 
        </td>
diff --git a/framework/crawler-ui/src/main/webapp/listauthorities.jsp b/framework/crawler-ui/src/main/webapp/listauthorities.jsp
index e36ef47..7d1f783 100644
--- a/framework/crawler-ui/src/main/webapp/listauthorities.jsp
+++ b/framework/crawler-ui/src/main/webapp/listauthorities.jsp
@@ -99,8 +99,8 @@
 		<tr <%="class=\""+((i%2==0)?"evendatarow":"odddatarow")+"\""%>>
 			<td class="columncell">
 				<nobr>
-					<a href='<%="viewauthority.jsp?connname="+java.net.URLEncoder.encode(name,"UTF-8")%>' alt='<%="View "+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(name)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"listauthorities.View")%></a>
-					<a href='<%="editauthority.jsp?connname="+java.net.URLEncoder.encode(name,"UTF-8")%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"listauthorities.Edit")+" "+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(name)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"listauthorities.Edit")%></a>
+					<a href='<%="viewauthority.jsp?connname="+org.apache.manifoldcf.core.util.URLEncoder.encode(name)%>' alt='<%="View "+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(name)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"listauthorities.View")%></a>
+					<a href='<%="editauthority.jsp?connname="+org.apache.manifoldcf.core.util.URLEncoder.encode(name)%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"listauthorities.Edit")+" "+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(name)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"listauthorities.Edit")%></a>
 					<a href="javascript:void()" onclick='<%="javascript:Delete(\""+org.apache.manifoldcf.ui.util.Encoder.attributeJavascriptEscape(name)+"\")"%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"listauthorities.Delete")+" "+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(name)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"listauthorities.Delete")%></a>
 				</nobr>
 			</td>
diff --git a/framework/crawler-ui/src/main/webapp/listconnections.jsp b/framework/crawler-ui/src/main/webapp/listconnections.jsp
index 9257a82..25b2e0c 100644
--- a/framework/crawler-ui/src/main/webapp/listconnections.jsp
+++ b/framework/crawler-ui/src/main/webapp/listconnections.jsp
@@ -95,7 +95,7 @@
 		String className = connection.getClassName();
 		String connectorName = connectorManager.getDescription(className);
 		if (connectorName == null)
-			connectorName = className + Messages.getString(pageContext.getRequest().getLocale(),"listconnections.uninstalled");;
+			connectorName = className + Messages.getString(pageContext.getRequest().getLocale(),"listconnections.uninstalled");
 		String authorityName = connection.getACLAuthority();
 		int maxCount = connection.getMaxConnections();
 
@@ -103,8 +103,8 @@
 		<tr <%="class=\""+((i%2==0)?"evendatarow":"odddatarow")+"\""%>>
 			<td class="columncell">
 				<nobr>
-					<a href='<%="viewconnection.jsp?connname="+java.net.URLEncoder.encode(name,"UTF-8")%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"listconnections.View")+" "+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(name)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"listconnections.View")%></a>
-					<a href='<%="editconnection.jsp?connname="+java.net.URLEncoder.encode(name,"UTF-8")%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"listconnections.Edit")+" "+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(name)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"listconnections.Edit")%></a>
+					<a href='<%="viewconnection.jsp?connname="+org.apache.manifoldcf.core.util.URLEncoder.encode(name)%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"listconnections.View")+" "+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(name)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"listconnections.View")%></a>
+					<a href='<%="editconnection.jsp?connname="+org.apache.manifoldcf.core.util.URLEncoder.encode(name)%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"listconnections.Edit")+" "+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(name)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"listconnections.Edit")%></a>
 					<a href="javascript:void()" onclick='<%="javascript:Delete(\""+org.apache.manifoldcf.ui.util.Encoder.attributeJavascriptEscape(name)+"\")"%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"listconnections.Delete")+" "+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(name)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"listconnections.Delete")%></a>
 				</nobr>
 			</td>
diff --git a/framework/crawler-ui/src/main/webapp/listgroups.jsp b/framework/crawler-ui/src/main/webapp/listgroups.jsp
index e80a93e..4394f74 100644
--- a/framework/crawler-ui/src/main/webapp/listgroups.jsp
+++ b/framework/crawler-ui/src/main/webapp/listgroups.jsp
@@ -94,8 +94,8 @@
 		<tr <%="class=\""+((i%2==0)?"evendatarow":"odddatarow")+"\""%>>
 			<td class="columncell">
 				<nobr>
-					<a href='<%="viewgroup.jsp?groupname="+java.net.URLEncoder.encode(name,"UTF-8")%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"listgroups.View")+" "+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(name)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"listgroups.View")%></a>
-					<a href='<%="editgroup.jsp?groupname="+java.net.URLEncoder.encode(name,"UTF-8")%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"listgroups.Edit")+" "+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(name)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"listgroups.Edit")%></a>
+					<a href='<%="viewgroup.jsp?groupname="+org.apache.manifoldcf.core.util.URLEncoder.encode(name)%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"listgroups.View")+" "+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(name)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"listgroups.View")%></a>
+					<a href='<%="editgroup.jsp?groupname="+org.apache.manifoldcf.core.util.URLEncoder.encode(name)%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"listgroups.Edit")+" "+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(name)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"listgroups.Edit")%></a>
 					<a href="javascript:void()" onclick='<%="javascript:Delete(\""+org.apache.manifoldcf.ui.util.Encoder.attributeJavascriptEscape(name)+"\")"%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"listgroups.Delete")+" "+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(name)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"listgroups.Delete")%></a>
 				</nobr>
 			</td>
diff --git a/framework/crawler-ui/src/main/webapp/listmappers.jsp b/framework/crawler-ui/src/main/webapp/listmappers.jsp
index 3f03e35..a8e00b9 100644
--- a/framework/crawler-ui/src/main/webapp/listmappers.jsp
+++ b/framework/crawler-ui/src/main/webapp/listmappers.jsp
@@ -102,8 +102,8 @@
 		<tr <%="class=\""+((i%2==0)?"evendatarow":"odddatarow")+"\""%>>
 			<td class="columncell">
 				<nobr>
-					<a href='<%="viewmapper.jsp?connname="+java.net.URLEncoder.encode(name,"UTF-8")%>' alt='<%="View "+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(name)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"listmappers.View")%></a>
-					<a href='<%="editmapper.jsp?connname="+java.net.URLEncoder.encode(name,"UTF-8")%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"listmappers.Edit")+" "+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(name)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"listmappers.Edit")%></a>
+					<a href='<%="viewmapper.jsp?connname="+URLEncoder.encode(name)%>' alt='<%="View "+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(name)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"listmappers.View")%></a>
+					<a href='<%="editmapper.jsp?connname="+URLEncoder.encode(name)%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"listmappers.Edit")+" "+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(name)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"listmappers.Edit")%></a>
 					<a href="javascript:void()" onclick='<%="javascript:Delete(\""+org.apache.manifoldcf.ui.util.Encoder.attributeJavascriptEscape(name)+"\")"%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"listmappers.Delete")+" "+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(name)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"listmappers.Delete")%></a>
 				</nobr>
 			</td>
diff --git a/framework/crawler-ui/src/main/webapp/listoutputs.jsp b/framework/crawler-ui/src/main/webapp/listoutputs.jsp
index 15ad990..dd9ffcd 100644
--- a/framework/crawler-ui/src/main/webapp/listoutputs.jsp
+++ b/framework/crawler-ui/src/main/webapp/listoutputs.jsp
@@ -101,8 +101,8 @@
 		<tr <%="class=\""+((i%2==0)?"evendatarow":"odddatarow")+"\""%>>
 			<td class="columncell">
 				<nobr>
-					<a href='<%="viewoutput.jsp?connname="+java.net.URLEncoder.encode(name,"UTF-8")%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"listoutputs.View")+" "+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(name)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"listoutputs.View")%></a>
-					<a href='<%="editoutput.jsp?connname="+java.net.URLEncoder.encode(name,"UTF-8")%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"listoutputs.Edit")+" "+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(name)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"listoutputs.Edit")%></a>
+					<a href='<%="viewoutput.jsp?connname="+org.apache.manifoldcf.core.util.URLEncoder.encode(name)%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"listoutputs.View")+" "+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(name)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"listoutputs.View")%></a>
+					<a href='<%="editoutput.jsp?connname="+org.apache.manifoldcf.core.util.URLEncoder.encode(name)%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"listoutputs.Edit")+" "+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(name)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"listoutputs.Edit")%></a>
 					<a href="javascript:void()" onclick='<%="javascript:Delete(\""+org.apache.manifoldcf.ui.util.Encoder.attributeJavascriptEscape(name)+"\")"%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"listoutputs.Delete")+" "+org.apache.manifoldcf.ui.util.Encoder.attributeEscape(name)%>'><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"listoutputs.Delete")%></a>
 				</nobr>
 			</td>
diff --git a/framework/crawler-ui/src/main/webapp/style.css b/framework/crawler-ui/src/main/webapp/style.css
index 98530f8..de1f38d 100644
--- a/framework/crawler-ui/src/main/webapp/style.css
+++ b/framework/crawler-ui/src/main/webapp/style.css
@@ -550,6 +550,28 @@
     text-align: left;
 }
 
+.description input[type="button"], .formcolumncell input[type="button"]
+{
+    min-height: 30px;
+    font-size: 14px;
+    color: #fff;
+    cursor: pointer;
+    padding: 10px;
+    border: #6FB3E0 2px solid;
+    background-color: #6FB3E0 !important;
+    color: #fff;
+}
+
+.description a input[type="button"]{
+    border: none;
+    background: none transparent;
+    margin: -4px;
+    font-size: 14px;
+    color: #fff;
+    cursor: pointer;
+    padding: 0 10px;
+}
+
 .message
 {
     padding: 10px 0;
diff --git a/framework/crawler-ui/src/main/webapp/viewauthority.jsp b/framework/crawler-ui/src/main/webapp/viewauthority.jsp
index 3fd2946..76367b5 100644
--- a/framework/crawler-ui/src/main/webapp/viewauthority.jsp
+++ b/framework/crawler-ui/src/main/webapp/viewauthority.jsp
@@ -196,8 +196,8 @@
 				<td class="separator" colspan="4"><hr/></td>
 			</tr>
 		<tr><td class="message" colspan="4">
-			<nobr><a href='<%="viewauthority.jsp?connname="+java.net.URLEncoder.encode(connectionName,"UTF-8")%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewauthority.Refresh")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewauthority.Refresh")%></a></nobr>
-			<nobr><a href='<%="editauthority.jsp?connname="+java.net.URLEncoder.encode(connectionName,"UTF-8")%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewauthority.EditThisAuthorityConnection")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewauthority.Edit")%></a></nobr>
+			<nobr><a href='<%="viewauthority.jsp?connname="+org.apache.manifoldcf.core.util.URLEncoder.encode(connectionName)%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewauthority.Refresh")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewauthority.Refresh")%></a></nobr>
+			<nobr><a href='<%="editauthority.jsp?connname="+org.apache.manifoldcf.core.util.URLEncoder.encode(connectionName)%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewauthority.EditThisAuthorityConnection")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewauthority.Edit")%></a></nobr>
 			<nobr><a href="javascript:void()" onclick='<%="javascript:Delete(\""+org.apache.manifoldcf.ui.util.Encoder.attributeJavascriptEscape(connectionName)+"\")"%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewauthority.DeleteThisAuthorityConnection")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewauthority.Delete")%></a></nobr>
 		</td></tr>
 		</table>
diff --git a/framework/crawler-ui/src/main/webapp/viewconnection.jsp b/framework/crawler-ui/src/main/webapp/viewconnection.jsp
index 0a01ecc..97d2b11 100644
--- a/framework/crawler-ui/src/main/webapp/viewconnection.jsp
+++ b/framework/crawler-ui/src/main/webapp/viewconnection.jsp
@@ -220,8 +220,8 @@
 			</tr>
 			<tr>
 				<td class="message" colspan="4">
-					<nobr><a href='<%="viewconnection.jsp?connname="+java.net.URLEncoder.encode(connectionName,"UTF-8")%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewconnection.Refresh")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewconnection.Refresh")%></a></nobr>
-					<nobr><a href='<%="editconnection.jsp?connname="+java.net.URLEncoder.encode(connectionName,"UTF-8")%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewconnection.EditThisConnection")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewconnection.Edit")%></a></nobr>
+					<nobr><a href='<%="viewconnection.jsp?connname="+org.apache.manifoldcf.core.util.URLEncoder.encode(connectionName)%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewconnection.Refresh")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewconnection.Refresh")%></a></nobr>
+					<nobr><a href='<%="editconnection.jsp?connname="+org.apache.manifoldcf.core.util.URLEncoder.encode(connectionName)%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewconnection.EditThisConnection")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewconnection.Edit")%></a></nobr>
 					<nobr><a href="javascript:void()" onclick='<%="javascript:Delete(\""+org.apache.manifoldcf.ui.util.Encoder.attributeJavascriptEscape(connectionName)+"\")"%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewconnection.Deletethisconnection")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewconnection.Delete")%></a></nobr>
 					<nobr><a href="javascript:void()" onclick='<%="javascript:ClearHistory(\""+org.apache.manifoldcf.ui.util.Encoder.attributeJavascriptEscape(connectionName)+"\")"%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewconnection.ClearHistoryAssociatedWithThisConnection")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewconnection.ClearAllRelatedHistory")%></a></nobr>
 				</td>
diff --git a/framework/crawler-ui/src/main/webapp/viewgroup.jsp b/framework/crawler-ui/src/main/webapp/viewgroup.jsp
index a937650..0984a11 100644
--- a/framework/crawler-ui/src/main/webapp/viewgroup.jsp
+++ b/framework/crawler-ui/src/main/webapp/viewgroup.jsp
@@ -92,7 +92,7 @@
 			</tr>
 			<tr>
 				<td class="message" colspan="4">
-					<a href='<%="editgroup.jsp?groupname="+java.net.URLEncoder.encode(groupName,"UTF-8")%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewgroup.EditThisAuthorityGroup")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewgroup.Edit")%></a>&nbsp;<a href="javascript:void()" onclick='<%="javascript:Delete(\""+org.apache.manifoldcf.ui.util.Encoder.attributeJavascriptEscape(groupName)+"\")"%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewgroup.DeleteThisAuthorityGroup")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewgroup.Delete")%></a>
+					<a href='<%="editgroup.jsp?groupname="+org.apache.manifoldcf.core.util.URLEncoder.encode(groupName)%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewgroup.EditThisAuthorityGroup")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewgroup.Edit")%></a>&nbsp;<a href="javascript:void()" onclick='<%="javascript:Delete(\""+org.apache.manifoldcf.ui.util.Encoder.attributeJavascriptEscape(groupName)+"\")"%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewgroup.DeleteThisAuthorityGroup")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewgroup.Delete")%></a>
 				</td>
 			</tr>
 		</table>
diff --git a/framework/crawler-ui/src/main/webapp/viewmapper.jsp b/framework/crawler-ui/src/main/webapp/viewmapper.jsp
index 468d1e8..13d9625 100644
--- a/framework/crawler-ui/src/main/webapp/viewmapper.jsp
+++ b/framework/crawler-ui/src/main/webapp/viewmapper.jsp
@@ -177,8 +177,8 @@
 				<td class="separator" colspan="4"><hr/></td>
 			</tr>
 		<tr><td class="message" colspan="4">
-			<nobr><a href='<%="viewmapper.jsp?connname="+java.net.URLEncoder.encode(connectionName,"UTF-8")%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewmapper.Refresh")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewmapper.Refresh")%></a></nobr>
-			<nobr><a href='<%="editmapper.jsp?connname="+java.net.URLEncoder.encode(connectionName,"UTF-8")%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewmapper.EditThisMappingConnection")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewmapper.Edit")%></a></nobr>
+			<nobr><a href='<%="viewmapper.jsp?connname="+org.apache.manifoldcf.core.util.URLEncoder.encode(connectionName)%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewmapper.Refresh")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewmapper.Refresh")%></a></nobr>
+			<nobr><a href='<%="editmapper.jsp?connname="+org.apache.manifoldcf.core.util.URLEncoder.encode(connectionName)%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewmapper.EditThisMappingConnection")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewmapper.Edit")%></a></nobr>
 			<nobr><a href="javascript:void()" onclick='<%="javascript:Delete(\""+org.apache.manifoldcf.ui.util.Encoder.attributeJavascriptEscape(connectionName)+"\")"%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewmapper.DeleteThisMappingConnection")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewmapper.Delete")%></a></nobr>
 		</td></tr>
 		</table>
diff --git a/framework/crawler-ui/src/main/webapp/viewoutput.jsp b/framework/crawler-ui/src/main/webapp/viewoutput.jsp
index e3d5827..156afc6 100644
--- a/framework/crawler-ui/src/main/webapp/viewoutput.jsp
+++ b/framework/crawler-ui/src/main/webapp/viewoutput.jsp
@@ -172,8 +172,8 @@
 			</tr>
 			<tr>
 				<td class="message" colspan="4">
-					<nobr><a href='<%="viewoutput.jsp?connname="+java.net.URLEncoder.encode(connectionName,"UTF-8")%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewoutput.Refresh")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewoutput.Refresh")%></a></nobr>
-					<nobr><a href='<%="editoutput.jsp?connname="+java.net.URLEncoder.encode(connectionName,"UTF-8")%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewoutput.EditThisOutputConnection")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewoutput.Edit")%></a></nobr>
+					<nobr><a href='<%="viewoutput.jsp?connname="+org.apache.manifoldcf.core.util.URLEncoder.encode(connectionName)%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewoutput.Refresh")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewoutput.Refresh")%></a></nobr>
+					<nobr><a href='<%="editoutput.jsp?connname="+org.apache.manifoldcf.core.util.URLEncoder.encode(connectionName)%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewoutput.EditThisOutputConnection")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewoutput.Edit")%></a></nobr>
 					<nobr><a href="javascript:void()" onclick='<%="javascript:Delete(\""+org.apache.manifoldcf.ui.util.Encoder.attributeJavascriptEscape(connectionName)+"\")"%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewoutput.DeleteThisOutputConnection")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewoutput.Delete")%></a></nobr>
 					<nobr><a href="javascript:void()" onclick='<%="javascript:ReingestAll(\""+org.apache.manifoldcf.ui.util.Encoder.attributeJavascriptEscape(connectionName)+"\")"%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewoutput.ReIngestAllDocumentsAssociatedWithThisOutputConnection")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewoutput.ReIngestAllAssociatedDocuments")%></a></nobr>
 					<nobr><a href="javascript:void()" onclick='<%="javascript:RemoveAll(\""+org.apache.manifoldcf.ui.util.Encoder.attributeJavascriptEscape(connectionName)+"\")"%>' alt="<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"viewoutput.RemoveAllDocumentsAssociatedWithThisOutputConnection")%>"><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewoutput.RemoveAllAssociatedDocuments")%></a></nobr>
diff --git a/framework/jetty-runner/pom.xml b/framework/jetty-runner/pom.xml
index 6e3caa7..156a432 100644
--- a/framework/jetty-runner/pom.xml
+++ b/framework/jetty-runner/pom.xml
@@ -20,7 +20,7 @@
 	<parent>
 		<groupId>org.apache.manifoldcf</groupId>
 		<artifactId>mcf-framework</artifactId>
-		<version>1.6-SNAPSHOT</version>
+		<version>1.7-SNAPSHOT</version>
 	</parent>
 	<modelVersion>4.0.0</modelVersion>
 
diff --git a/framework/pom.xml b/framework/pom.xml
index 6acbf1b..eec3830 100644
--- a/framework/pom.xml
+++ b/framework/pom.xml
@@ -20,13 +20,13 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-parent</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
   <groupId>org.apache.manifoldcf</groupId>
   <artifactId>mcf-framework</artifactId>
-  <version>1.6-SNAPSHOT</version>
+  <version>1.7-SNAPSHOT</version>
 
   <name>ManifoldCF - Framework</name>
   <packaging>pom</packaging>
diff --git a/framework/pull-agent/pom.xml b/framework/pull-agent/pom.xml
index b94efa1..3ad4e5e 100644
--- a/framework/pull-agent/pom.xml
+++ b/framework/pull-agent/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-framework</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/authority/AuthorityConnectionManager.java b/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/authority/AuthorityConnectionManager.java
index e77fa9c..29bbd63 100644
--- a/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/authority/AuthorityConnectionManager.java
+++ b/framework/pull-agent/src/main/java/org/apache/manifoldcf/authorities/authority/AuthorityConnectionManager.java
@@ -30,7 +30,7 @@
 /** Implementation of the authority connection manager functionality.
  * 
  * <br><br>
- * <b>authconnectors</b>
+ * <b>authconnections</b>
  * <table border="1" cellpadding="3" cellspacing="0">
  * <tr class="TableHeadingColor">
  * <th>Field</th><th>Type</th><th>Description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</th>
@@ -40,7 +40,8 @@
  * <tr><td>maxcount</td><td>BIGINT</td><td></td></tr>
  * <tr><td>configxml</td><td>LONGTEXT</td><td></td></tr>
  * <tr><td>mappingname</td><td>VARCHAR(32)</td><td></td></tr>
- * <tr><td>authdomainname</td><td>VARCHAR(32)</td><td></td></tr>
+ * <tr><td>authdomainname</td><td>VARCHAR(255)</td><td></td></tr>
+ * <tr><td>groupname</td><td>VARCHAR(32)</td><td></td></tr>
  * </table>
  * <br><br>
  * 
diff --git a/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IRepositoryConnector.java b/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IRepositoryConnector.java
index 516fbfd..1cd3a5c 100644
--- a/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IRepositoryConnector.java
+++ b/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IRepositoryConnector.java
@@ -76,8 +76,9 @@
   // MODEL_CHAINED_ADD_CHANGE_DELETE would be appropriate.  But, if a changed node can only discover child
   // additions and changes, then MODEL_CHAINED_ADD_CHANGE would be the right choice.
 
-  /** Supply all seeds every time.  The connector does not pay any attention to the start time or end time
-  * of the request, and simply returns a complete list of seeds. */
+  /** This is the legacy ManifoldCF catch-all crawling model.  All existing documents will be rechecked when a crawl
+  * is done, every time.  This model was typically used for models where seeds were essentially fixed and all
+  * real documents were discovered during crawling. */
   public static final int MODEL_ALL = 0;
   /** This indicates that the seeds are never complete; the previous seeds are lost and cannot be retrieved. */
   public static final int MODEL_PARTIAL = 4;
diff --git a/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobManager.java b/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobManager.java
index b6a4cb3..14b73da 100644
--- a/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobManager.java
+++ b/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobManager.java
@@ -6125,12 +6125,15 @@
         jobQueue.preparePartialScan(jobID);
       return;
     }
-    
-    // Similarly, minimal crawl attempts no delete phase unless the connector explicitly forbids it, or unless
-    // the job criteria have changed.
+
+    // Look for a minimum crawl.
+    // Minimum crawls do only what is seeded, in general.  These are partial scans, always.  MODEL_ALL disables this
+    // functionality, as does a scan from the beginning of time (after the job spec has been changed).
     if (requestMinimum && connectorModel != IRepositoryConnector.MODEL_ALL && !fromBeginningOfTime)
     {
-      // If it is a chained model, do the partial prep.
+      // Minimum crawl requested.
+      // If it is a chained model, do the partial prep.  If it's a non-chained model, do nothing for prep; the seeding
+      // will flag the documents we want to look at.
       if (connectorModel == IRepositoryConnector.MODEL_CHAINED_ADD ||
         connectorModel == IRepositoryConnector.MODEL_CHAINED_ADD_CHANGE)
         jobQueue.preparePartialScan(jobID);
@@ -6139,9 +6142,23 @@
     
     if (!continuousJob && connectorModel != IRepositoryConnector.MODEL_PARTIAL &&
       (connectorModel == IRepositoryConnector.MODEL_ALL || fromBeginningOfTime))
+    {
+      // Prepare for a full scan if:
+      // (a) not a continuous job, and
+      // (b) not a partial model (which always disables full scans), and
+      // (c) either MODEL_ALL or from the beginning of time (which are essentially equivalent)
       prepareFullScan(jobID,legalLinkTypes,hopcountMethod);
+    }
     else
+    {
+      // Map COMPLETE and UNCHANGED to PENDINGPURGATORY, if:
+      // (a) job is continuous, OR
+      // (b) MODEL_PARTIAL, OR
+      // (c) not MODEL_ALL AND not from beginning of time
+      // This causes all existing documents to be rechecked!  This is needed because the model is not
+      // complete at this point; we have ADD but we don't have either CHANGE or DELETE.
       jobQueue.prepareIncrementalScan(jobID);
+    }
   }
 
   /** Queue all existing.
diff --git a/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobQueue.java b/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobQueue.java
index a5e6c24..fe9e519 100644
--- a/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobQueue.java
+++ b/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobQueue.java
@@ -82,6 +82,9 @@
   // ACTIVE means a newly-added reference that is being scanned for the first time.
   // COMPLETE means a reference that has been already scanned (and does not need to be
   //   scanned again for this job session)
+  // UNCHANGED represents a document that was previously COMPLETE, and is eligible
+  //   to be discovered or seeded, but hasn't been yet.  This is different from PURGATORY because
+  //   UNCHANGED documents are not cleaned up at the end, but PURGATORY documents are.
   // PURGATORY means a reference that was complete before, which means it will need to be deleted if
   //   it isn't included in this job session)
   // PENDINGPURGATORY means a reference that was complete before, but which has been rediscovered in
diff --git a/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/repository/RepositoryConnectionManager.java b/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/repository/RepositoryConnectionManager.java
index 18f887b..0eb7081 100644
--- a/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/repository/RepositoryConnectionManager.java
+++ b/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/repository/RepositoryConnectionManager.java
@@ -39,7 +39,7 @@
 * <tr><td>connectionname</td><td>VARCHAR(32)</td><td>Primary Key</td></tr>
 * <tr><td>description</td><td>VARCHAR(255)</td><td></td></tr>
 * <tr><td>classname</td><td>VARCHAR(255)</td><td></td></tr>
-* <tr><td>authorityname</td><td>VARCHAR(32)</td><td></td></tr>
+* <tr><td>groupname</td><td>VARCHAR(32)</td><td></td></tr>
 * <tr><td>maxcount</td><td>BIGINT</td><td></td></tr>
 * <tr><td>configxml</td><td>LONGTEXT</td><td></td></tr>
 * </table>
diff --git a/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/reprioritizationtracker/ReprioritizationTracker.java b/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/reprioritizationtracker/ReprioritizationTracker.java
index 66b482d..d140738 100644
--- a/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/reprioritizationtracker/ReprioritizationTracker.java
+++ b/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/reprioritizationtracker/ReprioritizationTracker.java
@@ -22,6 +22,8 @@
 import org.apache.manifoldcf.agents.interfaces.*;
 import org.apache.manifoldcf.crawler.interfaces.*;
 import org.apache.manifoldcf.crawler.system.Logging;
+
+import java.nio.charset.StandardCharsets;
 import java.util.*;
 import java.io.*;
 
@@ -383,14 +385,9 @@
     byte[] processIDData = lockManager.readData(trackerProcessIDResource);
     if (processIDData == null)
       return null;
-    try
-    {
-      return new String(processIDData, "utf-8");
-    }
-    catch (UnsupportedEncodingException e)
-    {
-      throw new RuntimeException(e.getMessage(),e);
-    }
+    else
+      return new String(processIDData, StandardCharsets.UTF_8);
+
   }
   
   /** Write process ID.
@@ -403,15 +400,8 @@
       lockManager.writeData(trackerProcessIDResource, null);
     else
     {
-      try
-      {
-        byte[] processIDData = processID.getBytes("utf-8");
+        byte[] processIDData = processID.getBytes(StandardCharsets.UTF_8);
         lockManager.writeData(trackerProcessIDResource, processIDData);
-      }
-      catch (UnsupportedEncodingException e)
-      {
-        throw new RuntimeException(e.getMessage(),e);
-      }
     }
   }
 
@@ -424,14 +414,9 @@
     byte[] reproIDData = lockManager.readData(trackerReproIDResource);
     if (reproIDData == null)
       return null;
-    try
-    {
-      return new String(reproIDData, "utf-8");
-    }
-    catch (UnsupportedEncodingException e)
-    {
-      throw new RuntimeException(e.getMessage(),e);
-    }
+    else
+      return new String(reproIDData, StandardCharsets.UTF_8);
+
   }
   
   /** Write repro ID.
@@ -444,15 +429,8 @@
       lockManager.writeData(trackerReproIDResource, null);
     else
     {
-      try
-      {
-        byte[] reproIDData = reproID.getBytes("utf-8");
+        byte[] reproIDData = reproID.getBytes(StandardCharsets.UTF_8);
         lockManager.writeData(trackerReproIDResource, reproIDData);
-      }
-      catch (UnsupportedEncodingException e)
-      {
-        throw new RuntimeException(e.getMessage(),e);
-      }
     }
   }
 
diff --git a/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/WorkerThread.java b/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/WorkerThread.java
index 363c84c..f1f8c57 100644
--- a/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/WorkerThread.java
+++ b/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/WorkerThread.java
@@ -21,7 +21,7 @@
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
 import org.apache.manifoldcf.crawler.interfaces.*;
-import org.apache.manifoldcf.crawler.system.Logging;
+import org.apache.manifoldcf.core.util.URLEncoder;
 import java.util.*;
 import java.io.*;
 import java.lang.reflect.*;
@@ -2479,19 +2479,12 @@
     public String qualifyAccessToken(String authorityNameString, String accessToken)
       throws ManifoldCFException
     {
-      try
-      {
         if (authorityNameString == null)
-          return java.net.URLEncoder.encode(accessToken,"UTF-8");
-        return java.net.URLEncoder.encode(authorityNameString,"UTF-8") + ":" + java.net.URLEncoder.encode(accessToken,"UTF-8");
-      }
-      catch (java.io.UnsupportedEncodingException e)
-      {
-        throw new ManifoldCFException(e.getMessage(),e);
-      }
+          return URLEncoder.encode(accessToken);
+        else
+          return URLEncoder.encode(authorityNameString) + ":" + URLEncoder.encode(accessToken);
     }
 
-
   }
 
 }
diff --git a/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/ManifoldCFInstance.java b/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/ManifoldCFInstance.java
index 01acb7f..683a0f6 100644
--- a/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/ManifoldCFInstance.java
+++ b/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/ManifoldCFInstance.java
@@ -25,6 +25,7 @@
 import org.apache.manifoldcf.agents.system.AgentsDaemon;
 
 import java.io.*;
+import java.nio.charset.StandardCharsets;
 import java.util.*;
 import java.nio.charset.Charset;
 import org.junit.*;
@@ -72,8 +73,6 @@
   protected DaemonThread daemonThread = null;
   protected Server server = null;
 
-  protected static final Charset UTF_8 = Charset.forName("UTF-8");
-
   public ManifoldCFInstance()
   {
     this("", 8346, false, true);
@@ -344,13 +343,13 @@
         {
           ContentType ct = ContentType.get(entity);
           if (ct == null)
-            charSet = UTF_8;
+            charSet = StandardCharsets.UTF_8;
           else
             charSet = ct.getCharset();
         }
         catch (ParseException e)
         {
-          charSet = UTF_8;
+          charSet = StandardCharsets.UTF_8;
         }
         char[] buffer = new char[65536];
         Reader r = new InputStreamReader(is,charSet);
diff --git a/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/TestingRepositoryConnector.java b/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/TestingRepositoryConnector.java
index a1c54bc..004f3b2 100644
--- a/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/TestingRepositoryConnector.java
+++ b/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/TestingRepositoryConnector.java
@@ -24,14 +24,11 @@
 import org.apache.manifoldcf.crawler.system.ManifoldCF;
 
 import java.io.*;
-import java.util.*;
-import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 
 /** Connector class to be used by general integration tests that need documents */
 public class TestingRepositoryConnector extends org.apache.manifoldcf.crawler.connectors.BaseRepositoryConnector
 {
-  private final static Charset UTF_8 = Charset.forName("UTF-8");
-  
   public TestingRepositoryConnector()
   {
   }
@@ -82,7 +79,7 @@
       if (!scanOnly[i])
       {
         RepositoryDocument rd = new RepositoryDocument();
-        byte[] bytes = documentIdentifier.getBytes(UTF_8);
+        byte[] bytes = documentIdentifier.getBytes(StandardCharsets.UTF_8);
         rd.setBinary(new ByteArrayInputStream(bytes),bytes.length);
         activities.ingestDocument(documentIdentifier,version,"http://"+documentIdentifier,rd);
       }
diff --git a/framework/script-engine/pom.xml b/framework/script-engine/pom.xml
index 0fca0ed..66be91b 100644
--- a/framework/script-engine/pom.xml
+++ b/framework/script-engine/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-framework</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/POSTCommand.java b/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/POSTCommand.java
index 0b3c0d4..04f31eb 100644
--- a/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/POSTCommand.java
+++ b/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/POSTCommand.java
@@ -29,6 +29,7 @@
 import org.apache.http.HttpResponse;
 import org.apache.http.util.EntityUtils;
 import java.io.*;
+import java.nio.charset.StandardCharsets;
 
 /** POST command.  This performs a REST-style POST operation, designed to work
 * against the ManifoldCF API.  The syntax is: POST resultvariable = sendvariable to urlvariable*/
@@ -71,7 +72,7 @@
       HttpPost method = new HttpPost(urlString);
       try
       {
-        method.setEntity(new StringEntity(json,ContentType.create("text/plain","UTF-8")));
+        method.setEntity(new StringEntity(json,ContentType.create("text/plain", StandardCharsets.UTF_8)));
         HttpResponse httpResponse = client.execute(method);
         int resultCode = httpResponse.getStatusLine().getStatusCode();
         String resultJSON = sp.convertToString(httpResponse);
diff --git a/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/PUTCommand.java b/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/PUTCommand.java
index 6c36fc9..b37382b 100644
--- a/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/PUTCommand.java
+++ b/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/PUTCommand.java
@@ -29,6 +29,7 @@
 import org.apache.http.HttpResponse;
 import org.apache.http.util.EntityUtils;
 import java.io.*;
+import java.nio.charset.StandardCharsets;
 
 /** PUT command.  This performs a REST-style PUT operation, designed to work
 * against the ManifoldCF API.  The syntax is: PUT resultvariable = sendvariable to urlvariable*/
@@ -71,7 +72,7 @@
       HttpPut method = new HttpPut(urlString);
       try
       {
-        method.setEntity(new StringEntity(json,ContentType.create("text/plain","UTF-8")));
+        method.setEntity(new StringEntity(json,ContentType.create("text/plain", StandardCharsets.UTF_8)));
         HttpResponse httpResponse = client.execute(method);
         int resultCode = httpResponse.getStatusLine().getStatusCode();
         String resultJSON = sp.convertToString(httpResponse);
diff --git a/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/ScriptParser.java b/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/ScriptParser.java
index 000d3d7..ff21404 100644
--- a/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/ScriptParser.java
+++ b/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/ScriptParser.java
@@ -39,6 +39,8 @@
 import org.apache.http.impl.client.DefaultRedirectStrategy;
 import org.apache.http.entity.ContentType;
 import org.apache.http.ParseException;
+
+import java.nio.charset.StandardCharsets;
 import java.util.*;
 import java.io.*;
 import java.nio.charset.Charset;
@@ -65,8 +67,6 @@
   /** A table of "new" operations that we know how to deal with. */
   protected Map<String,NewOperation> newOperations = new HashMap<String,NewOperation>();
 
-  protected final static Charset UTF_8 = Charset.forName("UTF-8");
-
   public ScriptParser()
   {
   }
@@ -1177,13 +1177,13 @@
         {
           ContentType ct = ContentType.get(entity);
           if (ct == null)
-            charSet = UTF_8;
+            charSet = StandardCharsets.UTF_8;
           else
             charSet = ct.getCharset();
         }
         catch (ParseException e)
         {
-          charSet = UTF_8;
+          charSet = StandardCharsets.UTF_8;
         }
         char[] buffer = new char[65536];
         Reader r = new InputStreamReader(is,charSet);
@@ -1290,7 +1290,7 @@
       if (argv.length >= 1)
       {
         File inputFile = new File(argv[0]);
-        reader = new InputStreamReader(new FileInputStream(inputFile),"utf-8");
+        reader = new InputStreamReader(new FileInputStream(inputFile),StandardCharsets.UTF_8);
         VariableArray va = new VariableArray();
         int i = 0;
         while (i < argv.length - 1)
diff --git a/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/VariableConnectionName.java b/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/VariableConnectionName.java
index 01452f4..5329dc6 100644
--- a/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/VariableConnectionName.java
+++ b/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/VariableConnectionName.java
@@ -19,8 +19,7 @@
 
 package org.apache.manifoldcf.scriptengine;
 
-import java.io.*;
-import java.net.*;
+import org.apache.manifoldcf.core.util.URLEncoder;
 
 /** Variable class representing a ManifoldCF API URL connection name segment.  In conjunction
 * with the URL variable, this variable will properly character-stuff the connection name to make
@@ -91,14 +90,7 @@
   public String getURLPathValue()
     throws ScriptException
   {
-    try
-    {
-      return URLEncoder.encode(encodedConnectionName,"utf-8").replace("+","%20");
-    }
-    catch (UnsupportedEncodingException e)
-    {
-      throw new ScriptException(composeMessage(e.getMessage()),e);
-    }
+      return URLEncoder.encode(encodedConnectionName).replace("+","%20");
   }
 
   /** Check if the variable has a string value */
diff --git a/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/VariableQueryArg.java b/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/VariableQueryArg.java
index 794e6be..f2a3407 100644
--- a/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/VariableQueryArg.java
+++ b/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/VariableQueryArg.java
@@ -19,8 +19,7 @@
 
 package org.apache.manifoldcf.scriptengine;
 
-import java.net.*;
-import java.io.*;
+import org.apache.manifoldcf.core.util.URLEncoder;
 
 /** Variable class representing a ManifoldCF query argument, with a name
 * and a value.
@@ -107,15 +106,8 @@
   public String getStringValue()
     throws ScriptException
   {
-    try
-    {
-      return URLEncoder.encode(name,"utf-8").replace("+","%20") + "=" +
-        URLEncoder.encode(value,"utf-8").replace("+","%20");
-    }
-    catch (UnsupportedEncodingException e)
-    {
-      throw new ScriptException(composeMessage(e.getMessage()),e);
-    }
+      return URLEncoder.encode(name).replace("+","%20") + "=" +
+        URLEncoder.encode(value).replace("+","%20");
   }
 
   @Override
diff --git a/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/VariableString.java b/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/VariableString.java
index 639d5a8..20ba276 100644
--- a/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/VariableString.java
+++ b/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/VariableString.java
@@ -19,8 +19,7 @@
 
 package org.apache.manifoldcf.scriptengine;
 
-import java.net.*;
-import java.io.*;
+import org.apache.manifoldcf.core.util.URLEncoder;
 
 /** Variable class representing an integer.
 */
@@ -92,14 +91,7 @@
   public String getURLPathValue()
     throws ScriptException
   {
-    try
-    {
-      return URLEncoder.encode(value,"utf-8").replace("+","%20");
-    }
-    catch (UnsupportedEncodingException e)
-    {
-      throw new ScriptException(composeMessage(e.getMessage()),e);
-    }
+      return URLEncoder.encode(value).replace("+","%20");
   }
 
   /** Get the variable's script value */
diff --git a/framework/ui-core/pom.xml b/framework/ui-core/pom.xml
index a1949b3..0a07d5a 100644
--- a/framework/ui-core/pom.xml
+++ b/framework/ui-core/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-framework</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/framework/ui-core/src/main/java/org/apache/manifoldcf/ui/i18n/Messages.java b/framework/ui-core/src/main/java/org/apache/manifoldcf/ui/i18n/Messages.java
index 58df8f5..9572438 100644
--- a/framework/ui-core/src/main/java/org/apache/manifoldcf/ui/i18n/Messages.java
+++ b/framework/ui-core/src/main/java/org/apache/manifoldcf/ui/i18n/Messages.java
@@ -23,6 +23,7 @@
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.Writer;
+import java.nio.charset.StandardCharsets;
 import java.util.Iterator;
 import java.util.Locale;
 import java.util.Map;
@@ -249,7 +250,7 @@
       InputStream is = getResourceAsStream(classInstance,pathName,locale,resourceKey);
       try
       {
-        BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
+        BufferedReader br = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8));
         String line;
         while ((line = br.readLine()) != null)
         {
diff --git a/framework/ui-core/src/main/native2ascii/org/apache/manifoldcf/ui/i18n/common_zh_CN.properties b/framework/ui-core/src/main/native2ascii/org/apache/manifoldcf/ui/i18n/common_zh_CN.properties
new file mode 100644
index 0000000..f94e9cf
--- /dev/null
+++ b/framework/ui-core/src/main/native2ascii/org/apache/manifoldcf/ui/i18n/common_zh_CN.properties
@@ -0,0 +1,908 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+editoutput.Name=名称
+editoutput.Type=类型
+editoutput.Throttling=限流
+editconnection.Name=名称
+editconnection.Type=类型
+editconnection.Throttling=限流
+editconnection.Addthrottle=添加限流器
+editjob.Name=名称
+editjob.Connection=连接
+
+viewconnection.NoneGlobalAuthority=非全局权限
+viewconnection.ClearHistoryAssociatedWithThisConnection=清除此连接的历史记录
+viewconnection.ClearAllRelatedHistory=清除全部历史记录
+viewconnection.Thiscommandwillclearallhistoryrelatedto=此命令删除所有此连接的历史记录
+viewconnection.period=.
+
+listconnections.GlobalAuthority=全局权限
+
+editjob.Scheduling=调度
+editjob.HopFilters=跳过滤器
+editjob.am=上午
+editjob.pm=下午
+
+index.ApacheManifoldCF=Apache ManifoldCF
+index.WelcomeToApacheManifoldFC=欢迎访问Apache ManifoldCF
+index.ApacheManifoldCFLogin=登录Apache ManifoldCF
+index.UserIDColon=用户ID:
+index.PasswordColon=密码:
+index.Login=登录
+index.LoginFailed=登录失败!
+
+banner.DocumentIngestion=文档爬取
+
+navigation.LogOut=退出
+navigation.Outputs=输出
+navigation.ListOutputConnections=输出连接列表
+navigation.Authorities=权限
+navigation.ListUserMappings=用户映射列表
+navigation.ListAuthorityConnections=权限连接列表
+navigation.ListAuthorityGroups=权限组列表
+navigation.Repositories=存储库
+navigation.ListRepositoryConnections=存储库连接列表
+navigation.Jobs=作业
+navigation.ListAllJobs=作业列表
+navigation.StatusAndJobManagement=状态和作业管理
+navigation.StatusReports=状态报告
+navigation.DocumentStatus=文档状态
+navigation.QueueStatus=队列状态
+navigation.HistoryReports=历史记录报告
+navigation.SimpleHistory=简易历史记录
+navigation.MaximumActivity=最大活动数
+navigation.MaximumBandwidth=最大带宽
+navigation.ResultHistogram=结果直方图
+navigation.Miscellaneous=其它
+navigation.Locale=zh_CN
+navigation.Help=帮助
+navigation.Listrepositoryconnections=存储库连接列表
+navigation.Listoutputconnections=输出连接列表
+navigation.Listusermappings=用户映射列表
+navigation.Listauthorities=权限列表
+navigation.Listauthoritygroups=权限组列表
+navigation.Listjobs=作业列表
+navigation.Managejobs=作业管理
+navigation.Documentstatus=文档状态
+navigation.Queuestatus=队列状态
+navigation.Simplehistory=历史记录报告
+navigation.Maximumactivity=最大活动数
+navigation.Maximumbandwidth=最大带宽
+navigation.Resulthistogram=结果直方图
+
+listoutputs.ApacheManifoldCFListOutputConnections=Apache ManifoldCF: 输出连接列表
+listoutputs.ListOfOutputConnections=输出连接列表
+listoutputs.Name=名称
+listoutputs.Description=说明
+listoutputs.ConnectionType=连接类型
+listoutputs.Max=最大值
+listoutputs.AddaNewOutputConnection=添加新输出连接
+listoutputs.View=显示
+listoutputs.Edit=编辑
+listoutputs.Delete=删除
+listoutputs.DeleteOutputConnection=删除输出连接
+listoutputs.AddAnOutputConnection=添加输出连接
+listoutputs.uninstalled=(卸载)
+
+editoutput.ApacheManifoldCFEditOutputConnection=Apache ManifoldCF: 编辑输出连接
+editoutput.EditAnOutputConnection=编辑一个输出连接
+editoutput.EditOutputConnection2=编辑输出连接
+editoutput.ConnectionTypeColon=连接类型:
+editoutput.Continue=下一个
+editoutput.ContinueToNextPage=下一页
+editoutput.Cancel=取消
+editoutput.CancelOutputConnectionEditing=取消编辑输出连接
+editoutput.Save=保存
+editoutput.SaveThisOutputConnection=保存输出连接
+editoutput.MaxConnectionsColon=最大连接数:
+editoutput.EditOutputConnection=编辑输出连接
+editoutput.NameColon=名称:
+editoutput.DescriptionColon=说明:
+editoutput.ConnectionMustHaveAName=连接需要命名
+editoutput.TheMaximumNumberOfConnectionsMustBeAValidInteger=最大连接数需为有效整数
+
+editoutput.UNREGISTERED=未注册
+editoutput.tab=标签
+
+viewoutput.ApacheManifoldCFViewOutputConnectionStatus=Apache ManifoldCF: 显示输出连接状态
+viewoutput.ViewOutputConnectionStatus=显示输出连接状态
+viewoutput.NameColon=名称:
+viewoutput.DescriptionColon=说明:
+viewoutput.ConnectionTypeColon=连接类型:
+viewoutput.MaxConnectionsColon=最大连接数:
+viewoutput.ConnectionStatusColon=连接状态:
+viewoutput.Refresh=刷新
+viewoutput.EditThisOutputConnection=编辑此输出连接
+viewoutput.Edit=编辑
+viewoutput.DeleteThisOutputConnection=删除此输出连接
+viewoutput.Delete=删除
+viewoutput.ReIngestAllDocumentsAssociatedWithThisOutputConnection=重新爬取所有与此输出连接相关的档案
+viewoutput.ReIngestAllAssociatedDocuments=重新爬取所有相关档案
+viewoutput.RemoveAllDocumentsAssociatedWithThisOutputConnection=删除所有与此输出连接相关的文档
+viewoutput.RemoveAllAssociatedDocuments=删除所有相关档案
+viewoutput.Deleteoutputconnection=删除输出连接
+viewoutput.Thiscommandwillforce=此命令将强制适用于所有和输出连接相关的文档
+viewoutput.toberecrawled=爬取将在下次相关作业开始时重新执行。  继续吗?
+viewoutput.Thiscommandwillcause=此命令导致和ManifoldCF的输出连接相关的\n所有档案失去当前信息
+viewoutput.tobeforgotten=.  继续吗?
+viewoutput.qmark=?
+viewoutput.uninstalled=(卸载)
+viewoutput.Connectorisnotinstalled=连接未安装
+viewoutput.Threwexception=抛出异常:
+
+listgroups.ApacheManifoldCFListAuthorityGroups=Apache ManifoldCF: 权限组列表
+listgroups.DeleteAuthorityGroup=删除权限组
+listgroups.ListOfAuthorityGroups=权限组列表
+listgroups.Name=名称
+listgroups.Description=说明
+listgroups.View=显示
+listgroups.Edit=编辑
+listgroups.Delete=删除
+listgroups.AddNewGroup=添加新组
+listgroups.AddaNewGroup=添加一个新组
+
+listauthorities.ApacheManifoldCFListAuthorities=Apache ManifoldCF: 权限列表
+listauthorities.ListOfAuthorityConnections=权限连接列表
+listauthorities.DeleteAuthority=删除权限
+listauthorities.Name=名称
+listauthorities.Description=说明
+listauthorities.AuthorityType=权限类型
+listauthorities.Max=最大值
+listauthorities.AddaNewConnection=添加一个新连接
+listauthorities.AddNewConnection=添加新连接
+listauthorities.View=显示
+listauthorities.Edit=编辑
+listauthorities.Delete=删除
+listauthorities.uninstalled=(卸载)
+
+listmappers.ApacheManifoldCFListMappers=Apache ManifoldCF: 映射器列表
+listmappers.ListOfMappingConnections=映射连接列表
+listmappers.DeleteMapper=删除映射器
+listmappers.Name=名称
+listmappers.Description=说明
+listmappers.MapperType=映射器类型
+listmappers.Max=最大值
+listmappers.AddaNewConnection=添加一个新连接
+listmappers.AddNewConnection=添加新连接
+listmappers.View=显示
+listmappers.Edit=编辑
+listmappers.Delete=删除
+listmappers.uninstalled=(卸载)
+
+editgroup.Name=名称
+editgroup.ApacheManifoldCFEditAuthorityGroup=Apache ManifoldCF: 编辑权限组
+editgroup.AuthorityGroupMustHaveAName=权限组需要命名
+editgroup.tab=标签
+editgroup.EditGroup=编辑组
+editgroup.EditAGroup=编辑一个组
+editgroup.NameColon=名称:
+editgroup.DescriptionColon=说明:
+editgroup.Save=保存
+editgroup.SaveThisAuthorityGroup=保存权限组
+editgroup.Cancel=取消
+editgroup.CancelAuthorityGroupEditing=取消编辑权限组
+
+editauthority.ApacheManifoldCFEditAuthority=Apache ManifoldCF: 编辑权限
+editauthority.EditAnAuthority=编辑权限
+editauthority.NameColon=名称:
+editauthority.DescriptionColon=说明:
+editauthority.ConnectionTypeColon=连接类型:
+editauthority.Continue=下一个
+editauthority.ContinueToNextPage=下一页
+editauthority.MaxConnectionsColon=最大连接数:
+editauthority.Cancel=取消
+editauthority.CancelAuthorityEditing=取消权限编辑
+editauthority.Save=保存
+editauthority.SaveThisAuthorityConnection=保存权限连接
+editauthority.EditAuthority=编辑权限
+editauthority.TheMaximumNumberOfConnectionsMustBeAValidInteger=最大连接数需为有效整数
+editauthority.ConnectionMustHaveAName=连接需要命名
+editauthority.NoAuthorityConnectorsRegistered=权限连接器未注册
+editauthority.UNREGISTERED=未注册
+editauthority.tab=标签
+editauthority.Name=名称
+editauthority.Type=类型
+editauthority.Throttling=限流
+editauthority.EditAuthorityConnection=编辑权限连接
+editauthority.Prerequisites=前提条件
+editauthority.PrerequisiteUserMappingColon=用户映射前提条件:
+editauthority.NoPrerequisites=(无前提条件)
+editauthority.AuthorizationDomainColon=授权域:
+editauthority.AuthorityGroupColon=权限组:
+editauthority.SelectAGroup=--选择组--
+editauthority.ConnectionMustHaveAGroup=权限连接需持有一个组
+editauthority.NoAuthorityGroupsDefinedCreateOneFirst=权限组未定义; 创建首个
+editauthority.DefaultDomainNone=缺省域 (None)
+
+editmapper.ApacheManifoldCFEditMapping=Apache ManifoldCF: 编辑映射
+editmapper.EditAMapping=编辑映射
+editmapper.NameColon=名称:
+editmapper.DescriptionColon=说明:
+editmapper.ConnectionTypeColon=连接类型:
+editmapper.Continue=下一个
+editmapper.ContinueToNextPage=下一页
+editmapper.MaxConnectionsColon=最大连接数:
+editmapper.Cancel=取消
+editmapper.CancelMappingEditing=取消编辑映射
+editmapper.Save=保存
+editmapper.SaveThisMappingConnection=保存映射连接
+editmapper.EditMapping=编辑映射
+editmapper.TheMaximumNumberOfConnectionsMustBeAValidInteger=最大连接数需为有效整数
+editmapper.ConnectionMustHaveAName=连接需要命名
+editmapper.NoMappingConnectorsRegistered=无映射连接器
+editmapper.UNREGISTERED=未注册
+editmapper.tab=标签
+editmapper.Name=名称
+editmapper.Type=类型
+editmapper.Throttling=限流
+editmapper.EditMappingConnection=编辑映射连接
+editmapper.Prerequisites=前提条件
+editmapper.PrerequisiteUserMappingColon=用户映射前提条件:
+editmapper.NoPrerequisites=(无前提条件)
+
+listconnections.ApacheManifoldCFListConnections=Apache ManifoldCF: 连接列表
+listconnections.ListOfRepositoryConnections=存储库连接列表
+listconnections.Name=名称
+listconnections.Description=説明
+listconnections.ConnectionType=连接类型
+listconnections.AuthorityGroup=Authority Group
+listconnections.Max=最大值
+listconnections.AddNewConnection=添加新连接
+listconnections.View=显示
+listconnections.Edit=编辑
+listconnections.Delete=删除
+listconnections.DeleteConnection=删除连接:
+listconnections.AddAConnection=添加一个连接
+listconnections.uninstalled=(卸载)
+
+editconnection.ApacheManifoldCFEditConnection=Apache ManifoldCF: 编辑连接
+editconnection.EditAConnection=编辑一个连接
+editconnection.ConnectionTypeColon=连接类型:
+editconnection.AuthorityGroupColon=Authority group:
+editconnection.Cancel=取消
+editconnection.CancelConnectionEditing=取消编辑连接
+editconnection.NameColon=名称:
+editconnection.DescriptionColon=说明:
+editconnection.MaxconnectionsColon=最大连接数数:
+editconnection.ThrottlingColon=限流:
+editconnection.Add=添加
+editconnection.BinRegularExpression=Bin正则表达式
+editconnection.Description=説明
+editconnection.MaxAvgFetchesMin=最大平均提取数/分
+editconnection.NoThrottlingSpecified=限流未指定
+editconnection.Continue=下一个
+editconnection.ContinueToNextPage=下一页
+editconnection.Save=保存
+editconnection.SaveThisAuthorityConnection=保存连接
+editconnection.EditConnection=编辑连接
+editconnection.GlobalAuthority=globalAuthority
+editconnection.ConnectionMustHaveAName=连接需要命名
+editconnection.ThrottleRateMustBeAnInteger=限流率需为整数
+editconnection.TheThrottleExpressionMustBeAValidRegularExpression=限流器表达式需为有效正则表达式
+editconnection.TheMaximumNumberOfConnectionsMustBeAValidInteger=最大连接数需为有效整数
+editconnection.EditRepositoryConnection=编辑存储库连接
+editconnection.NoRepositoryConnectorsRegistered=存储库连接器未注册
+
+editconnection.UNREGISTERED=未注册
+editconnection.tab=标签
+editconnection.Delete=删除
+editconnection.Deletethrottle=删除限流器
+
+viewconnection.ApacheManifoldCFViewRepositoryConnectionStatus=Apache ManifoldCF: 显示存储库连接状态
+viewconnection.ViewRepositoryConnectionStatus=显示存储库连接状态
+viewconnection.NameColon=名称:
+viewconnection.DescriptionColon=说明:
+viewconnection.ConnectionTypeColon=连接类型:
+viewconnection.MaxConnectionsColon=最大连接数:
+viewconnection.AuthorityGroupColon=权限组:
+viewconnection.ThrottlingColon=限流:
+viewconnection.NoThrottles=无限流器
+viewconnection.ConnectionStatusColon=连接状态:
+viewconnection.Refresh=刷新
+viewconnection.EditThisConnection=编辑连接
+viewconnection.Edit=编辑
+viewconnection.Delete=删除
+viewconnection.DeleteConnection=删除连接
+viewconnection.Deletethisconnection=删除此连接
+viewconnection.uninstalled=(卸载)
+viewconnection.Connectorisnotinstalled=连接器未安装
+viewconnection.Threwexception=抛出异常:
+viewconnection.Binregularexpression=Bin正则表达式
+viewconnection.Description=説明
+viewconnection.Maxavgfetches=最大平均提取数/分
+viewconnection.qmark=?
+
+listjobs.ApacheManifoldCFListJobDescriptions=Apache ManifoldCF: 作业列表
+listjobs.JobList=作业列表
+listjobs.Name=名称
+listjobs.OutputConnection=输出连接
+listjobs.RepositoryConnection=存储库连接
+listjobs.ScheduleType=调度类型
+listjobs.AddaNewJob=添加一个新作业
+listjobs.Addajob=添加一个作业
+listjobs.View=显示
+listjobs.Viewjob=显示作业
+listjobs.Edit=编辑
+listjobs.Editjob=编辑作业
+listjobs.Delete=删除
+listjobs.DeleteJob=删除作业
+listjobs.Copy=复制
+listjobs.CopyJob=复制作业
+
+editjob.ApacheManifoldCFEditJob=Apache ManifoldCF: 编辑作业
+editjob.EditaJob=编辑一个作业
+editjob.EditJob=编辑作业
+editjob.NoRepositoryConnectionsDefinedCreateOneFirst=存储库连接未指定 - 请创建
+editjob.NoOutputConnectionsDefinedCreateOneFirst=输出连接未指定 - 请创建
+editjob.NameColon=名称:
+editjob.MaximumHopCountForType=类型的最大跳数
+editjob.colon=:
+editjob.cancel=取消
+editjob.CancelJobEditing=取消编辑作业
+editjob.OutputConnectionColon=输出连接:
+editjob.NoneSelected=未指定
+editjob.PriorityColon=优先顺序:
+editjob.Highest=(最大)
+editjob.Lowest=(最小)
+editjob.StartMethodColon=启动方法:
+editjob.RepositoryConnectionColon=存储库连接:
+editjob.Continue=下一个
+editjob.ContinueToNextScreen=下一页
+editjob.StartWhenScheduleWindowStarts=当调度窗启动时开始
+editjob.StartEvenInsideAScheduleWindow=即使在调度窗内亦开始
+editjob.DontAutomaticallyStartThisJob=不自动开始作业
+editjob.ScheduleTypeColon=调度类型:
+editjob.RescanDocumentsDynamically=自动重扫文档
+editjob.ScanEveryDocumentOnce=扫描一次所有文档
+editjob.RecrawlIntervalIfContinuousColon=重新爬取间隔 (如继续):
+editjob.MaxRecrawlIntervalIfContinuousColon=最大重新爬取间隔 (如继续):
+editjob.minutesBlankInfinity=分 (空白=无限)
+editjob.ExpirationIntervalIfContinuousColon=过期间隔 (如继续):
+editjob.ReseedIntervalIfContinuousColon=重新播种间隔 (如继续):
+editjob.NoScheduleSpecified=调度未指定
+editjob.ScheduledTimeColon=调度时间:
+editjob.AnyDayOfWeek=每天
+editjob.Sundays=日
+editjob.Mondays=月
+editjob.Tuesdays=火
+editjob.Wednesdays=水
+editjob.Thursdays=木
+editjob.Fridays=金
+editjob.Saturdays=土
+editjob.at=
+editjob.MidnightAnyHourOfDay=零点/每小时
+editjob.plus=
+editjob.Nothing=无
+editjob.minutes=分
+editjob.in=
+editjob.EveryMonthOfYear=每月
+editjob.January=1月
+editjob.February=2月
+editjob.March=3月
+editjob.April=4月
+editjob.May=5月
+editjob.June=6月
+editjob.July=7月
+editjob.August=8月
+editjob.September=9月
+editjob.October=10月
+editjob.November=11月
+editjob.December=12月
+editjob.on=
+editjob.AnyDayOfMonth=每天
+editjob.MaximumRunTimeColon=最大执行时间:
+editjob.RemoveSchedule=删除调度
+editjob.DeleteUnreachableDocuments=删除无法读取的文档信息
+editjob.KeepUnreachableDocumentsForNow=暂时保存无法读取的文档信息
+editjob.KeepUnreachableDocumentsForever=永久保存无法读取的文档信息
+editjob.HopCountModeColon=跳数模式:
+editjob.Save=保存
+editjob.SaveThisJob=保存作业
+editjob.AddScheduledTime=添加调度
+editjob.AddNewScheduleRecord=添加新调度记录
+editjob.JobMustHaveAName=作业需要命名
+editjob.DurationMustBeAValidInteger=持续期间需为有效整数
+editjob.RecrawlIntervalMustBeAValidIntegerOrNull=重新爬取间隔需为有效整数或null
+editjob.MaxRecrawlIntervalMustBeAValidIntegerOrNull=最大重新爬取间隔需为有效整数或null
+editjob.MaxRecrawlIntervalMustBeLargerThanRecrawlInterval=最大重新爬取间隔要大于重新爬取间隔
+editjob.ReseedIntervalMustBeAValidIntegerOrNull=重新播种间隔需为有效整数或null
+editjob.ExpirationIntervalMustBeAValidIntegerOrNull=过期间隔需为有效整数或null
+editjob.RemoveScheduleRecord=删除调度记录: #
+editjob.ForcedMetadata=强制性元数据
+editjob.ForcedMetadataColon=强制性元数据:
+editjob.ParameterName=参数名称
+editjob.ParameterValue=参数值
+editjob.Deleteforcedmetadatanumber=删除强制性元数据: #
+editjob.Delete=删除
+editjob.NoForcedMetadataSpecified=强制性元数据未指定
+editjob.Add=添加
+editjob.Addforcedmetadata=添加强制性元数据
+editjob.ForcedMetadataNameMustNotBeNull=强制性元数据名不能为null
+editjob.st=日
+editjob.nd=日
+editjob.rd=日
+editjob.th=日
+editjob.dayofmonth=日
+editjob.JobInvocationColon=作业启动:
+editjob.Minimal=最小
+editjob.Complete=结束
+
+editjob.tab=标签
+
+showjobstatus.ApacheManifoldCFStatusOfAllJobs=Apache ManifoldCF: 所有作业的状态
+showjobstatus.Name=名称
+showjobstatus.Status=状态
+showjobstatus.StartTime=开始时间
+showjobstatus.EndTime=终止时间
+showjobstatus.Documents=文档
+showjobstatus.Active=有效
+showjobstatus.Processed=已处理
+showjobstatus.RefreshStatus=刷新状态列表
+showjobstatus.Refresh=刷新
+showjobstatus.PleaseTryAgainLater=维护中。请稍等。
+showjobstatus.StatusOfJobs=作业状态
+
+showjobstatus.Notyetrun=还未执行
+showjobstatus.Running=执行中
+showjobstatus.Runningnoconnector=执行中, 无连接器
+showjobstatus.Aborting=异常终止
+showjobstatus.Restarting=重启
+showjobstatus.Stopping=停止
+showjobstatus.Resuming=恢复
+showjobstatus.Paused=暂停
+showjobstatus.Done=结束
+showjobstatus.Waiting=待机
+showjobstatus.Startingup=开始
+showjobstatus.Cleaningup=清理
+showjobstatus.Terminating=终止
+showjobstatus.Endnotification=终止通知
+showjobstatus.ErrorColon=错误:
+showjobstatus.Unknown=未知
+showjobstatus.Notstarted=未开始
+showjobstatus.Aborted=异常终止
+showjobstatus.Neverrun=从未执行
+showjobstatus.Start=开始
+showjobstatus.Startminimal=开始最小模式
+showjobstatus.Restart=重新开始
+showjobstatus.Restartminimal=重新开始最小模式
+showjobstatus.Pause=暂停
+showjobstatus.Abort=中断
+showjobstatus.Resume=恢复
+showjobstatus.Startjob=开始作业
+showjobstatus.minimally=最小
+showjobstatus.Restartjob=重新开始作业
+showjobstatus.Pausejob=停止作业
+showjobstatus.Abortjob=中断作业
+showjobstatus.Resumejob=恢复作业
+
+documentstatus.ApacheManifoldCFDocumentStatus=Apache ManifoldCF: 文档状态
+documentstatus.DocumentStatus=文档状态
+documentstatus.Connection=连接:
+documentstatus.TimeOffsetFromNowMinutes=从现在起的经过时间(分):
+documentstatus.DocumentState=文档状态:
+documentstatus.DocumentIdentifierMatch=文档标识符匹配:
+documentstatus.Go=执行
+documentstatus.ExecuteThisQuery=执行此查询
+documentstatus.Continue=下一个
+documentstatus.PleaseSelectAtLeastOneJob=请选择至少一个作业
+documentstatus.PleaseSelectaConnection=请选择一个连接
+documentstatus.PleaseTryAgainLater=维护中。请稍等。
+documentstatus.Previous=上一个
+documentstatus.Next=下一个
+documentstatus.Rows=行:
+documentstatus.RowsPerPage=行/页:
+documentstatus.DocumentsThatHaveNeverBeenProcessed=从未处理过的文档
+documentstatus.DocumentsProcessedAtLeastOnce=至少处理过一次的文档
+documentstatus.DocumentsOutOfScope=范围之外的文档
+documentstatus.DocumentsThatAreNoLongerActive=无效文档
+documentstatus.DocumentsCurrentlyInProgress=处理中的文档
+documentstatus.DocumentsCurrentlyBeingExpired=过期文档
+documentstatus.DocumentsCurrentlyBeingDeleted=删除中的文档
+documentstatus.DocumentsCurrentlyAvailableForProcessing=可处理的文档
+documentstatus.DocumentsCurrentlyAvailableForExpiration=可过期的文档
+documentstatus.DocumentsNotYetProcessable=准备处理的文档
+documentstatus.DocumentsNotYetExpirable=不可过期的文档
+documentstatus.DocumentsWaitingForever=无限等待中的文档
+documentstatus.DocumentsHopcountExceeded=超过跳数限制的文档
+documentstatus.NotSpecified=未指定
+documentstatus.Jobs=作业:
+documentstatus.Identifier=标识符
+documentstatus.Job=作业
+documentstatus.State=状态
+documentstatus.Status=状況
+documentstatus.Scheduled=调度
+documentstatus.ScheduledAction=调度动作
+documentstatus.RetryCount=重试次数
+documentstatus.RetryLimit=重试上限
+documentstatus.EnterALegalNumberForRowsPerPage=请正确输入每页行数
+documentstatus.IdentifierMatchMustBeAValidRegularExpression=标识符匹配需为有效正则表达式
+
+queuestatus.ApacheManifoldCFQueueStatus=Apache ManifoldCF: 队列状态
+queuestatus.QueueStatus=队列状态
+queuestatus.Connection=连接:
+queuestatus.NotSpecified=未指定
+queuestatus.Jobs=作业:
+queuestatus.TimeOffsetFromNowMinutes=从现在起的经过时间(分):
+queuestatus.DocumentState=文档状态:
+queuestatus.DocumentIdentifierMatch=文档标识符匹配:
+queuestatus.IdentifierClassDescription=标识符类说明:
+queuestatus.Go=执行
+queuestatus.ExecuteThisQuery=执行此查询
+queuestatus.Continue=下一个
+queuestatus.PleaseSelectAtLeastOneJob=请选择至少一个作业
+queuestatus.PleaseSelectaConnection=请选择一个连接
+queuestatus.PleaseTryAgainLater=维护中。请稍等。
+queuestatus.DocumentsThatHaveNeverBeenProcessed=从未处理过的文档
+queuestatus.DocumentsProcessedAtLeastOnce=至少处理过一次的文档
+queuestatus.DocumentsOutOfScope=范围之外的文档
+queuestatus.DocumentsThatAreNoLongerActive=无效文档
+queuestatus.DocumentsCurrentlyInProgress=处理中的文档
+queuestatus.DocumentsCurrentlyBeingExpired=过期文档
+queuestatus.DocumentsCurrentlyBeingDeleted=删除中的文档
+queuestatus.DocumentsCurrentlyAvailableForProcessing=可处理的文档
+queuestatus.DocumentsCurrentlyAvailableForExpiration=可过期的文档
+queuestatus.DocumentsNotYetProcessable=准备处理中的文档
+queuestatus.DocumentsNotYetExpirable=不可过期的文档
+queuestatus.DocumentsWaitingForever=无限等待中的文档
+queuestatus.DocumentsHopcountExceeded=超过跳数限制的文档
+queuestatus.Rows=行:
+queuestatus.RowsPerPage=行/页:
+queuestatus.IdentifierClass=标识符类
+queuestatus.Inactive=无效
+queuestatus.Processing=处理中
+queuestatus.Expiring=过期中
+queuestatus.Deleting=删除中
+queuestatus.AboutToProcess=即将处理
+queuestatus.AboutToExpire=即将过期
+queuestatus.WaitingForProcessing=等待处理中
+queuestatus.WaitingForExpiration=等待过期中
+queuestatus.WaitingForever=无限等待
+queuestatus.HopcountExceeded=超过跳数限制
+queuestatus.Previous=上一个
+queuestatus.PreviousPage=上一页
+queuestatus.Next=下一个
+queuestatus.NextPage=下一页
+queuestatus.IdentifierClassDescriptionCannotBeEmpty=标识符类说明不能为空
+queuestatus.IdentifierClassDescriptionMustBeAValidRegularExpression=标识符类说明需为有效正则表达式
+queuestatus.IdentifierClassDescriptionMustDelimitAClassWithParentheses=标识符类说明需用括号("(",")")括上
+queuestatus.EnterALegalNumberForRowsPerPage=请正确输入每页的行数
+queuestatus.IdentifierMatchMustBeAValidRegularExpression=标识符匹配需为有效正则表达式
+
+simplereport.ApacheManifoldCFSimpleHistoryReport=Apache ManifoldCF: 历史记录报告
+simplereport.SimpleHistoryReport=历史记录报告
+simplereport.Connection=连接:
+simplereport.NotSpecified=未指定
+simplereport.on=
+simplereport.Activities=活动数:
+simplereport.StartTime=开始时间:
+simplereport.EndTime=终止时间:
+simplereport.January=1月
+simplereport.February=2月
+simplereport.March=3月
+simplereport.April=4月
+simplereport.May=5月
+simplereport.June=6月
+simplereport.July=7月
+simplereport.August=8月
+simplereport.September=9月
+simplereport.October=10月
+simplereport.November=11月
+simplereport.December=12月
+simplereport.EntityMatch=实体匹配:
+simplereport.ResultCodeMatch=结果代码匹配:
+simplereport.Go=执行
+simplereport.ExecuteThisQuery=执行此查询
+simplereport.Continue=下一个
+simplereport.StartTime=开始时间
+simplereport.Activity=活动
+simplereport.Identifier=标识符
+simplereport.ResultCode=结果代码
+simplereport.Bytes=字节数
+simplereport.Time=时间
+simplereport.ResultDescription=结果说明
+simplereport.Previous=上一个
+simplereport.PreviousPage=上一页
+simplereport.NextPage=下一页
+simplereport.Next=下一个
+simplereport.Rows=Rows:
+simplereport.RowsPerPage=行/页:
+simplereport.PleaseSelectAConnection=请选择连接
+simplereport.PleaseTryAgainLater=维护中。请稍等。
+simplereport.EnterALegalNumberForRowsPerPage=请正确输入每页的行数
+simplereport.EntityMatchMustBeAValidRegularExpression=实体匹配需为有效正则表达式
+simplereport.ResultCodeMatchMustBeAValidRegularExpression=结果代码需为有效正则表达式
+
+maxactivityreport.ApacheManifoldCFMaximumActivityReport=Apache ManifoldCF: 最大活动报告
+maxactivityreport.MaximumActivityReport=最大活动报告
+maxactivityreport.Connection=连接:
+maxactivityreport.NotSpecified=未指定
+maxactivityreport.on=
+maxactivityreport.Activities=活动数:
+maxactivityreport.StartTime=开始时间:
+maxactivityreport.EndTime=终止时间:
+maxactivityreport.January=1月
+maxactivityreport.February=2月
+maxactivityreport.March=3月
+maxactivityreport.April=4月
+maxactivityreport.May=5月
+maxactivityreport.June=6月
+maxactivityreport.July=7月
+maxactivityreport.August=8月
+maxactivityreport.September=9月
+maxactivityreport.October=10月
+maxactivityreport.November=11月
+maxactivityreport.December=12月
+maxactivityreport.EntityMatch=实体匹配:
+maxactivityreport.ResultCodeMatch=结果代码匹配:
+maxactivityreport.Go=执行
+maxactivityreport.ExecuteThisQuery=执行此查询
+maxactivityreport.Continue=下一个
+maxactivityreport.IdentifierClass=标识符类
+maxactivityreport.HighestActivityRate=最大活动率(/分)
+maxactivityreport.StartTime=开始时间
+maxactivityreport.IdentifierClassDescription=标识符类说明:
+maxactivityreport.SlidingWindowSize=滑动窗大小(分):
+maxactivityreport.Previous=上一个
+maxactivityreport.PreviousPage=上一页
+maxactivityreport.NextPage=下一页
+maxactivityreport.Next=下一个
+maxactivityreport.Rows=Rows:
+maxactivityreport.RowsPerPage=行/页:
+maxactivityreport.PleaseSelectAConnection=请选择连接
+maxactivityreport.PleaseTryAgainLater=维护中。请稍等。
+maxactivityreport.EnterALegalNumberForRowsPerPage=请正确输入每页的行数
+maxactivityreport.EnterALegalIntervalSizeInMinutes=请正确输入间隔(分)
+maxactivityreport.IdentifierClassDescriptionCannotBeEmpty=请输入标识符类说明
+maxactivityreport.IdentifierClassDescriptionMustBeAValidRegularExpression=标识符类说明需为有效正则表达式
+maxactivityreport.IdentifierClassDescriptionMustDelimitAClassWithParentheses=标识符类说明需用括号("(",")")括上
+maxactivityreport.EntityMatchMustBeAValidRegularExpression=实体匹配需为有效正则表达式
+maxactivityreport.ResultCodeMatchMustBeAValidRegularExpression=结果代码匹配需为有效正则表达式
+
+maxbandwidthreport.ApacheManifoldCFMaximumBandwidthReport=Apache ManifoldCF: 最大带宽报告
+maxbandwidthreport.MaximumBandwidthReport=最大带宽报告
+maxbandwidthreport.Connection=连接:
+maxbandwidthreport.NotSpecified=未指定
+maxbandwidthreport.on=
+maxbandwidthreport.Activities=活动数:
+maxbandwidthreport.StartTime=开始时间:
+maxbandwidthreport.EndTime=终止时间:
+maxbandwidthreport.January=1月
+maxbandwidthreport.February=2月
+maxbandwidthreport.March=3月
+maxbandwidthreport.April=4月
+maxbandwidthreport.May=5月
+maxbandwidthreport.June=6月
+maxbandwidthreport.July=7月
+maxbandwidthreport.August=8月
+maxbandwidthreport.September=9月
+maxbandwidthreport.October=10月
+maxbandwidthreport.November=11月
+maxbandwidthreport.December=12月
+maxbandwidthreport.EntityMatch=实体匹配:
+maxbandwidthreport.ResultCodeMatch=结果代码匹配:
+maxbandwidthreport.Go=执行
+maxbandwidthreport.ExecuteThisQuery=执行此查询
+maxbandwidthreport.Continue=下一个
+maxbandwidthreport.IdentifierClass=标识符类
+maxbandwidthreport.HighestActivityRate=最大活动率(/分)
+maxbandwidthreport.StartTime=开始时间
+maxbandwidthreport.HighestBandwidth=最大带宽 [bps]
+maxbandwidthreport.IdentifierClassDescription=标识符类说明:
+maxbandwidthreport.SlidingWindowSize=滑动窗大小(分):
+maxbandwidthreport.Previous=上一个
+maxbandwidthreport.PreviousPage=上一页
+maxbandwidthreport.NextPage=下一页
+maxbandwidthreport.Next=下一个
+maxbandwidthreport.RowsPerPage=行/页:
+maxbandwidthreport.PleaseSelectAConnection=请选择连接
+maxbandwidthreport.PleaseTryAgainLater=维护中。请稍等。
+maxbandwidthreport.HighestBandwidth2=最大带宽
+maxbandwidthreport.Rows=行:
+maxbandwidthreport.Next=下一页
+maxbandwidthreport.EnterALegalNumberForRowsPerPage=请正确输入每页的行数
+maxbandwidthreport.EnterALegalIntervalSizeInMinutes=请正确输入间隔(分)
+maxbandwidthreport.IdentifierClassDescriptionCannotBeEmpty=请输入标识符类说明
+maxbandwidthreport.IdentifierClassDescriptionMustBeAValidRegularExpression=标识符类说明需为有效正则表达式
+maxbandwidthreport.IdentifierClassDescriptionMustDelimitAClassWithParentheses=标识符类说明需用括号("(",")")括上
+maxbandwidthreport.EntityMatchMustBeAValidRegularExpression=实体匹配需为有效正则表达式
+maxbandwidthreport.ResultCodeMatchMustBeAValidRegularExpression=结果代码匹配需为有效正则表达式
+
+resultreport.ApacheManifoldCFActivityResultReport=Apache ManifoldCF: 活动报告
+resultreport.ActivityResultReport=活动报告
+resultreport.Connection=连接:
+resultreport.NotSpecified=未指定
+resultreport.on=
+resultreport.Activities=活动数:
+resultreport.StartTime=开始时间:
+resultreport.EndTime=终止时间:
+resultreport.January=1月
+resultreport.February=2月
+resultreport.March=3月
+resultreport.April=4月
+resultreport.May=5月
+resultreport.June=6月
+resultreport.July=7月
+resultreport.August=8月
+resultreport.September=9月
+resultreport.October=10月
+resultreport.November=11月
+resultreport.December=12月
+resultreport.EntityMatch=实体匹配:
+resultreport.ResultCodeMatch=结果代码匹配:
+resultreport.Go=执行
+resultreport.ExecuteThisQuery=执行此查询
+resultreport.Continue=下一个
+resultreport.IdentifierClassDescription=标识符类说明:
+resultreport.ResultCodeClassDescription=结果代码类说明:
+resultreport.Previous=上一个
+resultreport.PreviousPage=上一页
+resultreport.NextPage=下一页
+resultreport.Next=下一个
+resultreport.Rows=行:
+resultreport.RowsPerPage=行/页:
+resultreport.PleaseSelectAConnection=请选择连接
+resultreport.PleaseTryAgainLater=维护中。请稍等。
+resultreport.IdentifierClass=标识符类
+resultreport.ResultClass=结果类
+resultreport.EventCount=事件数
+resultreport.Next=下一个
+resultreport.EnterALegalNumberForRowsPerPage=请正确输入每页的行数
+resultreport.IdentifierClassDescriptionCannotBeEmpty=请输入标识符类说明
+resultreport.ResultClassDescriptionCannotBeEmpty=请输入结果类说明
+resultreport.IdentifierClassDescriptionMustBeAValidRegularExpression=标识符类说明需为有效正则表达式
+resultreport.ResultClassDescriptionMustBeAValidRegularExpression=结果类说明需为有效正则表达式
+resultreport.IdentifierClassDescriptionMustDelimitAClassWithParentheses=标识符类说明需用括号("(",")")括上
+resultreport.ResultClassDescriptionMustDelimitAClassWithParentheses=结果类说明需用括号("(",")")括上
+resultreport.EntityMatchMustBeAValidRegularExpression=实体匹配需为有效正则表达式
+resultreport.ResultCodeMatchMustBeAValidRegularExpression=结果代码匹配需为有效正则表达式
+
+error.ApacheManifoldCFError=Apache ManifoldCF: 错误
+error.Error=错误
+error.Return=返回
+
+viewjob.ApacheManifoldCFViewJob=Apache ManifoldCF: 作业信息
+viewjob.ViewAJob=作业信息
+viewjob.ScheduleTypeColon=调度类型:
+viewjob.MinimumRecrawlIntervalColon=最小重新爬取间隔:
+viewjob.MaximumRecrawlIntervalColon=最大重新爬取间隔:
+viewjob.ExpirationIntervalColon=过期间隔:
+viewjob.ReseedIntervalColon=重新播种间隔:
+viewjob.NoScheduledRunTimes=没有调度执行时间
+viewjob.ScheduledTimeColon=调度时间:
+viewjob.MaximumRunTimeColon=最长执行时间:
+viewjob.MaximumHopCountForLinkType=链接类型的最大跳数
+viewjob.HopCountModeColon=跳数模式:
+viewjob.Delete=删除
+viewjob.DeleteThisJob=删除作业
+viewjob.Edit=编辑
+viewjob.EditThisJob=编辑作业
+viewjob.Copy=复制
+viewjob.CopyThisJob=复制作业
+viewjob.ResetSeeding=重置播种
+viewjob.ResetSeedingThisJob=为此作业重置增量式播种
+viewjob.NameColon=名称:
+viewjob.OutputConnectionColon=输出连接:
+viewjob.RepositoryConnectionColon=存储库连接:
+viewjob.PriorityColon=优先级:
+viewjob.StartMethodColon=开始方法:
+viewjob.ForcedMetadataColon=强制性元数据:
+viewjob.NoForcedMetadata=无强制性元数据
+viewjob.DeleteJobConfirmation=警告: 删除此作业将会删除索引中的所有相关文档\n确认吗?
+viewjob.StartOverConfirmation=警告: 此动作将致使所有作业文档在下一个作业执行期间受到检查。\n继续进行吗?
+viewjob.Notapplicable=不适用
+viewjob.Rescandocumentsdynamically=自动重扫文档
+viewjob.Infinity=无限
+viewjob.minutes=分
+viewjob.Scaneverydocumentonce=一次性扫描所有文档
+viewjob.Startatbeginningofschedulewindow=从调度窗起始位置开始
+viewjob.Startinsideschedulewindow=从调度窗内部开始
+viewjob.Dontautomaticallystart=不自动开始
+viewjob.Anydayoftheweek=每天
+viewjob.Sundays=日
+viewjob.Mondays=月
+viewjob.Tuesdays=火
+viewjob.Wednesdays=水
+viewjob.Thursdays=木
+viewjob.Fridays=金
+viewjob.Saturdays=土
+viewjob.oneveryhour=每时
+viewjob.atmidnight=半夜
+viewjob.at=在
+viewjob.am=上午
+viewjob.pm=下午
+viewjob.plus=加
+viewjob.ineverymonthofyear=每月
+viewjob.in=
+viewjob.January=1月
+viewjob.February=2月
+viewjob.March=3月
+viewjob.April=4月
+viewjob.May=5月
+viewjob.June=6月
+viewjob.July=7月
+viewjob.August=8月
+viewjob.September=9月
+viewjob.October=10月
+viewjob.November=11月
+viewjob.December=12月
+viewjob.onanydayofthemonth=每天
+viewjob.onthe1stofthemonth=每月1日
+viewjob.onthe=于
+viewjob.ofthemonth=本月的
+viewjob.inyears=年里
+viewjob.Nolimit=无上限
+viewjob.Unlimited=无限制
+viewjob.Deleteunreachabledocuments=删除未能获取的文档
+viewjob.Nodeletesfornow=暂无删除
+viewjob.Nodeletesforever=永无删除
+viewjob.st=日
+viewjob.nd=日
+viewjob.rd=日
+viewjob.th=日
+viewjob.JobInvocationColon=作业启动:
+viewjob.Minimal=最小
+viewjob.Complete=结束
+
+viewgroup.ApacheManifoldCFViewGroup=Apache ManifoldCF: 显示权限组
+viewgroup.ViewAuthorityGroup=显示权限组
+viewgroup.NameColon=名称:
+viewgroup.DescriptionColon=说明:
+viewgroup.EditThisAuthorityGroup=编辑权限组
+viewgroup.Edit=编辑
+viewgroup.DeleteThisAuthorityGroup=删除权限组
+viewgroup.Delete=删除
+
+viewauthority.ViewAuthorityConnectionStatus=显示权限连接状态
+viewauthority.NameColon=名称:
+viewauthority.DescriptionColon=说明:
+viewauthority.AuthorityTypeColon=权限类型:
+viewauthority.MaxConnectionsColon=最大连接数:
+viewauthority.ConnectionStatusColon=连接状态:
+viewauthority.Refresh=刷新
+viewauthority.Edit=编辑
+viewauthority.EditThisAuthorityConnection=编辑权限连接
+viewauthority.Delete=删除
+viewauthority.DeleteThisAuthorityConnection=权限删除连接
+viewauthority.ApacheManifoldCFViewAuthorityConnectionStatus=Apache ManifoldCF: 显示权限连接状态
+viewauthority.DeleteConnection=删除连接
+viewauthority.Connectorisnotinstalled=连接器未安装
+viewauthority.uninstalled=(卸载)
+viewauthority.Threwexception=抛出异常:
+viewauthority.qmark=?
+viewauthority.PrerequisiteUserMappingColon=用户映射前提条件:
+viewauthority.NoPrerequisites=无前提条件
+viewauthority.AuthorizationDomainColon=授权域:
+viewauthority.AuthorityGroupColon=权限组:
+
+viewmapper.ApacheManifoldCFViewMappingConnectionStatus=Apache ManifoldCF: 显示映射连接状态
+viewmapper.DeleteConnection=删除连接
+viewmapper.ViewMappingConnectionStatus=显示映射连接状态
+viewmapper.uninstalled=(卸载)
+viewmapper.Connectorisnotinstalled=连接器未安装
+viewmapper.Threwexception=抛出异常:
+viewmapper.NameColon=名称:
+viewmapper.DescriptionColon=说明:
+viewmapper.MapperTypeColon=映射类型:
+viewmapper.MaxConnectionsColon=最大连接数:
+viewmapper.ConnectionStatusColon=连接状态:
+viewmapper.Refresh=刷新
+viewmapper.Edit=编辑
+viewmapper.EditThisMappingConnection=编辑此映射连接
+viewmapper.Delete=删除
+viewmapper.DeleteThisMappingConnection=删除此映射连接
+viewmapper.qmark=?
+viewmapper.PrerequisiteUserMappingColon=用户映射前提条件:
+viewmapper.NoPrerequisites=无前提条件
diff --git a/pom.xml b/pom.xml
index 82dc772..5df2bcb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
 
   <groupId>org.apache.manifoldcf</groupId>
   <artifactId>mcf-parent</artifactId>
-  <version>1.6-SNAPSHOT</version>
+  <version>1.7-SNAPSHOT</version>
 
   <name>ManifoldCF</name>
   <packaging>pom</packaging>
@@ -45,7 +45,7 @@
     <jetty.version>7.5.4.v20111024</jetty.version>
     <commons-codec.version>1.5</commons-codec.version>
     <commons-io.version>2.1</commons-io.version>
-    <commons-logging.version>1.1.1</commons-logging.version>
+    <commons-logging.version>1.1.3</commons-logging.version>
     <commons-collections.version>3.2.1</commons-collections.version>
     <commons-fileupload.version>1.2.2</commons-fileupload.version>
     <httpcomponent.httpclient.version>4.3.3</httpcomponent.httpclient.version>
@@ -66,7 +66,7 @@
     <jdbcpool.version>0.99</jdbcpool.version>
     <json.version>20090211</json.version>
     <velocity.version>1.7</velocity.version>
-    <slf4j.version>1.6.6</slf4j.version>
+    <slf4j.version>1.7.7</slf4j.version>
     <jaxb.version>2.2.6</jaxb.version>
     <zookeeper.version>3.4.5</zookeeper.version>
   </properties>
diff --git a/site/src/documentation/content/xdocs/en_US/how-to-build-and-deploy.xml b/site/src/documentation/content/xdocs/en_US/how-to-build-and-deploy.xml
index ba2bece..2e64d18 100644
--- a/site/src/documentation/content/xdocs/en_US/how-to-build-and-deploy.xml
+++ b/site/src/documentation/content/xdocs/en_US/how-to-build-and-deploy.xml
@@ -474,6 +474,18 @@
           <p>The script that starts the combined-service web application uses the same database instance (Derby by default) as does the quick-start, and the same <em>properties.xml</em>
             file.  The same caveats about required individual connector processes also apply as they do for the quick-start example.</p>
           <p></p>
+
+          <section>
+            <title>Running single-process combined war example using Tomcat</title>
+            <p>In order to run the ManifoldCF single-process combined war example under Tomcat, you will need to take the following steps:</p>
+            <p></p>
+            <ol>
+              <li>Modify the Tomcat startup script, or use the Tomcat service administration client, to set a Java "-Dorg.apache.manifoldcf.configfile" switch to point to the example's <em>properties.xml</em> file.</li>
+              <li>Start Tomcat.</li>
+              <li>Deploy and start the mcf-combined-service web application, preferably using the Tomcat administration client.</li>
+            </ol>
+          </section>
+
         </section>
 
         <section>
@@ -510,6 +522,20 @@
             <p></p>
           </section>
 
+          <section>
+            <title>Running multiprocess file-based example using Tomcat</title>
+            <p>In order to run the ManifoldCF multiprocess file-based example under Tomcat, you will need to take the following steps:</p>
+            <p></p>
+            <ol>
+              <li>Start the database (using <em>start-database[.sh|.bat]</em>)</li>
+              <li>Initialize the database (using <em>initialize[.sh|.bat]</em>)</li>
+              <li>Start the agents process (using <em>start-agents[.sh|.bat]</em>, and optionally <em>start-agents-2[.sh|.bat]</em>)</li>
+              <li>Modify the Tomcat startup script, or use the Tomcat service administration client, to set a Java "-Dorg.apache.manifoldcf.configfile" switch to point to the example's <em>properties.xml</em> file.</li>
+              <li>Start Tomcat.</li>
+              <li>Deploy and start the mcf-crawler-ui, mcf-authority-service, and mcf-api-service web applications, preferably using the Tomcat administration client.</li>
+            </ol>
+          </section>
+
         </section>
 
         <section>
@@ -555,6 +581,22 @@
             <p></p>
           </section>
 
+          <section>
+            <title>Running multiprocess ZooKeeper example using Tomcat</title>
+            <p>In order to run the ManifoldCF ZooKeeper example under Tomcat, you will need to take the following steps:</p>
+            <p></p>
+            <ol>
+              <li>Start ZooKeeper (using the <em>runzookeeper[.sh|.bat]</em> script)</li>
+              <li>Initialize the ManifoldCF shared configuration data (using <em>setglobalproperties[.sh|.bat]</em>)</li>
+              <li>Start the database (using <em>start-database[.sh|.bat]</em>)</li>
+              <li>Initialize the database (using <em>initialize[.sh|.bat]</em>)</li>
+              <li>Start the agents process (using <em>start-agents[.sh|.bat]</em>, and optionally <em>start-agents-2[.sh|.bat]</em>)</li>
+              <li>Modify the Tomcat startup script, or use the Tomcat service administration client, to set a Java "-Dorg.apache.manifoldcf.configfile" switch to point to the example's <em>properties.xml</em> file.</li>
+              <li>Start Tomcat.</li>
+              <li>Deploy and start the mcf-crawler-ui, mcf-authority-service, and mcf-api-service web applications, preferably using the Tomcat administration client.</li>
+            </ol>
+          </section>
+          
         </section>
 
         <section>
@@ -709,7 +751,6 @@
         </section>
       </section>
       
-      
       <section>
         <title>The <em>connectors.xml</em> configuration file</title>
         <p></p>
diff --git a/test-materials/alfresco-4-war/pom.xml b/test-materials/alfresco-4-war/pom.xml
index f412566..8321394 100644
--- a/test-materials/alfresco-4-war/pom.xml
+++ b/test-materials/alfresco-4-war/pom.xml
@@ -14,7 +14,7 @@
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <artifactId>alfresco-4-war</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
     <name>ManifoldCF - Test Materials - Alfresco WAR</name>
     <description>Alfresco WAR builder</description>
     <packaging>war</packaging>
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.manifoldcf</groupId>
         <artifactId>mcf-test-materials</artifactId>
-        <version>1.6-SNAPSHOT</version>
+        <version>1.7-SNAPSHOT</version>
     </parent>
     
     <properties>
diff --git a/test-materials/pom.xml b/test-materials/pom.xml
index 0901f83..1d745ee 100644
--- a/test-materials/pom.xml
+++ b/test-materials/pom.xml
@@ -18,7 +18,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-parent</artifactId>
-    <version>1.6-SNAPSHOT</version>
+    <version>1.7-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>mcf-test-materials</artifactId>
diff --git a/upstream-diffs/commons-httpclient-3.1.cumulative.patch b/upstream-diffs/commons-httpclient-3.1.cumulative.patch
deleted file mode 100644
index 493a400..0000000
--- a/upstream-diffs/commons-httpclient-3.1.cumulative.patch
+++ /dev/null
@@ -1,4550 +0,0 @@
-Index: xdocs/status.xml

-===================================================================

---- xdocs/status.xml	(revision 604567)

-+++ xdocs/status.xml	(revision 915934)

-@@ -1,33 +0,0 @@

--<?xml version="1.0" encoding="ISO-8859-1"?>
--
--<document>
--
--  <properties>
--    <title>Status</title>
--    <author email="httpcomponents-dev@jakarta.apache.org">HttpComponents Team</author>
--    <author email="remy@apache.org">Remy Maucherat</author>
--    <author email="rwaldhoff@apache.org">Rodney Waldhoff</author>
--    <author email="jsdever@apache.org">Jeff Dever</author>
--    <revision>$Id$</revision>
--  </properties>
--
--  <body>
--
--    <section name="Current Status">
--        <p>HttpClient 3.1 adds support for the RFC 2965 cookie management (also known as
--           Cookie2 or port sensitive cookies) and a number of improvements to the 
--           HTTP connection management. HttpClient 3.1 is backward compatible with 
--           HttpClient 3.0</p>
--        <p>HttpClient 3.1 is likely to be the last non-bug fixing release of the 
--           HttpClient 3.x code line</p>
--    </section>
--
--    <section name="Release Info">
--      <p>Current Stable Release (<b>recommended</b>): <a href="http://jakarta.apache.org/site/downloads/downloads_commons-httpclient-3.x.cgi">
--          Release 3.1</a></p>
--      <p>HttpClient 2.0 is no longer being actively developed and supported.</p>
--    </section>
--
--  </body>
--
--</document>
-Index: xdocs/downloads.xml

-===================================================================

---- xdocs/downloads.xml	(revision 604567)

-+++ xdocs/downloads.xml	(revision 915934)

-@@ -1,54 +0,0 @@

--<?xml version="1.0" encoding="ISO-8859-1"?>
--<document>
--
--   <properties>
--      <title>HttpClient Downloads</title>
--      <author email="httpcomponents-dev@jakarta.apache.org">HttpComponents Team</author>
--      <revision>$Id$</revision>
--   </properties>
--
--   <body>
--
--     <section name="Downloads">
--       <p>
--         The following releases are available for download:
--       </p>
--       <ul>
--         <li>STABLE - 3.1 - 
--            <a href="http://jakarta.apache.org/site/downloads/downloads_commons-httpclient-3.x.cgi">Download</a>
--            -
--            <a href="http://www.apache.org/dist/jakarta/httpcomponents/commons-httpclient-3.x/RELEASE_NOTES.txt"
--             >Release notes</a></li>
--       </ul>
--       <p>
--         The Subversion repository for <em>HttpClient</em> can be
--         <a href="http://svn.apache.org/viewvc/jakarta/httpcomponents/oac.hc3x/trunk/">browsed online</a>.
--       </p>
--       <p>
--         The best way to get the <em>HttpClient</em> source is to checkout
--         directly from our public Subversion
--         <a href="http://svn.apache.org/repos/asf/jakarta/httpcomponents/oac.hc3x/trunk/">repository</a>.
--         Instructions are available <a href="http://www.apache.org/dev/version-control.html">here</a>.
--       </p>
--       <p>
--         If you are using Maven for your project, you can create a dependency in your
--         project.xml with one of the following:</p>
--	 <p><b>3.1</b></p>
--         <source><![CDATA[
--<dependency>
--    <groupId>commons-httpclient</groupId>
--    <artifactId>commons-httpclient</artifactId>
--    <version>3.1</version>
--    <url>http://jakarta.apache.org/commons/httpclient/</url>
--</dependency>
--         ]]></source>
--
--           <p>There are also other jar versions available.  You can check
--           <a href="http://www.ibiblio.org/maven/commons-httpclient/">HttpClient on ibiblio</a>
--           for exactly what is available.
--       </p>
--     </section>
--
--   </body>
--
-- </document>
-Index: xdocs/developerguide.xml

-===================================================================

---- xdocs/developerguide.xml	(revision 604567)

-+++ xdocs/developerguide.xml	(revision 915934)

-@@ -1,35 +0,0 @@

--<?xml version="1.0" encoding="ISO-8859-1"?>
--
--<document>
--
--  <properties>
--    <title>HttpClient Developer Guide</title>
--    <author email="adrian@ephox.com">Adrian Sutton</author>
--    <revision>$Id$</revision>
--  </properties>
--
--  <body>
--
--    <section name="Developer Guide">
--      <p>This section contains supplementary information relating to the
--      development of HttpClient.  You should be sure to read the
--      <a href="/site/getinvolved.html">general jakarta documentation</a>.
--      These pages describe how to contribute to any Jakarta project and
--      will not only help you contribute, but give you a grounding in what
--      Apache and the Jakarta project is all about.</p>
--
--      <p>Some other links that may be of interest:</p>
--
--      <ul>
--        <li><a href="http://www.apache.org/foundation/contributing.html">
--        Contributing to the Apache Software Foundation</a></li>
--        <li><a href="http://incubator.apache.org/index.html">The Incubator
--        Project</a> - A large part of this project is providing documentation
--        on how the Apache Foundation works.</li>
--        <li><a href="http://www.apache.org/foundation/faq.html">The Apache
--        FAQ</a></li>
--      </ul>
--    </section>
--
--  </body>
--</document>
-Index: xdocs/exception-handling.xml

-===================================================================

---- xdocs/exception-handling.xml	(revision 604567)

-+++ xdocs/exception-handling.xml	(revision 915934)

-@@ -285,7 +285,7 @@

-      not been fully transmitted to the server).
-      </p>
-      <p>
--     HttpClient will automatically retry up to 5 times those methods that have been fully transmitted to 
-+     HttpClient will automatically retry up to 3 times those methods that have been fully transmitted to 
-      the server, but the server failed to respond with an HTTP status code (the server simply drops the 
-      connection without sending anything back). In this case it is assumed that the request has not been 
-      processed by the server and the application state has not changed. If this assumption may not hold 
-Index: xdocs/logging.xml

-===================================================================

---- xdocs/logging.xml	(revision 604567)

-+++ xdocs/logging.xml	(revision 915934)

-@@ -4,7 +4,7 @@

- 
-    <properties>
-       <title>HttpClient Logging Practices</title>
--      <author email="httpcomponents-dev@jakarta.apache.org">HttpComponents Team</author>
-+      <author email="dev@hc.apache.org">HttpComponents Team</author>
-       <revision>$Id$</revision>
-    </properties>
- 
-Index: xdocs/userguide.xml

-===================================================================

---- xdocs/userguide.xml	(revision 604567)

-+++ xdocs/userguide.xml	(revision 915934)

-@@ -4,17 +4,24 @@

- 
-   <properties>
-     <title>HttpClient User Guide</title>
-+    <author email="dev@hc.apache.org">HttpComponents Team</author>
-     <author email="adrian@ephox.com">Adrian Sutton</author>
-     <revision>$Id$</revision>
-   </properties>
- 
-   <body>
--
-     <section name="User Guide">
-       <p>The HttpClient user guide is designed to help developers use
-       HttpClient in their applications.  While the concept of a user guide
--      being for developers may seem strange, the term developer guide is
--      already in use for helping people develop HttpClient.</p>
-+      being for developers may seem strange, the term developer is
-+      already in use for people helping to develop HttpClient.</p>
-+
-+      <p>If you are new to HttpClient, make sure to work through the
-+         <a href="tutorial.html">Tutorial</a> and have a look at the
-+<a href="http://svn.apache.org/viewvc/httpcomponents/oac.hc3x/trunk/src/examples/">Sample Code</a>.
-+         Before reporting problems, read about
-+         <a href="troubleshooting.html">Trouble Shooting</a>
-+      </p>
-     </section>
- 
-     <section name="Overview">
-@@ -64,7 +71,7 @@

-              and enumerates standard HttpClient parameters.</td>
-         </tr>
-         <tr>
--          <td><a href="http://svn.apache.org/viewvc/jakarta/httpcomponents/oac.hc3x/trunk/src/examples/">Sample Code</a></td>
-+          <td><a href="http://svn.apache.org/viewvc/httpcomponents/oac.hc3x/trunk/src/examples/">Sample Code</a></td>
-           <td>This is a link to the sample code for using HttpClient that is
-           stored in the Subversion repository and is available in source releases
-           of HttpClient.</td>
-Index: xdocs/cookies.xml

-===================================================================

---- xdocs/cookies.xml	(revision 604567)

-+++ xdocs/cookies.xml	(revision 915934)

-@@ -26,20 +26,10 @@

-       using Cookies and HttpClient.</p>
-     </section>
- 
--    <section name="Available Specifications">
--      <p>The following cookie specifications are supported by HttpClient.</p>
-+    <section name="Supported Specifications">
-+      <p>The following cookie specifications are supported by HttpClient 3.1.
-+      </p>
- 
--      <subsection name="Netscape Draft">
--        <p>The Netscape draft is the original cookie specification which formed
--        the basis for RFC2109.  Despite this it has some significant
--        differences with RFC2109 and thus may be required for compatibility
--        with some servers.</p>
--
--        <p>The Netscape cookie draft is available at <a
--        href="http://wp.netscape.com/newsref/std/cookie_spec.html">http://wp.netscape.com/newsref/std/cookie_spec.html</a>
--        </p>
--      </subsection>
--
-       <subsection name="RFC2109">
-         <p>RFC2109 is the first official cookie specification released by the W3C.
-         Theoretically, all servers that handle version 1 cookies should use this
-@@ -58,6 +48,31 @@

-         <p>RFC2109 is the default cookie policy used by HttpClient.</p>
-       </subsection>
- 
-+      <subsection name="RFC2965">
-+        <p>RFC2965 defines cookie version 2 and attempts to address the
-+           shortcomings of the RFC2109 regarding cookie version 1.
-+           RFC2965 is intended to eventually supersede RFC2109.</p>
-+
-+        <p>Servers that send RFC2965 cookies will use the Set-Cookie2 header
-+           in addition to the Set-Cookie header. RFC2965 cookies are port
-+           sensitive.
-+        </p>
-+        <p>RFC2965 is available at
-+        <a href="http://www.w3.org/Protocols/rfc2965/rfc2965.txt">http://www.w3.org/Protocols/rfc2965/rfc2965.txt</a>
-+        </p>
-+      </subsection>
-+
-+      <subsection name="Netscape Draft">
-+        <p>The Netscape draft is the original cookie specification which formed
-+        the basis for RFC2109.  Despite this it has some significant
-+        differences with RFC2109 and thus may be required for compatibility
-+        with some servers.</p>
-+
-+        <p>The Netscape cookie draft is available at <a
-+        href="http://wp.netscape.com/newsref/std/cookie_spec.html">http://wp.netscape.com/newsref/std/cookie_spec.html</a>
-+        </p>
-+      </subsection>
-+
-       <subsection name="Browser Compatibility">
-         <p>The compatibility specification is designed to be compatible with as
-         many different servers as possible even if they are not completely
-@@ -72,29 +87,11 @@

- 
-       <subsection name="Ignore Cookies">
-         <p>This cookie specification ignores all cookies.  It should be used to
--        keep HttpClient from accepting and sending cookies.</p>
-+        prevent HttpClient from accepting and sending cookies.</p>
-       </subsection>
- 
-     </section>
- 
--    <section name="Unsupported Specifications">
--      <p>The following cookie specifications are not presently supported by HttpClient.</p>
--
--      <subsection name="RFC2965">
--        <p>RFC2965 defines cookie version 2 and attempts to address the shortcomings 
--        of the RFC2109 regarding cookie version 1. RFC2965 is intended to eventually 
--        supersede RFC2109.</p>
--
--        <p>Currently HttpClient does not implement this specification. Support for
--           version 2 cookies will be added in the future</p>
--
--        <p>RFC2965 is available at
--        <a href="http://www.w3.org/Protocols/rfc2965/rfc2965.txt">http://www.w3.org/Protocols/rfc2965/rfc2965.txt</a>
--        </p>
--      </subsection>
--      
--    </section>
--
-     <section name="Specifying the Specification">
-       <p>There are two ways to specify which cookie specification should be
-       used, either for each <code>HttpMethod</code> instance using the 
-Index: xdocs/navigation.xml

-===================================================================

---- xdocs/navigation.xml	(revision 604567)

-+++ xdocs/navigation.xml	(revision 915934)

-@@ -12,27 +12,34 @@

-     <menu name="Overview">
-       <item name="Features" href="/features.html"/>
-       <item name="News" href="/news.html"/>
--      <item name="Status" href="/status.html"/>
--      <item name="Download" href="/downloads.html"/>
-+      <item name="Status" href="http://hc.apache.org/status.html"/>
-+      <item name="Download" href="http://hc.apache.org/downloads.cgi"/>
-       <item name="Wiki" href="http://wiki.apache.org/jakarta-httpclient/"/>
--      <item name="User Guide" href="/userguide.html">
--        <item name="Authentication Guide" href="/authentication.html"/>
--        <item name="Character Encodings" href="/charencodings.html"/>
--        <item name="Cookies" href="/cookies.html"/>
--        <item name="Exception Handling" href="/exception-handling.html"/>
--        <item name="Logging Guide" href="/logging.html"/>
--        <item name="Methods" href="/methods.html"/>
--        <item name="Optimization Guide" href="/performance.html"/>
--        <item name="Preference Architecture" href="/preference-api.html"/>
--        <item name="Redirects Handling" href="/redirects.html"/>
--        <item name="Sample Code" href="http://svn.apache.org/viewvc/jakarta/httpcomponents/oac.hc3x/trunk/src/examples/"/>
--        <item name="SSL Guide" href="/sslguide.html"/>
--        <item name="Threading" href="/threading.html"/>
--        <item name="Trouble Shooting" href="/troubleshooting.html"/>
--        <item name="Tutorial" href="/tutorial.html"/>
--      </item>
--      <item name="Developer Guide" href="/developerguide.html"/>
-     </menu>
-+
-+    <menu name="User Guide">
-+      <item name="Overview" href="/userguide.html"/>
-+      <item name="Authentication Guide" href="/authentication.html"/>
-+      <item name="Character Encodings" href="/charencodings.html"/>
-+      <item name="Cookies" href="/cookies.html"/>
-+      <item name="Exception Handling" href="/exception-handling.html"/>
-+      <item name="Logging Guide" href="/logging.html"/>
-+      <item name="Methods" href="/methods.html"/>
-+      <item name="Optimization Guide" href="/performance.html"/>
-+      <item name="Preference Architecture" href="/preference-api.html"/>
-+      <item name="Redirects Handling" href="/redirects.html"/>
-+      <item name="Sample Code" href="http://svn.apache.org/viewvc/httpcomponents/oac.hc3x/trunk/src/examples/"/>
-+      <item name="SSL Guide" href="/sslguide.html"/>
-+      <item name="Threading" href="/threading.html"/>
-+      <item name="Trouble Shooting" href="/troubleshooting.html"/>
-+      <item name="Tutorial" href="/tutorial.html"/>
-+    </menu>
-+
-+    <menu name="ASF" href="http://www.apache.org/">
-+      <item name="Foundation" href="http://www.apache.org/foundation/" />
-+      <item name="Sponsor Apache" href="http://www.apache.org/foundation/sponsorship.html" />
-+      <item name="Thanks" href="http://www.apache.org/foundation/thanks.html" />
-+    </menu>
-     
-   </body>
- </project>
-Index: xdocs/proposal.xml

-===================================================================

---- xdocs/proposal.xml	(revision 604567)

-+++ xdocs/proposal.xml	(revision 915934)

-@@ -4,7 +4,7 @@

- 
-   <properties>
-     <title>Proposal</title>
--    <author email="httpcomponents-dev@jakarta.apache.org">Commons Documentation Team</author>
-+    <author email="dev@hc.apache.org">Commons Documentation Team</author>
-     <author email="remy@apache.org">Remy Maucherat</author>
-     <author email="jsdever@apache.org">Jeff Dever</author>
-     <revision>$Id$</revision>
-Index: xdocs/style/project.css

-===================================================================

---- xdocs/style/project.css	(revision 604567)

-+++ xdocs/style/project.css	(revision 915934)

-@@ -1 +1 @@

--@import url("http://jakarta.apache.org/style/jakarta-maven.css");
-+@import url("http://hc.apache.org/css/hc-maven.css");
-Index: xdocs/methods.xml

-===================================================================

---- xdocs/methods.xml	(revision 604567)

-+++ xdocs/methods.xml	(revision 915934)

-@@ -20,7 +20,7 @@

-       <p>The examples on the following pages are not complete and are only used
-       to highlight the important features that are unique to each method.  For
-       complete examples, please refer to the <a
--      href="http://svn.apache.org/viewvc/jakarta/httpcomponents/oac.hc3x/trunk/src/examples/">sample
-+      href="http://svn.apache.org/viewvc/httpcomponents/oac.hc3x/trunk/src/examples/">sample
-       code</a>.</p>
-     </section>
- 
-Index: xdocs/methods/get.xml

-===================================================================

---- xdocs/methods/get.xml	(revision 604567)

-+++ xdocs/methods/get.xml	(revision 915934)

-@@ -41,11 +41,11 @@

- 
-       <p>See the <a href="../tutorial.html">tutorial</a> for a full example
-       of using the GET method.  There are also a number of examples in the <a
--      href="http://svn.apache.org/viewvc/jakarta/httpcomponents/oac.hc3x/trunk/src/examples/">sample
-+      href="http://svn.apache.org/viewvc/httpcomponents/oac.hc3x/trunk/src/examples/">sample
-       code</a>.</p>
- 
-       <source><![CDATA[
--        GetMethod get = new GetMethod("http://jakarta.apache.org");
-+        GetMethod get = new GetMethod("http://httpcomponents.apache.org");
-         // execute method and handle any error responses.
-         ...
-         InputStream in = get.getResponseBodyAsStream();
-Index: xdocs/threading.xml

-===================================================================

---- xdocs/threading.xml	(revision 604567)

-+++ xdocs/threading.xml	(revision 915934)

-@@ -15,7 +15,7 @@

-       	<li><a href="#MultiThreadedHttpConnectionManager">MultiThreadedHttpConnectionManager</a></li>
- 	    <li><a href="#Connection Release">Connection Release</a></li>
- 	  </ul>
--      <p>Please see the <a href="http://svn.apache.org/viewvc/jakarta/httpcomponents/oac.hc3x/trunk/src/examples/MultiThreadedExample.java?view=markup">MultiThreadedExample</a>
-+      <p>Please see the <a href="http://svn.apache.org/viewvc/httpcomponents/oac.hc3x/trunk/src/examples/MultiThreadedExample.java?view=markup">MultiThreadedExample</a>
-       	for a concrete example.</p>
-     </section>
- 
-@@ -85,7 +85,7 @@

-       	HttpClient client = new HttpClient(connectionManager);
- 			...
-         // and then from inside some thread executing a method
--        GetMethod get = new GetMethod("http://jakarta.apache.org/");
-+        GetMethod get = new GetMethod("http://httpcomponents.apache.org/");
-         try {
-             client.executeMethod(get);
-             // print response to stdout
-Index: xdocs/overview.xml

-===================================================================

---- xdocs/overview.xml	(revision 604567)

-+++ xdocs/overview.xml	(revision 915934)

-@@ -4,7 +4,7 @@

- 
-   <properties>
-     <title>Overview</title>
--    <author email="httpcomponents-dev@jakarta.apache.org">HttpComponents Team</author>
-+    <author email="dev@hc.apache.org">HttpComponents Team</author>
-     <author email="rwaldhoff@apache.org">Rodney Waldhoff</author>
-     <author email="jsdever@apache.org">Jeff Dever</author>
-     <revision>$Id$</revision>
-Index: xdocs/index.xml

-===================================================================

---- xdocs/index.xml	(revision 604567)

-+++ xdocs/index.xml	(revision 915934)

-@@ -4,7 +4,7 @@

- 
-   <properties>
-     <title>HttpClient Home</title>
--    <author email="httpcomponents-dev@jakarta.apache.org">HttpComponents Team</author>
-+    <author email="dev@hc.apache.org">HttpComponents Team</author>
-     <author email="rwaldhoff@apache.org">Rodney Waldhoff</author>
-     <author email="jsdever@apache.org">Jeff Dever</author>
-     <revision>$Id$</revision>
-@@ -55,17 +55,18 @@

-         Jakarta Commons, based on code developed by the
-         <a href="http://jakarta.apache.org/slide/">Jakarta Slide</a> project.
-         It was promoted out of the Commons in 2004, graduating to a separate
--        Jakarta project. In 2005, the
--        <a href="http://jakarta.apache.org/httpcomponents/">HttpComponents</a>
--        project at Jakarta was created, with the task of developing a successor
-+        Jakarta project. In 2005, the HttpComponents project at Jakarta was
-+        created, with the task of developing a successor
-         to <em>HttpClient 3.x</em> and to maintain the existing codebase until
-         the new one is ready to take over.
-         The <a href="http://commons.apache.org/">Commons</a> project,
-         cradle of <em>HttpClient</em>,
-         left <a href="http://jakarta.apache.org/">Jakarta</a>
-         in 2007 to become an independent Top Level Project.
--        For the time being, <em>HttpClient</em> still has it's home with
--        <em>HttpComponents</em> at Jakarta.
-+        Later in the same year, the
-+        <a href="http://httpcomponents.apache.org/">HttpComponents</a>
-+        project also left Jakarta to become an independent Top Level Project,
-+        taking the responsibility for maintaining <em>HttpClient</em> with it.
-       </p>
-     </section>
- 
-Index: xdocs/news.xml

-===================================================================

---- xdocs/news.xml	(revision 604567)

-+++ xdocs/news.xml	(revision 915934)

-@@ -3,13 +3,43 @@

- 
-   <properties>
-     <title>HttpClient News</title>
--    <author email="httpclient-dev@jakarta.apache.org">HttpClient Development Team</author>
-+    <author email="dev@hc.apache.org">HttpClient Development Team</author>
-     <author email="rwaldhoff@apache.org">Rodney Waldhoff</author>
-     <author email="jsdever@apache.org">Jeff Dever</author>
-     <revision>$Id$</revision>
-   </properties>
- 
-   <body>
-+        <section name="16 December 2007 - HttpClient 3.1 website moved">
-+            <p>
-+              The website for HttpClient 3.1 has moved to the new domain
-+              of the HttpComponents top level project. The new location is:
-+              <br/>
-+              <a href="http://hc.apache.org/httpclient-3.x/">http://hc.apache.org/httpclient-3.x/</a>
-+            </p>
-+        </section>    
-+        <section name="13 December 2007 - Mailing lists moved">
-+            <p>
-+                As part of the move to a top level project, the HttpComponents
-+                team has moved the mailing lists to a new domain.
-+                The new mailing list names are:
-+            </p>
-+                <ul>
-+                <li><a href="mailto:httpclient-users@hc.apache.org">httpclient-users@hc.apache.org</a> - user list, renamed from httpclient-user@jakarta.apache.org
-+                </li>
-+                <li><a href="mailto:dev@hc.apache.org">dev@hc.apache.org</a> - developer list, renamed from httpcomponents-dev@jakarta.apache.org
-+                </li>
-+                </ul>
-+            <p>
-+                Subscribers to the old lists have been moved to the new ones.
-+                No action is required for posting and receiving mails on the
-+                lists, but you may have to update your mail filter rules
-+                with the new list names.
-+                Please see the HttpClient
-+                <a href="mail-lists.html">mailing list page</a> for 
-+                (un)subscription and archive details.
-+            </p>
-+        </section>    
-         <section name="22 August 2007 - HttpClient 3.1 released">
-             <p>
-               HttpClient 3.1 has been released. This version adds a number improvements to the 
-@@ -170,9 +200,7 @@

-         <section name="23 October 2004 - New HttpClient mailing lists">
-             <p>
-                 Starting today HttpClient has two new mailing lists for 
--                <a href="mailto:httpclient-dev@jakarta.apache.org">developer</a> and 
--                <a href="mailto:httpclient-user@jakarta.apache.org">user</a>
--                discussion.  People previously subscribed to <i>commons-httpclient-dev</i> have
-+                developer and user discussion. People previously subscribed to <i>commons-httpclient-dev</i> have
-                 been automatically moved to the new developer mailing list.  People
-                 subscribed to <i>commons-user</i> who are interested in HttpClient will have 
-                 to join the HttpClient user mailing list manually.
-@@ -416,11 +444,6 @@

-       <p>The mailing list was renamed to be <b>commons-httpclient-dev</b>.
-         Sorry for the confusion.
-       </p>
--      <p>
--        If you wish to subscribe to this new mailing list, you can send mail to
--        <a href="mailto:commons-httpclient-dev-subscribe@jakarta.apache.org">
--          commons-httpclient-dev-subscribe@jakarta.apache.org</a>
--      </p>
-     </section>
- 
-     <section name="12 July, 2002 - HttpClient 2.0 Release Planning">
-Index: xdocs/features.xml

-===================================================================

---- xdocs/features.xml	(revision 604567)

-+++ xdocs/features.xml	(revision 915934)

-@@ -3,7 +3,7 @@

- 
-   <properties>
-     <title>HttpClient Features</title>
--    <author email="httpcomponents-dev@jakarta.apache.org">HttpComponents Team</author>
-+    <author email="dev@hc.apache.org">HttpComponents Team</author>
-     <author email="rwaldhoff@apache.org">Rodney Waldhoff</author>
-     <author email="jsdever@apache.org">Jeff Dever</author>
-     <revision>$Id$</revision>
-Index: xdocs/authentication.xml

-===================================================================

---- xdocs/authentication.xml	(revision 604567)

-+++ xdocs/authentication.xml	(revision 915934)

-@@ -227,11 +227,11 @@

- 	</subsection>
- 	</section>
-     <section name="Examples">
--        <p>There are a number of authentication examples in the <a href="http://svn.apache.org/viewvc/jakarta/httpcomponents/oac.hc3x/trunk/src/examples/">example directory</a>, including:
-+        <p>There are a number of authentication examples in the <a href="http://svn.apache.org/viewvc/httpcomponents/oac.hc3x/trunk/src/examples/">example directory</a>, including:
-             <ul>
--                <li><a href="http://svn.apache.org/viewvc/jakarta/httpcomponents/oac.hc3x/trunk/src/examples/BasicAuthenticationExample.java?view=markup">Basic authentication</a></li>
--                <li><a href="http://svn.apache.org/viewvc/jakarta/httpcomponents/oac.hc3x/trunk/src/examples/CustomAuthenticationExample.java?view=markup">Custom authentication</a></li>
--                <li><a href="http://svn.apache.org/viewvc/jakarta/httpcomponents/oac.hc3x/trunk/src/examples/InteractiveAuthenticationExample.java?view=markup">Interactive authentication</a></li>
-+                <li><a href="http://svn.apache.org/viewvc/httpcomponents/oac.hc3x/trunk/src/examples/BasicAuthenticationExample.java?view=markup">Basic authentication</a></li>
-+                <li><a href="http://svn.apache.org/viewvc/httpcomponents/oac.hc3x/trunk/src/examples/CustomAuthenticationExample.java?view=markup">Custom authentication</a></li>
-+                <li><a href="http://svn.apache.org/viewvc/httpcomponents/oac.hc3x/trunk/src/examples/InteractiveAuthenticationExample.java?view=markup">Interactive authentication</a></li>
-             </ul>
-         </p>
-     </section>
-Index: xdocs/sslguide.xml

-===================================================================

---- xdocs/sslguide.xml	(revision 604567)

-+++ xdocs/sslguide.xml	(revision 915934)

-@@ -193,17 +193,17 @@

-     <ul>
- 
-         <li>
--         <a href="http://svn.apache.org/viewvc/jakarta/httpcomponents/oac.hc3x/trunk/src/contrib/org/apache/commons/httpclient/contrib/ssl/EasySSLProtocolSocketFactory.java?view=markup">  
-+         <a href="http://svn.apache.org/viewvc/httpcomponents/oac.hc3x/trunk/src/contrib/org/apache/commons/httpclient/contrib/ssl/EasySSLProtocolSocketFactory.java?view=markup">  
-           EasySSLProtocolSocketFactory</a> can be used to create SSL connections that allow the target 
-           server to authenticate with a self-signed certificate.
-         </li>
- 
-         <li>
--         <a href="http://svn.apache.org/viewvc/jakarta/httpcomponents/oac.hc3x/trunk/src/contrib/org/apache/commons/httpclient/contrib/ssl/StrictSSLProtocolSocketFactory.java?view=markup">  
-+         <a href="http://svn.apache.org/viewvc/httpcomponents/oac.hc3x/trunk/src/contrib/org/apache/commons/httpclient/contrib/ssl/StrictSSLProtocolSocketFactory.java?view=markup">  
-           StrictSSLProtocolSocketFactory</a> can be used to create SSL connections that can optionally perform host name verification in order to help preventing man-in-the-middle type of attacks. 
-         </li>
-         <li>
--         <a href="http://svn.apache.org/viewvc/jakarta/httpcomponents/oac.hc3x/trunk/src/contrib/org/apache/commons/httpclient/contrib/ssl/AuthSSLProtocolSocketFactory.java?view=markup">  
-+         <a href="http://svn.apache.org/viewvc/httpcomponents/oac.hc3x/trunk/src/contrib/org/apache/commons/httpclient/contrib/ssl/AuthSSLProtocolSocketFactory.java?view=markup">  
-           AuthSSLProtocolSocketFactory</a> can be used to optionally enforce mutual client/server authentication. This is the most flexible
-           implementation of a protocol socket factory.  It allows for customization of most, if not all, aspects of the SSL authentication.
-         </li>
-Index: src/test/org/apache/commons/httpclient/TestHttps.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestHttps.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestHttps.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestHttps.java,v 1.12 2004/06/13 12:13:08 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/TestHeaderElement.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestHeaderElement.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestHeaderElement.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestHeaderElement.java,v 1.7 2004/02/22 18:08:49 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/TestNVP.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestNVP.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestNVP.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestNVP.java,v 1.5 2004/02/22 18:08:49 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/TestIdleConnectionTimeout.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestIdleConnectionTimeout.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestIdleConnectionTimeout.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestIdleConnectionTimeout.java,v 1.5 2004/11/07 12:31:42 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/TestConnectionPersistence.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestConnectionPersistence.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestConnectionPersistence.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestConnectionPersistence.java,v 1.2 2004/12/20 11:42:30 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/FeedbackService.java

-===================================================================

---- src/test/org/apache/commons/httpclient/FeedbackService.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/FeedbackService.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/FeedbackService.java,v 1.1 2004/11/20 17:56:39 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/AccessibleHttpConnectionManager.java

-===================================================================

---- src/test/org/apache/commons/httpclient/AccessibleHttpConnectionManager.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/AccessibleHttpConnectionManager.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/AccessibleHttpConnectionManager.java,v 1.1 2004/10/16 22:40:08 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/TestHeaderOps.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestHeaderOps.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestHeaderOps.java	(revision 915934)

-@@ -32,6 +32,7 @@

- import java.io.IOException;
- import java.net.InetAddress;
- import java.util.Iterator;
-+import java.util.Locale;
- 
- import junit.framework.Test;
- import junit.framework.TestSuite;
-@@ -83,7 +84,7 @@

-             for (Iterator i = request.getHeaderIterator(); i.hasNext(); ) {
-                 Header header = (Header) i.next();
-                 buffer.append("name=\"");
--                buffer.append(header.getName().toLowerCase());
-+                buffer.append(header.getName().toLowerCase(Locale.ENGLISH));
-                 buffer.append("\";value=\"");
-                 buffer.append(header.getValue());
-                 buffer.append("\"\r\n");
-Index: src/test/org/apache/commons/httpclient/TestStreams.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestStreams.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestStreams.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestStreams.java,v 1.19 2004/10/31 14:04:13 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-@@ -112,6 +112,23 @@

-         }
-     }
- 
-+    public void testCorruptChunkedInputStream2() throws IOException {
-+        //truncated chunk
-+        String corrupInput = "3\r\n11";
-+        HttpMethod method = new FakeHttpMethod();
-+
-+        InputStream in = new ChunkedInputStream(new ByteArrayInputStream(
-+            EncodingUtil.getBytes(corrupInput, CONTENT_CHARSET)), method);
-+        byte[] buffer = new byte[300];
-+        assertEquals(2, in.read(buffer));
-+        try {
-+            in.read(buffer);
-+            fail("Should have thrown exception");
-+        } catch(IOException e) {
-+            /* expected exception */
-+        }
-+    }
-+
-     public void testEmptyChunkedInputStream() throws IOException {
-         String input = "0\r\n";
-         HttpMethod method = new FakeHttpMethod();
-Index: src/test/org/apache/commons/httpclient/TestURIUtil2.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestURIUtil2.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestURIUtil2.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestURIUtil2.java,v 1.4 2004/02/22 18:08:50 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/TestHttpState.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestHttpState.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestHttpState.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestHttpState.java,v 1.7 2004/06/23 06:50:25 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/auth/TestChallengeParser.java

-===================================================================

---- src/test/org/apache/commons/httpclient/auth/TestChallengeParser.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/auth/TestChallengeParser.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/auth/TestChallengeParser.java,v 1.1 2004/03/25 20:37:20 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/auth/TestDigestAuth.java

-===================================================================

---- src/test/org/apache/commons/httpclient/auth/TestDigestAuth.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/auth/TestDigestAuth.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/auth/TestDigestAuth.java,v 1.2 2004/11/07 12:31:42 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/auth/TestChallengeProcessor.java

-===================================================================

---- src/test/org/apache/commons/httpclient/auth/TestChallengeProcessor.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/auth/TestChallengeProcessor.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/auth/TestChallengeProcessor.java,v 1.1 2004/03/25 20:37:20 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/auth/TestBasicAuth.java

-===================================================================

---- src/test/org/apache/commons/httpclient/auth/TestBasicAuth.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/auth/TestBasicAuth.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/auth/TestBasicAuth.java,v 1.9 2004/11/20 17:56:40 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/auth/TestAuthAll.java

-===================================================================

---- src/test/org/apache/commons/httpclient/auth/TestAuthAll.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/auth/TestAuthAll.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/auth/TestAuthAll.java,v 1.1 2004/10/31 13:46:54 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/auth/TestNTLMAuth.java

-===================================================================

---- src/test/org/apache/commons/httpclient/auth/TestNTLMAuth.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/auth/TestNTLMAuth.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/auth/TestNTLMAuth.java,v 1.2 2004/11/07 12:31:42 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/TestExceptions.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestExceptions.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestExceptions.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestExceptions.java,v 1.4 2004/03/25 20:37:20 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-@@ -34,6 +34,7 @@

- import java.io.PrintStream;
- import java.io.PrintWriter;
- import java.io.StringWriter;
-+import java.util.Locale;
- 
- import junit.framework.Test;
- import junit.framework.TestCase;
-@@ -125,7 +126,7 @@

-         
-         Throwable cause = exception.getCause();
-         if (cause != null) {
--            assertTrue("Contains 'cause'", stackTrace.toLowerCase().indexOf("cause") != -1);
-+            assertTrue("Contains 'cause'", stackTrace.toLowerCase(Locale.ENGLISH).indexOf("cause") != -1);
-             assertTrue("Contains cause.toString()", stackTrace.indexOf(cause.toString()) != -1);
-         }
-     }
-Index: src/test/org/apache/commons/httpclient/TestHttpMethodFundamentals.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestHttpMethodFundamentals.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestHttpMethodFundamentals.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestHttpMethodFundamentals.java,v 1.6 2004/11/06 23:47:58 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/TestHttpStatus.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestHttpStatus.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestHttpStatus.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestHttpStatus.java,v 1.4 2004/05/02 11:21:13 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/TestVirtualHost.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestVirtualHost.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestVirtualHost.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestVirtualHost.java,v 1.2 2004/10/31 14:42:59 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/TestPartsNoHost.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestPartsNoHost.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestPartsNoHost.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestPartsNoHost.java,v 1.7 2004/02/22 18:08:49 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/NoHostHttpConnectionManager.java

-===================================================================

---- src/test/org/apache/commons/httpclient/NoHostHttpConnectionManager.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/NoHostHttpConnectionManager.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/NoHostHttpConnectionManager.java,v 1.9 2004/10/31 13:53:03 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/server/SimpleHttpServerConnection.java

-===================================================================

---- src/test/org/apache/commons/httpclient/server/SimpleHttpServerConnection.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/server/SimpleHttpServerConnection.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/server/SimpleHttpServerConnection.java,v 1.21 2004/12/11 22:35:26 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/server/HttpService.java

-===================================================================

---- src/test/org/apache/commons/httpclient/server/HttpService.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/server/HttpService.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/server/HttpService.java,v 1.1 2004/02/27 19:04:32 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/server/RequestLine.java

-===================================================================

---- src/test/org/apache/commons/httpclient/server/RequestLine.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/server/RequestLine.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/server/RequestLine.java,v 1.4 2004/09/14 15:50:41 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/server/SimpleConnectionThread.java

-===================================================================

---- src/test/org/apache/commons/httpclient/server/SimpleConnectionThread.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/server/SimpleConnectionThread.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/server/SimpleConnectionThread.java,v 1.3 2004/11/13 22:38:27 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/server/SimpleRequest.java

-===================================================================

---- src/test/org/apache/commons/httpclient/server/SimpleRequest.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/server/SimpleRequest.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/server/SimpleRequest.java,v 1.3 2004/11/13 12:21:28 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/server/SimpleConnManager.java

-===================================================================

---- src/test/org/apache/commons/httpclient/server/SimpleConnManager.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/server/SimpleConnManager.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/server/SimpleConnManager.java,v 1.2 2004/11/20 17:56:40 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/server/SimpleConnList.java

-===================================================================

---- src/test/org/apache/commons/httpclient/server/SimpleConnList.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/server/SimpleConnList.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/server/SimpleConnList.java,v 1.1 2004/11/13 12:21:28 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/server/SimpleResponse.java

-===================================================================

---- src/test/org/apache/commons/httpclient/server/SimpleResponse.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/server/SimpleResponse.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/server/SimpleResponse.java,v 1.8 2004/11/13 12:21:28 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/server/AuthRequestHandler.java

-===================================================================

---- src/test/org/apache/commons/httpclient/server/AuthRequestHandler.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/server/AuthRequestHandler.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/server/AuthRequestHandler.java,v 1.1 2004/11/20 17:56:40 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/server/ErrorResponse.java

-===================================================================

---- src/test/org/apache/commons/httpclient/server/ErrorResponse.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/server/ErrorResponse.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/server/ErrorResponse.java,v 1.6 2004/11/13 12:21:28 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/server/TransparentProxyRequestHandler.java

-===================================================================

---- src/test/org/apache/commons/httpclient/server/TransparentProxyRequestHandler.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/server/TransparentProxyRequestHandler.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/server/TransparentProxyRequestHandler.java,v 1.7 2004/12/11 22:35:26 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/server/ProxyAuthRequestHandler.java

-===================================================================

---- src/test/org/apache/commons/httpclient/server/ProxyAuthRequestHandler.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/server/ProxyAuthRequestHandler.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/server/ProxyAuthRequestHandler.java,v 1.12 2004/11/28 15:44:39 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/server/SimplePlainSocketFactory.java

-===================================================================

---- src/test/org/apache/commons/httpclient/server/SimplePlainSocketFactory.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/server/SimplePlainSocketFactory.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/server/SimplePlainSocketFactory.java,v 1.1 2004/12/11 22:35:26 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/server/SimpleHttpServer.java

-===================================================================

---- src/test/org/apache/commons/httpclient/server/SimpleHttpServer.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/server/SimpleHttpServer.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/server/SimpleHttpServer.java,v 1.15 2004/12/11 22:35:26 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/server/SimpleConnSet.java

-===================================================================

---- src/test/org/apache/commons/httpclient/server/SimpleConnSet.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/server/SimpleConnSet.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/server/SimpleConnSet.java,v 1.1 2004/11/13 12:21:28 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/server/HttpRequestHandler.java

-===================================================================

---- src/test/org/apache/commons/httpclient/server/HttpRequestHandler.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/server/HttpRequestHandler.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/server/HttpRequestHandler.java,v 1.4 2004/02/27 19:01:33 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/server/SimpleHost.java

-===================================================================

---- src/test/org/apache/commons/httpclient/server/SimpleHost.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/server/SimpleHost.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/server/SimpleHost.java,v 1.1 2004/11/13 12:21:28 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/server/ProxyRequestHandler.java

-===================================================================

---- src/test/org/apache/commons/httpclient/server/ProxyRequestHandler.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/server/ProxyRequestHandler.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/server/ProxyRequestHandler.java,v 1.11 2004/12/11 22:35:26 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/server/HttpRequestHandlerChain.java

-===================================================================

---- src/test/org/apache/commons/httpclient/server/HttpRequestHandlerChain.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/server/HttpRequestHandlerChain.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/server/HttpRequestHandlerChain.java,v 1.6 2004/11/28 15:44:39 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/server/SimpleSocketFactory.java

-===================================================================

---- src/test/org/apache/commons/httpclient/server/SimpleSocketFactory.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/server/SimpleSocketFactory.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/server/SimpleSocketFactory.java,v 1.1 2004/12/11 22:35:26 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/server/ResponseWriter.java

-===================================================================

---- src/test/org/apache/commons/httpclient/server/ResponseWriter.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/server/ResponseWriter.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/server/ResponseWriter.java,v 1.5 2004/11/07 12:31:42 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/server/SimpleProxy.java

-===================================================================

---- src/test/org/apache/commons/httpclient/server/SimpleProxy.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/server/SimpleProxy.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/server/SimpleProxy.java,v 1.8 2004/12/11 22:35:26 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/server/HttpServiceHandler.java

-===================================================================

---- src/test/org/apache/commons/httpclient/server/HttpServiceHandler.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/server/HttpServiceHandler.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/server/HttpServiceHandler.java,v 1.9 2004/11/13 22:38:27 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/TestPostMethod.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestPostMethod.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestPostMethod.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestWebappPostMethod.java,v 1.7 2004/05/12 20:43:54 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/cookie/TestCookieAll.java

-===================================================================

---- src/test/org/apache/commons/httpclient/cookie/TestCookieAll.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/cookie/TestCookieAll.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/cookie/TestCookieAll.java,v 1.3 2004/12/24 20:36:13 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/cookie/TestCookieBase.java

-===================================================================

---- src/test/org/apache/commons/httpclient/cookie/TestCookieBase.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/cookie/TestCookieBase.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/cookie/TestCookieBase.java,v 1.1 2004/04/24 19:39:24 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/cookie/TestCookieRFC2965Spec.java

-===================================================================

---- src/test/org/apache/commons/httpclient/cookie/TestCookieRFC2965Spec.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/cookie/TestCookieRFC2965Spec.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/cookie/TestCookieIgnoreSpec.java

-===================================================================

---- src/test/org/apache/commons/httpclient/cookie/TestCookieIgnoreSpec.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/cookie/TestCookieIgnoreSpec.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/cookie/TestCookieIgnoreSpec.java,v 1.5 2004/10/31 14:42:59 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/cookie/TestCookie.java

-===================================================================

---- src/test/org/apache/commons/httpclient/cookie/TestCookie.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/cookie/TestCookie.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/cookie/TestCookie.java,v 1.2 2004/04/25 12:25:09 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/cookie/TestCookiePolicy.java

-===================================================================

---- src/test/org/apache/commons/httpclient/cookie/TestCookiePolicy.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/cookie/TestCookiePolicy.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/cookie/TestCookiePolicy.java,v 1.2 2004/09/14 20:11:32 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/cookie/TestDateParser.java

-===================================================================

---- src/test/org/apache/commons/httpclient/cookie/TestDateParser.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/cookie/TestDateParser.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/cookie/TestDateParser.java,v 1.1 2004/12/24 20:36:13 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/cookie/TestCookie2.java

-===================================================================

---- src/test/org/apache/commons/httpclient/cookie/TestCookie2.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/cookie/TestCookie2.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /cvsroot/httpc-cookie2/httpc-cookie2/httpcookie2SVN-patch.082805-2100.diff,v 1.1 2005/08/29 05:01:58 sjain700 Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/cookie/TestCookieRFC2109Spec.java

-===================================================================

---- src/test/org/apache/commons/httpclient/cookie/TestCookieRFC2109Spec.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/cookie/TestCookieRFC2109Spec.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/cookie/TestCookieRFC2109Spec.java,v 1.3 2004/06/05 16:49:20 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/cookie/TestCookieNetscapeDraft.java

-===================================================================

---- src/test/org/apache/commons/httpclient/cookie/TestCookieNetscapeDraft.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/cookie/TestCookieNetscapeDraft.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/cookie/TestCookieNetscapeDraft.java,v 1.2 2004/04/24 23:28:04 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/cookie/TestCookieCompatibilitySpec.java

-===================================================================

---- src/test/org/apache/commons/httpclient/cookie/TestCookieCompatibilitySpec.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/cookie/TestCookieCompatibilitySpec.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/cookie/TestCookieCompatibilitySpec.java,v 1.7 2004/09/14 20:11:32 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/cookie/TestCookiePathComparator.java

-===================================================================

---- src/test/org/apache/commons/httpclient/cookie/TestCookiePathComparator.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/cookie/TestCookiePathComparator.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $HeaderURL$
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/TestHttpConnectionManager.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestHttpConnectionManager.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestHttpConnectionManager.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestHttpConnectionManager.java,v 1.23 2004/07/17 18:58:33 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/TestEquals.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestEquals.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestEquals.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestEquals.java,v 1.2 2004/02/22 18:08:49 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/TestResponseHeaders.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestResponseHeaders.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestResponseHeaders.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestResponseHeaders.java,v 1.18 2004/11/07 12:31:42 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/ExecuteMethodThread.java

-===================================================================

---- src/test/org/apache/commons/httpclient/ExecuteMethodThread.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/ExecuteMethodThread.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/ExecuteMethodThread.java,v 1.2 2004/02/22 18:08:49 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/TestHttpParser.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestHttpParser.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestHttpParser.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestHttpParser.java,v 1.3 2004/02/22 18:08:49 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/TestCredentials.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestCredentials.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestCredentials.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestCredentials.java,v 1.1 2004/10/31 13:46:54 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/TestPostParameterEncoding.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestPostParameterEncoding.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestPostParameterEncoding.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestPostMethod.java,v 1.5 2004/12/12 10:02:38 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/TestURIUtil.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestURIUtil.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestURIUtil.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestURIUtil.java,v 1.6 2004/02/22 18:08:50 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/TestHttpConnection.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestHttpConnection.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestHttpConnection.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header$
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/EchoService.java

-===================================================================

---- src/test/org/apache/commons/httpclient/EchoService.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/EchoService.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/EchoService.java,v 1.2 2004/11/20 17:56:39 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/params/TestHttpParams.java

-===================================================================

---- src/test/org/apache/commons/httpclient/params/TestHttpParams.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/params/TestHttpParams.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/params/TestHttpParams.java,v 1.4 2004/10/31 14:42:59 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/params/TestSSLTunnelParams.java

-===================================================================

---- src/test/org/apache/commons/httpclient/params/TestSSLTunnelParams.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/params/TestSSLTunnelParams.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header$
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/params/TestParamsAll.java

-===================================================================

---- src/test/org/apache/commons/httpclient/params/TestParamsAll.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/params/TestParamsAll.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header$
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/TestEffectiveHttpVersion.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestEffectiveHttpVersion.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestEffectiveHttpVersion.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestEffectiveHttpVersion.java,v 1.4 2004/10/31 14:42:59 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/FakeHttpMethod.java

-===================================================================

---- src/test/org/apache/commons/httpclient/FakeHttpMethod.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/FakeHttpMethod.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/FakeHttpMethod.java,v 1.2 2004/10/31 14:04:13 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/TestMethodAbort.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestMethodAbort.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestMethodAbort.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestMethodAbort.java,v 1.3 2004/10/31 14:42:59 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/HttpClientTestBase.java

-===================================================================

---- src/test/org/apache/commons/httpclient/HttpClientTestBase.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/HttpClientTestBase.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/HttpClientTestBase.java,v 1.7 2004/11/07 12:31:42 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/TestProxy.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestProxy.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestProxy.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestProxy.java,v 1.11 2004/12/11 22:35:26 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/ssl/SimpleSSLSocketFactory.java

-===================================================================

---- src/test/org/apache/commons/httpclient/ssl/SimpleSSLSocketFactory.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/ssl/SimpleSSLSocketFactory.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/ssl/SimpleSSLSocketFactory.java,v 1.1 2004/12/11 22:35:26 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/ssl/SimpleSSLTestProtocolSocketFactory.java

-===================================================================

---- src/test/org/apache/commons/httpclient/ssl/SimpleSSLTestProtocolSocketFactory.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/ssl/SimpleSSLTestProtocolSocketFactory.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/ssl/SimpleSSLTestProtocolSocketFactory.java,v 1.1 2004/12/11 22:35:26 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/ProxyTestDecorator.java

-===================================================================

---- src/test/org/apache/commons/httpclient/ProxyTestDecorator.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/ProxyTestDecorator.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/ProxyTestDecorator.java,v 1.1 2004/11/01 02:21:15 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/TestRedirects.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestRedirects.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestRedirects.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestRedirects.java,v 1.9 2005/01/14 19:40:39 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/TestRequestHeaders.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestRequestHeaders.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestRequestHeaders.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestRequestHeaders.java,v 1.8 2004/10/31 14:04:13 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/TestHttpVersion.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestHttpVersion.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestHttpVersion.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestHttpVersion.java,v 1.3 2004/05/09 12:16:12 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/TestMultipartPost.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestMultipartPost.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestMultipartPost.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestMultipartPost.java,v 1.3 2004/11/01 02:21:15 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/test/org/apache/commons/httpclient/TestHeader.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestHeader.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestHeader.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestHeader.java,v 1.6 2004/02/22 18:08:49 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/test/org/apache/commons/httpclient/TestStatusLine.java

-===================================================================

---- src/test/org/apache/commons/httpclient/TestStatusLine.java	(revision 604567)

-+++ src/test/org/apache/commons/httpclient/TestStatusLine.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/TestStatusLine.java,v 1.9 2004/07/19 20:24:21 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/contrib/org/apache/commons/httpclient/contrib/auth/NegotiateScheme.java

-===================================================================

---- src/contrib/org/apache/commons/httpclient/contrib/auth/NegotiateScheme.java	(revision 604567)

-+++ src/contrib/org/apache/commons/httpclient/contrib/auth/NegotiateScheme.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header:$
-+ * $HeadURL:$
-  * $Revision$
-  * $Date$
-  *
-Index: src/contrib/org/apache/commons/httpclient/contrib/auth/CustomAuthenticationNegotiateExample.java

-===================================================================

---- src/contrib/org/apache/commons/httpclient/contrib/auth/CustomAuthenticationNegotiateExample.java	(revision 604567)

-+++ src/contrib/org/apache/commons/httpclient/contrib/auth/CustomAuthenticationNegotiateExample.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/contrib/org/apache/commons/httpclient/contrib/proxy/PluginProxyUtil.java

-===================================================================

---- src/contrib/org/apache/commons/httpclient/contrib/proxy/PluginProxyUtil.java	(revision 604567)

-+++ src/contrib/org/apache/commons/httpclient/contrib/proxy/PluginProxyUtil.java	(revision 915934)

-@@ -32,6 +32,7 @@

- import java.lang.reflect.Array;
- import java.lang.reflect.Method;
- import java.net.URL;
-+import java.util.Locale;
- import java.util.Properties;
- 
- import org.apache.commons.httpclient.ProxyHost;
-@@ -286,7 +287,7 @@

-             }
-             boolean useProxy = (proxyList != null);
-             if (useProxy) {
--                proxyList = proxyList.toUpperCase();
-+                proxyList = proxyList.toUpperCase(Locale.ENGLISH);
-                 //  Using HTTP proxy as proxy for HTTP proxy tunnelled SSL 
-                 //  socket (should be listed FIRST)....
-                 //  1/14/03 1.3.1_06 appears to omit HTTP portion of 
-Index: src/contrib/org/apache/commons/httpclient/contrib/ssl/SocketFactoryWrapper.java

-===================================================================

---- src/contrib/org/apache/commons/httpclient/contrib/ssl/SocketFactoryWrapper.java	(revision 604567)

-+++ src/contrib/org/apache/commons/httpclient/contrib/ssl/SocketFactoryWrapper.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header$
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/contrib/org/apache/commons/httpclient/contrib/ssl/AuthSSLInitializationError.java

-===================================================================

---- src/contrib/org/apache/commons/httpclient/contrib/ssl/AuthSSLInitializationError.java	(revision 604567)

-+++ src/contrib/org/apache/commons/httpclient/contrib/ssl/AuthSSLInitializationError.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/contrib/org/apache/commons/httpclient/contrib/ssl/AuthSSLInitializationError.java,v 1.2 2004/06/10 18:25:24 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/contrib/org/apache/commons/httpclient/contrib/ssl/HttpHostFactory.java

-===================================================================

---- src/contrib/org/apache/commons/httpclient/contrib/ssl/HttpHostFactory.java	(revision 604567)

-+++ src/contrib/org/apache/commons/httpclient/contrib/ssl/HttpHostFactory.java	(revision 915934)

-@@ -1,5 +1,7 @@

- package org.apache.commons.httpclient.contrib.ssl;
- 
-+import java.util.Locale;
-+
- import org.apache.commons.httpclient.HostConfiguration;
- import org.apache.commons.httpclient.HttpHost;
- import org.apache.commons.httpclient.HttpsURL;
-@@ -47,7 +49,7 @@

-                 return oldProtocol; // Retain it.
-             }
-         }
--        Protocol newProtocol = (scheme != null && scheme.toLowerCase().endsWith("s")) ? httpsProtocol
-+        Protocol newProtocol = (scheme != null && scheme.toLowerCase(Locale.ENGLISH).endsWith("s")) ? httpsProtocol
-                 : httpProtocol;
-         if (newProtocol == null) {
-             newProtocol = Protocol.getProtocol(scheme);
-Index: src/contrib/org/apache/commons/httpclient/contrib/ssl/AuthSSLProtocolSocketFactory.java

-===================================================================

---- src/contrib/org/apache/commons/httpclient/contrib/ssl/AuthSSLProtocolSocketFactory.java	(revision 604567)

-+++ src/contrib/org/apache/commons/httpclient/contrib/ssl/AuthSSLProtocolSocketFactory.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/contrib/org/apache/commons/httpclient/contrib/ssl/AuthSSLProtocolSocketFactory.java,v 1.2 2004/06/10 18:25:24 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/contrib/org/apache/commons/httpclient/contrib/ssl/AuthSSLX509TrustManager.java

-===================================================================

---- src/contrib/org/apache/commons/httpclient/contrib/ssl/AuthSSLX509TrustManager.java	(revision 604567)

-+++ src/contrib/org/apache/commons/httpclient/contrib/ssl/AuthSSLX509TrustManager.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/contrib/org/apache/commons/httpclient/contrib/ssl/AuthSSLX509TrustManager.java,v 1.2 2004/06/10 18:25:24 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/contrib/org/apache/commons/httpclient/contrib/ssl/EasySSLProtocolSocketFactory.java

-===================================================================

---- src/contrib/org/apache/commons/httpclient/contrib/ssl/EasySSLProtocolSocketFactory.java	(revision 604567)

-+++ src/contrib/org/apache/commons/httpclient/contrib/ssl/EasySSLProtocolSocketFactory.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/contrib/org/apache/commons/httpclient/contrib/ssl/EasySSLProtocolSocketFactory.java,v 1.7 2004/06/11 19:26:27 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * 
-@@ -37,17 +37,17 @@

- import java.net.SocketAddress;
- import java.net.UnknownHostException;
- 
-+import javax.net.SocketFactory;
-+import javax.net.ssl.SSLContext;
-+import javax.net.ssl.TrustManager;
-+
- import org.apache.commons.httpclient.ConnectTimeoutException;
- import org.apache.commons.httpclient.HttpClientError;
- import org.apache.commons.httpclient.params.HttpConnectionParams;
- import org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory;
--import org.apache.commons.logging.Log; 
-+import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
- 
--import javax.net.SocketFactory;
--import javax.net.ssl.SSLContext;
--import javax.net.ssl.TrustManager;
--
- /**
-  * <p>
-  * EasySSLProtocolSocketFactory can be used to creats SSL {@link Socket}s 
-@@ -65,11 +65,13 @@

-  *     <pre>
-  *     Protocol easyhttps = new Protocol("https", new EasySSLProtocolSocketFactory(), 443);
-  *
-+ *     URI uri = new URI("https://localhost/", true);
-+ *     // use relative url only
-+ *     GetMethod httpget = new GetMethod(uri.getPathQuery());
-+ *     HostConfiguration hc = new HostConfiguration();
-+ *     hc.setHost(uri.getHost(), uri.getPort(), easyhttps);
-  *     HttpClient client = new HttpClient();
-- *     client.getHostConfiguration().setHost("localhost", 443, easyhttps);
-- *     // use relative url only
-- *     GetMethod httpget = new GetMethod("/");
-- *     client.executeMethod(httpget);
-+ *     client.executeMethod(hc, httpget);
-  *     </pre>
-  * </p>
-  * <p>
-Index: src/contrib/org/apache/commons/httpclient/contrib/ssl/StrictSSLProtocolSocketFactory.java

-===================================================================

---- src/contrib/org/apache/commons/httpclient/contrib/ssl/StrictSSLProtocolSocketFactory.java	(revision 604567)

-+++ src/contrib/org/apache/commons/httpclient/contrib/ssl/StrictSSLProtocolSocketFactory.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/contrib/org/apache/commons/httpclient/contrib/ssl/StrictSSLProtocolSocketFactory.java,v 1.5 2004/06/10 18:25:24 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/contrib/org/apache/commons/httpclient/contrib/methods/multipart/ContentTypeFilePart.java

-===================================================================

---- src/contrib/org/apache/commons/httpclient/contrib/methods/multipart/ContentTypeFilePart.java	(revision 604567)

-+++ src/contrib/org/apache/commons/httpclient/contrib/methods/multipart/ContentTypeFilePart.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/contrib/org/apache/commons/httpclient/contrib/methods/multipart/ContentTypeFilePart.java,v 1.2 2004/02/22 18:08:45 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/NTCredentials.java

-===================================================================

---- src/java/org/apache/commons/httpclient/NTCredentials.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/NTCredentials.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/NTCredentials.java,v 1.10 2004/04/18 23:51:35 jsdever Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/URI.java

-===================================================================

---- src/java/org/apache/commons/httpclient/URI.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/URI.java	(revision 915934)

-@@ -264,7 +264,7 @@

-         if (scheme == null) {
-            throw new URIException(URIException.PARSING, "scheme required");
-         }
--        char[] s = scheme.toLowerCase().toCharArray();
-+        char[] s = scheme.toLowerCase(Locale.ENGLISH).toCharArray();
-         if (validate(s, URI.scheme)) {
-             _scheme = s; // is_absoluteURI
-         } else {
-@@ -1945,7 +1945,7 @@

-          * </pre></blockquote><p>
-          */
-         if (at > 0 && at < length && tmp.charAt(at) == ':') {
--            char[] target = tmp.substring(0, at).toLowerCase().toCharArray();
-+            char[] target = tmp.substring(0, at).toLowerCase(Locale.ENGLISH).toCharArray();
-             if (validate(target, scheme)) {
-                 _scheme = target;
-             } else {
-Index: src/java/org/apache/commons/httpclient/HeaderElement.java

-===================================================================

---- src/java/org/apache/commons/httpclient/HeaderElement.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/HeaderElement.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/HeaderElement.java,v 1.23 2004/05/13 04:03:25 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/HttpURL.java

-===================================================================

---- src/java/org/apache/commons/httpclient/HttpURL.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/HttpURL.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/HttpURL.java,v 1.18 2004/09/30 17:26:41 oglueck Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/MethodRetryHandler.java

-===================================================================

---- src/java/org/apache/commons/httpclient/MethodRetryHandler.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/MethodRetryHandler.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/MethodRetryHandler.java,v 1.5 2004/07/05 22:46:58 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/SimpleHttpConnectionManager.java

-===================================================================

---- src/java/org/apache/commons/httpclient/SimpleHttpConnectionManager.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/SimpleHttpConnectionManager.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/SimpleHttpConnectionManager.java,v 1.23 2004/10/16 22:40:08 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-@@ -268,6 +268,8 @@

-      * @since 3.0
-      */
-     public void closeIdleConnections(long idleTimeout) {
-+        if (httpConnection == null)
-+            return;
-         long maxIdleTime = System.currentTimeMillis() - idleTimeout;
-         if (idleStartTime <= maxIdleTime) {
-             httpConnection.close();
-@@ -278,7 +280,8 @@

-      * since 3.1
-      */
-     public void shutdown() {
--        httpConnection.close();
-+        if (httpConnection != null)
-+            httpConnection.close();
-     }
-     
- }
-Index: src/java/org/apache/commons/httpclient/WireLogInputStream.java

-===================================================================

---- src/java/org/apache/commons/httpclient/WireLogInputStream.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/WireLogInputStream.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/WireLogInputStream.java,v 1.15 2004/06/24 21:39:52 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-@@ -79,7 +79,7 @@

-      */
-     public int read() throws IOException {
-         int l = this.in.read();
--        if (l > 0) { 
-+        if (l != -1) { 
-             wire.input(l);
-         }
-         return l;
-Index: src/java/org/apache/commons/httpclient/CircularRedirectException.java

-===================================================================

---- src/java/org/apache/commons/httpclient/CircularRedirectException.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/CircularRedirectException.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/CircularRedirectException.java,v 1.1 2005/01/14 19:40:39 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/HostConfiguration.java

-===================================================================

---- src/java/org/apache/commons/httpclient/HostConfiguration.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/HostConfiguration.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/HostConfiguration.java,v 1.23 2005/01/14 21:16:40 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/ContentLengthInputStream.java

-===================================================================

---- src/java/org/apache/commons/httpclient/ContentLengthInputStream.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/ContentLengthInputStream.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/ContentLengthInputStream.java,v 1.12 2004/10/04 22:05:44 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/Cookie.java

-===================================================================

---- src/java/org/apache/commons/httpclient/Cookie.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/Cookie.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/Cookie.java,v 1.44 2004/06/05 16:49:20 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-@@ -33,6 +33,7 @@

- import java.io.Serializable;
- import java.util.Comparator;
- import java.util.Date;
-+import java.util.Locale;
- 
- import org.apache.commons.httpclient.cookie.CookiePolicy;
- import org.apache.commons.httpclient.cookie.CookieSpec;
-@@ -234,7 +235,7 @@

-             if (ndx != -1) {
-               domain = domain.substring(0, ndx);
-             }
--            cookieDomain = domain.toLowerCase();
-+            cookieDomain = domain.toLowerCase(Locale.ENGLISH);
-         }
-     }
- 
-Index: src/java/org/apache/commons/httpclient/DefaultHttpMethodRetryHandler.java

-===================================================================

---- src/java/org/apache/commons/httpclient/DefaultHttpMethodRetryHandler.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/DefaultHttpMethodRetryHandler.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/DefaultHttpMethodRetryHandler.java,v 1.3 2004/12/20 11:47:46 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/ResponseConsumedWatcher.java

-===================================================================

---- src/java/org/apache/commons/httpclient/ResponseConsumedWatcher.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/ResponseConsumedWatcher.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/ResponseConsumedWatcher.java,v 1.5 2004/04/18 23:51:35 jsdever Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/ChunkedInputStream.java

-===================================================================

---- src/java/org/apache/commons/httpclient/ChunkedInputStream.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/ChunkedInputStream.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/ChunkedInputStream.java,v 1.24 2004/10/10 15:18:55 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-@@ -148,8 +148,11 @@

-                 return -1;
-             }
-         }
--        pos++;
--        return in.read();
-+        int b = in.read();
-+        if (b != -1) {
-+            pos++;
-+        }
-+        return b;
-     }
- 
-     /**
-@@ -179,9 +182,13 @@

-             }
-         }
-         len = Math.min(len, chunkSize - pos);
--        int count = in.read(b, off, len);
--        pos += count;
--        return count;
-+        int bytesRead = in.read(b, off, len);
-+        if (bytesRead != -1) {
-+            pos += bytesRead;
-+            return bytesRead;
-+        } else {
-+            throw new IOException("Truncated chunk");
-+        }
-     }
- 
-     /**
-Index: src/java/org/apache/commons/httpclient/ChunkedOutputStream.java

-===================================================================

---- src/java/org/apache/commons/httpclient/ChunkedOutputStream.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/ChunkedOutputStream.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/ChunkedOutputStream.java,v 1.16 2004/05/13 04:03:25 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/URIException.java

-===================================================================

---- src/java/org/apache/commons/httpclient/URIException.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/URIException.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/URIException.java,v 1.12 2004/09/30 18:53:20 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/ConnectionPoolTimeoutException.java

-===================================================================

---- src/java/org/apache/commons/httpclient/ConnectionPoolTimeoutException.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/ConnectionPoolTimeoutException.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/ConnectionPoolTimeoutException.java,v 1.1 2004/07/05 22:46:58 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/UsernamePasswordCredentials.java

-===================================================================

---- src/java/org/apache/commons/httpclient/UsernamePasswordCredentials.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/UsernamePasswordCredentials.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/UsernamePasswordCredentials.java,v 1.14 2004/04/18 23:51:35 jsdever Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/ProtocolException.java

-===================================================================

---- src/java/org/apache/commons/httpclient/ProtocolException.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/ProtocolException.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/ProtocolException.java,v 1.4 2004/05/13 04:03:25 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/HttpState.java

-===================================================================

---- src/java/org/apache/commons/httpclient/HttpState.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/HttpState.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/HttpState.java,v 1.38 2004/12/20 11:50:54 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/protocol/Protocol.java

-===================================================================

---- src/java/org/apache/commons/httpclient/protocol/Protocol.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/protocol/Protocol.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/protocol/Protocol.java,v 1.10 2004/04/18 23:51:38 jsdever Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-@@ -31,6 +31,7 @@

- 
- import java.util.Collections;
- import java.util.HashMap;
-+import java.util.Locale;
- import java.util.Map;
- 
- import org.apache.commons.httpclient.util.LangUtils;
-@@ -288,7 +289,7 @@

-     public int hashCode() {
-         int hash = LangUtils.HASH_SEED;
-         hash = LangUtils.hashCode(hash, this.defaultPort);
--        hash = LangUtils.hashCode(hash, this.scheme.toLowerCase());
-+        hash = LangUtils.hashCode(hash, this.scheme.toLowerCase(Locale.ENGLISH));
-         hash = LangUtils.hashCode(hash, this.secure);
-         hash = LangUtils.hashCode(hash, this.socketFactory);
-         return hash;
-Index: src/java/org/apache/commons/httpclient/protocol/ProtocolSocketFactory.java

-===================================================================

---- src/java/org/apache/commons/httpclient/protocol/ProtocolSocketFactory.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/protocol/ProtocolSocketFactory.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/protocol/ProtocolSocketFactory.java,v 1.10 2004/05/13 04:01:22 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/protocol/SSLProtocolSocketFactory.java

-===================================================================

---- src/java/org/apache/commons/httpclient/protocol/SSLProtocolSocketFactory.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/protocol/SSLProtocolSocketFactory.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/protocol/SSLProtocolSocketFactory.java,v 1.10 2004/05/13 04:01:22 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/protocol/DefaultProtocolSocketFactory.java

-===================================================================

---- src/java/org/apache/commons/httpclient/protocol/DefaultProtocolSocketFactory.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/protocol/DefaultProtocolSocketFactory.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/protocol/DefaultProtocolSocketFactory.java,v 1.10 2004/05/13 04:01:22 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/protocol/SecureProtocolSocketFactory.java

-===================================================================

---- src/java/org/apache/commons/httpclient/protocol/SecureProtocolSocketFactory.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/protocol/SecureProtocolSocketFactory.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/protocol/SecureProtocolSocketFactory.java,v 1.6 2004/04/18 23:51:38 jsdever Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/protocol/ReflectionSocketFactory.java

-===================================================================

---- src/java/org/apache/commons/httpclient/protocol/ReflectionSocketFactory.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/protocol/ReflectionSocketFactory.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/protocol/ReflectionSocketFactory.java,v 1.4 2004/12/21 23:15:21 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/protocol/ControllerThreadSocketFactory.java

-===================================================================

---- src/java/org/apache/commons/httpclient/protocol/ControllerThreadSocketFactory.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/protocol/ControllerThreadSocketFactory.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/protocol/ControllerThreadSocketFactory.java,v 1.2 2004/04/18 23:51:38 jsdever Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/auth/NTLMScheme.java

-===================================================================

---- src/java/org/apache/commons/httpclient/auth/NTLMScheme.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/auth/NTLMScheme.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/auth/NTLMScheme.java,v 1.21 2004/05/13 04:02:00 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/auth/AuthState.java

-===================================================================

---- src/java/org/apache/commons/httpclient/auth/AuthState.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/auth/AuthState.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/auth/AuthState.java,v 1.3 2004/11/02 19:39:16 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/auth/AuthChallengeProcessor.java

-===================================================================

---- src/java/org/apache/commons/httpclient/auth/AuthChallengeProcessor.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/auth/AuthChallengeProcessor.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/auth/AuthChallengeProcessor.java,v 1.2 2004/04/18 23:51:36 jsdever Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-@@ -32,6 +32,7 @@

- 
- import java.util.Collection;
- import java.util.Iterator;
-+import java.util.Locale;
- import java.util.Map;
- 
- import org.apache.commons.httpclient.params.HttpParams;
-@@ -95,7 +96,7 @@

-         Iterator item = authPrefs.iterator();
-         while (item.hasNext()) {
-             String id = (String) item.next();
--            challenge = (String) challenges.get(id.toLowerCase()); 
-+            challenge = (String) challenges.get(id.toLowerCase(Locale.ENGLISH)); 
-             if (challenge != null) {
-                 if (LOG.isInfoEnabled()) {
-                     LOG.info(id + " authentication scheme selected");
-@@ -154,7 +155,7 @@

-         if (LOG.isDebugEnabled()) {
-             LOG.debug("Using authentication scheme: " + id);
-         }
--        String challenge = (String) challenges.get(id.toLowerCase());
-+        String challenge = (String) challenges.get(id.toLowerCase(Locale.ENGLISH));
-         if (challenge == null) {
-             throw new AuthenticationException(id + 
-                 " authorization challenge expected, but not found");
-Index: src/java/org/apache/commons/httpclient/auth/DigestScheme.java

-===================================================================

---- src/java/org/apache/commons/httpclient/auth/DigestScheme.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/auth/DigestScheme.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/auth/DigestScheme.java,v 1.22 2004/12/30 11:01:27 oglueck Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/auth/BasicScheme.java

-===================================================================

---- src/java/org/apache/commons/httpclient/auth/BasicScheme.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/auth/BasicScheme.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/auth/BasicScheme.java,v 1.17 2004/05/13 04:02:00 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/auth/CredentialsProvider.java

-===================================================================

---- src/java/org/apache/commons/httpclient/auth/CredentialsProvider.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/auth/CredentialsProvider.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/auth/CredentialsProvider.java,v 1.6 2004/07/05 22:46:59 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/auth/NTLM.java

-===================================================================

---- src/java/org/apache/commons/httpclient/auth/NTLM.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/auth/NTLM.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/auth/NTLM.java,v 1.11 2004/05/13 04:02:00 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-@@ -32,6 +32,7 @@

- 
- import java.security.InvalidKeyException;
- import java.security.NoSuchAlgorithmException;
-+import java.util.Locale;
- 
- import javax.crypto.BadPaddingException;
- import javax.crypto.Cipher;
-@@ -230,8 +231,8 @@

-      * @return String the message to add to the HTTP request header.
-      */
-     public String getType1Message(String host, String domain) {
--        host = host.toUpperCase();
--        domain = domain.toUpperCase();
-+        host = host.toUpperCase(Locale.ENGLISH);
-+        domain = domain.toUpperCase(Locale.ENGLISH);
-         byte[] hostBytes = EncodingUtil.getBytes(host, DEFAULT_CHARSET);
-         byte[] domainBytes = EncodingUtil.getBytes(domain, DEFAULT_CHARSET);
- 
-@@ -334,9 +335,9 @@

- 
-         int ntRespLen = 0;
-         int lmRespLen = 24;
--        domain = domain.toUpperCase();
--        host = host.toUpperCase();
--        user = user.toUpperCase();
-+        domain = domain.toUpperCase(Locale.ENGLISH);
-+        host = host.toUpperCase(Locale.ENGLISH);
-+        user = user.toUpperCase(Locale.ENGLISH);
-         byte[] domainBytes = EncodingUtil.getBytes(domain, DEFAULT_CHARSET);
-         byte[] hostBytes = EncodingUtil.getBytes(host, DEFAULT_CHARSET);
-         byte[] userBytes = EncodingUtil.getBytes(user, credentialCharset);
-@@ -429,7 +430,7 @@

-      */
-     private byte[] hashPassword(String password, byte[] nonce)
-         throws AuthenticationException {
--        byte[] passw = EncodingUtil.getBytes(password.toUpperCase(), credentialCharset);
-+        byte[] passw = EncodingUtil.getBytes(password.toUpperCase(Locale.ENGLISH), credentialCharset);
-         byte[] lmPw1 = new byte[7];
-         byte[] lmPw2 = new byte[7];
- 
-Index: src/java/org/apache/commons/httpclient/auth/HttpAuthenticator.java

-===================================================================

---- src/java/org/apache/commons/httpclient/auth/HttpAuthenticator.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/auth/HttpAuthenticator.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/auth/HttpAuthenticator.java,v 1.19 2004/10/06 17:32:04 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/auth/RFC2617Scheme.java

-===================================================================

---- src/java/org/apache/commons/httpclient/auth/RFC2617Scheme.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/auth/RFC2617Scheme.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/auth/RFC2617Scheme.java,v 1.10 2004/05/13 04:02:00 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-@@ -30,6 +30,7 @@

- 
- package org.apache.commons.httpclient.auth;
- 
-+import java.util.Locale;
- import java.util.Map;
- 
- /**
-@@ -117,7 +118,7 @@

-         if (this.params == null) {
-             return null;
-         }
--        return (String) this.params.get(name.toLowerCase());
-+        return (String) this.params.get(name.toLowerCase(Locale.ENGLISH));
-     }
- 
-     /**
-Index: src/java/org/apache/commons/httpclient/auth/AuthChallengeParser.java

-===================================================================

---- src/java/org/apache/commons/httpclient/auth/AuthChallengeParser.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/auth/AuthChallengeParser.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/auth/AuthChallengeParser.java,v 1.10 2004/05/13 04:02:00 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-@@ -32,6 +32,7 @@

- 
- import java.util.HashMap;
- import java.util.List;
-+import java.util.Locale;
- import java.util.Map;
- 
- import org.apache.commons.httpclient.Header;
-@@ -74,7 +75,7 @@

-         if (s.equals("")) {
-             throw new MalformedChallengeException("Invalid challenge: " + challengeStr);
-         }
--        return s.toLowerCase();
-+        return s.toLowerCase(Locale.ENGLISH);
-     }
- 
-     /** 
-@@ -103,7 +104,7 @@

-             challengeStr.substring(idx + 1, challengeStr.length()), ',');
-         for (int i = 0; i < params.size(); i++) {
-             NameValuePair param = (NameValuePair) params.get(i);
--            map.put(param.getName().toLowerCase(), param.getValue());
-+            map.put(param.getName().toLowerCase(Locale.ENGLISH), param.getValue());
-         }
-         return map;
-     }
-Index: src/java/org/apache/commons/httpclient/auth/AuthPolicy.java

-===================================================================

---- src/java/org/apache/commons/httpclient/auth/AuthPolicy.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/auth/AuthPolicy.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/auth/AuthPolicy.java,v 1.6 2004/05/13 04:02:00 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-@@ -33,6 +33,7 @@

- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
-+import java.util.Locale;
- 
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
-@@ -129,8 +130,8 @@

-         if (clazz == null) {
-             throw new IllegalArgumentException("Authentication scheme class may not be null");
-         }
--        SCHEMES.put(id.toLowerCase(), clazz);
--        SCHEME_LIST.add(id.toLowerCase());
-+        SCHEMES.put(id.toLowerCase(Locale.ENGLISH), clazz);
-+        SCHEME_LIST.add(id.toLowerCase(Locale.ENGLISH));
-     }
- 
-     /**
-@@ -143,8 +144,8 @@

-          if (id == null) {
-              throw new IllegalArgumentException("Id may not be null");
-          }
--        SCHEMES.remove(id.toLowerCase());
--        SCHEME_LIST.remove(id.toLowerCase());
-+        SCHEMES.remove(id.toLowerCase(Locale.ENGLISH));
-+        SCHEME_LIST.remove(id.toLowerCase(Locale.ENGLISH));
-     }
- 
-     /**
-@@ -162,7 +163,7 @@

-         if (id == null) {
-             throw new IllegalArgumentException("Id may not be null");
-         }
--        Class clazz = (Class)SCHEMES.get(id.toLowerCase());
-+        Class clazz = (Class)SCHEMES.get(id.toLowerCase(Locale.ENGLISH));
-         if (clazz != null) {
-             try {
-                 return (AuthScheme)clazz.newInstance();
-Index: src/java/org/apache/commons/httpclient/auth/AuthSchemeBase.java

-===================================================================

---- src/java/org/apache/commons/httpclient/auth/AuthSchemeBase.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/auth/AuthSchemeBase.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/auth/AuthSchemeBase.java,v 1.7 2004/04/18 23:51:36 jsdever Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/auth/HttpAuthRealm.java

-===================================================================

---- src/java/org/apache/commons/httpclient/auth/HttpAuthRealm.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/auth/HttpAuthRealm.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/auth/HttpAuthRealm.java,v 1.9 2004/06/12 22:47:23 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/auth/AuthChallengeException.java

-===================================================================

---- src/java/org/apache/commons/httpclient/auth/AuthChallengeException.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/auth/AuthChallengeException.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/auth/AuthChallengeException.java,v 1.2 2004/04/18 23:51:36 jsdever Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/auth/InvalidCredentialsException.java

-===================================================================

---- src/java/org/apache/commons/httpclient/auth/InvalidCredentialsException.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/auth/InvalidCredentialsException.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/auth/InvalidCredentialsException.java,v 1.4 2004/05/13 04:02:00 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/auth/AuthScheme.java

-===================================================================

---- src/java/org/apache/commons/httpclient/auth/AuthScheme.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/auth/AuthScheme.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/auth/AuthScheme.java,v 1.12 2004/05/13 04:02:00 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/auth/MalformedChallengeException.java

-===================================================================

---- src/java/org/apache/commons/httpclient/auth/MalformedChallengeException.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/auth/MalformedChallengeException.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/auth/MalformedChallengeException.java,v 1.6 2004/05/13 04:02:00 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/auth/AuthScope.java

-===================================================================

---- src/java/org/apache/commons/httpclient/auth/AuthScope.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/auth/AuthScope.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/auth/AuthScope.java,v 1.2 2004/06/23 06:50:25 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-@@ -30,6 +30,8 @@

- 
- package org.apache.commons.httpclient.auth;
- 
-+import java.util.Locale;
-+
- import org.apache.commons.httpclient.util.LangUtils;
- 
- /** 
-@@ -106,10 +108,10 @@

-     public AuthScope(final String host, int port, 
-         final String realm, final String scheme)
-     {
--        this.host =   (host == null)   ? ANY_HOST: host.toLowerCase();
-+        this.host =   (host == null)   ? ANY_HOST: host.toLowerCase(Locale.ENGLISH);
-         this.port =   (port < 0)       ? ANY_PORT: port;
-         this.realm =  (realm == null)  ? ANY_REALM: realm;
--        this.scheme = (scheme == null) ? ANY_SCHEME: scheme.toUpperCase();;
-+        this.scheme = (scheme == null) ? ANY_SCHEME: scheme.toUpperCase(Locale.ENGLISH);
-     }
-     
-     /** Creates a new credentials scope for the given 
-@@ -294,7 +296,7 @@

-     public String toString() {
-         StringBuffer buffer = new StringBuffer();
-         if (this.scheme != null) {
--            buffer.append(this.scheme.toUpperCase());
-+            buffer.append(this.scheme.toUpperCase(Locale.ENGLISH));
-             buffer.append(' ');
-         }
-         if (this.realm != null) {
-Index: src/java/org/apache/commons/httpclient/auth/CredentialsNotAvailableException.java

-===================================================================

---- src/java/org/apache/commons/httpclient/auth/CredentialsNotAvailableException.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/auth/CredentialsNotAvailableException.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/auth/CredentialsNotAvailableException.java,v 1.4 2004/05/13 04:02:00 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/auth/AuthenticationException.java

-===================================================================

---- src/java/org/apache/commons/httpclient/auth/AuthenticationException.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/auth/AuthenticationException.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/auth/AuthenticationException.java,v 1.6 2004/05/13 04:02:00 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/methods/TraceMethod.java

-===================================================================

---- src/java/org/apache/commons/httpclient/methods/TraceMethod.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/methods/TraceMethod.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/methods/multipart/PartBase.java

-===================================================================

---- src/java/org/apache/commons/httpclient/methods/multipart/PartBase.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/methods/multipart/PartBase.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/methods/multipart/PartBase.java,v 1.5 2004/04/18 23:51:37 jsdever Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/methods/multipart/FilePart.java

-===================================================================

---- src/java/org/apache/commons/httpclient/methods/multipart/FilePart.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/methods/multipart/FilePart.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/methods/multipart/FilePart.java,v 1.19 2004/04/18 23:51:37 jsdever Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/methods/multipart/Part.java

-===================================================================

---- src/java/org/apache/commons/httpclient/methods/multipart/Part.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/methods/multipart/Part.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/methods/multipart/Part.java,v 1.16 2005/01/14 21:16:40 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/methods/multipart/FilePartSource.java

-===================================================================

---- src/java/org/apache/commons/httpclient/methods/multipart/FilePartSource.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/methods/multipart/FilePartSource.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/methods/multipart/FilePartSource.java,v 1.10 2004/04/18 23:51:37 jsdever Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/methods/multipart/MultipartRequestEntity.java

-===================================================================

---- src/java/org/apache/commons/httpclient/methods/multipart/MultipartRequestEntity.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/methods/multipart/MultipartRequestEntity.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/methods/multipart/MultipartRequestEntity.java,v 1.1 2004/10/06 03:39:59 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/methods/multipart/PartSource.java

-===================================================================

---- src/java/org/apache/commons/httpclient/methods/multipart/PartSource.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/methods/multipart/PartSource.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/methods/multipart/PartSource.java,v 1.6 2004/04/18 23:51:37 jsdever Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/methods/multipart/ByteArrayPartSource.java

-===================================================================

---- src/java/org/apache/commons/httpclient/methods/multipart/ByteArrayPartSource.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/methods/multipart/ByteArrayPartSource.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/methods/multipart/ByteArrayPartSource.java,v 1.7 2004/04/18 23:51:37 jsdever Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/methods/multipart/StringPart.java

-===================================================================

---- src/java/org/apache/commons/httpclient/methods/multipart/StringPart.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/methods/multipart/StringPart.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/methods/multipart/StringPart.java,v 1.11 2004/04/18 23:51:37 jsdever Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/methods/HeadMethod.java

-===================================================================

---- src/java/org/apache/commons/httpclient/methods/HeadMethod.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/methods/HeadMethod.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/methods/HeadMethod.java,v 1.29 2004/06/13 20:22:19 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/methods/DeleteMethod.java

-===================================================================

---- src/java/org/apache/commons/httpclient/methods/DeleteMethod.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/methods/DeleteMethod.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/methods/DeleteMethod.java,v 1.14 2004/04/18 23:51:37 jsdever Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/methods/ByteArrayRequestEntity.java

-===================================================================

---- src/java/org/apache/commons/httpclient/methods/ByteArrayRequestEntity.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/methods/ByteArrayRequestEntity.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/methods/ByteArrayRequestEntity.java,v 1.3 2004/05/13 02:26:08 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/methods/PutMethod.java

-===================================================================

---- src/java/org/apache/commons/httpclient/methods/PutMethod.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/methods/PutMethod.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/methods/PutMethod.java,v 1.26 2004/04/18 23:51:37 jsdever Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/methods/EntityEnclosingMethod.java

-===================================================================

---- src/java/org/apache/commons/httpclient/methods/EntityEnclosingMethod.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/methods/EntityEnclosingMethod.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/methods/EntityEnclosingMethod.java,v 1.39 2004/07/03 14:27:03 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/methods/GetMethod.java

-===================================================================

---- src/java/org/apache/commons/httpclient/methods/GetMethod.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/methods/GetMethod.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/methods/GetMethod.java,v 1.29 2004/06/13 20:22:19 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/methods/InputStreamRequestEntity.java

-===================================================================

---- src/java/org/apache/commons/httpclient/methods/InputStreamRequestEntity.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/methods/InputStreamRequestEntity.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/methods/InputStreamRequestEntity.java,v 1.4 2004/05/17 21:46:03 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/methods/RequestEntity.java

-===================================================================

---- src/java/org/apache/commons/httpclient/methods/RequestEntity.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/methods/RequestEntity.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/methods/RequestEntity.java,v 1.4 2004/05/17 21:46:03 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/methods/PostMethod.java

-===================================================================

---- src/java/org/apache/commons/httpclient/methods/PostMethod.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/methods/PostMethod.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/methods/PostMethod.java,v 1.58 2004/08/08 12:50:09 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/methods/MultipartPostMethod.java

-===================================================================

---- src/java/org/apache/commons/httpclient/methods/MultipartPostMethod.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/methods/MultipartPostMethod.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/methods/MultipartPostMethod.java,v 1.27 2004/10/06 03:39:59 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/methods/OptionsMethod.java

-===================================================================

---- src/java/org/apache/commons/httpclient/methods/OptionsMethod.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/methods/OptionsMethod.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/methods/OptionsMethod.java,v 1.15 2004/04/18 23:51:37 jsdever Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-@@ -38,6 +38,7 @@

- import org.apache.commons.logging.LogFactory;
- import org.apache.commons.logging.Log;
- import java.util.Enumeration;
-+import java.util.Locale;
- import java.util.StringTokenizer;
- import java.util.Vector;
- 
-@@ -169,7 +170,7 @@

-                 new StringTokenizer(allowHeaderValue, ",");
-             while (tokenizer.hasMoreElements()) {
-                 String methodAllowed =
--                    tokenizer.nextToken().trim().toUpperCase();
-+                    tokenizer.nextToken().trim().toUpperCase(Locale.ENGLISH);
-                 methodsAllowed.addElement(methodAllowed);
-             }
-         }
-Index: src/java/org/apache/commons/httpclient/methods/ExpectContinueMethod.java

-===================================================================

---- src/java/org/apache/commons/httpclient/methods/ExpectContinueMethod.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/methods/ExpectContinueMethod.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/methods/ExpectContinueMethod.java,v 1.13 2004/05/08 10:12:08 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/HttpStatus.java

-===================================================================

---- src/java/org/apache/commons/httpclient/HttpStatus.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/HttpStatus.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/HttpStatus.java,v 1.18 2004/05/02 11:21:13 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/cookie/CookieSpecBase.java

-===================================================================

---- src/java/org/apache/commons/httpclient/cookie/CookieSpecBase.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/cookie/CookieSpecBase.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/cookie/CookieSpecBase.java,v 1.28 2004/11/06 19:15:42 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-@@ -34,6 +34,7 @@

- import java.util.Date;
- import java.util.LinkedList;
- import java.util.List;
-+import java.util.Locale;
- 
- import org.apache.commons.httpclient.Cookie;
- import org.apache.commons.httpclient.Header;
-@@ -135,7 +136,7 @@

-         if (path.trim().equals("")) {
-             path = PATH_DELIM;
-         }
--        host = host.toLowerCase();
-+        host = host.toLowerCase(Locale.ENGLISH);
- 
-         String defaultPath = path;    
-         int lastSlashIndex = defaultPath.lastIndexOf(PATH_DELIM);
-@@ -150,7 +151,7 @@

-         HeaderElement[] headerElements = null;
- 
-         boolean isNetscapeCookie = false; 
--        int i1 = header.toLowerCase().indexOf("expires=");
-+        int i1 = header.toLowerCase(Locale.ENGLISH).indexOf("expires=");
-         if (i1 != -1) {
-             i1 += "expires=".length();
-             int i2 = header.indexOf(";", i1);
-@@ -269,7 +270,7 @@

-         if (cookie == null) {
-             throw new IllegalArgumentException("Cookie may not be null.");
-         }
--        final String paramName = attribute.getName().toLowerCase();
-+        final String paramName = attribute.getName().toLowerCase(Locale.ENGLISH);
-         String paramValue = attribute.getValue();
- 
-         if (paramName.equals("path")) {
-@@ -386,7 +387,7 @@

-         if (path.trim().equals("")) {
-             path = PATH_DELIM;
-         }
--        host = host.toLowerCase();
-+        host = host.toLowerCase(Locale.ENGLISH);
-         // check version
-         if (cookie.getVersion() < 0) {
-             throw new MalformedCookieException ("Illegal version number " 
-@@ -474,7 +475,7 @@

-         if (path.trim().equals("")) {
-             path = PATH_DELIM;
-         }
--        host = host.toLowerCase();
-+        host = host.toLowerCase(Locale.ENGLISH);
-         if (cookie.getDomain() == null) {
-             LOG.warn("Invalid cookie state: domain not specified");
-             return false;
-Index: src/java/org/apache/commons/httpclient/cookie/MalformedCookieException.java

-===================================================================

---- src/java/org/apache/commons/httpclient/cookie/MalformedCookieException.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/cookie/MalformedCookieException.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/cookie/MalformedCookieException.java,v 1.8 2004/05/13 04:02:00 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/cookie/RFC2109Spec.java

-===================================================================

---- src/java/org/apache/commons/httpclient/cookie/RFC2109Spec.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/cookie/RFC2109Spec.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/cookie/RFC2109Spec.java,v 1.21 2004/06/05 16:49:20 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * 
-@@ -30,6 +30,8 @@

- 
- package org.apache.commons.httpclient.cookie;
- 
-+import java.util.Locale;
-+
- import org.apache.commons.httpclient.NameValuePair;
- import org.apache.commons.httpclient.Cookie;
- import org.apache.commons.httpclient.util.ParameterFormatter;
-@@ -87,7 +89,7 @@

-         if (cookie == null) {
-             throw new IllegalArgumentException("Cookie may not be null.");
-         }
--        final String paramName = attribute.getName().toLowerCase();
-+        final String paramName = attribute.getName().toLowerCase(Locale.ENGLISH);
-         final String paramValue = attribute.getValue();
- 
-         if (paramName.equals("path")) {
-@@ -164,7 +166,7 @@

-                     + cookie.getDomain() 
-                     + "\" violates RFC 2109: domain must contain an embedded dot");
-             }
--            host = host.toLowerCase();
-+            host = host.toLowerCase(Locale.ENGLISH);
-             if (!host.endsWith(cookie.getDomain())) {
-                 throw new MalformedCookieException(
-                     "Illegal domain attribute \"" + cookie.getDomain() 
-Index: src/java/org/apache/commons/httpclient/cookie/CookieSpec.java

-===================================================================

---- src/java/org/apache/commons/httpclient/cookie/CookieSpec.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/cookie/CookieSpec.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/cookie/CookieSpec.java,v 1.11 2004/09/14 20:11:31 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/cookie/CookiePolicy.java

-===================================================================

---- src/java/org/apache/commons/httpclient/cookie/CookiePolicy.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/cookie/CookiePolicy.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/cookie/CookiePolicy.java,v 1.15 2004/09/14 20:11:31 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-@@ -32,6 +32,7 @@

- 
- import java.util.Collections;
- import java.util.HashMap;
-+import java.util.Locale;
- import java.util.Map;
- 
- import org.apache.commons.logging.Log;
-@@ -171,7 +172,7 @@

-         if (clazz == null) {
-             throw new IllegalArgumentException("Cookie spec class may not be null");
-         }
--        SPECS.put(id.toLowerCase(), clazz);
-+        SPECS.put(id.toLowerCase(Locale.ENGLISH), clazz);
-     }
- 
-     /**
-@@ -185,7 +186,7 @@

-          if (id == null) {
-              throw new IllegalArgumentException("Id may not be null");
-          }
--         SPECS.remove(id.toLowerCase());
-+         SPECS.remove(id.toLowerCase(Locale.ENGLISH));
-     }
- 
-     /**
-@@ -205,7 +206,7 @@

-         if (id == null) {
-             throw new IllegalArgumentException("Id may not be null");
-         }
--        Class clazz = (Class)SPECS.get(id.toLowerCase());
-+        Class clazz = (Class)SPECS.get(id.toLowerCase(Locale.ENGLISH));
- 
-         if (clazz != null) {
-             try {
-Index: src/java/org/apache/commons/httpclient/cookie/Cookie2.java

-===================================================================

---- src/java/org/apache/commons/httpclient/cookie/Cookie2.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/cookie/Cookie2.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /cvsroot/httpc-cookie2/httpc-cookie2/httpcookie2SVN-patch.082805-2100.diff,v 1.1 2005/08/29 05:01:58 sjain700 Exp $
-+ * $HeadURL$
-  * $Revision:400312 $
-  * $Date:2006-05-06 14:49:41 +0200 (Sat, 06 May 2006) $
-  *
-Index: src/java/org/apache/commons/httpclient/cookie/IgnoreCookiesSpec.java

-===================================================================

---- src/java/org/apache/commons/httpclient/cookie/IgnoreCookiesSpec.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/cookie/IgnoreCookiesSpec.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/cookie/IgnoreCookiesSpec.java,v 1.6 2004/09/14 20:11:31 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/cookie/RFC2965Spec.java

-===================================================================

---- src/java/org/apache/commons/httpclient/cookie/RFC2965Spec.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/cookie/RFC2965Spec.java	(revision 915934)

-@@ -38,6 +38,7 @@

- import java.util.Iterator;
- import java.util.LinkedList;
- import java.util.List;
-+import java.util.Locale;
- import java.util.Map;
- import java.util.StringTokenizer;
- 
-@@ -275,7 +276,7 @@

-                 Map attribmap = new HashMap(parameters.length); 
-                 for (int j = parameters.length - 1; j >= 0; j--) {
-                     NameValuePair param = parameters[j];
--                    attribmap.put(param.getName().toLowerCase(), param);
-+                    attribmap.put(param.getName().toLowerCase(Locale.ENGLISH), param);
-                 }
-                 for (Iterator it = attribmap.entrySet().iterator(); it.hasNext(); ) {
-                     Map.Entry entry = (Map.Entry) it.next();
-@@ -309,7 +310,7 @@

-         if (cookie == null) {
-             throw new IllegalArgumentException("Cookie may not be null.");
-         }
--        final String paramName = attribute.getName().toLowerCase();
-+        final String paramName = attribute.getName().toLowerCase(Locale.ENGLISH);
-         final String paramValue = attribute.getValue();
- 
-         CookieAttributeHandler handler = findAttribHandler(paramName);
-@@ -556,7 +557,7 @@

-      * @return
-      */
-     private static String getEffectiveHost(final String host) {
--        String effectiveHost = host.toLowerCase();
-+        String effectiveHost = host.toLowerCase(Locale.ENGLISH);
-         if (host.indexOf('.') < 0) {
-             effectiveHost += ".local";
-         }
-@@ -712,7 +713,7 @@

-                 throw new MalformedCookieException(
-                         "Blank value for domain attribute");
-             }
--            domain = domain.toLowerCase();
-+            domain = domain.toLowerCase(Locale.ENGLISH);
-             if (!domain.startsWith(".")) {
-                 // Per RFC 2965 section 3.2.2
-                 // "... If an explicitly specified value does not start with
-@@ -736,12 +737,12 @@

-             if (origin == null) {
-                 throw new IllegalArgumentException("Cookie origin may not be null");
-             }
--            String host = origin.getHost().toLowerCase();
-+            String host = origin.getHost().toLowerCase(Locale.ENGLISH);
-             if (cookie.getDomain() == null) {
-                 throw new MalformedCookieException("Invalid cookie state: " +
-                                                    "domain not specified");
-             }
--            String cookieDomain = cookie.getDomain().toLowerCase();
-+            String cookieDomain = cookie.getDomain().toLowerCase(Locale.ENGLISH);
- 
-             if (cookie.isDomainAttributeSpecified()) {
-                 // Domain attribute must start with a dot
-@@ -799,7 +800,7 @@

-             if (origin == null) {
-                 throw new IllegalArgumentException("Cookie origin may not be null");
-             }
--            String host = origin.getHost().toLowerCase();
-+            String host = origin.getHost().toLowerCase(Locale.ENGLISH);
-             String cookieDomain = cookie.getDomain();
- 
-             // The effective host name MUST domain-match the Domain
-Index: src/java/org/apache/commons/httpclient/cookie/CookieVersionSupport.java

-===================================================================

---- src/java/org/apache/commons/httpclient/cookie/CookieVersionSupport.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/cookie/CookieVersionSupport.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/cookie/CookiePathComparator.java

-===================================================================

---- src/java/org/apache/commons/httpclient/cookie/CookiePathComparator.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/cookie/CookiePathComparator.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header$
-+ * $HeadURL$
-  * $Revision:400312 $
-  * $Date:2006-05-06 14:49:41 +0200 (Sat, 06 May 2006) $
-  *
-Index: src/java/org/apache/commons/httpclient/cookie/NetscapeDraftSpec.java

-===================================================================

---- src/java/org/apache/commons/httpclient/cookie/NetscapeDraftSpec.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/cookie/NetscapeDraftSpec.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/cookie/NetscapeDraftSpec.java,v 1.11 2004/05/13 04:02:00 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-@@ -125,7 +125,7 @@

-         if (path.trim().equals("")) {
-             path = PATH_DELIM;
-         }
--        host = host.toLowerCase();
-+        host = host.toLowerCase(Locale.ENGLISH);
- 
-         String defaultPath = path;    
-         int lastSlashIndex = defaultPath.lastIndexOf(PATH_DELIM);
-@@ -174,7 +174,7 @@

-         if (cookie == null) {
-             throw new IllegalArgumentException("Cookie may not be null.");
-         }
--        final String paramName = attribute.getName().toLowerCase();
-+        final String paramName = attribute.getName().toLowerCase(Locale.ENGLISH);
-         final String paramValue = attribute.getValue();
- 
-         if (paramName.equals("expires")) {
-@@ -256,7 +256,7 @@

-      * @return True if the specified domain is "special"
-      */
-     private static boolean isSpecialDomain(final String domain) {
--        final String ucDomain = domain.toUpperCase();
-+        final String ucDomain = domain.toUpperCase(Locale.ENGLISH);
-         if (ucDomain.endsWith(".COM") 
-            || ucDomain.endsWith(".EDU")
-            || ucDomain.endsWith(".NET")
-Index: src/java/org/apache/commons/httpclient/ConnectMethod.java

-===================================================================

---- src/java/org/apache/commons/httpclient/ConnectMethod.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/ConnectMethod.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/ConnectMethod.java,v 1.29 2004/06/24 21:39:52 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/AutoCloseInputStream.java

-===================================================================

---- src/java/org/apache/commons/httpclient/AutoCloseInputStream.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/AutoCloseInputStream.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/AutoCloseInputStream.java,v 1.9 2004/04/18 23:51:34 jsdever Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/HttpConnectionManager.java

-===================================================================

---- src/java/org/apache/commons/httpclient/HttpConnectionManager.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/HttpConnectionManager.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/HttpConnectionManager.java,v 1.24 2004/07/05 22:46:58 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/HttpParser.java

-===================================================================

---- src/java/org/apache/commons/httpclient/HttpParser.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/HttpParser.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/HttpParser.java,v 1.13 2005/01/11 13:57:06 oglueck Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/Credentials.java

-===================================================================

---- src/java/org/apache/commons/httpclient/Credentials.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/Credentials.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/Credentials.java,v 1.9 2004/04/18 23:51:34 jsdever Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/HttpConnection.java

-===================================================================

---- src/java/org/apache/commons/httpclient/HttpConnection.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/HttpConnection.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/HttpConnection.java,v 1.107 2005/01/14 21:30:59 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-@@ -892,7 +892,9 @@

-     public boolean isResponseAvailable(int timeout) 
-         throws IOException {
-         LOG.trace("enter HttpConnection.isResponseAvailable(int)");
--        assertOpen();
-+        if (!this.isOpen) {
-+            return false;
-+        }
-         boolean result = false;
-         if (this.inputStream.available() > 0) {
-             result = true;
-@@ -1105,7 +1107,7 @@

-      *
-      * @throws IllegalStateException if the connection is not open
-      * @throws IOException if an I/O problem occurs
--     * @return a line from the response
-+     * @return a line from the response or null at the end of the stream
-      * 
-      * @since 3.0
-      */
-Index: src/java/org/apache/commons/httpclient/params/DefaultHttpParamsFactory.java

-===================================================================

---- src/java/org/apache/commons/httpclient/params/DefaultHttpParamsFactory.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/params/DefaultHttpParamsFactory.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/params/DefaultHttpParamsFactory.java,v 1.16 2004/11/20 21:48:47 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-@@ -32,6 +32,7 @@

- 
- import java.util.ArrayList;
- import java.util.Arrays;
-+import java.util.Locale;
- 
- import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
- import org.apache.commons.httpclient.HttpVersion;
-@@ -115,7 +116,7 @@

-         } catch (SecurityException ignore) {
-         }
-         if (preemptiveDefault != null) {
--            preemptiveDefault = preemptiveDefault.trim().toLowerCase();
-+            preemptiveDefault = preemptiveDefault.trim().toLowerCase(Locale.ENGLISH);
-             if (preemptiveDefault.equals("true")) {
-                 params.setParameter(HttpClientParams.PREEMPTIVE_AUTHENTICATION, Boolean.TRUE);
-             } else if (preemptiveDefault.equals("false")) {
-Index: src/java/org/apache/commons/httpclient/params/HostParams.java

-===================================================================

---- src/java/org/apache/commons/httpclient/params/HostParams.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/params/HostParams.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/params/HostParams.java,v 1.5 2004/10/06 17:32:04 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/params/HttpClientParams.java

-===================================================================

---- src/java/org/apache/commons/httpclient/params/HttpClientParams.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/params/HttpClientParams.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/params/HttpClientParams.java,v 1.7 2004/05/13 04:01:22 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/params/HttpConnectionParams.java

-===================================================================

---- src/java/org/apache/commons/httpclient/params/HttpConnectionParams.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/params/HttpConnectionParams.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/params/HttpConnectionParams.java,v 1.6 2004/09/15 20:32:21 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/params/HttpParams.java

-===================================================================

---- src/java/org/apache/commons/httpclient/params/HttpParams.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/params/HttpParams.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/params/HttpParams.java,v 1.6 2004/05/13 04:01:22 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/params/HttpMethodParams.java

-===================================================================

---- src/java/org/apache/commons/httpclient/params/HttpMethodParams.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/params/HttpMethodParams.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/params/HttpMethodParams.java,v 1.17 2004/10/06 17:32:04 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/params/DefaultHttpParams.java

-===================================================================

---- src/java/org/apache/commons/httpclient/params/DefaultHttpParams.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/params/DefaultHttpParams.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/params/DefaultHttpParams.java,v 1.9 2004/12/21 23:15:21 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/params/HttpParamsFactory.java

-===================================================================

---- src/java/org/apache/commons/httpclient/params/HttpParamsFactory.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/params/HttpParamsFactory.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/params/HttpParamsFactory.java,v 1.5 2004/05/13 04:01:22 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/params/HttpConnectionManagerParams.java

-===================================================================

---- src/java/org/apache/commons/httpclient/params/HttpConnectionManagerParams.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/params/HttpConnectionManagerParams.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/params/HttpConnectionManagerParams.java,v 1.9 2004/09/13 16:25:20 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/HttpMethodRetryHandler.java

-===================================================================

---- src/java/org/apache/commons/httpclient/HttpMethodRetryHandler.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/HttpMethodRetryHandler.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/HttpMethodRetryHandler.java,v 1.2 2004/09/14 20:11:31 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/HeaderGroup.java

-===================================================================

---- src/java/org/apache/commons/httpclient/HeaderGroup.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/HeaderGroup.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/HeaderGroup.java,v 1.8 2004/05/13 04:03:25 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-@@ -33,6 +33,7 @@

- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.List;
-+import java.util.Locale;
- 
- /**
-  * A class for combining a set of headers.  This class allows for multiple
-@@ -122,7 +123,7 @@

-                 valueBuffer.append(headers[i].getValue());
-             }
-             
--            return new Header(name.toLowerCase(), valueBuffer.toString());
-+            return new Header(name.toLowerCase(Locale.ENGLISH), valueBuffer.toString());
-         }
-     }
-     
-Index: src/java/org/apache/commons/httpclient/WireLogOutputStream.java

-===================================================================

---- src/java/org/apache/commons/httpclient/WireLogOutputStream.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/WireLogOutputStream.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/WireLogOutputStream.java,v 1.7 2004/06/24 21:39:52 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/MultiThreadedHttpConnectionManager.java

-===================================================================

---- src/java/org/apache/commons/httpclient/MultiThreadedHttpConnectionManager.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/MultiThreadedHttpConnectionManager.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/MultiThreadedHttpConnectionManager.java,v 1.47 2004/12/21 11:27:55 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/Wire.java

-===================================================================

---- src/java/org/apache/commons/httpclient/Wire.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/Wire.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/Wire.java,v 1.9 2004/06/24 21:39:52 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/HttpRecoverableException.java

-===================================================================

---- src/java/org/apache/commons/httpclient/HttpRecoverableException.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/HttpRecoverableException.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/HttpRecoverableException.java,v 1.15 2004/07/05 22:46:58 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/DefaultMethodRetryHandler.java

-===================================================================

---- src/java/org/apache/commons/httpclient/DefaultMethodRetryHandler.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/DefaultMethodRetryHandler.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/DefaultMethodRetryHandler.java,v 1.4 2004/07/05 22:46:58 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/NoHttpResponseException.java

-===================================================================

---- src/java/org/apache/commons/httpclient/NoHttpResponseException.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/NoHttpResponseException.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/NoHttpResponseException.java,v 1.1 2004/07/05 22:46:58 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/HttpMethodBase.java

-===================================================================

---- src/java/org/apache/commons/httpclient/HttpMethodBase.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/HttpMethodBase.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/HttpMethodBase.java,v 1.222 2005/01/14 21:16:40 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-@@ -36,6 +36,7 @@

- import java.io.InputStream;
- import java.io.InterruptedIOException;
- import java.util.Collection;
-+import java.util.Locale;
- 
- import org.apache.commons.httpclient.auth.AuthState;
- import org.apache.commons.httpclient.cookie.CookiePolicy;
-@@ -1503,7 +1504,7 @@

-         // Absolute or relative URL?
-         if (!connection.isTransparent()) {
-             Protocol protocol = connection.getProtocol();
--            buf.append(protocol.getScheme().toLowerCase());
-+            buf.append(protocol.getScheme().toLowerCase(Locale.ENGLISH));
-             buf.append("://");
-             buf.append(connection.getHost());
-             if ((connection.getPort() != -1) 
-@@ -1976,9 +1977,6 @@

-                 throw new NoHttpResponseException("The server " + conn.getHost() + 
-                     " failed to respond");
-             }
--            if (Wire.HEADER_WIRE.enabled()) {
--                Wire.HEADER_WIRE.input(s + "\r\n");
--            }
-             if (s != null && StatusLine.startsWithHTTP(s)) {
-                 // Got one
-                 break;
-@@ -2495,12 +2493,14 @@

-     void fakeResponse(
-         StatusLine statusline, 
-         HeaderGroup responseheaders,
-+        HttpConnection conn,
-         InputStream responseStream
-     ) {
-         // set used so that the response can be read
-         this.used = true;
-         this.statusLine = statusline;
-         this.responseHeaders = responseheaders;
-+        this.responseConnection = conn;
-         this.responseBody = null;
-         this.responseStream = responseStream;
-     }
-Index: src/java/org/apache/commons/httpclient/HttpMethodDirector.java

-===================================================================

---- src/java/org/apache/commons/httpclient/HttpMethodDirector.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/HttpMethodDirector.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/HttpMethodDirector.java,v 1.34 2005/01/14 19:40:39 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-@@ -516,7 +516,6 @@

-             this.connectMethod = null;
-             return true;
-         } else {
--            this.conn.close();
-             return false;
-         }
-     }
-@@ -551,6 +550,7 @@

-             ((HttpMethodBase) method).fakeResponse(
-                 this.connectMethod.getStatusLine(),
-                 this.connectMethod.getResponseHeaderGroup(),
-+                conn,
-                 this.connectMethod.getResponseBodyAsStream()
-             );
-             method.getProxyAuthState().setAuthScheme(
-@@ -645,7 +645,8 @@

- 				+ "' to '" + redirectUri.getEscapedURI());
- 		}
-         //And finally invalidate the actual authentication scheme
--        method.getHostAuthState().invalidate(); 
-+                method.getHostAuthState().invalidate(); 
-+                method.getProxyAuthState().invalidate(); 
- 		return true;
- 	}
- 
-Index: src/java/org/apache/commons/httpclient/HttpConstants.java

-===================================================================

---- src/java/org/apache/commons/httpclient/HttpConstants.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/HttpConstants.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/HttpConstants.java,v 1.15 2004/04/18 23:51:35 jsdever Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/HttpHost.java

-===================================================================

---- src/java/org/apache/commons/httpclient/HttpHost.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/HttpHost.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/HttpHost.java,v 1.3 2005/01/14 21:16:40 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-@@ -58,7 +58,7 @@

-     /**
-      * Constructor for HttpHost.
-      *   
--     * @param hostname the hostname (IP or DNS name). Can be <code>null</code>.
-+     * @param hostname the hostname (IP or DNS name).
-      * @param port the port. Value <code>-1</code> can be used to set default protocol port
-      * @param protocol the protocol. Value <code>null</code> can be used to set default protocol
-      */
-@@ -117,19 +117,19 @@

-         init(httphost);
-     }
- 
--	private void init(final HttpHost httphost) {
--		this.hostname = httphost.hostname;
-+    private void init(final HttpHost httphost) {
-+        this.hostname = httphost.hostname;
-         this.port = httphost.port;
-         this.protocol = httphost.protocol;
--	}
-+    }
- 
-     /**
-      * @throws CloneNotSupportedException 
-      * @see java.lang.Object#clone()
-      */
-     public Object clone() throws CloneNotSupportedException {
--    	HttpHost copy = (HttpHost) super.clone();
--    	copy.init(this);
-+        HttpHost copy = (HttpHost) super.clone();
-+        copy.init(this);
-         return copy;
-     }    
-     
-Index: src/java/org/apache/commons/httpclient/HttpClient.java

-===================================================================

---- src/java/org/apache/commons/httpclient/HttpClient.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/HttpClient.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/HttpClient.java,v 1.98 2004/10/07 16:14:15 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/ConnectTimeoutException.java

-===================================================================

---- src/java/org/apache/commons/httpclient/ConnectTimeoutException.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/ConnectTimeoutException.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/ConnectTimeoutException.java,v 1.5 2004/07/05 22:46:58 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/ProxyHost.java

-===================================================================

---- src/java/org/apache/commons/httpclient/ProxyHost.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/ProxyHost.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/ProxyHost.java,v 1.2 2005/01/14 21:16:40 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-@@ -57,7 +57,7 @@

-     /**
-      * Constructor for ProxyHost.
-      *   
--     * @param hostname the hostname (IP or DNS name). Can be <code>null</code>.
-+     * @param hostname the hostname (IP or DNS name).
-      * @param port the port. Value <code>-1</code> can be used to set default protocol port
-      */
-     public ProxyHost(final String hostname, int port) {
-@@ -78,7 +78,7 @@

-      * @see java.lang.Object#clone()
-      */
-     public Object clone() throws CloneNotSupportedException {
--    	ProxyHost copy = (ProxyHost) super.clone();
-+        ProxyHost copy = (ProxyHost) super.clone();
-         return copy;
-     }    
-     
-Index: src/java/org/apache/commons/httpclient/HttpMethod.java

-===================================================================

---- src/java/org/apache/commons/httpclient/HttpMethod.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/HttpMethod.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/HttpMethod.java,v 1.43 2004/10/07 16:14:15 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/ProxyClient.java

-===================================================================

---- src/java/org/apache/commons/httpclient/ProxyClient.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/ProxyClient.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/ProxyClient.java,v 1.5 2004/12/20 11:39:04 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/RedirectException.java

-===================================================================

---- src/java/org/apache/commons/httpclient/RedirectException.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/RedirectException.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/RedirectException.java,v 1.2 2004/04/18 23:51:35 jsdever Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/HttpVersion.java

-===================================================================

---- src/java/org/apache/commons/httpclient/HttpVersion.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/HttpVersion.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/HttpVersion.java,v 1.6 2004/12/20 19:52:50 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/HttpsURL.java

-===================================================================

---- src/java/org/apache/commons/httpclient/HttpsURL.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/HttpsURL.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/HttpsURL.java,v 1.11 2004/09/30 17:26:41 oglueck Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/HttpClientError.java

-===================================================================

---- src/java/org/apache/commons/httpclient/HttpClientError.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/HttpClientError.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/HttpClientError.java,v 1.4 2004/05/13 04:03:25 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/Header.java

-===================================================================

---- src/java/org/apache/commons/httpclient/Header.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/Header.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/Header.java,v 1.17 2004/09/15 20:42:17 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/NameValuePair.java

-===================================================================

---- src/java/org/apache/commons/httpclient/NameValuePair.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/NameValuePair.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/NameValuePair.java,v 1.17 2004/04/18 23:51:35 jsdever Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/StatusLine.java

-===================================================================

---- src/java/org/apache/commons/httpclient/StatusLine.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/StatusLine.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/StatusLine.java,v 1.14 2004/07/19 20:24:21 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-@@ -30,6 +30,8 @@

- 
- package org.apache.commons.httpclient;
- 
-+import java.util.Locale;
-+
- /**
-  * Represents a Status-Line as returned from a HTTP server.
-  *
-@@ -100,7 +102,7 @@

-                         "Unable to parse HTTP-Version from the status line: '"
-                         + statusLine + "'");
-             }
--            this.httpVersion = (statusLine.substring(start, at)).toUpperCase();
-+            this.httpVersion = (statusLine.substring(start, at)).toUpperCase(Locale.ENGLISH);
- 
-             //advance through spaces
-             while (statusLine.charAt(at) == ' ') {
-Index: src/java/org/apache/commons/httpclient/util/HttpURLConnection.java

-===================================================================

---- src/java/org/apache/commons/httpclient/util/HttpURLConnection.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/util/HttpURLConnection.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/util/HttpURLConnection.java,v 1.15 2004/04/18 23:51:38 jsdever Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/util/EncodingUtil.java

-===================================================================

---- src/java/org/apache/commons/httpclient/util/EncodingUtil.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/util/EncodingUtil.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/util/EncodingUtil.java,v 1.8 2004/05/13 04:01:22 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/util/DateParseException.java

-===================================================================

---- src/java/org/apache/commons/httpclient/util/DateParseException.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/util/DateParseException.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/util/DateParseException.java,v 1.5 2004/11/06 19:15:42 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/util/DateParser.java

-===================================================================

---- src/java/org/apache/commons/httpclient/util/DateParser.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/util/DateParser.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/util/DateParser.java,v 1.11 2004/11/06 19:15:42 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/util/TimeoutController.java

-===================================================================

---- src/java/org/apache/commons/httpclient/util/TimeoutController.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/util/TimeoutController.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/util/TimeoutController.java,v 1.6 2004/04/18 23:51:38 jsdever Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/util/DateUtil.java

-===================================================================

---- src/java/org/apache/commons/httpclient/util/DateUtil.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/util/DateUtil.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/util/DateUtil.java,v 1.2 2004/12/24 20:36:13 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/util/IdleConnectionHandler.java

-===================================================================

---- src/java/org/apache/commons/httpclient/util/IdleConnectionHandler.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/util/IdleConnectionHandler.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/util/IdleConnectionHandler.java,v 1.2 2004/05/13 02:40:36 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/util/ExceptionUtil.java

-===================================================================

---- src/java/org/apache/commons/httpclient/util/ExceptionUtil.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/util/ExceptionUtil.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/util/ExceptionUtil.java,v 1.5 2004/10/19 18:09:46 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/util/IdleConnectionTimeoutThread.java

-===================================================================

---- src/java/org/apache/commons/httpclient/util/IdleConnectionTimeoutThread.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/util/IdleConnectionTimeoutThread.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/util/IdleConnectionTimeoutThread.java,v 1.2 2004/05/13 02:40:36 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/util/ParameterParser.java

-===================================================================

---- src/java/org/apache/commons/httpclient/util/ParameterParser.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/util/ParameterParser.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/util/ParameterParser.java,v 1.5 2004/05/13 04:01:22 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/util/URIUtil.java

-===================================================================

---- src/java/org/apache/commons/httpclient/util/URIUtil.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/util/URIUtil.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/util/URIUtil.java,v 1.27 2004/05/05 20:34:01 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/java/org/apache/commons/httpclient/HttpException.java

-===================================================================

---- src/java/org/apache/commons/httpclient/HttpException.java	(revision 604567)

-+++ src/java/org/apache/commons/httpclient/HttpException.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/HttpException.java,v 1.19 2004/09/30 18:53:20 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/resources/META-INF/NOTICE.txt

-===================================================================

---- src/resources/META-INF/NOTICE.txt	(revision 604567)

-+++ src/resources/META-INF/NOTICE.txt	(revision 915934)

-@@ -1,5 +1,5 @@

--Apache Jakarta HttpClient

--Copyright 1999-2007 The Apache Software Foundation

-+Apache HttpComponents Commons HttpClient

-+Copyright 1999-2008 The Apache Software Foundation

- 

- This product includes software developed by

- The Apache Software Foundation (http://www.apache.org/).

-Index: src/examples/ClientApp.java

-===================================================================

---- src/examples/ClientApp.java	(revision 604567)

-+++ src/examples/ClientApp.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header$
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/examples/CookieDemoApp.java

-===================================================================

---- src/examples/CookieDemoApp.java	(revision 604567)

-+++ src/examples/CookieDemoApp.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/examples/CookieDemoApp.java,v 1.14 2004/02/22 18:08:45 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/examples/ChunkEncodedPost.java

-===================================================================

---- src/examples/ChunkEncodedPost.java	(revision 604567)

-+++ src/examples/ChunkEncodedPost.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/examples/ChunkEncodedPost.java,v 1.6 2004/05/12 20:43:53 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/examples/CustomAuthenticationExample.java

-===================================================================

---- src/examples/CustomAuthenticationExample.java	(revision 604567)

-+++ src/examples/CustomAuthenticationExample.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/examples/CustomAuthenticationExample.java,v 1.1 2004/09/06 20:10:02 mbecke Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/examples/PostXML.java

-===================================================================

---- src/examples/PostXML.java	(revision 604567)

-+++ src/examples/PostXML.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/examples/PostXML.java,v 1.13 2004/05/12 20:43:53 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/examples/MultiThreadedExample.java

-===================================================================

---- src/examples/MultiThreadedExample.java	(revision 604567)

-+++ src/examples/MultiThreadedExample.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/examples/MultiThreadedExample.java,v 1.3 2004/02/22 18:08:45 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-@@ -56,14 +56,14 @@

-         HttpClient httpClient = new HttpClient(new MultiThreadedHttpConnectionManager());
-         // Set the default host/protocol for the methods to connect to.
-         // This value will only be used if the methods are not given an absolute URI
--        httpClient.getHostConfiguration().setHost("jakarta.apache.org", 80, "http");
-+        httpClient.getHostConfiguration().setHost("hc.apache.org", 80, "http");
-         
-         // create an array of URIs to perform GETs on
-         String[] urisToGet = {
-             "/",
--            "/commons/",
--            "/commons/httpclient/",
--            "http://svn.apache.org/viewvc/jakarta/httpcomponents/oac.hc3x/"
-+            "/httpclient-3.x/status.html",
-+            "/httpclient-3.x/methods/",
-+            "http://svn.apache.org/viewvc/httpcomponents/oac.hc3x/"
-         };
-         
-         // create a thread for each URI
-Index: src/examples/MultipartFileUploadApp.java

-===================================================================

---- src/examples/MultipartFileUploadApp.java	(revision 604567)

-+++ src/examples/MultipartFileUploadApp.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header$
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/examples/PostSOAP.java

-===================================================================

---- src/examples/PostSOAP.java	(revision 604567)

-+++ src/examples/PostSOAP.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header$
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/examples/InteractiveAuthenticationExample.java

-===================================================================

---- src/examples/InteractiveAuthenticationExample.java	(revision 604567)

-+++ src/examples/InteractiveAuthenticationExample.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/examples/InteractiveAuthenticationExample.java,v 1.2 2004/02/22 18:08:45 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/examples/AlternateAuthenticationExample.java

-===================================================================

---- src/examples/AlternateAuthenticationExample.java	(revision 604567)

-+++ src/examples/AlternateAuthenticationExample.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/examples/AlternateAuthenticationExample.java,v 1.3 2004/06/12 22:47:23 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/examples/TrivialApp.java

-===================================================================

---- src/examples/TrivialApp.java	(revision 604567)

-+++ src/examples/TrivialApp.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/examples/TrivialApp.java,v 1.18 2004/06/12 22:47:23 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  *
-Index: src/examples/UnbufferedPost.java

-===================================================================

---- src/examples/UnbufferedPost.java	(revision 604567)

-+++ src/examples/UnbufferedPost.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/examples/UnbufferedPost.java,v 1.5 2004/05/12 20:43:53 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/examples/ProxyTunnelDemo.java

-===================================================================

---- src/examples/ProxyTunnelDemo.java	(revision 604567)

-+++ src/examples/ProxyTunnelDemo.java	(revision 915934)

-@@ -9,7 +9,7 @@

- import org.apache.commons.httpclient.auth.AuthScope;
- 
- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/examples/ProxyTunnelDemo.java,v 1.2 2004/06/12 22:47:23 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: src/examples/BasicAuthenticationExample.java

-===================================================================

---- src/examples/BasicAuthenticationExample.java	(revision 604567)

-+++ src/examples/BasicAuthenticationExample.java	(revision 915934)

-@@ -1,5 +1,5 @@

- /*
-- * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/examples/BasicAuthenticationExample.java,v 1.4 2004/06/12 22:47:23 olegk Exp $
-+ * $HeadURL$
-  * $Revision$
-  * $Date$
-  * ====================================================================
-Index: checkstyle.xml.properties

-===================================================================

---- checkstyle.xml.properties	(revision 604567)

-+++ checkstyle.xml.properties	(revision 915934)

-@@ -68,10 +68,10 @@

-         <!-- Size Violations checks -->
-         <module name="LineLength">
-             <property name="max" value="100"/>
--            <property name="ignorePattern" value="Header:"/>
-+            <property name="ignorePattern" value="HeadURL:"/>
-         </module>
-         <!-- TODO: maxlinelen should be somthing more like
--            "^ \* \$Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/checkstyle.xml.properties,v 1.1 2003/10/03 18:44:13 oglueck Exp $$"
-+            "^ \* \$HeadXXX: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/checkstyle.xml.properties,v 1.1 2003/10/03 18:44:13 oglueck Exp $$"
-         -->
-         <module name="MethodLength">
-             <property name="max" value="150"/>
-Index: checkstyle.properties

-===================================================================

---- checkstyle.properties	(revision 604567)

-+++ checkstyle.properties	(revision 915934)

-@@ -39,9 +39,9 @@

- checkstyle.maxlinelen=100
- checkstyle.tab.width=4
- checkstyle.ignore.importlength=false
--checkstyle.ignore.maxlinelen=Header:
-+checkstyle.ignore.maxlinelen=HeadURL:
- <!-- TODO: maxlinelen should be somthing more like
--     "^ \* \$Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/checkstyle.properties,v 1.3 2003/02/01 12:58:39 jsdever Exp $$"
-+     "^ \* \$HeadXXX: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/checkstyle.properties,v 1.3 2003/02/01 12:58:39 jsdever Exp $$"
- -->
- checkstyle.maxmethodlen=150
- checkstyle.maxconstructorlen=150
-Index: doap_httpclient.rdf

-===================================================================

---- doap_httpclient.rdf	(revision 604567)

-+++ doap_httpclient.rdf	(revision 915934)

-@@ -1,31 +1,124 @@

- <?xml version="1.0"?>
--<rdf:RDF xmlns="http://usefulinc.com/ns/doap#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:asfext="http://projects.apache.org/ns/asfext#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:doap="http://usefulinc.com/ns/doap#" xml:lang="en">
--  <Project rdf:about="http://jakarta.apache.org/commons/httpclient/">
--    <name>Apache Jakarta Commons HttpClient</name>
--    <homepage rdf:resource="http://jakarta.apache.org/commons/httpclient/"/>
-+<?xml-stylesheet type="text/xsl"?>
-+<rdf:RDF xml:lang="en"
-+         xmlns="http://usefulinc.com/ns/doap#" 
-+         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
-+         xmlns:asfext="http://projects.apache.org/ns/asfext#"
-+         xmlns:foaf="http://xmlns.com/foaf/0.1/">
-+<!--
-+   $HeadURL$
-+   $Revision$
-+   $Date$
-+
-+   ====================================================================
-+   Licensed to the Apache Software Foundation (ASF) under one
-+   or more contributor license agreements.  See the NOTICE file
-+   distributed with this work for additional information
-+   regarding copyright ownership.  The ASF licenses this file
-+   to you under the Apache License, Version 2.0 (the
-+   "License"); you may not use this file except in compliance
-+   with the License.  You may obtain a copy of the License at
-+
-+     http://www.apache.org/licenses/LICENSE-2.0
-+
-+   Unless required by applicable law or agreed to in writing,
-+   software distributed under the License is distributed on an
-+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-+   KIND, either express or implied.  See the License for the
-+   specific language governing permissions and limitations
-+   under the License.
-+   ====================================================================
-+
-+   This software consists of voluntary contributions made by many
-+   individuals on behalf of the Apache Software Foundation.  For more
-+   information on the Apache Software Foundation, please see
-+   <http://www.apache.org />.
-+-->
-+
-+  <Project rdf:about="http://hc.apache.org/httpclient-3.x/">
-+    <created>2001-04-25</created>
-+    <license rdf:resource="http://usefulinc.com/doap/licenses/asl20" />
-+    <name>Apache Commons HttpClient</name>
-+    <homepage rdf:resource="http://hc.apache.org/httpclient-3.x/" />
-+    <asfext:pmc rdf:resource="http://httpcomponents.apache.org" />
-+    <shortdesc>
-+Client-side HTTP implementation in Java.
-+    </shortdesc>
-+    <description>
-+Commons HttpClient is a library for client-side HTTP communication.
-+It provides support for HTTP/1.1 and HTTP/1.0, plus
-+various authentication schemes and cookie policies.
-+Thanks to it's widespread use and years of development, it is a very
-+mature and stable codebase. However, due to limitations in the API design,
-+Commons HttpClient will eventually be replaced by HttpClient 4.0
-+with a completely redesigned API based on HttpCore.
-+    </description>
-+    <bug-database rdf:resource="http://issues.apache.org/jira/browse/HTTPCLIENT" />
-+    <mailing-list rdf:resource="http://httpcomponents.apache.org/httpclient-3.x/mail-lists.html" />
-+    <download-page rdf:resource="http://httpcomponents.apache.org/downloads.cgi" />
-     <programming-language>Java</programming-language>
--    <category rdf:resource="http://projects.apache.org/category/library"/>
--    <license rdf:resource="http://usefulinc.com/doap/licenses/asl20"/>
--    <bug-database rdf:resource="http://issues.apache.org/jira/browse/HTTPCLIENT"/>
--    <download-page rdf:resource="http://jakarta.apache.org/site/downloads/downloads_commons-httpclient.cgi"/>
--    <asfext:pmc rdf:resource="http://jakarta.apache.org/"/>
--    <shortdesc xml:lang="en">Client-side HTTP implementation in Java.</shortdesc>
--    <description xml:lang="en">
--    The HttpClient  component supports the client-side of RFC 1945 (HTTP/1.0)  and RFC 2616 (HTTP/1.1), several related specifications (RFC 2109 (Cookies), RFC 2617 (HTTP Authentication), etc.), and provides a framework by which new request types (methods) or HTTP extensions can be created easily.
--  </description>
-+    <category rdf:resource="http://projects.apache.org/category/http" />
-+    <category rdf:resource="http://projects.apache.org/category/library" />
-+    <category rdf:resource="http://projects.apache.org/category/network-client" />
-+
-+    <!-- multiple releases can be listed, each in it's own section -->
-+    <release>
-+      <Version>
-+        <name>commons-httpclient-3.1</name>
-+        <created>2007-08-22</created>
-+        <revision>3.1</revision>
-+      </Version>
-+    </release>
-+
-     <repository>
-       <SVNRepository>
--        <browse rdf:resource="http://svn.apache.org/viewvc/jakarta/httpcomponents/oac.hc3x/trunk"/>
--        <location rdf:resource="http://svn.apache.org/repos/asf/jakarta/httpcomponents/oac.hc3x/trunk"/>
-+        <location rdf:resource="http://svn.apache.org/repos/asf/httpcomponents/oac.hc3x/trunk"/>
-+        <browse rdf:resource="http://svn.apache.org/viewvc/httpcomponents/oac.hc3x/trunk"/>
-       </SVNRepository>
-     </repository>
--    <release>
--      <revision>
--        <name>commons-httpclient</name>
--        <created>2005-12-19</created>
--        <version>3.0</version>
--      </revision>
--    </release>
--    <mailing-list rdf:resource="http://jakarta.apache.org/httpcomponents/mail-lists.html"/>
-+
-+    <asfext:implements><asfext:Standard>
-+      <asfext:title>Hypertext Transfer Protocol -- HTTP/1.1</asfext:title>
-+      <asfext:body>IETF</asfext:body>
-+      <asfext:id>RFC 2616</asfext:id>
-+      <asfext:url rdf:resource="http://tools.ietf.org/html/rfc2616"/>
-+    </asfext:Standard></asfext:implements>
-+    <asfext:implements><asfext:Standard>
-+      <asfext:title>Hypertext Transfer Protocol -- HTTP/1.0</asfext:title>
-+      <asfext:body>IETF</asfext:body>
-+      <asfext:id>RFC 1945</asfext:id>
-+      <asfext:url rdf:resource="http://tools.ietf.org/html/rfc1945"/>
-+    </asfext:Standard></asfext:implements>
-+    <asfext:implements><asfext:Standard>
-+      <asfext:title>Upgrading to TLS Within HTTP/1.1</asfext:title>
-+      <asfext:body>IETF</asfext:body>
-+      <asfext:id>RFC 2817</asfext:id>
-+      <asfext:url rdf:resource="http://tools.ietf.org/html/rfc2817"/>
-+    </asfext:Standard></asfext:implements>
-+    <asfext:implements><asfext:Standard>
-+      <asfext:title>HTTP Over TLS</asfext:title>
-+      <asfext:body>IETF</asfext:body>
-+      <asfext:id>RFC 2818</asfext:id>
-+      <asfext:url rdf:resource="http://tools.ietf.org/html/rfc2818"/>
-+    </asfext:Standard></asfext:implements>
-+    <asfext:implements><asfext:Standard>
-+      <asfext:title>HTTP Authentication: Basic and Digest Access Authentication</asfext:title>
-+      <asfext:body>IETF</asfext:body>
-+      <asfext:id>RFC 2617</asfext:id>
-+      <asfext:url rdf:resource="http://tools.ietf.org/html/rfc2617"/>
-+    </asfext:Standard></asfext:implements>
-+    <asfext:implements><asfext:Standard>
-+      <asfext:title>HTTP State Management Mechanism (Cookies)</asfext:title>
-+      <asfext:body>IETF</asfext:body>
-+      <asfext:id>RFC 2109</asfext:id>
-+      <asfext:url rdf:resource="http://tools.ietf.org/html/rfc2109"/>
-+    </asfext:Standard></asfext:implements>
-+    <asfext:implements><asfext:Standard>
-+      <asfext:title>HTTP State Management Mechanism (Cookie2)</asfext:title>
-+      <asfext:body>IETF</asfext:body>
-+      <asfext:id>RFC 2965</asfext:id>
-+      <asfext:url rdf:resource="http://tools.ietf.org/html/rfc2965"/>
-+    </asfext:Standard></asfext:implements>
-+
-   </Project>
- </rdf:RDF>
-Index: NOTICE.txt

-===================================================================

---- NOTICE.txt	(revision 604567)

-+++ NOTICE.txt	(revision 915934)

-@@ -1,5 +1,5 @@

--Apache Jakarta HttpClient
--Copyright 1999-2007 The Apache Software Foundation
-+Apache HttpComponents Commons HttpClient
-+Copyright 1999-2008 The Apache Software Foundation
- 
- This product includes software developed by
- The Apache Software Foundation (http://www.apache.org/).
-Index: project.properties

-===================================================================

---- project.properties	(revision 604567)

-+++ project.properties	(revision 915934)

-@@ -11,7 +11,7 @@

- maven.checkstyle.properties=checkstyle.xml.properties
- maven.checkstyle.includes=**/*.java
- maven.checkstyle.excludes=**/*.html
--maven.javadoc.links=http://java.sun.com/j2se/1.4.2/docs/api/, http://commons.apache.org/logging/commons-logging-1.0.4/docs/apidocs/
-+maven.javadoc.links=http://java.sun.com/j2se/1.5.0/docs/api/, http://commons.apache.org/logging/commons-logging-1.0.4/docs/apidocs/
- maven.changelog.factory=org.apache.maven.svnlib.SvnChangeLogFactory
- maven.repo.list=asf
- maven.repo.asf=scp://people.apache.org
-Index: project.xml

-===================================================================

---- project.xml	(revision 604567)

-+++ project.xml	(revision 915934)

-@@ -12,8 +12,8 @@

- 
-   <organization>
-     <name>Apache Software Foundation</name>
--    <url>http://jakarta.apache.org/</url>
--    <logo>http://jakarta.apache.org/images/jakarta-logo.gif</logo>
-+    <url>http://httpcomponents.apache.org/</url>
-+    <logo>http://hc.apache.org/images/logos/httpcomponents.png</logo>
-   </organization>
- 
- 
-@@ -23,14 +23,15 @@

-   </description>
- 
-   <logo>/images/httpclient_logo.png</logo>
--  <url>http://jakarta.apache.org/httpcomponents/httpclient-3.x/</url>
-+  <url>http://hc.apache.org/httpclient-3.x/</url>
-   <issueTrackingUrl>http://issues.apache.org/jira/browse/HTTPCLIENT</issueTrackingUrl>
- 
-   <siteAddress>people.apache.org</siteAddress>
--  <siteDirectory>/www/jakarta.apache.org/httpcomponents/httpclient-3.x/</siteDirectory>
-+  <siteDirectory>/www/hc.apache.org/httpclient-3.x/</siteDirectory>
-   <repository>
--   <connection>scm:svn:http://svn.apache.org/repos/asf/jakarta/httpcomponents/oac.hc3x/trunk</connection>
--    <url>http://svn.apache.org/repos/asf/jakarta/httpcomponents/oac.hc3x/trunk</url>
-+    <connection>scm:svn:http://svn.apache.org/repos/asf/httpcomponents/oac.hc3x/trunk</connection>
-+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/httpcomponents/oac.hc3x/trunk</developerConnection>
-+    <url>http://svn.apache.org/viewvc/httpcomponents/oac.hc3x/trunk/</url>
-   </repository>
-   <versions>
-     <version>
-@@ -156,16 +157,38 @@

- 
-   <mailingLists>
-     <mailingList>
-+      <name>HttpClient User List</name>
-+      <subscribe>httpclient-users-subscribe@hc.apache.org</subscribe>
-+      <unsubscribe>httpclient-users-unsubscribe@hc.apache.org</unsubscribe>
-+      <post>httpclient-users@hc.apache.org</post>
-+      <archive>http://mail-archives.apache.org/mod_mbox/hc-httpclient-users/</archive>
-+      <otherArchives>
-+        <otherArchive>http://www.nabble.com/HttpClient-User-f20180.html</otherArchive>
-+        <otherArchive>http://marc.info/?l=httpclient-users</otherArchive>
-+        <otherArchive>http://hc.apache.org/mail/httpclient-users/</otherArchive>
-+      </otherArchives>
-+    </mailingList>
-+    <mailingList>
-       <name>HttpComponents Developer List</name>
--      <subscribe>httpcomponents-dev-subscribe@jakarta.apache.org</subscribe>
--      <unsubscribe>httpcomponents-dev-unsubscribe@jakarta.apache.org</unsubscribe>
--      <archive>http://mail-archives.apache.org/mod_mbox/jakarta-httpcomponents-dev/</archive>
-+      <subscribe>dev-subscribe@hc.apache.org</subscribe>
-+      <unsubscribe>dev-unsubscribe@hc.apache.org</unsubscribe>
-+      <post>dev@hc.apache.org</post>
-+      <archive>http://mail-archives.apache.org/mod_mbox/hc-dev/</archive>
-+      <otherArchives>
-+        <otherArchive>http://www.nabble.com/HttpComponents-Dev-f20179.html</otherArchive>
-+        <otherArchive>http://marc.info/?l=httpclient-commons-dev</otherArchive>
-+        <otherArchive>http://hc.apache.org/mail/dev/</otherArchive>
-+      </otherArchives>
-     </mailingList>
-     <mailingList>
--      <name>HttpClient User List</name>
--      <subscribe>httpclient-user-subscribe@jakarta.apache.org</subscribe>
--      <unsubscribe>httpclient-user-unsubscribe@jakarta.apache.org</unsubscribe>
--      <archive>http://mail-archives.apache.org/mod_mbox/jakarta-httpclient-user/</archive>
-+      <name>HttpComponents Commits List</name>
-+      <subscribe>commits-subscribe@hc.apache.org</subscribe>
-+      <unsubscribe>commits-unsubscribe@hc.apache.org</unsubscribe>
-+      <archive>http://mail-archives.apache.org/mod_mbox/hc-commits/</archive>
-+      <otherArchives>
-+        <otherArchive>http://marc.info/?l=httpcomponents-commits</otherArchive>
-+        <otherArchive>http://hc.apache.org/mail/commits/</otherArchive>
-+      </otherArchives>
-     </mailingList>
-   </mailingLists>
- 
-@@ -355,7 +378,7 @@

-   </dependencies>
- 
-   <build>
--    <nagEmailAddress>httpcomponents-dev@jakarta.apache.org</nagEmailAddress>
-+    <nagEmailAddress>dev@hc.apache.org</nagEmailAddress>
-     <sourceDirectory>src/java</sourceDirectory>
-     <unitTestSourceDirectory>src/test</unitTestSourceDirectory>
-     <resources>
-@@ -380,16 +403,11 @@

-   </build>
- 
-   <reports>
--    <report>maven-changelog-plugin</report>
--    <report>maven-changes-plugin</report>
--    <report>maven-developer-activity-plugin</report>
--    <report>maven-file-activity-plugin</report>
-     <report>maven-javadoc-plugin</report>
-     <report>maven-jdepend-plugin</report>
-     <report>maven-junit-report-plugin</report>
-     <report>maven-jxr-plugin</report>
-     <report>maven-license-plugin</report>
--    <report>maven-tasklist-plugin</report>
-   </reports>
-   
- </project>
-Index: release_notes.txt

-===================================================================

---- release_notes.txt	(revision 604567)

-+++ release_notes.txt	(revision 915934)

-@@ -1,3 +1,28 @@

-+Changes since 3.1 Final
-+
-+* [HTTPCLIENT-917] - Invalidate proxy authentication state on redirects.
-+           Contributed by Karl Wright <kwright at metacarta.com>
-+
-+* [HTTPCLIENT-848] - Connections not released when SSL tunneling fails.
-+           Contributed by Oleg Kalnichevski <olegk at apache.org>
-+
-+* [HTTPCLIENT-837] - Fixed problem with the wire log skipping zero byte values 
-+  if read one byte at a time.
-+           Contributed by Kirill Safonov <ksafonov at swiftteams.com>
-+
-+* [HTTPCLIENT-804] - ChunkedInputStream no longer accepts truncated chunks 
-+  as valid input.
-+           Contributed by Oleg Kalnichevski <olegk at apache.org>
-+
-+* HttpConnection#isResponseAvailable(int) changed to return false if the
-+  connection is closed instead of throwing java.lang.IllegalStateException
-+           Contributed by Oleg Kalnichevski <olegk at apache.org>
-+
-+* [HTTPCLIENT-717] - Fixed NPE in unused SimpleHttpConnectionManager.
-+           Contributed by Roland Weber <rolandw at apache.org>
-+
-+
-+
- Release 3.1 Final
- -------------------
- 
-@@ -30,6 +55,7 @@

- * [HTTPCLIENT-645] - Cookie#compare() changed to do a simple case-sensitive string comparison 
-            when comparing path attributes instead of using a static instance of RuleBasedCollator
-            Contributed by Oleg Kalnichevski <olegk at apache.org>
-+           
- * [HTTPCLIENT-650] - Wire log for headers written one by one while parsing
-            instead of all at once afterwards, which fails on parse errors.
-            Contributed by Roland Weber <rolandw at apache.org>
-Index: README.txt

-===================================================================

---- README.txt	(revision 604567)

-+++ README.txt	(revision 915934)

-@@ -1,11 +1,59 @@

--Jakarta HttpClient
--===========================
--Welcome to the HttpClient component of the Jakarta HttpComponents project.
-+Apache HttpComponents Commons HttpClient
-+========================================
- 
--Visit us online at
--   http://jakarta.apache.org/httpcomponents/index.html
-+Welcome to the Commons HttpClient component of the Apache HttpComponents
-+project.
-+
-+Licensing
-+---------
-+
-+Apache HttpComponents Commons HttpClient is licensed under the
-+Apache License 2.0. See the files called LICENSE.txt and NOTICE.txt
- for more information.
- 
--Visit
--   http://jakarta.apache.org/httpcomponents/status.html
--for the status of the project.
-+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 <http://www.wassenaar.org/>
-+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 Commons HttpClient interfaces with the
-+  Java Secure Socket Extension (JSSE) API to provide
-+
-+    - HTTPS support
-+
-+  Apache HttpComponents Commons HttpClient interfaces with the
-+  Java Cryptography Extension (JCE) API to provide
-+
-+    - NTLM authentication
-+
-+  Apache HttpComponents Commons HttpClient does not include any
-+  implementation of JSSE or JCE.
-+
-+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
-Index: license.regexp

-===================================================================

---- license.regexp	(revision 604567)

-+++ license.regexp	(revision 915934)

-@@ -1,5 +1,5 @@

- /\*
-- \* \$Header: .*
-+ \* \$HeadURL: .*
-  \* \$Revision: .*
-  \* \$Date: .*
-  \*
diff --git a/upstream-diffs/commons-httpclient-3.1.mcf.patch b/upstream-diffs/commons-httpclient-3.1.mcf.patch
deleted file mode 100644
index 375c6a3..0000000
--- a/upstream-diffs/commons-httpclient-3.1.mcf.patch
+++ /dev/null
@@ -1,2167 +0,0 @@
-Index: src/java/org/apache/commons/httpclient/HostConfiguration.java

-===================================================================

---- src/java/org/apache/commons/httpclient/HostConfiguration.java	(.../httpcomponents/oac.hc3x/trunk)	(revision 915934)

-+++ src/java/org/apache/commons/httpclient/HostConfiguration.java	(.../incubator/lcf/upstream/commons-httpclient-3.1-mcf/trunk)	(working copy)

-@@ -31,7 +31,9 @@

- package org.apache.commons.httpclient;
- 
- import org.apache.commons.httpclient.params.HostParams;
-+import org.apache.commons.httpclient.params.HttpClientParams;
- import org.apache.commons.httpclient.protocol.Protocol;
-+import org.apache.commons.httpclient.protocol.ProtocolFactory;
- import org.apache.commons.httpclient.util.LangUtils;
- 
- import java.net.InetAddress;
-@@ -250,7 +252,10 @@

-      * @param protocol The protocol.
-      */
-     public synchronized void setHost(final String host, int port, final String protocol) {
--        this.host = new HttpHost(host, port, Protocol.getProtocol(protocol));
-+        if (this.params.getParameter(HttpClientParams.PROTOCOL_FACTORY) != null)
-+            this.host = new HttpHost(host, port, ((ProtocolFactory)this.params.getParameter(HttpClientParams.PROTOCOL_FACTORY)).getProtocol(protocol));
-+        else
-+            this.host = new HttpHost(host, port, Protocol.getProtocol(protocol));
-     }
-     
-     /**
-@@ -293,7 +298,7 @@

-      * @param port The port
-      */
-     public synchronized void setHost(final String host, int port) {
--        setHost(host, port, Protocol.getProtocol("http"));
-+        setHost(host, port, "http");
-     }
-     
-     /**
-@@ -302,7 +307,11 @@

-      * @param host The host(IP or DNS name).
-      */
-     public synchronized void setHost(final String host) {
--        Protocol defaultProtocol = Protocol.getProtocol("http"); 
-+        Protocol defaultProtocol;
-+        if (this.params.getParameter(HttpClientParams.PROTOCOL_FACTORY) != null)
-+            defaultProtocol = ((ProtocolFactory)this.params.getParameter(HttpClientParams.PROTOCOL_FACTORY)).getProtocol("http");
-+        else
-+            defaultProtocol = Protocol.getProtocol("http"); 
-         setHost(host, defaultProtocol.getDefaultPort(), defaultProtocol);
-     }
-     
-Index: src/java/org/apache/commons/httpclient/protocol/ProtocolFactory.java

-===================================================================

---- src/java/org/apache/commons/httpclient/protocol/ProtocolFactory.java	(.../httpcomponents/oac.hc3x/trunk)	(revision 0)

-+++ src/java/org/apache/commons/httpclient/protocol/ProtocolFactory.java	(.../incubator/lcf/upstream/commons-httpclient-3.1-mcf/trunk)	(revision 1308601)

-@@ -0,0 +1,150 @@

-+/*
-+ * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/java/org/apache/commons/httpclient/protocol/Protocol.java,v 1.10 2004/04/18 23:51:38 jsdever Exp $
-+ * $Revision: 157457 $
-+ * $Date: 2005-03-14 15:23:16 -0500 (Mon, 14 Mar 2005) $
-+ *
-+ * ====================================================================
-+ *
-+ *  Copyright 2002-2004 The Apache Software Foundation
-+ *
-+ *  Licensed under the Apache License, Version 2.0 (the "License");
-+ *  you may not use this file except in compliance with the License.
-+ *  You may obtain a copy of the License at
-+ *
-+ *      http://www.apache.org/licenses/LICENSE-2.0
-+ *
-+ *  Unless required by applicable law or agreed to in writing, software
-+ *  distributed under the License is distributed on an "AS IS" BASIS,
-+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-+ *  See the License for the specific language governing permissions and
-+ *  limitations under the License.
-+ * ====================================================================
-+ *
-+ * This software consists of voluntary contributions made by many
-+ * individuals on behalf of the Apache Software Foundation.  For more
-+ * information on the Apache Software Foundation, please see
-+ * <http://www.apache.org/>.
-+ *
-+ */
-+package org.apache.commons.httpclient.protocol;
-+
-+import java.util.Collections;
-+import java.util.HashMap;
-+import java.util.Map;
-+
-+import org.apache.commons.httpclient.util.LangUtils;
-+
-+/**
-+ * A class to encapsulate the specifics of a protocol.  This class class also
-+ * provides the ability to customize the set and characteristics of the
-+ * protocols used.
-+ * 
-+ * <p>One use case for modifying the default set of protocols would be to set a
-+ * custom SSL socket factory.  This would look something like the following:
-+ * <pre> 
-+ * Protocol myHTTPS = new Protocol( "https", new MySSLSocketFactory(), 443 );
-+ * 
-+ * Protocol.registerProtocol( "https", myHTTPS );
-+ * </pre>
-+ *
-+ * @author Michael Becke 
-+ * @author Jeff Dever
-+ * @author <a href="mailto:mbowler@GargoyleSoftware.com">Mike Bowler</a>
-+ *  
-+ * @since 2.0 
-+ */
-+public class ProtocolFactory {
-+
-+    /** The available protocols */
-+    private Map PROTOCOLS = Collections.synchronizedMap(new HashMap());
-+
-+    /**
-+     * Registers a new protocol with the given identifier.  If a protocol with
-+     * the given ID already exists it will be overridden.  This ID is the same
-+     * one used to retrieve the protocol from getProtocol(String).
-+     * 
-+     * @param id the identifier for this protocol
-+     * @param protocol the protocol to register
-+     * 
-+     * @see #getProtocol(String)
-+     */
-+    public void registerProtocol(String id, Protocol protocol) {
-+
-+        if (id == null) {
-+            throw new IllegalArgumentException("id is null");
-+        }
-+        if (protocol == null) {
-+            throw new IllegalArgumentException("protocol is null");
-+        }
-+
-+        PROTOCOLS.put(id, protocol);
-+    }
-+
-+    /**
-+     * Unregisters the protocol with the given ID.
-+     * 
-+     * @param id the ID of the protocol to remove
-+     */
-+    public void unregisterProtocol(String id) {
-+
-+        if (id == null) {
-+            throw new IllegalArgumentException("id is null");
-+        }
-+
-+        PROTOCOLS.remove(id);
-+    }
-+
-+    /**
-+     * Gets the protocol with the given ID.
-+     * 
-+     * @param id the protocol ID
-+     * 
-+     * @return Protocol a protocol
-+     * 
-+     * @throws IllegalStateException if a protocol with the ID cannot be found
-+     */
-+    public Protocol getProtocol(String id) 
-+        throws IllegalStateException {
-+
-+        if (id == null) {
-+            throw new IllegalArgumentException("id is null");
-+        }
-+
-+        Protocol protocol = (Protocol) PROTOCOLS.get(id);
-+
-+        if (protocol == null) {
-+            protocol = lazyRegisterProtocol(id);
-+        }
-+
-+        return protocol;
-+    } 
-+
-+    /**
-+     * Lazily registers the protocol with the given id.
-+     * 
-+     * @param id the protocol ID
-+     * 
-+     * @return the lazily registered protocol
-+     * 
-+     * @throws IllegalStateException if the protocol with id is not recognized
-+     */
-+    private Protocol lazyRegisterProtocol(String id) 
-+        throws IllegalStateException {
-+
-+        if ("http".equals(id)) {
-+            final Protocol http 
-+                = new Protocol("http", DefaultProtocolSocketFactory.getSocketFactory(), 80);
-+            Protocol.registerProtocol("http", http);
-+            return http;
-+        }
-+
-+        if ("https".equals(id)) {
-+            final Protocol https 
-+                = new Protocol("https", SSLProtocolSocketFactory.getSocketFactory(), 443);
-+            Protocol.registerProtocol("https", https);
-+            return https;
-+        }
-+
-+        throw new IllegalStateException("unsupported protocol: '" + id + "'");
-+    }
-+}
-

-Property changes on: src/java/org/apache/commons/httpclient/protocol/ProtocolFactory.java

-___________________________________________________________________

-Added: svn:eol-style

-## -0,0 +1 ##

-+native

-Index: src/java/org/apache/commons/httpclient/auth/NTLMScheme.java

-===================================================================

---- src/java/org/apache/commons/httpclient/auth/NTLMScheme.java	(.../httpcomponents/oac.hc3x/trunk)	(revision 915934)

-+++ src/java/org/apache/commons/httpclient/auth/NTLMScheme.java	(.../incubator/lcf/upstream/commons-httpclient-3.1-mcf/trunk)	(working copy)

-@@ -336,18 +336,23 @@

-         NTLM ntlm = new NTLM();
-         ntlm.setCredentialCharset(method.getParams().getCredentialCharset());
-         String response = null;
-+
-         if (this.state == INITIATED || this.state == FAILED) {
-             response = ntlm.getType1Message(
-                 ntcredentials.getHost(), 
-                 ntcredentials.getDomain());
-             this.state = TYPE1_MSG_GENERATED;
-         } else {
-+	    NTLM.Type2Message t2m = new NTLM.Type2Message(this.ntlmchallenge);
-             response = ntlm.getType3Message(
-                 ntcredentials.getUserName(), 
-                 ntcredentials.getPassword(),
-                 ntcredentials.getHost(), 
-                 ntcredentials.getDomain(),
--                ntlm.parseType2Message(this.ntlmchallenge));
-+                t2m.getChallenge(),
-+		t2m.getFlags(),
-+		t2m.getTarget(),
-+		t2m.getTargetInfo());
-             this.state = TYPE3_MSG_GENERATED;
-         }
-         return "NTLM " + response;
-Index: src/java/org/apache/commons/httpclient/auth/NTLM.java

-===================================================================

---- src/java/org/apache/commons/httpclient/auth/NTLM.java	(.../httpcomponents/oac.hc3x/trunk)	(revision 915934)

-+++ src/java/org/apache/commons/httpclient/auth/NTLM.java	(.../incubator/lcf/upstream/commons-httpclient-3.1-mcf/trunk)	(working copy)

-@@ -32,6 +32,9 @@

- 
- import java.security.InvalidKeyException;
- import java.security.NoSuchAlgorithmException;
-+import java.security.Key;
-+import java.security.MessageDigest;
-+
- import java.util.Locale;
- 
- import javax.crypto.BadPaddingException;
-@@ -52,9 +55,13 @@

-  * exists for it.  This class is based upon the reverse engineering
-  * efforts of a wide range of people.</p>
-  *
-+ * THIS IS A VERY HELPFUL REFERENCE: http://en.wikipedia.org/wiki/NTLM
-+ *
-  * <p>Please note that an implementation of JCE must be correctly installed and configured when
-  * using NTLM support.</p>
-  *
-+ * NTLMv2 protocol description provided by Michael B Allen <jcifs at samba.org>
-+ *
-  * <p>This class should not be used externally to HttpClient as it's API is specifically
-  * designed to work with HttpClient's use case, in particular it's connection management.</p>
-  *
-@@ -67,18 +74,52 @@

-  */
- final class NTLM {
- 
-+    // Flags we use
-+    protected final static int FLAG_UNICODE_ENCODING = 0x00000001;
-+    protected final static int FLAG_TARGET_DESIRED = 0x00000004;
-+    protected final static int FLAG_NEGOTIATE_SIGN = 0x00000010;
-+    protected final static int FLAG_NEGOTIATE_SEAL = 0x00000020;
-+    protected final static int FLAG_NEGOTIATE_NTLM = 0x00000200;
-+    protected final static int FLAG_NEGOTIATE_ALWAYS_SIGN = 0x00008000;
-+    protected final static int FLAG_NEGOTIATE_NTLM2 = 0x00080000;
-+    protected final static int FLAG_NEGOTIATE_128 = 0x20000000;
-+    protected final static int FLAG_NEGOTIATE_KEY_EXCH = 0x40000000;
-+
-+    /** Secure random generator */
-+    private static java.security.SecureRandom randomGenerator;
-+    static
-+    {
-+	try
-+	{
-+		randomGenerator = java.security.SecureRandom.getInstance("SHA1PRNG");
-+	}
-+	catch (Exception e)
-+	{
-+		// If exception, nothing we can really do about it - can't even count on log being initialized
-+		System.err.println("Couldn't initialize random generator: "+e.getMessage());
-+		e.printStackTrace(System.err);
-+	}
-+    }
-+
-+    /** Signature string for NTLM messages */
-+    private static final String signatureString = "NTLMSSP";
-+
-     /** Character encoding */
-     public static final String DEFAULT_CHARSET = "ASCII";
- 
--    /** The current response */
--    private byte[] currentResponse;
--
--    /** The current position */
--    private int currentPosition = 0;
--
-     /** The character set to use for encoding the credentials */
-     private String credentialCharset = DEFAULT_CHARSET;
-     
-+    /** The signature string as bytes in the default encoding */
-+    private static byte[] signatureBytes;
-+    static
-+    {
-+	byte[] bytesWithoutNull = EncodingUtil.getBytes(signatureString, "ASCII");
-+	signatureBytes = new byte[bytesWithoutNull.length + 1];
-+	System.arraycopy(bytesWithoutNull,0,signatureBytes,0,bytesWithoutNull.length);
-+	signatureBytes[bytesWithoutNull.length] = (byte) 0x00;
-+    }
-+
-     /**
-      * Returns the response for the given message.
-      *
-@@ -98,469 +139,1268 @@

-         if (message == null || message.trim().equals("")) {
-             response = getType1Message(host, domain);
-         } else {
--            response = getType3Message(username, password, host, domain,
--                    parseType2Message(message));
-+	    Type2Message t2m = new Type2Message(message);
-+	    response = getType3Message(username, password, host, domain,
-+                t2m.getChallenge(), t2m.getFlags(), t2m.getTarget(), t2m.getTargetInfo());
-         }
-         return response;
-     }
- 
-     /**
--     * Return the cipher for the specified key.
--     * @param key The key.
--     * @return Cipher The cipher.
--     * @throws AuthenticationException If the cipher cannot be retrieved.
-+     * Creates the first message (type 1 message) in the NTLM authentication sequence.
-+     * This message includes the user name, domain and host for the authentication session.
-+     *
-+     * @param host the computer name of the host requesting authentication.
-+     * @param domain The domain to authenticate with.
-+     * @return String the message to add to the HTTP request header.
-      */
--    private Cipher getCipher(byte[] key) throws AuthenticationException {
--        try {
--            final Cipher ecipher = Cipher.getInstance("DES/ECB/NoPadding");
--            key = setupKey(key);
--            ecipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(key, "DES"));
--            return ecipher;
--        } catch (NoSuchAlgorithmException e) {
--            throw new AuthenticationException("DES encryption is not available.", e);
--        } catch (InvalidKeyException e) {
--            throw new AuthenticationException("Invalid key for DES encryption.", e);
--        } catch (NoSuchPaddingException e) {
--            throw new AuthenticationException(
--                "NoPadding option for DES is not available.", e);
--        }
-+    public String getType1Message(String host, String domain)
-+        throws AuthenticationException {
-+        return new Type1Message(domain,host).getResponse();
-     }
- 
-     /** 
--     * Adds parity bits to the key.
--     * @param key56 The key
--     * @return The modified key.
-+     * Creates the type 3 message using the given server nonce.  The type 3 message includes all the
-+     * information for authentication, host, domain, username and the result of encrypting the
-+     * nonce sent by the server using the user's password as the key.
-+     *
-+     * @param user The user name.  This should not include the domain name.
-+     * @param password The password.
-+     * @param host The host that is originating the authentication request.
-+     * @param domain The domain to authenticate within.
-+     * @param nonce the 8 byte array the server sent.
-+     * @return The type 3 message.
-+     * @throws AuthenticationException If {@encrypt(byte[],byte[])} fails.
-      */
--    private byte[] setupKey(byte[] key56) {
--        byte[] key = new byte[8];
--        key[0] = (byte) ((key56[0] >> 1) & 0xff);
--        key[1] = (byte) ((((key56[0] & 0x01) << 6) 
--            | (((key56[1] & 0xff) >> 2) & 0xff)) & 0xff);
--        key[2] = (byte) ((((key56[1] & 0x03) << 5) 
--            | (((key56[2] & 0xff) >> 3) & 0xff)) & 0xff);
--        key[3] = (byte) ((((key56[2] & 0x07) << 4) 
--            | (((key56[3] & 0xff) >> 4) & 0xff)) & 0xff);
--        key[4] = (byte) ((((key56[3] & 0x0f) << 3) 
--            | (((key56[4] & 0xff) >> 5) & 0xff)) & 0xff);
--        key[5] = (byte) ((((key56[4] & 0x1f) << 2) 
--            | (((key56[5] & 0xff) >> 6) & 0xff)) & 0xff);
--        key[6] = (byte) ((((key56[5] & 0x3f) << 1) 
--            | (((key56[6] & 0xff) >> 7) & 0xff)) & 0xff);
--        key[7] = (byte) (key56[6] & 0x7f);
--        
--        for (int i = 0; i < key.length; i++) {
--            key[i] = (byte) (key[i] << 1);
--        }
--        return key;
-+    public String getType3Message(String user, String password,
-+            String host, String domain, byte[] nonce, int type2Flags, String target, byte[] targetInformation)
-+    throws AuthenticationException {
-+        return new Type3Message(domain,host,user,password,nonce,type2Flags,target,targetInformation).getResponse();
-     }
- 
-     /**
--     * Encrypt the data.
--     * @param key The key.
--     * @param bytes The data
--     * @return byte[] The encrypted data
--     * @throws HttpException If {@link Cipher.doFinal(byte[])} fails
-+     * @return Returns the credentialCharset.
-      */
--    private byte[] encrypt(byte[] key, byte[] bytes)
--        throws AuthenticationException {
--        Cipher ecipher = getCipher(key);
--        try {
--            byte[] enc = ecipher.doFinal(bytes);
--            return enc;
--        } catch (IllegalBlockSizeException e) {
--            throw new AuthenticationException("Invalid block size for DES encryption.", e);
--        } catch (BadPaddingException e) {
--            throw new AuthenticationException("Data not padded correctly for DES encryption.", e);
--        }
-+    public String getCredentialCharset() {
-+        return credentialCharset;
-     }
- 
-     /** 
--     * Prepares the object to create a response of the given length.
--     * @param length the length of the response to prepare.
-+     * @param credentialCharset The credentialCharset to set.
-      */
--    private void prepareResponse(int length) {
--        currentResponse = new byte[length];
--        currentPosition = 0;
-+    public void setCredentialCharset(String credentialCharset) {
-+        this.credentialCharset = credentialCharset;
-     }
- 
--    /** 
--     * Adds the given byte to the response.
--     * @param b the byte to add.
--     */
--    private void addByte(byte b) {
--        currentResponse[currentPosition] = b;
--        currentPosition++;
-+    /** Strip dot suffix from a name */
-+    private static String stripDotSuffix(String value)
-+    {
-+	int index = value.indexOf(".");
-+	if (index != -1)
-+            return value.substring(0,index);
-+	return value;
-     }
- 
--    /** 
--     * Adds the given bytes to the response.
--     * @param bytes the bytes to add.
--     */
--    private void addBytes(byte[] bytes) {
--        for (int i = 0; i < bytes.length; i++) {
--            currentResponse[currentPosition] = bytes[i];
--            currentPosition++;
--        }
-+    /** Convert host to standard form */
-+    private static String convertHost(String host)
-+    {
-+	return stripDotSuffix(host);
-     }
- 
--    /** 
--     * Returns the response that has been generated after shrinking the array if
--     * required and base64 encodes the response.
--     * @return The response as above.
--     */
--    private String getResponse() {
--        byte[] resp;
--        if (currentResponse.length > currentPosition) {
--            byte[] tmp = new byte[currentPosition];
--            for (int i = 0; i < currentPosition; i++) {
--                tmp[i] = currentResponse[i];
--            }
--            resp = tmp;
--        } else {
--            resp = currentResponse;
-+    /** Convert domain to standard form */
-+    private static String convertDomain(String domain)
-+    {
-+        return stripDotSuffix(domain);
-+    }
-+
-+    private static int readULong(byte[] src, int index)
-+        throws AuthenticationException {
-+        if (src.length < index + 4)
-+            throw new AuthenticationException("NTLM authentication - buffer too small for DWORD");
-+        return (src[index] & 0xff) |
-+                ((src[index + 1] & 0xff) << 8) |
-+                ((src[index + 2] & 0xff) << 16) |
-+                ((src[index + 3] & 0xff) << 24);
-+    }
-+
-+    private static int readUShort(byte[] src, int index)
-+        throws AuthenticationException {
-+        if (src.length < index + 2)
-+            throw new AuthenticationException("NTLM authentication - buffer too small for WORD");
-+        return (src[index] & 0xff) | ((src[index + 1] & 0xff) << 8);
-+    }
-+
-+    private static byte[] readSecurityBuffer(byte[] src, int index) 
-+        throws AuthenticationException {
-+        int length = readUShort(src, index);
-+        int offset = readULong(src, index + 4);
-+	if (src.length < offset + length)
-+            throw new AuthenticationException("NTLM authentication - buffer too small for data item");
-+        byte[] buffer = new byte[length];
-+        System.arraycopy(src, offset, buffer, 0, length);
-+        return buffer;
-+    }
-+
-+    /** Calculate a challenge block */
-+    private static byte[] makeRandomChallenge()
-+    {
-+        byte[] rval = new byte[8];
-+        synchronized (randomGenerator)
-+        {
-+            randomGenerator.nextBytes(rval);
-         }
--        return EncodingUtil.getAsciiString(Base64.encodeBase64(resp));
-+        return rval;
-     }
-+     
-+    /** Calculate an NTLM2 challenge block */
-+    private static byte[] makeNTLM2RandomChallenge()
-+    {
-+        byte[] rval = new byte[24];
-+        synchronized (randomGenerator)
-+        {
-+            randomGenerator.nextBytes(rval);
-+        }
-+        // 8-byte challenge, padded with zeros to 24 bytes.
-+        java.util.Arrays.fill(rval,8,24,(byte)0x00);
-+        return rval;
-+    }
-     
-+    
-     /**
--     * Creates the first message (type 1 message) in the NTLM authentication sequence.
--     * This message includes the user name, domain and host for the authentication session.
-+     * Calculates the LM Response for the given challenge, using the specified
-+     * password.
-      *
--     * @param host the computer name of the host requesting authentication.
--     * @param domain The domain to authenticate with.
--     * @return String the message to add to the HTTP request header.
-+     * @param password The user's password.
-+     * @param challenge The Type 2 challenge from the server.
-+     *
-+     * @return The LM Response.
-      */
--    public String getType1Message(String host, String domain) {
--        host = host.toUpperCase(Locale.ENGLISH);
--        domain = domain.toUpperCase(Locale.ENGLISH);
--        byte[] hostBytes = EncodingUtil.getBytes(host, DEFAULT_CHARSET);
--        byte[] domainBytes = EncodingUtil.getBytes(domain, DEFAULT_CHARSET);
-+    public static byte[] getLMResponse(String password, byte[] challenge)
-+        throws AuthenticationException {
-+        byte[] lmHash = lmHash(password);
-+        return lmResponse(lmHash, challenge);
-+    }
- 
--        int finalLength = 32 + hostBytes.length + domainBytes.length;
--        prepareResponse(finalLength);
--        
--        // The initial id string.
--        byte[] protocol = EncodingUtil.getBytes("NTLMSSP", DEFAULT_CHARSET);
--        addBytes(protocol);
--        addByte((byte) 0);
-+    /**
-+     * Calculates the NTLM Response for the given challenge, using the
-+     * specified password.
-+     *
-+     * @param password The user's password.
-+     * @param challenge The Type 2 challenge from the server.
-+     *
-+     * @return The NTLM Response.
-+     */
-+    public static byte[] getNTLMResponse(String password, byte[] challenge)
-+        throws AuthenticationException {
-+        byte[] ntlmHash = ntlmHash(password);
-+        return lmResponse(ntlmHash, challenge);
-+    }
- 
--        // Type
--        addByte((byte) 1);
--        addByte((byte) 0);
--        addByte((byte) 0);
--        addByte((byte) 0);
-+    /**
-+     * Calculates the NTLMv2 Response for the given challenge, using the
-+     * specified authentication target, username, password, target information
-+     * block, and client challenge.
-+     *
-+     * @param target The authentication target (i.e., domain).
-+     * @param user The username. 
-+     * @param password The user's password.
-+     * @param targetInformation The target information block from the Type 2
-+     * message.
-+     * @param challenge The Type 2 challenge from the server.
-+     * @param clientChallenge The random 8-byte client challenge. 
-+     *
-+     * @return The NTLMv2 Response.
-+     */
-+    public static byte[] getNTLMv2Response(String target, String user,
-+        String password, byte[] challenge,
-+        byte[] clientChallenge, byte[] targetInformation)
-+            throws AuthenticationException {
-+        byte[] ntlmv2Hash = ntlmv2Hash(target, user, password);
-+        byte[] blob = createBlob(clientChallenge, targetInformation);
-+        return lmv2Response(ntlmv2Hash, challenge, blob);
-+    }
- 
--        // Flags
--        addByte((byte) 6);
--        addByte((byte) 82);
--        addByte((byte) 0);
--        addByte((byte) 0);
-+    /**
-+     * Calculates the LMv2 Response for the given challenge, using the
-+     * specified authentication target, username, password, and client
-+     * challenge.
-+     *
-+     * @param target The authentication target (i.e., domain).
-+     * @param user The username.
-+     * @param password The user's password.
-+     * @param challenge The Type 2 challenge from the server.
-+     * @param clientChallenge The random 8-byte client challenge.
-+     *
-+     * @return The LMv2 Response. 
-+     */
-+    public static byte[] getLMv2Response(String target, String user,
-+        String password, byte[] challenge, byte[] clientChallenge)
-+            throws AuthenticationException {
-+        byte[] ntlmv2Hash = ntlmv2Hash(target, user, password);
-+        return lmv2Response(ntlmv2Hash, challenge, clientChallenge);
-+    }
- 
--        // Domain length (first time).
--        int iDomLen = domainBytes.length;
--        byte[] domLen = convertShort(iDomLen);
--        addByte(domLen[0]);
--        addByte(domLen[1]);
-+    /**
-+     * Calculates the NTLM2 Session Response for the given challenge, using the
-+     * specified password and client challenge.
-+     *
-+     * @param password The user's password.
-+     * @param challenge The Type 2 challenge from the server.
-+     * @param clientChallenge The random 8-byte client challenge.
-+     *
-+     * @return The NTLM2 Session Response.  This is placed in the NTLM
-+     * response field of the Type 3 message; the LM response field contains
-+     * the client challenge, null-padded to 24 bytes.
-+     */
-+    public static byte[] getNTLM2SessionResponse(String password,
-+        byte[] challenge, byte[] clientChallenge) throws AuthenticationException
-+    {
-+        try
-+        {
-+            byte[] ntlmHash = ntlmHash(password);
- 
--        // Domain length (second time).
--        addByte(domLen[0]);
--        addByte(domLen[1]);
-+            // Look up MD5 algorithm (was necessary on jdk 1.4.2)
-+            // This used to be needed, but java 1.5.0_07 includes the MD5 algorithm (finally)
-+            //Class x = Class.forName("gnu.crypto.hash.MD5");
-+            //Method updateMethod = x.getMethod("update",new Class[]{byte[].class});
-+            //Method digestMethod = x.getMethod("digest",new Class[0]);
-+            //Object mdInstance = x.newInstance();
-+            //updateMethod.invoke(mdInstance,new Object[]{challenge});
-+            //updateMethod.invoke(mdInstance,new Object[]{clientChallenge});
-+            //byte[] digest = (byte[])digestMethod.invoke(mdInstance,new Object[0]);
-+	
-+            MessageDigest md5 = MessageDigest.getInstance("MD5");
-+            md5.update(challenge);
-+            md5.update(clientChallenge);
-+            byte[] digest = md5.digest();
-+	
-+            byte[] sessionHash = new byte[8];
-+            System.arraycopy(digest, 0, sessionHash, 0, 8);
-+            return lmResponse(ntlmHash, sessionHash);
-+        }
-+        catch (Exception e)
-+        {
-+            if (e instanceof AuthenticationException)
-+                throw (AuthenticationException)e;
-+            throw new AuthenticationException(e.getMessage(),e);
-+	}
-+    }
- 
--        // Domain offset.
--        byte[] domOff = convertShort(hostBytes.length + 32);
--        addByte(domOff[0]);
--        addByte(domOff[1]);
--        addByte((byte) 0);
--        addByte((byte) 0);
-+    /**
-+     * Creates the LM Hash of the user's password.
-+     *
-+     * @param password The password.
-+     *
-+     * @return The LM Hash of the given password, used in the calculation
-+     * of the LM Response.
-+     */
-+    private static byte[] lmHash(String password) throws AuthenticationException
-+    {
-+        try
-+        {
-+            byte[] oemPassword = password.toUpperCase().getBytes("US-ASCII");
-+            int length = Math.min(oemPassword.length, 14);
-+            byte[] keyBytes = new byte[14];
-+            System.arraycopy(oemPassword, 0, keyBytes, 0, length);
-+            Key lowKey = createDESKey(keyBytes, 0);
-+            Key highKey = createDESKey(keyBytes, 7);
-+            byte[] magicConstant = "KGS!@#$%".getBytes("US-ASCII");
-+            Cipher des = Cipher.getInstance("DES/ECB/NoPadding");
-+            des.init(Cipher.ENCRYPT_MODE, lowKey);
-+            byte[] lowHash = des.doFinal(magicConstant);
-+            des.init(Cipher.ENCRYPT_MODE, highKey);
-+            byte[] highHash = des.doFinal(magicConstant);
-+            byte[] lmHash = new byte[16];
-+            System.arraycopy(lowHash, 0, lmHash, 0, 8);
-+            System.arraycopy(highHash, 0, lmHash, 8, 8);
-+            return lmHash;
-+        }
-+        catch (Exception e)
-+        {
-+            throw new AuthenticationException(e.getMessage(),e);
-+        }
-+    }
- 
--        // Host length (first time).
--        byte[] hostLen = convertShort(hostBytes.length);
--        addByte(hostLen[0]);
--        addByte(hostLen[1]);
-+    /**
-+     * Creates the NTLM Hash of the user's password.
-+     *
-+     * @param password The password.
-+     *
-+     * @return The NTLM Hash of the given password, used in the calculation
-+     * of the NTLM Response and the NTLMv2 and LMv2 Hashes.
-+     */
-+    private static byte[] ntlmHash(String password) throws AuthenticationException
-+    {
-+        try
-+        {
-+            byte[] unicodePassword = password.getBytes("UnicodeLittleUnmarked");
-+            MD4 md4 = new MD4();
-+            md4.update(unicodePassword);
-+            return md4.getOutput();
-+        }
-+        catch (java.io.UnsupportedEncodingException e)
-+        {
-+            throw new AuthenticationException("Unicode not supported: "+e.getMessage(),e);
-+        }
-+    }
- 
--        // Host length (second time).
--        addByte(hostLen[0]);
--        addByte(hostLen[1]);
-+    /**
-+     * Creates the NTLMv2 Hash of the user's password.
-+     *
-+     * @param target The authentication target (i.e., domain).
-+     * @param user The username.
-+     * @param password The password.
-+     *
-+     * @return The NTLMv2 Hash, used in the calculation of the NTLMv2
-+     * and LMv2 Responses. 
-+     */
-+    private static byte[] ntlmv2Hash(String target, String user,
-+        String password) throws AuthenticationException
-+    {
-+        try
-+        {
-+            byte[] ntlmHash = ntlmHash(password);
-+            HMACMD5 hmacMD5 = new HMACMD5(ntlmHash);
-+            // Upper case username, mixed case target!!
-+            hmacMD5.update(user.toUpperCase().getBytes("UnicodeLittleUnmarked"));
-+            hmacMD5.update(target.getBytes("UnicodeLittleUnmarked"));
-+            return hmacMD5.getOutput();
-+        }
-+        catch (java.io.UnsupportedEncodingException e)
-+        {
-+            throw new AuthenticationException("Unicode not supported! "+e.getMessage(),e);
-+        }
-+    }
- 
--        // Host offset (always 32).
--        byte[] hostOff = convertShort(32);
--        addByte(hostOff[0]);
--        addByte(hostOff[1]);
--        addByte((byte) 0);
--        addByte((byte) 0);
-+    /**
-+     * Creates the LM Response from the given hash and Type 2 challenge.
-+     *
-+     * @param hash The LM or NTLM Hash.
-+     * @param challenge The server challenge from the Type 2 message.
-+     *
-+     * @return The response (either LM or NTLM, depending on the provided
-+     * hash).
-+     */
-+    private static byte[] lmResponse(byte[] hash, byte[] challenge)
-+        throws AuthenticationException
-+    {
-+        try
-+        {
-+            byte[] keyBytes = new byte[21];
-+            System.arraycopy(hash, 0, keyBytes, 0, 16);
-+            Key lowKey = createDESKey(keyBytes, 0);
-+            Key middleKey = createDESKey(keyBytes, 7);
-+            Key highKey = createDESKey(keyBytes, 14);
-+            Cipher des = Cipher.getInstance("DES/ECB/NoPadding");
-+            des.init(Cipher.ENCRYPT_MODE, lowKey);
-+            byte[] lowResponse = des.doFinal(challenge);
-+            des.init(Cipher.ENCRYPT_MODE, middleKey);
-+            byte[] middleResponse = des.doFinal(challenge);
-+            des.init(Cipher.ENCRYPT_MODE, highKey);
-+            byte[] highResponse = des.doFinal(challenge);
-+            byte[] lmResponse = new byte[24];
-+            System.arraycopy(lowResponse, 0, lmResponse, 0, 8);
-+            System.arraycopy(middleResponse, 0, lmResponse, 8, 8);
-+            System.arraycopy(highResponse, 0, lmResponse, 16, 8);
-+            return lmResponse;
-+        }
-+        catch (Exception e)
-+        {
-+            throw new AuthenticationException(e.getMessage(),e);
-+        }
-+    }
- 
--        // Host String.
--        addBytes(hostBytes);
--
--        // Domain String.
--        addBytes(domainBytes);
--
--        return getResponse();
-+    /**
-+     * Creates the LMv2 Response from the given hash, client data, and
-+     * Type 2 challenge.
-+     *
-+     * @param hash The NTLMv2 Hash.
-+     * @param clientData The client data (blob or client challenge).
-+     * @param challenge The server challenge from the Type 2 message.
-+     *
-+     * @return The response (either NTLMv2 or LMv2, depending on the
-+     * client data).
-+     */
-+    private static byte[] lmv2Response(byte[] hash, byte[] challenge,
-+        byte[] clientData) throws AuthenticationException
-+    {
-+        HMACMD5 hmacMD5 = new HMACMD5(hash);
-+        hmacMD5.update(challenge);
-+        hmacMD5.update(clientData);
-+        byte[] mac = hmacMD5.getOutput();
-+        byte[] lmv2Response = new byte[mac.length + clientData.length];
-+        System.arraycopy(mac, 0, lmv2Response, 0, mac.length);
-+        System.arraycopy(clientData, 0, lmv2Response, mac.length,
-+            clientData.length);
-+        return lmv2Response;
-     }
- 
--    /** 
--     * Extracts the server nonce out of the given message type 2.
--     * 
--     * @param message the String containing the base64 encoded message.
--     * @return an array of 8 bytes that the server sent to be used when
--     * hashing the password.
-+    /**
-+     * Creates the NTLMv2 blob from the given target information block and
-+     * client challenge.
-+     *
-+     * @param targetInformation The target information block from the Type 2
-+     * message.
-+     * @param clientChallenge The random 8-byte client challenge.
-+     *
-+     * @return The blob, used in the calculation of the NTLMv2 Response.
-      */
--    public byte[] parseType2Message(String message) {
--        // Decode the message first.
--        byte[] msg = Base64.decodeBase64(EncodingUtil.getBytes(message, DEFAULT_CHARSET));
--        byte[] nonce = new byte[8];
--        // The nonce is the 8 bytes starting from the byte in position 24.
-+    private static byte[] createBlob(byte[] clientChallenge, byte[] targetInformation) {
-+        byte[] blobSignature = new byte[] {
-+            (byte) 0x01, (byte) 0x01, (byte) 0x00, (byte) 0x00
-+        };
-+        byte[] reserved = new byte[] {
-+            (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00
-+        };
-+        byte[] unknown1 = new byte[] {
-+            (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00
-+        };
-+        long time = System.currentTimeMillis();
-+        time += 11644473600000l; // milliseconds from January 1, 1601 -> epoch.
-+        time *= 10000; // tenths of a microsecond.
-+        // convert to little-endian byte array.
-+        byte[] timestamp = new byte[8];
-         for (int i = 0; i < 8; i++) {
--            nonce[i] = msg[i + 24];
-+            timestamp[i] = (byte) time;
-+            time >>>= 8;
-         }
--        return nonce;
-+        byte[] blob = new byte[blobSignature.length + reserved.length+ timestamp.length + 8 +
-+            unknown1.length + targetInformation.length];
-+        int offset = 0;
-+        System.arraycopy(blobSignature, 0, blob, offset, blobSignature.length);
-+        offset += blobSignature.length;
-+        System.arraycopy(reserved, 0, blob, offset, reserved.length);
-+        offset += reserved.length;
-+        System.arraycopy(timestamp, 0, blob, offset, timestamp.length);
-+        offset += timestamp.length;
-+        System.arraycopy(clientChallenge, 0, blob, offset,8);
-+        offset += 8;
-+        System.arraycopy(unknown1, 0, blob, offset, unknown1.length);
-+        offset += unknown1.length;
-+        System.arraycopy(targetInformation, 0, blob, offset,
-+            targetInformation.length);
-+        return blob;
-     }
- 
-     /** 
--     * Creates the type 3 message using the given server nonce.  The type 3 message includes all the
--     * information for authentication, host, domain, username and the result of encrypting the
--     * nonce sent by the server using the user's password as the key.
-+     * Creates a DES encryption key from the given key material.
-      *
--     * @param user The user name.  This should not include the domain name.
--     * @param password The password.
--     * @param host The host that is originating the authentication request.
--     * @param domain The domain to authenticate within.
--     * @param nonce the 8 byte array the server sent.
--     * @return The type 3 message.
--     * @throws AuthenticationException If {@encrypt(byte[],byte[])} fails.
-+     * @param bytes A byte array containing the DES key material.
-+     * @param offset The offset in the given byte array at which
-+     * the 7-byte key material starts.
-+     *
-+     * @return A DES encryption key created from the key material
-+     * starting at the specified offset in the given byte array.
-      */
--    public String getType3Message(String user, String password,
--            String host, String domain, byte[] nonce)
--    throws AuthenticationException {
-+    private static Key createDESKey(byte[] bytes, int offset) {
-+        byte[] keyBytes = new byte[7];
-+        System.arraycopy(bytes, offset, keyBytes, 0, 7);
-+        byte[] material = new byte[8];
-+        material[0] = keyBytes[0];
-+        material[1] = (byte) (keyBytes[0] << 7 | (keyBytes[1] & 0xff) >>> 1);
-+        material[2] = (byte) (keyBytes[1] << 6 | (keyBytes[2] & 0xff) >>> 2);
-+        material[3] = (byte) (keyBytes[2] << 5 | (keyBytes[3] & 0xff) >>> 3);
-+        material[4] = (byte) (keyBytes[3] << 4 | (keyBytes[4] & 0xff) >>> 4);
-+        material[5] = (byte) (keyBytes[4] << 3 | (keyBytes[5] & 0xff) >>> 5);
-+        material[6] = (byte) (keyBytes[5] << 2 | (keyBytes[6] & 0xff) >>> 6);
-+        material[7] = (byte) (keyBytes[6] << 1);
-+        oddParity(material);
-+        return new SecretKeySpec(material, "DES");
-+    }
- 
--        int ntRespLen = 0;
--        int lmRespLen = 24;
--        domain = domain.toUpperCase(Locale.ENGLISH);
--        host = host.toUpperCase(Locale.ENGLISH);
--        user = user.toUpperCase(Locale.ENGLISH);
--        byte[] domainBytes = EncodingUtil.getBytes(domain, DEFAULT_CHARSET);
--        byte[] hostBytes = EncodingUtil.getBytes(host, DEFAULT_CHARSET);
--        byte[] userBytes = EncodingUtil.getBytes(user, credentialCharset);
--        int domainLen = domainBytes.length;
--        int hostLen = hostBytes.length;
--        int userLen = userBytes.length;
--        int finalLength = 64 + ntRespLen + lmRespLen + domainLen 
--            + userLen + hostLen;
--        prepareResponse(finalLength);
--        byte[] ntlmssp = EncodingUtil.getBytes("NTLMSSP", DEFAULT_CHARSET);
--        addBytes(ntlmssp);
--        addByte((byte) 0);
--        addByte((byte) 3);
--        addByte((byte) 0);
--        addByte((byte) 0);
--        addByte((byte) 0);
-+    /**
-+     * Applies odd parity to the given byte array.
-+     *
-+     * @param bytes The data whose parity bits are to be adjusted for
-+     * odd parity.
-+     */
-+    private static void oddParity(byte[] bytes) {
-+        for (int i = 0; i < bytes.length; i++) {
-+            byte b = bytes[i];
-+            boolean needsParity = (((b >>> 7) ^ (b >>> 6) ^ (b >>> 5) ^
-+                                    (b >>> 4) ^ (b >>> 3) ^ (b >>> 2) ^
-+                                    (b >>> 1)) & 0x01) == 0;
-+            if (needsParity) {
-+                bytes[i] |= (byte) 0x01;
-+            } else {
-+                bytes[i] &= (byte) 0xfe;
-+            }
-+        }
-+    }
-+    
-+    /** NTLM message generation, base class */
-+    protected static class NTLMMessage
-+    {
-+        /** The current response */
-+        private byte[] messageContents = null;
- 
--        // LM Resp Length (twice)
--        addBytes(convertShort(24));
--        addBytes(convertShort(24));
-+        /** The current output position */
-+        private int currentOutputPosition = 0;
- 
--        // LM Resp Offset
--        addBytes(convertShort(finalLength - 24));
--        addByte((byte) 0);
--        addByte((byte) 0);
-+        /** Constructor to use when message contents are not yet known */
-+        public NTLMMessage()
-+        {
-+        }
-+	
-+        /** Constructor to use when message contents are known */
-+        public NTLMMessage(String messageBody, int expectedType)
-+            throws AuthenticationException
-+        {
-+            messageContents = Base64.decodeBase64(EncodingUtil.getBytes(messageBody, DEFAULT_CHARSET));
-+            // Look for NTLM message
-+            if (messageContents.length < signatureBytes.length)
-+                throw new AuthenticationException("NTLM message decoding error - packet too short");
-+            int i = 0;
-+            while (i < signatureBytes.length)
-+            {
-+                if (messageContents[i] != signatureBytes[i])
-+                    throw new AuthenticationException("NTLM message expected - instead got unrecognized bytes");
-+                i++;
-+            }
- 
--        // NT Resp Length (twice)
--        addBytes(convertShort(0));
--        addBytes(convertShort(0));
-+            // Check to be sure there's a type 2 message indicator next
-+            int type = readULong(signatureBytes.length);
-+            if (type != expectedType)
-+                throw new AuthenticationException("NTLM type "+Integer.toString(expectedType)+" message expected - instead got type "+Integer.toString(type));
-+		
-+            currentOutputPosition = messageContents.length;
-+        }
- 
--        // NT Resp Offset
--        addBytes(convertShort(finalLength));
--        addByte((byte) 0);
--        addByte((byte) 0);
--
--        // Domain length (twice)
--        addBytes(convertShort(domainLen));
--        addBytes(convertShort(domainLen));
-+        /** Get the length of the signature and flags, so calculations can adjust offsets accordingly.
-+        */
-+        protected int getPreambleLength()
-+        {
-+            return signatureBytes.length + 4;
-+        }
-+	
-+        /** Get the message length */
-+        protected int getMessageLength()
-+        {
-+            return currentOutputPosition;
-+        }
-         
--        // Domain offset.
--        addBytes(convertShort(64));
--        addByte((byte) 0);
--        addByte((byte) 0);
-+        /** Read a byte from a position within the message buffer */
-+        protected byte readByte(int position) throws AuthenticationException
-+        {
-+            if (messageContents.length < position + 1)
-+                throw new AuthenticationException("NTLM: Message too short");
-+            return messageContents[position];
-+        }
- 
--        // User Length (twice)
--        addBytes(convertShort(userLen));
--        addBytes(convertShort(userLen));
-+        /** Read a bunch of bytes from a position in the message buffer */
-+        protected void readBytes(byte[] buffer, int position)
-+            throws AuthenticationException
-+        {
-+            if (messageContents.length < position + buffer.length)
-+                throw new AuthenticationException("NTLM: Message too short");
-+            System.arraycopy(messageContents,position,buffer,0,buffer.length);
-+        }
-+	
-+        /** Read a ushort from a position within the message buffer */
-+        protected int readUShort(int position) throws AuthenticationException
-+        {
-+            return NTLM.readUShort(messageContents,position);
-+        }
-+	
-+        /** Read a ulong from a position within the message buffer */
-+        protected int readULong(int position) throws AuthenticationException
-+        {
-+            return NTLM.readULong(messageContents,position);
-+        }
-+	
-+        /** Read a security buffer from a position within the message buffer */
-+        protected byte[] readSecurityBuffer(int position) throws AuthenticationException
-+        {
-+            return NTLM.readSecurityBuffer(messageContents,position);
-+        }
-+	
-+        /** 
-+        * Prepares the object to create a response of the given length.
-+        * @param length the maximum length of the response to prepare, not including the type and the signature (which this method adds).
-+        */
-+        protected void prepareResponse(int maxlength, int messageType) {
-+            messageContents = new byte[maxlength];
-+            currentOutputPosition = 0;
-+            addBytes(signatureBytes);
-+            addULong(messageType);
-+        }
- 
--        // User offset
--        addBytes(convertShort(64 + domainLen));
--        addByte((byte) 0);
--        addByte((byte) 0);
-+        /** 
-+        * Adds the given byte to the response.
-+        * @param b the byte to add.
-+        */
-+        protected void addByte(byte b) {
-+            messageContents[currentOutputPosition] = b;
-+            currentOutputPosition++;
-+        }
- 
--        // Host length (twice)
--        addBytes(convertShort(hostLen));
--        addBytes(convertShort(hostLen));
-+        /** 
-+        * Adds the given bytes to the response.
-+        * @param bytes the bytes to add.
-+        */
-+        protected void addBytes(byte[] bytes) {
-+            for (int i = 0; i < bytes.length; i++) {
-+                messageContents[currentOutputPosition] = bytes[i];
-+                currentOutputPosition++;
-+            }
-+        }
- 
--        // Host offset
--        addBytes(convertShort(64 + domainLen + userLen));
-+        /** Adds a USHORT to the response */
-+        protected void addUShort(int value) {
-+            addByte((byte) (value & 0xff));
-+            addByte((byte) (value >> 8 & 0xff));
-+        }
-+	
-+        /** Adds a ULong to the response */
-+        protected void addULong(int value) {
-+            addByte((byte) (value & 0xff));
-+            addByte((byte) (value >> 8 & 0xff));
-+            addByte((byte) (value >> 16 & 0xff));
-+            addByte((byte) (value >> 24 & 0xff));
-+        }
- 
--        for (int i = 0; i < 6; i++) {
--            addByte((byte) 0);
-+        /** 
-+        * Returns the response that has been generated after shrinking the array if
-+        * required and base64 encodes the response.
-+        * @return The response as above.
-+        */
-+        public String getResponse() {
-+            byte[] resp;
-+            if (messageContents.length > currentOutputPosition) {
-+                byte[] tmp = new byte[currentOutputPosition];
-+                for (int i = 0; i < currentOutputPosition; i++) {
-+                    tmp[i] = messageContents[i];
-+                }
-+                resp = tmp;
-+            } else {
-+                resp = messageContents;
-+            }
-+            return EncodingUtil.getAsciiString(Base64.encodeBase64(resp));
-         }
- 
--        // Message length
--        addBytes(convertShort(finalLength));
--        addByte((byte) 0);
--        addByte((byte) 0);
-+    }
-+    
-+    /** Type 1 message assembly class */
-+    public static class Type1Message extends NTLMMessage
-+    {
-+	protected byte[] hostBytes;
-+	protected byte[] domainBytes;
- 
--        // Flags
--        addByte((byte) 6);
--        addByte((byte) 82);
--        addByte((byte) 0);
--        addByte((byte) 0);
-+        /** Constructor.  Include the arguments the message will need */
-+        public Type1Message(String domain, String host)
-+	    throws AuthenticationException
-+        {
-+            super();
-+            try
-+            {
-+                // Strip off domain name from the host!
-+                host = convertHost(host);
-+                // Use only the base domain name!
-+                domain = convertDomain(domain);
-+	
-+                hostBytes = host.getBytes("UnicodeLittleUnmarked");
-+                domainBytes = domain.toUpperCase().getBytes("UnicodeLittleUnmarked");
-+            }
-+            catch (java.io.UnsupportedEncodingException e)
-+            {
-+                throw new AuthenticationException("Unicode unsupported: "+e.getMessage(),e);
-+            }
-+        }
-+	
-+        /** Getting the response involves building the message before returning it */
-+        public String getResponse()
-+        {
-+            // Now, build the message.  Calculate its length first, including signature or type.
-+            int finalLength = 32 + hostBytes.length + domainBytes.length;
-+            
-+            // Set up the response.  This will initialize the signature, message type, and flags.
-+            prepareResponse(finalLength,1);
-+		
-+            // Flags.  These are the complete set of flags we support.
-+            addULong(FLAG_NEGOTIATE_NTLM |
-+                FLAG_NEGOTIATE_NTLM2 |
-+                FLAG_NEGOTIATE_SIGN |
-+                FLAG_NEGOTIATE_SEAL |
-+                /* FLAG_NEGOTIATE_ALWAYS_SIGN |
-+                    FLAG_NEGOTIATE_KEY_EXCH | */
-+                FLAG_UNICODE_ENCODING |
-+                FLAG_TARGET_DESIRED |
-+                FLAG_NEGOTIATE_128);
- 
--        addBytes(domainBytes);
--        addBytes(userBytes);
--        addBytes(hostBytes);
--        addBytes(hashPassword(password, nonce));
--        return getResponse();
--    }
-+            // Domain length (two times).
-+            addUShort(domainBytes.length);
-+            addUShort(domainBytes.length);
- 
--    /** 
--     * Creates the LANManager and NT response for the given password using the
--     * given nonce.
--     * @param password the password to create a hash for.
--     * @param nonce the nonce sent by the server.
--     * @return The response.
--     * @throws HttpException If {@link #encrypt(byte[],byte[])} fails.
--     */
--    private byte[] hashPassword(String password, byte[] nonce)
--        throws AuthenticationException {
--        byte[] passw = EncodingUtil.getBytes(password.toUpperCase(Locale.ENGLISH), credentialCharset);
--        byte[] lmPw1 = new byte[7];
--        byte[] lmPw2 = new byte[7];
-+            // Domain offset.
-+            addULong(hostBytes.length + 32);
- 
--        int len = passw.length;
--        if (len > 7) {
--            len = 7;
-+            // Host length (two times).
-+            addUShort(hostBytes.length);
-+            addUShort(hostBytes.length);
-+
-+            // Host offset (always 32).
-+            addULong(32);
-+		
-+            // Host String.
-+            addBytes(hostBytes);
-+
-+            // Domain String.
-+            addBytes(domainBytes);
-+
-+            return super.getResponse();
-         }
- 
--        int idx;
--        for (idx = 0; idx < len; idx++) {
--            lmPw1[idx] = passw[idx];
-+    }
-+
-+    /** Type 2 message class */
-+    public static class Type2Message extends NTLMMessage
-+    {
-+        protected byte[] challenge;
-+        protected String target;
-+        protected byte[] targetInfo;
-+        protected int flags;
-+
-+        public Type2Message(String message)
-+	    throws AuthenticationException
-+        {
-+            super(message,2);
-+		
-+            // Parse out the rest of the info we need from the message
-+            // The nonce is the 8 bytes starting from the byte in position 24.
-+            challenge = new byte[8];
-+            readBytes(challenge,24);
-+
-+            flags = readULong(20);
-+            if ((flags & FLAG_UNICODE_ENCODING) == 0)
-+                throw new AuthenticationException("NTLM type 2 message has flags that make no sense: "+Integer.toString(flags));
-+            // Do the target!
-+            target = null;
-+            // The TARGET_DESIRED flag is said to not have understood semantics in Type2 messages, so use the length of the packet to decide
-+            // how to proceed instead
-+            if (getMessageLength() >= 12 + 8)
-+            {
-+                byte[] bytes = readSecurityBuffer(12);
-+                if (bytes.length != 0)
-+                {
-+                    try
-+                    {
-+                        target = new String(bytes,"UnicodeLittleUnmarked");
-+                    }
-+                    catch (java.io.UnsupportedEncodingException e)
-+                    {
-+                        throw new AuthenticationException(e.getMessage(),e);
-+                    }
-+                }
-+            }
-+
-+            // Do the target info!
-+            targetInfo = null;
-+            // TARGET_DESIRED flag cannot be relied on, so use packet length
-+            if (getMessageLength() >= 40 + 8)
-+            {
-+                byte[] bytes = readSecurityBuffer(40);
-+                if (bytes.length != 0)
-+                {
-+                    targetInfo = bytes;
-+                }
-+            }
-         }
--        for (; idx < 7; idx++) {
--            lmPw1[idx] = (byte) 0;
-+	
-+        /** Retrieve the challenge */
-+        public byte[] getChallenge()
-+        {
-+            return challenge;
-         }
--
--        len = passw.length;
--        if (len > 14) {
--            len = 14;
-+	
-+        /** Retrieve the target */
-+        public String getTarget()
-+        {
-+            return target;
-         }
--        for (idx = 7; idx < len; idx++) {
--            lmPw2[idx - 7] = passw[idx];
-+	
-+        /** Retrieve the target info */
-+        public byte[] getTargetInfo()
-+        {
-+            return targetInfo;
-         }
--        for (; idx < 14; idx++) {
--            lmPw2[idx - 7] = (byte) 0;
-+	
-+        /** Retrieve the response flags */
-+        public int getFlags()
-+        {
-+            return flags;
-         }
- 
--        // Create LanManager hashed Password
--        byte[] magic = {
--            (byte) 0x4B, (byte) 0x47, (byte) 0x53, (byte) 0x21, 
--            (byte) 0x40, (byte) 0x23, (byte) 0x24, (byte) 0x25
--        };
-+    }
- 
--        byte[] lmHpw1;
--        lmHpw1 = encrypt(lmPw1, magic);
-+    /** Type 3 message assembly class */
-+    public static class Type3Message extends NTLMMessage
-+    {
-+        // Response flags from the type2 message
-+        protected int type2Flags;
- 
--        byte[] lmHpw2 = encrypt(lmPw2, magic);
-+        protected byte[] domainBytes;
-+        protected byte[] hostBytes;
-+        protected byte[] userBytes;
-+	
-+        protected byte[] lmResp;
-+        protected byte[] ntResp;
- 
--        byte[] lmHpw = new byte[21];
--        for (int i = 0; i < lmHpw1.length; i++) {
--            lmHpw[i] = lmHpw1[i];
-+        /** Constructor.  Pass the arguments we will need */
-+        public Type3Message(String domain, String host, String user, String password,
-+            byte[] nonce, int type2Flags, String target, byte[] targetInformation)
-+	    throws AuthenticationException
-+        {
-+            // Save the flags
-+            this.type2Flags = type2Flags;
-+		
-+            // Strip off domain name from the host!
-+            host = convertHost(host);
-+            // Use only the base domain name!
-+            domain = convertDomain(domain);
-+
-+            // Use the new code to calculate the responses, including v2 if that seems warranted.
-+            try
-+            {
-+                if (targetInformation != null && target != null)
-+                {
-+                    byte[] clientChallenge = makeRandomChallenge();
-+                    ntResp = getNTLMv2Response(target,user,password,nonce,clientChallenge,targetInformation);
-+                    lmResp = getLMv2Response(target,user,password,nonce,clientChallenge);
-+                }
-+                else
-+                {
-+                    if ((type2Flags & FLAG_NEGOTIATE_NTLM2) != 0)
-+                    {
-+                        // NTLM2 session stuff is requested
-+                        byte[] clientChallenge = makeNTLM2RandomChallenge();
-+				
-+                        ntResp = getNTLM2SessionResponse(password,nonce,clientChallenge);
-+                        lmResp = clientChallenge;
-+				
-+                        // All the other flags we send (signing, sealing, key exchange) are supported, but they don't do anything at all in an
-+                        // NTLM2 context!  So we're done at this point.
-+                    }
-+                    else
-+                    {
-+                        ntResp = getNTLMResponse(password,nonce);
-+                        lmResp = getLMResponse(password,nonce);
-+                    }
-+                }
-+            }
-+            catch (AuthenticationException e)
-+            {
-+                // This likely means we couldn't find the MD4 hash algorithm - fail back to just using LM
-+                ntResp = new byte[0];
-+                lmResp = getLMResponse(password,nonce);
-+            }
-+
-+            try
-+            {
-+                domainBytes = domain.toUpperCase().getBytes("UnicodeLittleUnmarked");
-+                hostBytes = host.getBytes("UnicodeLittleUnmarked");
-+                userBytes = user.getBytes("UnicodeLittleUnmarked");
-+            }
-+            catch (java.io.UnsupportedEncodingException e)
-+            {
-+                throw new AuthenticationException("Unicode not supported: "+e.getMessage(),e);
-+            }
-         }
--        for (int i = 0; i < lmHpw2.length; i++) {
--            lmHpw[i + 8] = lmHpw2[i];
-+	
-+        /** Assemble the response */
-+        public String getResponse()
-+        {
-+            int ntRespLen = ntResp.length;
-+            int lmRespLen = lmResp.length;
-+
-+            int domainLen = domainBytes.length;
-+            int hostLen = hostBytes.length;
-+            int userLen = userBytes.length;
-+		    
-+            // Calculate the layout within the packet
-+            int lmRespOffset = 64;
-+            int ntRespOffset = lmRespOffset + lmRespLen;
-+            int domainOffset = ntRespOffset + ntRespLen;
-+            int userOffset = domainOffset + domainLen;
-+            int hostOffset = userOffset + userLen;
-+            int sessionKeyOffset = hostOffset + hostLen;
-+            int finalLength = sessionKeyOffset + 0;
-+		
-+            // Start the response.  Length includes signature and type
-+            prepareResponse(finalLength,3);
-+		
-+            // LM Resp Length (twice)
-+            addUShort(lmRespLen);
-+            addUShort(lmRespLen);
-+
-+            // LM Resp Offset
-+            addULong(lmRespOffset);
-+
-+            // NT Resp Length (twice)
-+            addUShort(ntRespLen);
-+            addUShort(ntRespLen);
-+
-+            // NT Resp Offset
-+            addULong(ntRespOffset);
-+
-+            // Domain length (twice)
-+            addUShort(domainLen);
-+            addUShort(domainLen);
-+		
-+            // Domain offset.
-+            addULong(domainOffset);
-+
-+            // User Length (twice)
-+            addUShort(userLen);
-+            addUShort(userLen);
-+
-+            // User offset
-+            addULong(userOffset);
-+
-+            // Host length (twice)
-+            addUShort(hostLen);
-+            addUShort(hostLen);
-+
-+            // Host offset
-+            addULong(hostOffset);
-+		
-+            // 4 bytes of zeros - not sure what this is
-+            addULong(0);
-+
-+            // Message length
-+            addULong(finalLength);
-+		
-+            // Flags.  Currently:  NEGOTIATE_NTLM + UNICODE_ENCODING + TARGET_DESIRED + NEGOTIATE_128
-+            addULong(FLAG_NEGOTIATE_NTLM | FLAG_UNICODE_ENCODING | FLAG_TARGET_DESIRED | FLAG_NEGOTIATE_128 |
-+                (type2Flags & FLAG_NEGOTIATE_NTLM2) |
-+                (type2Flags & FLAG_NEGOTIATE_SIGN) |
-+                (type2Flags & FLAG_NEGOTIATE_SEAL) |
-+                (type2Flags & FLAG_NEGOTIATE_KEY_EXCH) |
-+                (type2Flags & FLAG_NEGOTIATE_ALWAYS_SIGN));
-+
-+            // Add the actual data
-+            addBytes(lmResp);
-+            addBytes(ntResp);
-+            addBytes(domainBytes);
-+            addBytes(userBytes);
-+            addBytes(hostBytes);
-+
-+            return super.getResponse();
-         }
--        for (int i = 0; i < 5; i++) {
--            lmHpw[i + 16] = (byte) 0;
--        }
-+    }
- 
--        // Create the responses.
--        byte[] lmResp = new byte[24];
--        calcResp(lmHpw, nonce, lmResp);
-+    protected static void writeULong(byte[] buffer, int value, int offset)
-+    {
-+        buffer[offset] = (byte) (value & 0xff);
-+        buffer[offset+1] = (byte) (value >> 8 & 0xff);
-+        buffer[offset+2] = (byte) (value >> 16 & 0xff);
-+        buffer[offset+3] = (byte) (value >> 24 & 0xff);
-+    }
-+    
-+    protected static int F(int x, int y, int z) {
-+        return((x & y) | (~x & z));
-+    }
-+    protected static int G(int x, int y, int z) {
-+        return((x & y) | (x & z) | (y & z));
-+    }
-+    protected static int H(int x, int y, int z) {
-+        return(x ^ y ^ z);
-+    }
- 
--        return lmResp;
-+    protected static int rotintlft(int val, int numbits) {
-+        return((val << numbits) | (val >>> (32 - numbits)));
-     }
- 
--    /** 
--     * Takes a 21 byte array and treats it as 3 56-bit DES keys.  The 8 byte
--     * plaintext is encrypted with each key and the resulting 24 bytes are
--     * stored in the results array.
--     * 
--     * @param keys The keys.
--     * @param plaintext The plain text to encrypt.
--     * @param results Where the results are stored.
--     * @throws AuthenticationException If {@link #encrypt(byte[],byte[])} fails.
--     */
--    private void calcResp(byte[] keys, byte[] plaintext, byte[] results)
--        throws AuthenticationException {
--        byte[] keys1 = new byte[7];
--        byte[] keys2 = new byte[7];
--        byte[] keys3 = new byte[7];
--        for (int i = 0; i < 7; i++) {
--            keys1[i] = keys[i];
-+    /** Cryptography support - MD4.
-+    * The following class was based loosely on the RFC and on code found at http://www.cs.umd.edu/~harry/jotp/src/md.java.
-+    * Code correctness was verified by looking at MD4.java from the jcifs library (http://jcifs.samba.org).
-+    * It was massaged extensively to the final form found here by Karl Wright (kwright@metacarta.com).
-+    */
-+    protected static class MD4
-+    {
-+        protected int A = 0x67452301;
-+        protected int B = 0xefcdab89;
-+        protected int C = 0x98badcfe;
-+        protected int D = 0x10325476;
-+        protected long count = 0L;
-+        protected byte[] dataBuffer = new byte[64];
-+	
-+        public MD4()
-+        {
-         }
-+	
-+        public void update(byte[] input)
-+        {
-+            // We always deal with 512 bits at a time.  Correspondingly, there is a buffer 64 bytes long that we write data into until it gets full.
-+            int curBufferPos = (int)(count & 63L);
-+            int inputIndex = 0;
-+            while (input.length - inputIndex + curBufferPos >= dataBuffer.length)
-+            {
-+                // We have enough data to do the next step.  Do a partial copy and a transform, updating inputIndex and curBufferPos accordingly
-+                int transferAmt = dataBuffer.length - curBufferPos;
-+                System.arraycopy(input,inputIndex,dataBuffer,curBufferPos,transferAmt);
-+                count += transferAmt;
-+                curBufferPos = 0;
-+                inputIndex += transferAmt;
-+                processBuffer();
-+            }
-+		
-+            // If there's anything left, copy it into the buffer and leave it.  We know there's not enough left to process.
-+            if (inputIndex < input.length)
-+            {
-+                int transferAmt = input.length - inputIndex;
-+                System.arraycopy(input,inputIndex,dataBuffer,curBufferPos,transferAmt);
-+                count += transferAmt;
-+                curBufferPos += transferAmt;
-+            }
-+        }
-+	
-+        public byte[] getOutput()
-+        {
-+            // Feed pad/length data into engine.  This must round out the input to a multiple of 512 bits.
-+            int bufferIndex = (int)(count & 63L);
-+            int padLen = (bufferIndex < 56) ? (56 - bufferIndex) : (120 - bufferIndex);
-+            byte[] postBytes = new byte[padLen + 8];
-+            // Leading 0x80, specified amount of zero padding, then length in bits.
-+            postBytes[0] = (byte)0x80;
-+            // Fill out the last 8 bytes with the length
-+            for (int i = 0; i < 8; i++)
-+            {
-+                postBytes[padLen + i] = (byte)((count * 8) >>> (8 * i));
-+            }
-+		
-+            // Update the engine
-+            update(postBytes);
- 
--        for (int i = 0; i < 7; i++) {
--            keys2[i] = keys[i + 7];
-+            // Calculate final result
-+            byte[] result = new byte[16];
-+            writeULong(result,A,0);
-+            writeULong(result,B,4);
-+            writeULong(result,C,8);
-+            writeULong(result,D,12);
-+            return result;
-         }
- 
--        for (int i = 0; i < 7; i++) {
--            keys3[i] = keys[i + 14];
-+        protected void processBuffer()
-+        {
-+            // Convert current buffer to 16 ulongs
-+            int[] d = new int[16];
-+
-+            for (int i = 0; i < 16; i++)
-+            {
-+                d[i] = (dataBuffer[i*4] & 0xff) + ((dataBuffer[i*4+1] & 0xff) << 8) + 
-+                    ((dataBuffer[i*4+2] & 0xff) << 16) + ((dataBuffer[i*4+3] & 0xff) << 24);
-+            }
-+		
-+            // Do a round of processing
-+            int AA = A; int BB = B; int CC = C; int DD = D;
-+            round1(d);
-+            round2(d);
-+            round3(d);
-+            A += AA; B+= BB; C+= CC; D+= DD;
-+
-         }
--        byte[] results1 = encrypt(keys1, plaintext);
- 
--        byte[] results2 = encrypt(keys2, plaintext);
-+        protected void round1(int[] d) {
-+            A = rotintlft((A + F(B, C, D) + d[0]), 3);
-+            D = rotintlft((D + F(A, B, C) + d[1]), 7);
-+            C = rotintlft((C + F(D, A, B) + d[2]), 11);
-+            B = rotintlft((B + F(C, D, A) + d[3]), 19);
- 
--        byte[] results3 = encrypt(keys3, plaintext);
-+            A = rotintlft((A + F(B, C, D) + d[4]), 3);
-+            D = rotintlft((D + F(A, B, C) + d[5]), 7);
-+            C = rotintlft((C + F(D, A, B) + d[6]), 11);
-+            B = rotintlft((B + F(C, D, A) + d[7]), 19);
- 
--        for (int i = 0; i < 8; i++) {
--            results[i] = results1[i];
-+            A = rotintlft((A + F(B, C, D) + d[8]), 3);
-+            D = rotintlft((D + F(A, B, C) + d[9]), 7);
-+            C = rotintlft((C + F(D, A, B) + d[10]), 11);
-+            B = rotintlft((B + F(C, D, A) + d[11]), 19);
-+
-+            A = rotintlft((A + F(B, C, D) + d[12]), 3);
-+            D = rotintlft((D + F(A, B, C) + d[13]), 7);
-+            C = rotintlft((C + F(D, A, B) + d[14]), 11);
-+            B = rotintlft((B + F(C, D, A) + d[15]), 19);
-+	}
-+	    
-+        protected void round2(int[] d) {
-+            A = rotintlft((A + G(B, C, D) + d[0] + 0x5a827999), 3);
-+            D = rotintlft((D + G(A, B, C) + d[4] + 0x5a827999), 5);
-+            C = rotintlft((C + G(D, A, B) + d[8] + 0x5a827999), 9);
-+            B = rotintlft((B + G(C, D, A) + d[12] + 0x5a827999), 13);
-+
-+            A = rotintlft((A + G(B, C, D) + d[1] + 0x5a827999), 3);
-+            D = rotintlft((D + G(A, B, C) + d[5] + 0x5a827999), 5);
-+            C = rotintlft((C + G(D, A, B) + d[9] + 0x5a827999), 9);
-+            B = rotintlft((B + G(C, D, A) + d[13] + 0x5a827999), 13);
-+
-+            A = rotintlft((A + G(B, C, D) + d[2] + 0x5a827999), 3);
-+            D = rotintlft((D + G(A, B, C) + d[6] + 0x5a827999), 5);
-+            C = rotintlft((C + G(D, A, B) + d[10] + 0x5a827999), 9);
-+            B = rotintlft((B + G(C, D, A) + d[14] + 0x5a827999), 13);
-+
-+            A = rotintlft((A + G(B, C, D) + d[3] + 0x5a827999), 3);
-+            D = rotintlft((D + G(A, B, C) + d[7] + 0x5a827999), 5);
-+            C = rotintlft((C + G(D, A, B) + d[11] + 0x5a827999), 9);
-+            B = rotintlft((B + G(C, D, A) + d[15] + 0x5a827999), 13);
-+
-         }
--        for (int i = 0; i < 8; i++) {
--            results[i + 8] = results2[i];
-+
-+        protected void round3(int[] d) {
-+            A = rotintlft((A + H(B, C, D) + d[0] + 0x6ed9eba1), 3);
-+            D = rotintlft((D + H(A, B, C) + d[8] + 0x6ed9eba1), 9);
-+            C = rotintlft((C + H(D, A, B) + d[4] + 0x6ed9eba1), 11);
-+            B = rotintlft((B + H(C, D, A) + d[12] + 0x6ed9eba1), 15);
-+
-+            A = rotintlft((A + H(B, C, D) + d[2] + 0x6ed9eba1), 3);
-+            D = rotintlft((D + H(A, B, C) + d[10] + 0x6ed9eba1), 9);
-+            C = rotintlft((C + H(D, A, B) + d[6] + 0x6ed9eba1), 11);
-+            B = rotintlft((B + H(C, D, A) + d[14] + 0x6ed9eba1), 15);
-+
-+            A = rotintlft((A + H(B, C, D) + d[1] + 0x6ed9eba1), 3);
-+            D = rotintlft((D + H(A, B, C) + d[9] + 0x6ed9eba1), 9);
-+            C = rotintlft((C + H(D, A, B) + d[5] + 0x6ed9eba1), 11);
-+            B = rotintlft((B + H(C, D, A) + d[13] + 0x6ed9eba1), 15);
-+
-+            A = rotintlft((A + H(B, C, D) + d[3] + 0x6ed9eba1), 3);
-+            D = rotintlft((D + H(A, B, C) + d[11] + 0x6ed9eba1), 9);
-+            C = rotintlft((C + H(D, A, B) + d[7] + 0x6ed9eba1), 11);
-+            B = rotintlft((B + H(C, D, A) + d[15] + 0x6ed9eba1), 15);
-+
-         }
--        for (int i = 0; i < 8; i++) {
--            results[i + 16] = results3[i];
--        }
-+
-     }
- 
--    /** 
--     * Converts a given number to a two byte array in little endian order.
--     * @param num the number to convert.
--     * @return The byte representation of <i>num</i> in little endian order.
--     */
--    private byte[] convertShort(int num) {
--        byte[] val = new byte[2];
--        String hex = Integer.toString(num, 16);
--        while (hex.length() < 4) {
--            hex = "0" + hex;
-+    /** Cryptography support - HMACMD5 - algorithmically based on various web resources by Karl Wright */
-+    protected static class HMACMD5
-+    {
-+        protected byte[] ipad;
-+        protected byte[] opad;
-+        protected MessageDigest md5;
-+
-+        public HMACMD5(byte[] key)
-+            throws AuthenticationException
-+        {
-+            try
-+            {
-+                md5 = MessageDigest.getInstance("MD5");
-+            }
-+            catch (Exception ex)
-+            {
-+                // Umm, the algorithm doesn't exist - throw an AuthenticationException!
-+                throw new AuthenticationException("Error getting md5 message digest implementation: "+ex.getMessage(),ex);
-+            }
-+
-+            // Initialize the pad buffers with the key
-+            ipad = new byte[64];
-+            opad = new byte[64];
-+
-+            int keyLength = key.length;
-+            if (keyLength > 64)
-+            {
-+                // Use MD5 of the key instead, as described in RFC 2104
-+                md5.update(key);
-+                key = md5.digest();
-+                keyLength = key.length;
-+            }
-+            int i = 0;
-+            while (i < keyLength)
-+            {
-+                ipad[i] = (byte) (key[i] ^ (byte)0x36);
-+                opad[i] = (byte) (key[i] ^ (byte)0x5c);
-+                i++;
-+            }
-+            while (i < 64)
-+            {
-+                ipad[i] = (byte)0x36;
-+                opad[i] = (byte)0x5c;
-+                i++;
-+            }
-+	    
-+            // Very important: update the digest with the ipad buffer
-+            md5.reset();
-+            md5.update(ipad);
-+
-         }
--        String low = hex.substring(2, 4);
--        String high = hex.substring(0, 2);
--
--        val[0] = (byte) Integer.parseInt(low, 16);
--        val[1] = (byte) Integer.parseInt(high, 16);
--        return val;
-+	
-+        /** Grab the current digest.  This is the "answer". */
-+        public byte[] getOutput()
-+        {
-+            byte[] digest = md5.digest();
-+            md5.update(opad);
-+            return md5.digest(digest);
-+        }
-+	
-+        /** Update by adding a complete array */
-+        public void update(byte[] input)
-+        {
-+            md5.update(input);
-+        }
-+	
-+        /** Update the algorithm */
-+        public void update(byte[] input, int offset, int length)
-+        {
-+            md5.update(input,offset,length);
-+        }
-+	
-     }
-     
--    /**
--     * @return Returns the credentialCharset.
--     */
--    public String getCredentialCharset() {
--        return credentialCharset;
-+    /* Run test suite */
-+    public static void main(String[] args)
-+        throws Exception
-+    {
-+        // MD4 test suite:
-+        checkMD4("","31d6cfe0d16ae931b73c59d7e0c089c0");
-+        checkMD4("a","bde52cb31de33e46245e05fbdbd6fb24");
-+        checkMD4("abc","a448017aaf21d8525fc10ae87aa6729d");
-+        checkMD4("message digest","d9130a8164549fe818874806e1c7014b");
-+        checkMD4("abcdefghijklmnopqrstuvwxyz","d79e1c308aa5bbcdeea8ed63df412da9");
-+        checkMD4("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
-+            "043f8582f241db351ce627e153e7f0e4");
-+        checkMD4("12345678901234567890123456789012345678901234567890123456789012345678901234567890",
-+            "e33b4ddc9c38f2199c3e7b164fcc0536");
-+	    
-+        System.out.println("Tests pass");
-     }
--
--    /**
--     * @param credentialCharset The credentialCharset to set.
--     */
--    public void setCredentialCharset(String credentialCharset) {
--        this.credentialCharset = credentialCharset;
-+   
-+    /* Test suite helper */
-+    protected static byte checkToNibble(char c)
-+    {
-+        if (c >= 'a' && c <= 'f')
-+            return (byte)(c - 'a' + 0x0a);
-+        return (byte)(c - '0');
-     }
-+    
-+    /*Test suite helper */
-+    protected static byte[] checkToBytes(String hex)
-+    {
-+        byte[] rval = new byte[hex.length()/2];
-+        int i = 0;
-+        while (i < rval.length)
-+        {
-+            rval[i] = (byte)((checkToNibble(hex.charAt(i*2)) << 4) | (checkToNibble(hex.charAt(i*2+1))));
-+            i++;
-+        }
-+        return rval;
-+    }
-+    
-+    /* Test suite MD4 helper */
-+    protected static void checkMD4(String input, String hexOutput)
-+        throws Exception
-+    {
-+        MD4 md4;
-+        md4 = new MD4 ();
-+        md4.update(input.getBytes("ASCII"));
-+        byte[] answer = md4.getOutput();
-+        byte[] correctAnswer = checkToBytes(hexOutput);
-+        if (answer.length != correctAnswer.length)
-+            throw new Exception("Answer length disagrees for MD4('"+input+"')");
-+        int i = 0;
-+        while (i < answer.length)
-+        {
-+            if (answer[i] != correctAnswer[i])
-+                throw new Exception("Answer value for MD4('"+input+"') disagrees at position "+Integer.toString(i));
-+            i++;
-+        }
-+    }
- 
- }
-Index: src/java/org/apache/commons/httpclient/cookie/CookieSpecMediumSecurity.java

-===================================================================

---- src/java/org/apache/commons/httpclient/cookie/CookieSpecMediumSecurity.java	(.../httpcomponents/oac.hc3x/trunk)	(revision 0)

-+++ src/java/org/apache/commons/httpclient/cookie/CookieSpecMediumSecurity.java	(.../incubator/lcf/upstream/commons-httpclient-3.1-mcf/trunk)	(revision 1308601)

-@@ -0,0 +1,153 @@

-+/*
-+ * $HeadURL: https://svn.apache.org/repos/asf/incubator/lcf/upstream/commons-httpclient-3x/src/java/org/apache/commons/httpclient/cookie/CookieSpecBase.java $
-+ * $Revision: 653067 $
-+ * $Date: 2008-05-03 08:42:39 -0400 (Sat, 03 May 2008) $
-+ *
-+ * ====================================================================
-+ *
-+ *  Licensed to the Apache Software Foundation (ASF) under one or more
-+ *  contributor license agreements.  See the NOTICE file distributed with
-+ *  this work for additional information regarding copyright ownership.
-+ *  The ASF licenses this file to You under the Apache License, Version 2.0
-+ *  (the "License"); you may not use this file except in compliance with
-+ *  the License.  You may obtain a copy of the License at
-+ *
-+ *      http://www.apache.org/licenses/LICENSE-2.0
-+ *
-+ *  Unless required by applicable law or agreed to in writing, software
-+ *  distributed under the License is distributed on an "AS IS" BASIS,
-+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-+ *  See the License for the specific language governing permissions and
-+ *  limitations under the License.
-+ * ====================================================================
-+ *
-+ * This software consists of voluntary contributions made by many
-+ * individuals on behalf of the Apache Software Foundation.  For more
-+ * information on the Apache Software Foundation, please see
-+ * <http://www.apache.org/>.
-+ *
-+ */ 
-+
-+package org.apache.commons.httpclient.cookie;
-+
-+import java.util.Collection;
-+import java.util.Date;
-+import java.util.LinkedList;
-+import java.util.List;
-+import java.util.Locale;
-+
-+import org.apache.commons.httpclient.Cookie;
-+import org.apache.commons.httpclient.Header;
-+import org.apache.commons.httpclient.HeaderElement;
-+import org.apache.commons.httpclient.NameValuePair;
-+import org.apache.commons.httpclient.util.DateParseException;
-+import org.apache.commons.httpclient.util.DateUtil;
-+import org.apache.commons.logging.Log;
-+import org.apache.commons.logging.LogFactory;
-+
-+/**
-+ * 
-+ * Cookie management functions shared by all specification.
-+ *
-+ * @author  B.C. Holmes
-+ * @author <a href="mailto:jericho@thinkfree.com">Park, Sung-Gu</a>
-+ * @author <a href="mailto:dsale@us.britannica.com">Doug Sale</a>
-+ * @author Rod Waldhoff
-+ * @author dIon Gillard
-+ * @author Sean C. Sullivan
-+ * @author <a href="mailto:JEvans@Cyveillance.com">John Evans</a>
-+ * @author Marc A. Saegesser
-+ * @author <a href="mailto:oleg@ural.ru">Oleg Kalnichevski</a>
-+ * @author <a href="mailto:mbowler@GargoyleSoftware.com">Mike Bowler</a>
-+ * 
-+ * @since 2.0 
-+ */
-+public class CookieSpecMediumSecurity extends CookieSpecBase {
-+    
-+    /** Log object */
-+    protected static final Log LOG = LogFactory.getLog(CookieSpecMediumSecurity.class);
-+
-+    /** Default constructor */
-+    public CookieSpecMediumSecurity() {
-+        super();
-+    }
-+
-+	/**
-+      * Performs most common {@link Cookie} validation
-+      *
-+      * @param host the host from which the {@link Cookie} was received
-+      * @param port the port from which the {@link Cookie} was received
-+      * @param path the path from which the {@link Cookie} was received
-+      * @param secure <tt>true</tt> when the {@link Cookie} was received using a
-+      * secure connection
-+      * @param cookie The cookie to validate.
-+      * @throws MalformedCookieException if an exception occurs during
-+      * validation
-+      */
-+    
-+    public void validate(String host, int port, String path, 
-+        boolean secure, final Cookie cookie) 
-+        throws MalformedCookieException {
-+            
-+        LOG.trace("enter CookieSpecMediumSecurity.validate("
-+            + "String, port, path, boolean, Cookie)");
-+        if (host == null) {
-+            throw new IllegalArgumentException(
-+                "Host of origin may not be null");
-+        }
-+        if (host.trim().equals("")) {
-+            throw new IllegalArgumentException(
-+                "Host of origin may not be blank");
-+        }
-+        if (port < 0) {
-+            throw new IllegalArgumentException("Invalid port: " + port);
-+        }
-+        if (path == null) {
-+            throw new IllegalArgumentException(
-+                "Path of origin may not be null.");
-+        }
-+        if (path.trim().equals("")) {
-+            path = PATH_DELIM;
-+        }
-+        host = host.toLowerCase(Locale.ENGLISH);
-+        // check version
-+        if (cookie.getVersion() < 0) {
-+            throw new MalformedCookieException ("Illegal version number " 
-+                + cookie.getValue());
-+        }
-+
-+        // security check... we musn't allow the server to give us an
-+        // invalid domain scope
-+
-+        // Validate the cookies domain attribute.  NOTE:  Domains without 
-+        // any dots are allowed to support hosts on private LANs that don't 
-+        // have DNS names.  Since they have no dots, to domain-match the 
-+        // request-host and domain must be identical for the cookie to sent 
-+        // back to the origin-server.
-+        if (host.indexOf(".") >= 0) {
-+            // Not required to have at least two dots.  RFC 2965.
-+            // A Set-Cookie2 with Domain=ajax.com will be accepted.
-+
-+            // domain must match host
-+            if (!host.endsWith(cookie.getDomain())) {
-+                String s = cookie.getDomain();
-+                if (s.startsWith(".")) {
-+                    s = s.substring(1, s.length());
-+                }
-+                if (!host.equals(s)) { 
-+                    throw new MalformedCookieException(
-+                        "Illegal domain attribute \"" + cookie.getDomain() 
-+                        + "\". Domain of origin: \"" + host + "\"");
-+                }
-+            }
-+        } else {
-+            if (!host.equals(cookie.getDomain())) {
-+                throw new MalformedCookieException(
-+                    "Illegal domain attribute \"" + cookie.getDomain() 
-+                    + "\". Domain of origin: \"" + host + "\"");
-+            }
-+        }
-+
-+    }
-+
-+}
-

-Property changes on: src/java/org/apache/commons/httpclient/cookie/CookieSpecMediumSecurity.java

-___________________________________________________________________

-Added: svn:keywords

-## -0,0 +1 ##

-+Id

-Added: svn:eol-style

-## -0,0 +1 ##

-+native

-Index: src/java/org/apache/commons/httpclient/cookie/CookiePolicy.java

-===================================================================

---- src/java/org/apache/commons/httpclient/cookie/CookiePolicy.java	(.../httpcomponents/oac.hc3x/trunk)	(revision 915934)

-+++ src/java/org/apache/commons/httpclient/cookie/CookiePolicy.java	(.../incubator/lcf/upstream/commons-httpclient-3.1-mcf/trunk)	(working copy)

-@@ -69,6 +69,11 @@

-      */
-     public static final String BROWSER_COMPATIBILITY = "compatibility";
-     
-+    /**
-+     * Medium-security browser compatibility setting.
-+     */
-+    public static final String BROWSER_COMPATIBILITY_MEDIUM_SECURITY = "compatibilitymediumsecurity";
-+    
-     /** 
-      * The Netscape cookie draft compliant policy. 
-      * 
-@@ -109,6 +114,7 @@

-         CookiePolicy.registerCookieSpec(RFC_2109, RFC2109Spec.class);
-         CookiePolicy.registerCookieSpec(RFC_2965, RFC2965Spec.class);
-         CookiePolicy.registerCookieSpec(BROWSER_COMPATIBILITY, CookieSpecBase.class);
-+        CookiePolicy.registerCookieSpec(BROWSER_COMPATIBILITY_MEDIUM_SECURITY, CookieSpecMediumSecurity.class);
-         CookiePolicy.registerCookieSpec(NETSCAPE, NetscapeDraftSpec.class);
-         CookiePolicy.registerCookieSpec(IGNORE_COOKIES, IgnoreCookiesSpec.class);
-     }
-Index: src/java/org/apache/commons/httpclient/params/HttpClientParams.java

-===================================================================

---- src/java/org/apache/commons/httpclient/params/HttpClientParams.java	(.../httpcomponents/oac.hc3x/trunk)	(revision 915934)

-+++ src/java/org/apache/commons/httpclient/params/HttpClientParams.java	(.../incubator/lcf/upstream/commons-httpclient-3.1-mcf/trunk)	(working copy)

-@@ -81,6 +81,14 @@

-      */
-     public static final String REJECT_RELATIVE_REDIRECT = "http.protocol.reject-relative-redirect"; 
- 
-+    /**
-+     * Supplies a ProtocolFactory object, for custom protocol support even across redirections.
-+     * <p>
-+     * This parameter expects a value of type {@link ProtocolFactory}.
-+     * </p>
-+     */
-+    public static final String PROTOCOL_FACTORY = "http.protocol.factory"; 
-+
-     /** 
-      * Defines the maximum number of redirects to be followed. 
-      * The limit on number of redirects is intended to prevent infinite loops. 
diff --git a/upstream-diffs/xerces2-j-2.9.1.mcf.patch b/upstream-diffs/xerces2-j-2.9.1.mcf.patch
deleted file mode 100644
index cfe1c1e..0000000
--- a/upstream-diffs/xerces2-j-2.9.1.mcf.patch
+++ /dev/null
@@ -1,291 +0,0 @@
-Index: src/org/apache/xerces/impl/XMLScanner.java

-===================================================================

---- src/org/apache/xerces/impl/XMLScanner.java	(.../xerces/java/tags/Xerces-J_2_9_1)	(revision 575832)

-+++ src/org/apache/xerces/impl/XMLScanner.java	(.../incubator/lcf/upstream/xerces2-j-2.9.1-mcf/trunk)	(working copy)

-@@ -823,6 +823,7 @@

-                         String entityName = fEntityScanner.scanName();
-                         if (entityName == null) {
-                             reportFatalError("NameRequiredInReference", null);
-+                            entityName = "unknown";
-                         }
-                         else if (entityDepth == fEntityDepth) {
-                             fStringBuffer2.append(entityName);
-@@ -1027,6 +1028,14 @@

-                     if (XMLChar.isMarkup(c) || c == ']') {
-                         fStringBuffer.append((char)fEntityScanner.scanChar());
-                     }
-+                    else if (XMLChar.isHighSurrogate(c)) {
-+                        scanSurrogates(fStringBuffer);
-+                    }
-+                    else if (isInvalidLiteral(c)) {
-+                        reportFatalError("InvalidCharInSystemID",
-+                                new Object[] { Integer.toHexString(c) }); 
-+                        fEntityScanner.scanChar();
-+                    }
-                 } while (fEntityScanner.scanLiteral(quote, ident) != quote);
-                 fStringBuffer.append(ident);
-                 ident = fStringBuffer;
-Index: src/org/apache/xerces/impl/Constants.java

-===================================================================

---- src/org/apache/xerces/impl/Constants.java	(.../xerces/java/tags/Xerces-J_2_9_1)	(revision 575832)

-+++ src/org/apache/xerces/impl/Constants.java	(.../incubator/lcf/upstream/xerces2-j-2.9.1-mcf/trunk)	(working copy)

-@@ -219,6 +219,9 @@

-     
-     /** Warn on undeclared element feature ("validation/warn-on-undeclared-elemdef"). */
-     public static final String WARN_ON_UNDECLARED_ELEMDEF_FEATURE = "validation/warn-on-undeclared-elemdef";
-+
-+    /** Ignore misencoded characters feature */
-+    public static final String IGNORE_BADLY_ENCODED_CHARS = "ignore-badly-encoded-chars";
-     
-     /** Warn on duplicate entity declaration feature ("warn-on-duplicate-entitydef"). */
-     public static final String WARN_ON_DUPLICATE_ENTITYDEF_FEATURE = "warn-on-duplicate-entitydef";
-Index: src/org/apache/xerces/impl/XMLEntityManager.java

-===================================================================

---- src/org/apache/xerces/impl/XMLEntityManager.java	(.../xerces/java/tags/Xerces-J_2_9_1)	(revision 575832)

-+++ src/org/apache/xerces/impl/XMLEntityManager.java	(.../incubator/lcf/upstream/xerces2-j-2.9.1-mcf/trunk)	(working copy)

-@@ -132,6 +132,10 @@

- 	protected static final String PARSER_SETTINGS = 
- 		Constants.XERCES_FEATURE_PREFIX + Constants.PARSER_SETTINGS;	
- 
-+    /** Feature identifier: ignore badly encoded characters */
-+    protected static final String IGNORE_BADLY_ENCODED_CHARS =
-+        Constants.XERCES_FEATURE_PREFIX + Constants.IGNORE_BADLY_ENCODED_CHARS;
-+
-     // property identifiers
- 
-     /** Property identifier: symbol table. */
-@@ -167,7 +171,8 @@

-         EXTERNAL_PARAMETER_ENTITIES,
-         ALLOW_JAVA_ENCODINGS,
-         WARN_ON_DUPLICATE_ENTITYDEF,
--        STANDARD_URI_CONFORMANT
-+        STANDARD_URI_CONFORMANT,
-+        IGNORE_BADLY_ENCODED_CHARS
-     };
- 
-     /** Feature defaults. */
-@@ -177,6 +182,7 @@

-         Boolean.TRUE,
-         Boolean.FALSE,
-         Boolean.FALSE,
-+        Boolean.FALSE,
-         Boolean.FALSE
-     };
- 
-@@ -262,6 +268,12 @@

-      */
-     protected boolean fStrictURI;
- 
-+    /**
-+    * allow badly encoded characters (skip them)
-+    * http://apache.org/xml/features/ignore-badly-encoded-chars
-+    */
-+    protected boolean fAllowBadlyEncodedChars;
-+
-     // properties
- 
-     /**
-@@ -1310,6 +1322,13 @@

-             fStrictURI = false;
-         }
- 
-+        try {
-+            fAllowBadlyEncodedChars = componentManager.getFeature(IGNORE_BADLY_ENCODED_CHARS);
-+        }
-+        catch (XMLConfigurationException e) {
-+            fAllowBadlyEncodedChars = false;
-+        }
-+
-         // xerces properties
-         fSymbolTable = (SymbolTable)componentManager.getProperty(SYMBOL_TABLE);
-         fErrorReporter = (XMLErrorReporter)componentManager.getProperty(ERROR_REPORTER);
-@@ -2082,6 +2101,33 @@

-     protected Reader createReader(InputStream inputStream, String encoding, Boolean isBigEndian)
-         throws IOException {
- 
-+        Reader internalReader = createInternalReader(inputStream, encoding, isBigEndian);
-+        if (fAllowBadlyEncodedChars)
-+        {
-+            // Wrap the reader so that bad characters are ignored rather than causing aborts
-+            return new LaxReader(internalReader);
-+        }
-+        return internalReader;
-+    }
-+    
-+    /**
-+     * Creates a reader capable of reading the given input stream in
-+     * the specified encoding.
-+     *
-+     * @param inputStream  The input stream.
-+     * @param encoding     The encoding name that the input stream is
-+     *                     encoded using. If the user has specified that
-+     *                     Java encoding names are allowed, then the
-+     *                     encoding name may be a Java encoding name;
-+     *                     otherwise, it is an ianaEncoding name.
-+     * @param isBigEndian   For encodings (like uCS-4), whose names cannot
-+     *                      specify a byte order, this tells whether the order is bigEndian.  null menas
-+     *                      unknown or not relevant.
-+     *
-+     * @return Returns a reader.
-+     */
-+    protected Reader createInternalReader(InputStream inputStream, String encoding, Boolean isBigEndian)
-+        throws IOException {
-         // if the encoding is UTF-8 use the optimized UTF-8 reader
-         if (encoding == "UTF-8" || encoding == null) {
-             if (DEBUG_ENCODINGS) {
-@@ -3025,6 +3071,9 @@

-                 return -1;
-             }
-             if (fOffset == fData.length) {
-+                if (fCurrentEntity.mayReadChunks) {
-+                    return fInputStream.read();
-+                }
-                 byte[] newData = new byte[fOffset << 1];
-                 System.arraycopy(fData, 0, newData, 0, fOffset);
-                 fData = newData;
-@@ -3138,4 +3187,105 @@

-         }
-     } // end of RewindableInputStream class
- 
-+    protected static class LaxReader extends Reader
-+    {
-+        protected Reader internalReader;
-+
-+        public LaxReader(Reader internalReader)
-+        {
-+            this.internalReader = internalReader;
-+        }
-+
-+        public int read()
-+            throws IOException
-+        {
-+            // Since we need to be able to skip ahead at the point of error, and not drop huge amounts on the floor,
-+            // all read operations for this class are channeled through the single-character operation.  This is less
-+            // efficient, but hopefully not terribly so.
-+            try
-+            {
-+                return internalReader.read();
-+            }
-+            catch (org.apache.xerces.impl.io.MalformedByteSequenceException e)
-+            {
-+                // When this fails, it means we detected a bad character.
-+                // However, the bad character has already been pulled off the stream, so we are free to stuff in a "?" and
-+                // just keep going.
-+                return (int)'?';
-+            }
-+        }
-+        
-+        public int read(char[] cbuf)
-+            throws IOException
-+        {
-+            return read(cbuf,0,cbuf.length);
-+        }
-+
-+        public int read(char[] cbuf,
-+            int off,
-+            int len)
-+            throws IOException
-+        {
-+            int amtRead = 0;
-+            while (amtRead < len)
-+            {
-+                int cval = read();
-+                if (cval == -1)
-+                {
-+                    if (amtRead == 0)
-+                        return -1;
-+                    else
-+                        return amtRead;
-+                }
-+                cbuf[off++] = (char)cval;
-+                amtRead++;
-+            }
-+            return amtRead;
-+        }
-+
-+        public long skip(long n)
-+            throws IOException
-+        {
-+            long skipped = 0;
-+            while (skipped < n)
-+            {
-+                int cval = read();
-+                if (cval == -1)
-+                    break;
-+                skipped++;
-+            }
-+            return skipped;
-+        }
-+        
-+        public boolean ready()
-+            throws IOException
-+        {
-+            return internalReader.ready();
-+        }
-+        
-+        public boolean markSupported()
-+        {
-+            return internalReader.markSupported();
-+        }
-+        
-+        public void mark(int readAheadLimit)
-+            throws IOException
-+        {
-+            internalReader.mark(readAheadLimit);
-+        }
-+        
-+        public void reset()
-+           throws IOException
-+        {
-+            internalReader.reset();
-+        }
-+
-+        public void close()
-+            throws IOException
-+        {
-+            internalReader.close();
-+        }
-+    }
-+    
-+
- } // class XMLEntityManager
-Index: src/org/apache/xerces/impl/XMLDocumentScannerImpl.java

-===================================================================

---- src/org/apache/xerces/impl/XMLDocumentScannerImpl.java	(.../xerces/java/tags/Xerces-J_2_9_1)	(revision 575832)

-+++ src/org/apache/xerces/impl/XMLDocumentScannerImpl.java	(.../incubator/lcf/upstream/xerces2-j-2.9.1-mcf/trunk)	(working copy)

-@@ -783,6 +783,8 @@

-                                 else {
-                                     reportFatalError("MarkupNotRecognizedInProlog",
-                                                      null);
-+                                    // Don't loop forever!
-+                                    fEntityScanner.scanChar();
-                                 }
-                             }
-                             else if (isValidNameStartChar(fEntityScanner.peekChar())) {
-@@ -802,6 +804,8 @@

-                             else {
-                                 reportFatalError("MarkupNotRecognizedInProlog",
-                                                  null);
-+                                // Don't loop forever!
-+                                fEntityScanner.scanChar();
-                             }
-                             break;
-                         }
-@@ -872,6 +876,8 @@

-                         }
-                         case SCANNER_STATE_REFERENCE: {
-                             reportFatalError("ReferenceIllegalInProlog", null);
-+                            // Don't loop forever!
-+                            fEntityScanner.scanChar();
-                         }
-                     }
-                 } while (complete || again);
-@@ -1277,6 +1283,8 @@

-                             else {
-                                 reportFatalError("MarkupNotRecognizedInMisc",
-                                                  null);
-+				// Skip forward one character, otherwise we loop forever.
-+				fEntityScanner.scanChar();
-                             }
-                             break;
-                         }