<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>commits@hc.apache.org Archives</title>
<link rel="self" href="http://mail-archives.apache.org/mod_mbox/hc-commits/?format=atom"/>
<link href="http://mail-archives.apache.org/mod_mbox/hc-commits/"/>
<id>http://mail-archives.apache.org/mod_mbox/hc-commits/</id>
<updated>2009-12-10T00:26:48Z</updated>
<entry>
<title>svn commit: r888962 - in /httpcomponents/httpclient/trunk/src/main/assembly: build.xml src.xml</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200912.mbox/%3c20091209204027.A78D123889B8@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091209204027-A78D123889B8@eris-apache-org%3e</id>
<updated>2009-12-09T20:40:27Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Wed Dec  9 20:40:27 2009
New Revision: 888962

URL: http://svn.apache.org/viewvc?rev=888962&amp;view=rev
Log:
src archive does not need DOAP; adjust EOL for .apt .py .svg .xsl file types

Modified:
    httpcomponents/httpclient/trunk/src/main/assembly/build.xml
    httpcomponents/httpclient/trunk/src/main/assembly/src.xml

Modified: httpcomponents/httpclient/trunk/src/main/assembly/build.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/src/main/assembly/build.xml?rev=888962&amp;r1=888961&amp;r2=888962&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/src/main/assembly/build.xml (original)
+++ httpcomponents/httpclient/trunk/src/main/assembly/build.xml Wed Dec  9 20:40:27 2009
@@ -33,7 +33,7 @@
     &lt;delete dir="${tmp.dir}" /&gt;
     &lt;unzip src="${zip.file}" dest="${tmp.dir}"/&gt;
     &lt;fixcrlf srcdir="${tmp.dir}" eol="crlf" eof="remove" fixlast="false"
-        includes="**/*.txt, **/*.xml, **/*.properties, **/*.java, **/*.html, **/*.css" /&gt;
+        includes="**/*.txt, **/*.xml, **/*.properties, **/*.java, **/*.html, **/*.css, **/*.apt,
**/*.py, **/*.svg, **/*.xsl" /&gt;
     &lt;zip destfile="${zip.file}" basedir="${tmp.dir}" duplicate="preserve" /&gt;
     &lt;delete dir="${tmp.dir}" /&gt;
   &lt;/target&gt;  
@@ -46,10 +46,10 @@
     &lt;gunzip src="${gz.file}" dest="${tar.file}"/&gt;
     &lt;untar src="${tar.file}" dest="${tmp.dir}"/&gt;
     &lt;fixcrlf srcdir="${tmp.dir}" eol="lf" eof="remove" fixlast="false"
-        includes="**/*.txt, **/*.xml, **/*.properties, **/*.java, **/*.html, **/*.css" /&gt;
+        includes="**/*.txt, **/*.xml, **/*.properties, **/*.java, **/*.html, **/*.css, **/*.apt,
**/*.py, **/*.svg, **/*.xsl" /&gt;
     &lt;tar destfile="${tar.file}" basedir="${tmp.dir}" longfile="gnu"/&gt;
     &lt;gzip src="${tar.file}" destfile="${gz.file}"/&gt;
-  	&lt;delete file="${tar.file}"/&gt;
+      &lt;delete file="${tar.file}"/&gt;
     &lt;delete dir="${tmp.dir}"/&gt;
   &lt;/target&gt;  
 

Modified: httpcomponents/httpclient/trunk/src/main/assembly/src.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/src/main/assembly/src.xml?rev=888962&amp;r1=888961&amp;r2=888962&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/src/main/assembly/src.xml (original)
+++ httpcomponents/httpclient/trunk/src/main/assembly/src.xml Wed Dec  9 20:40:27 2009
@@ -41,6 +41,7 @@
             &lt;exclude&gt;**/target/**&lt;/exclude&gt;
             &lt;exclude&gt;**/local/**&lt;/exclude&gt;
             &lt;exclude&gt;**/lib/**&lt;/exclude&gt;
+            &lt;exclude&gt;*.rdf&lt;/exclude&gt;
           &lt;/excludes&gt;
         &lt;/fileSet&gt;
     &lt;/fileSets&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r888954 - /httpcomponents/httpclient/trunk/doap_HttpComponents_Client.rdf</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200912.mbox/%3c20091209203500.4017323889B8@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091209203500-4017323889B8@eris-apache-org%3e</id>
<updated>2009-12-09T20:35:00Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Wed Dec  9 20:34:59 2009
New Revision: 888954

URL: http://svn.apache.org/viewvc?rev=888954&amp;view=rev
Log:
Updated DOAP

Modified:
    httpcomponents/httpclient/trunk/doap_HttpComponents_Client.rdf

Modified: httpcomponents/httpclient/trunk/doap_HttpComponents_Client.rdf
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/doap_HttpComponents_Client.rdf?rev=888954&amp;r1=888953&amp;r2=888954&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/doap_HttpComponents_Client.rdf (original)
+++ httpcomponents/httpclient/trunk/doap_HttpComponents_Client.rdf Wed Dec  9 20:34:59 2009
@@ -6,10 +6,6 @@
          xmlns:asfext="http://projects.apache.org/ns/asfext#"
          xmlns:foaf="http://xmlns.com/foaf/0.1/"&gt;
 &lt;!--
-   $HeadURL$
-   $Revision$
-   $Date$
-
    ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
@@ -89,6 +85,21 @@
         &lt;created&gt;2008-12-20&lt;/created&gt;
         &lt;revision&gt;4.0-beta2&lt;/revision&gt;
       &lt;/Version&gt;
+      &lt;Version&gt;
+        &lt;name&gt;httpcomponents-client-4.0&lt;/name&gt;
+        &lt;created&gt;2009-08-14&lt;/created&gt;
+        &lt;revision&gt;4.0&lt;/revision&gt;
+      &lt;/Version&gt;
+      &lt;Version&gt;
+        &lt;name&gt;httpcomponents-client-4.0.1&lt;/name&gt;
+        &lt;created&gt;2009-12-12&lt;/created&gt;
+        &lt;revision&gt;4.0.1&lt;/revision&gt;
+      &lt;/Version&gt;
+      &lt;Version&gt;
+        &lt;name&gt;httpcomponents-client-4.1-alpha1&lt;/name&gt;
+        &lt;created&gt;2009-12-12&lt;/created&gt;
+        &lt;revision&gt;4.1-alpha1&lt;/revision&gt;
+      &lt;/Version&gt;
     &lt;/release&gt;
 
     &lt;repository&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r887134 - in /httpcomponents/httpclient/trunk: httpclient-osgi/pom.xml httpclient/pom.xml httpmime/pom.xml pom.xml</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200912.mbox/%3c20091204094845.4DE4223889B6@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091204094845-4DE4223889B6@eris-apache-org%3e</id>
<updated>2009-12-04T09:48:45Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Fri Dec  4 09:48:44 2009
New Revision: 887134

URL: http://svn.apache.org/viewvc?rev=887134&amp;view=rev
Log:
[maven-release-plugin] prepare for next development iteration

Modified:
    httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml
    httpcomponents/httpclient/trunk/httpclient/pom.xml
    httpcomponents/httpclient/trunk/httpmime/pom.xml
    httpcomponents/httpclient/trunk/pom.xml

Modified: httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml?rev=887134&amp;r1=887133&amp;r2=887134&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml (original)
+++ httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml Fri Dec  4 09:48:44 2009
@@ -30,7 +30,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
-    &lt;version&gt;4.1-alpha1&lt;/version&gt;
+    &lt;version&gt;4.1-alpha2-SNAPSHOT&lt;/version&gt;
   &lt;/parent&gt;
   &lt;artifactId&gt;httpclient-osgi&lt;/artifactId&gt;
   &lt;name&gt;HttpClient OSGi bundle&lt;/name&gt;

Modified: httpcomponents/httpclient/trunk/httpclient/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/pom.xml?rev=887134&amp;r1=887133&amp;r2=887134&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/pom.xml (original)
+++ httpcomponents/httpclient/trunk/httpclient/pom.xml Fri Dec  4 09:48:44 2009
@@ -30,7 +30,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
-    &lt;version&gt;4.1-alpha1&lt;/version&gt;
+    &lt;version&gt;4.1-alpha2-SNAPSHOT&lt;/version&gt;
   &lt;/parent&gt;
   &lt;artifactId&gt;httpclient&lt;/artifactId&gt;
   &lt;name&gt;HttpClient&lt;/name&gt;

Modified: httpcomponents/httpclient/trunk/httpmime/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpmime/pom.xml?rev=887134&amp;r1=887133&amp;r2=887134&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpmime/pom.xml (original)
+++ httpcomponents/httpclient/trunk/httpmime/pom.xml Fri Dec  4 09:48:44 2009
@@ -30,7 +30,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
-    &lt;version&gt;4.1-alpha1&lt;/version&gt;
+    &lt;version&gt;4.1-alpha2-SNAPSHOT&lt;/version&gt;
   &lt;/parent&gt;
   &lt;artifactId&gt;httpmime&lt;/artifactId&gt;
   &lt;name&gt;HttpMime&lt;/name&gt;

Modified: httpcomponents/httpclient/trunk/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/pom.xml?rev=887134&amp;r1=887133&amp;r2=887134&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/pom.xml (original)
+++ httpcomponents/httpclient/trunk/pom.xml Fri Dec  4 09:48:44 2009
@@ -35,7 +35,7 @@
   &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
   &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
   &lt;name&gt;HttpComponents Client&lt;/name&gt;
-  &lt;version&gt;4.1-alpha1&lt;/version&gt;
+  &lt;version&gt;4.1-alpha2-SNAPSHOT&lt;/version&gt;
   &lt;description&gt;Components to build client side HTTP services&lt;/description&gt;
   &lt;url&gt;http://hc.apache.org/httpcomponents-client&lt;/url&gt;
   &lt;inceptionYear&gt;1999&lt;/inceptionYear&gt;
@@ -60,9 +60,9 @@
   &lt;/issueManagement&gt;
 
   &lt;scm&gt;
-    &lt;connection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.1-alpha1&lt;/connection&gt;
-    &lt;developerConnection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.1-alpha1&lt;/developerConnection&gt;
-    &lt;url&gt;https://svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.1-alpha1&lt;/url&gt;
+    &lt;connection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk&lt;/connection&gt;
+    &lt;developerConnection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk&lt;/developerConnection&gt;
+    &lt;url&gt;https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk&lt;/url&gt;
   &lt;/scm&gt;
 
   &lt;properties&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r887133 - in /httpcomponents/httpclient/tags/4.1-alpha1: ./ httpclient-osgi/pom.xml httpclient/pom.xml httpmime/pom.xml pom.xml</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200912.mbox/%3c20091204094821.D871A23889D1@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091204094821-D871A23889D1@eris-apache-org%3e</id>
<updated>2009-12-04T09:48:21Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Fri Dec  4 09:48:21 2009
New Revision: 887133

URL: http://svn.apache.org/viewvc?rev=887133&amp;view=rev
Log:
[maven-release-plugin]  copy for tag 4.1-alpha1

Added:
    httpcomponents/httpclient/tags/4.1-alpha1/   (props changed)
      - copied from r886323, httpcomponents/httpclient/trunk/
    httpcomponents/httpclient/tags/4.1-alpha1/httpclient-osgi/pom.xml
      - copied unchanged from r887132, httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml
    httpcomponents/httpclient/tags/4.1-alpha1/httpclient/pom.xml
      - copied unchanged from r887132, httpcomponents/httpclient/trunk/httpclient/pom.xml
    httpcomponents/httpclient/tags/4.1-alpha1/httpmime/pom.xml
      - copied unchanged from r887132, httpcomponents/httpclient/trunk/httpmime/pom.xml
    httpcomponents/httpclient/tags/4.1-alpha1/pom.xml
      - copied unchanged from r887132, httpcomponents/httpclient/trunk/pom.xml

Propchange: httpcomponents/httpclient/tags/4.1-alpha1/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Fri Dec  4 09:48:21 2009
@@ -0,0 +1,8 @@
+bin
+.classpath
+.project
+dist
+target
+.fbprefs
+.settings
+.pmd

Propchange: httpcomponents/httpclient/tags/4.1-alpha1/
------------------------------------------------------------------------------
    svn:mergeinfo = /httpcomponents/httpclient/branches/branch_4_1:755593-811107




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r887132 - in /httpcomponents/httpclient/trunk: httpclient-osgi/pom.xml httpclient/pom.xml httpmime/pom.xml pom.xml</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200912.mbox/%3c20091204094757.DDB9023889B6@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091204094757-DDB9023889B6@eris-apache-org%3e</id>
<updated>2009-12-04T09:47:57Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Fri Dec  4 09:47:57 2009
New Revision: 887132

URL: http://svn.apache.org/viewvc?rev=887132&amp;view=rev
Log:
[maven-release-plugin] prepare release 4.1-alpha1

Modified:
    httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml
    httpcomponents/httpclient/trunk/httpclient/pom.xml
    httpcomponents/httpclient/trunk/httpmime/pom.xml
    httpcomponents/httpclient/trunk/pom.xml

Modified: httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml?rev=887132&amp;r1=887131&amp;r2=887132&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml (original)
+++ httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml Fri Dec  4 09:47:57 2009
@@ -30,7 +30,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
-    &lt;version&gt;4.1-alpha2-SNAPSHOT&lt;/version&gt;
+    &lt;version&gt;4.1-alpha1&lt;/version&gt;
   &lt;/parent&gt;
   &lt;artifactId&gt;httpclient-osgi&lt;/artifactId&gt;
   &lt;name&gt;HttpClient OSGi bundle&lt;/name&gt;

Modified: httpcomponents/httpclient/trunk/httpclient/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/pom.xml?rev=887132&amp;r1=887131&amp;r2=887132&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/pom.xml (original)
+++ httpcomponents/httpclient/trunk/httpclient/pom.xml Fri Dec  4 09:47:57 2009
@@ -30,7 +30,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
-    &lt;version&gt;4.1-alpha2-SNAPSHOT&lt;/version&gt;
+    &lt;version&gt;4.1-alpha1&lt;/version&gt;
   &lt;/parent&gt;
   &lt;artifactId&gt;httpclient&lt;/artifactId&gt;
   &lt;name&gt;HttpClient&lt;/name&gt;

Modified: httpcomponents/httpclient/trunk/httpmime/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpmime/pom.xml?rev=887132&amp;r1=887131&amp;r2=887132&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpmime/pom.xml (original)
+++ httpcomponents/httpclient/trunk/httpmime/pom.xml Fri Dec  4 09:47:57 2009
@@ -30,7 +30,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
-    &lt;version&gt;4.1-alpha2-SNAPSHOT&lt;/version&gt;
+    &lt;version&gt;4.1-alpha1&lt;/version&gt;
   &lt;/parent&gt;
   &lt;artifactId&gt;httpmime&lt;/artifactId&gt;
   &lt;name&gt;HttpMime&lt;/name&gt;

Modified: httpcomponents/httpclient/trunk/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/pom.xml?rev=887132&amp;r1=887131&amp;r2=887132&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/pom.xml (original)
+++ httpcomponents/httpclient/trunk/pom.xml Fri Dec  4 09:47:57 2009
@@ -35,7 +35,7 @@
   &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
   &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
   &lt;name&gt;HttpComponents Client&lt;/name&gt;
-  &lt;version&gt;4.1-alpha2-SNAPSHOT&lt;/version&gt;
+  &lt;version&gt;4.1-alpha1&lt;/version&gt;
   &lt;description&gt;Components to build client side HTTP services&lt;/description&gt;
   &lt;url&gt;http://hc.apache.org/httpcomponents-client&lt;/url&gt;
   &lt;inceptionYear&gt;1999&lt;/inceptionYear&gt;
@@ -60,9 +60,9 @@
   &lt;/issueManagement&gt;
 
   &lt;scm&gt;
-    &lt;connection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk&lt;/connection&gt;
-    &lt;developerConnection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk&lt;/developerConnection&gt;
-    &lt;url&gt;https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk&lt;/url&gt;
+    &lt;connection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.1-alpha1&lt;/connection&gt;
+    &lt;developerConnection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.1-alpha1&lt;/developerConnection&gt;
+    &lt;url&gt;https://svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.1-alpha1&lt;/url&gt;
   &lt;/scm&gt;
 
   &lt;properties&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886972 - in /httpcomponents/httpclient/branches/4.0.x: httpclient-benchmark/pom.xml httpclient-osgi/pom.xml httpclient/pom.xml httpmime/pom.xml pom.xml</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200912.mbox/%3c20091203225238.7428C238899B@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091203225238-7428C238899B@eris-apache-org%3e</id>
<updated>2009-12-03T22:52:38Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Thu Dec  3 22:52:37 2009
New Revision: 886972

URL: http://svn.apache.org/viewvc?rev=886972&amp;view=rev
Log:
prepare for next development iteration

Modified:
    httpcomponents/httpclient/branches/4.0.x/httpclient-benchmark/pom.xml
    httpcomponents/httpclient/branches/4.0.x/httpclient-osgi/pom.xml
    httpcomponents/httpclient/branches/4.0.x/httpclient/pom.xml
    httpcomponents/httpclient/branches/4.0.x/httpmime/pom.xml
    httpcomponents/httpclient/branches/4.0.x/pom.xml

Modified: httpcomponents/httpclient/branches/4.0.x/httpclient-benchmark/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.0.x/httpclient-benchmark/pom.xml?rev=886972&amp;r1=886971&amp;r2=886972&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.0.x/httpclient-benchmark/pom.xml (original)
+++ httpcomponents/httpclient/branches/4.0.x/httpclient-benchmark/pom.xml Thu Dec  3 22:52:37
2009
@@ -30,7 +30,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
-    &lt;version&gt;4.0-beta3-SNAPSHOT&lt;/version&gt;
+    &lt;version&gt;4.0.2-SNAPSHOT&lt;/version&gt;
   &lt;/parent&gt;
   &lt;artifactId&gt;httpclient-benchmark&lt;/artifactId&gt;
   &lt;name&gt;HttpClient Benchmarks&lt;/name&gt;

Modified: httpcomponents/httpclient/branches/4.0.x/httpclient-osgi/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.0.x/httpclient-osgi/pom.xml?rev=886972&amp;r1=886971&amp;r2=886972&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.0.x/httpclient-osgi/pom.xml (original)
+++ httpcomponents/httpclient/branches/4.0.x/httpclient-osgi/pom.xml Thu Dec  3 22:52:37 2009
@@ -30,7 +30,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
-    &lt;version&gt;4.0.1&lt;/version&gt;
+    &lt;version&gt;4.0.2-SNAPSHOT&lt;/version&gt;
   &lt;/parent&gt;
   &lt;artifactId&gt;httpclient-osgi&lt;/artifactId&gt;
   &lt;name&gt;HttpClient OSGi bundle&lt;/name&gt;

Modified: httpcomponents/httpclient/branches/4.0.x/httpclient/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.0.x/httpclient/pom.xml?rev=886972&amp;r1=886971&amp;r2=886972&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.0.x/httpclient/pom.xml (original)
+++ httpcomponents/httpclient/branches/4.0.x/httpclient/pom.xml Thu Dec  3 22:52:37 2009
@@ -30,7 +30,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
-    &lt;version&gt;4.0.1&lt;/version&gt;
+    &lt;version&gt;4.0.2-SNAPSHOT&lt;/version&gt;
   &lt;/parent&gt;
   &lt;artifactId&gt;httpclient&lt;/artifactId&gt;
   &lt;name&gt;HttpClient&lt;/name&gt;

Modified: httpcomponents/httpclient/branches/4.0.x/httpmime/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.0.x/httpmime/pom.xml?rev=886972&amp;r1=886971&amp;r2=886972&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.0.x/httpmime/pom.xml (original)
+++ httpcomponents/httpclient/branches/4.0.x/httpmime/pom.xml Thu Dec  3 22:52:37 2009
@@ -30,7 +30,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
-    &lt;version&gt;4.0.1&lt;/version&gt;
+    &lt;version&gt;4.0.2-SNAPSHOT&lt;/version&gt;
   &lt;/parent&gt;
   &lt;artifactId&gt;httpmime&lt;/artifactId&gt;
   &lt;name&gt;HttpMime&lt;/name&gt;

Modified: httpcomponents/httpclient/branches/4.0.x/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.0.x/pom.xml?rev=886972&amp;r1=886971&amp;r2=886972&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.0.x/pom.xml (original)
+++ httpcomponents/httpclient/branches/4.0.x/pom.xml Thu Dec  3 22:52:37 2009
@@ -35,7 +35,7 @@
   &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
   &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
   &lt;name&gt;HttpComponents Client&lt;/name&gt;
-  &lt;version&gt;4.0.1&lt;/version&gt;
+  &lt;version&gt;4.0.2-SNAPSHOT&lt;/version&gt;
   &lt;description&gt;Components to build client side HTTP services&lt;/description&gt;
   &lt;url&gt;http://hc.apache.org/httpcomponents-client&lt;/url&gt;
   &lt;inceptionYear&gt;1999&lt;/inceptionYear&gt;
@@ -60,9 +60,9 @@
   &lt;/issueManagement&gt;
 
   &lt;scm&gt;
-    &lt;connection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.0.1&lt;/connection&gt;
-    &lt;developerConnection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.0.1&lt;/developerConnection&gt;
-    &lt;url&gt;https://svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.0.1&lt;/url&gt;
+    &lt;connection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk&lt;/connection&gt;
+    &lt;developerConnection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk&lt;/developerConnection&gt;
+    &lt;url&gt;https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk&lt;/url&gt;
   &lt;/scm&gt;
 
   &lt;properties&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886964 - /httpcomponents/httpclient/tags/4.0.1/</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200912.mbox/%3c20091203223620.971A8238899B@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091203223620-971A8238899B@eris-apache-org%3e</id>
<updated>2009-12-03T22:36:20Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Thu Dec  3 22:36:19 2009
New Revision: 886964

URL: http://svn.apache.org/viewvc?rev=886964&amp;view=rev
Log:
copy for tag 4.0.1

Added:
    httpcomponents/httpclient/tags/4.0.1/   (props changed)
      - copied from r886963, httpcomponents/httpclient/branches/4.0.x/

Propchange: httpcomponents/httpclient/tags/4.0.1/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Thu Dec  3 22:36:19 2009
@@ -0,0 +1,7 @@
+bin
+.classpath
+.project
+dist
+target
+.fbprefs
+.settings

Propchange: httpcomponents/httpclient/tags/4.0.1/
------------------------------------------------------------------------------
    svn:mergeinfo = /httpcomponents/httpclient/trunk:825864-828185




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886961 - in /httpcomponents/httpclient/branches/4.0.x: httpclient-osgi/pom.xml httpclient/pom.xml httpmime/pom.xml pom.xml</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200912.mbox/%3c20091203223050.BC3E42388A02@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091203223050-BC3E42388A02@eris-apache-org%3e</id>
<updated>2009-12-03T22:30:50Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Thu Dec  3 22:30:50 2009
New Revision: 886961

URL: http://svn.apache.org/viewvc?rev=886961&amp;view=rev
Log:
[maven-release-plugin] prepare release 4.0.1

Modified:
    httpcomponents/httpclient/branches/4.0.x/httpclient-osgi/pom.xml
    httpcomponents/httpclient/branches/4.0.x/httpclient/pom.xml
    httpcomponents/httpclient/branches/4.0.x/httpmime/pom.xml
    httpcomponents/httpclient/branches/4.0.x/pom.xml

Modified: httpcomponents/httpclient/branches/4.0.x/httpclient-osgi/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.0.x/httpclient-osgi/pom.xml?rev=886961&amp;r1=886960&amp;r2=886961&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.0.x/httpclient-osgi/pom.xml (original)
+++ httpcomponents/httpclient/branches/4.0.x/httpclient-osgi/pom.xml Thu Dec  3 22:30:50 2009
@@ -30,7 +30,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
-    &lt;version&gt;4.0.2-SNAPSHOT&lt;/version&gt;
+    &lt;version&gt;4.0.1&lt;/version&gt;
   &lt;/parent&gt;
   &lt;artifactId&gt;httpclient-osgi&lt;/artifactId&gt;
   &lt;name&gt;HttpClient OSGi bundle&lt;/name&gt;

Modified: httpcomponents/httpclient/branches/4.0.x/httpclient/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.0.x/httpclient/pom.xml?rev=886961&amp;r1=886960&amp;r2=886961&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.0.x/httpclient/pom.xml (original)
+++ httpcomponents/httpclient/branches/4.0.x/httpclient/pom.xml Thu Dec  3 22:30:50 2009
@@ -30,7 +30,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
-    &lt;version&gt;4.0.2-SNAPSHOT&lt;/version&gt;
+    &lt;version&gt;4.0.1&lt;/version&gt;
   &lt;/parent&gt;
   &lt;artifactId&gt;httpclient&lt;/artifactId&gt;
   &lt;name&gt;HttpClient&lt;/name&gt;

Modified: httpcomponents/httpclient/branches/4.0.x/httpmime/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.0.x/httpmime/pom.xml?rev=886961&amp;r1=886960&amp;r2=886961&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.0.x/httpmime/pom.xml (original)
+++ httpcomponents/httpclient/branches/4.0.x/httpmime/pom.xml Thu Dec  3 22:30:50 2009
@@ -30,7 +30,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
-    &lt;version&gt;4.0.2-SNAPSHOT&lt;/version&gt;
+    &lt;version&gt;4.0.1&lt;/version&gt;
   &lt;/parent&gt;
   &lt;artifactId&gt;httpmime&lt;/artifactId&gt;
   &lt;name&gt;HttpMime&lt;/name&gt;

Modified: httpcomponents/httpclient/branches/4.0.x/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.0.x/pom.xml?rev=886961&amp;r1=886960&amp;r2=886961&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.0.x/pom.xml (original)
+++ httpcomponents/httpclient/branches/4.0.x/pom.xml Thu Dec  3 22:30:50 2009
@@ -35,7 +35,7 @@
   &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
   &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
   &lt;name&gt;HttpComponents Client&lt;/name&gt;
-  &lt;version&gt;4.0.2-SNAPSHOT&lt;/version&gt;
+  &lt;version&gt;4.0.1&lt;/version&gt;
   &lt;description&gt;Components to build client side HTTP services&lt;/description&gt;
   &lt;url&gt;http://hc.apache.org/httpcomponents-client&lt;/url&gt;
   &lt;inceptionYear&gt;1999&lt;/inceptionYear&gt;
@@ -60,9 +60,9 @@
   &lt;/issueManagement&gt;
 
   &lt;scm&gt;
-    &lt;connection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk&lt;/connection&gt;
-    &lt;developerConnection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk&lt;/developerConnection&gt;
-    &lt;url&gt;https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk&lt;/url&gt;
+    &lt;connection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.0.1&lt;/connection&gt;
+    &lt;developerConnection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.0.1&lt;/developerConnection&gt;
+    &lt;url&gt;https://svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.0.1&lt;/url&gt;
   &lt;/scm&gt;
 
   &lt;properties&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886328 - /httpcomponents/httpclient/tags/4.1-alpha1/</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200912.mbox/%3c20091202223041.F03FC2388998@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091202223041-F03FC2388998@eris-apache-org%3e</id>
<updated>2009-12-02T22:30:41Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Wed Dec  2 22:30:41 2009
New Revision: 886328

URL: http://svn.apache.org/viewvc?rev=886328&amp;view=rev
Log:
Deleted tag

Removed:
    httpcomponents/httpclient/tags/4.1-alpha1/



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886327 - /httpcomponents/httpclient/tags/4.0.1/</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200912.mbox/%3c20091202223006.749042388998@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091202223006-749042388998@eris-apache-org%3e</id>
<updated>2009-12-02T22:30:06Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Wed Dec  2 22:30:05 2009
New Revision: 886327

URL: http://svn.apache.org/viewvc?rev=886327&amp;view=rev
Log:
Deleted tag


Removed:
    httpcomponents/httpclient/tags/4.0.1/



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886326 - /httpcomponents/httpclient/trunk/pom.xml</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200912.mbox/%3c20091202222911.C02DB2388998@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091202222911-C02DB2388998@eris-apache-org%3e</id>
<updated>2009-12-02T22:29:11Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Wed Dec  2 22:29:10 2009
New Revision: 886326

URL: http://svn.apache.org/viewvc?rev=886326&amp;view=rev
Log:
Fixed broken docbkx config

Modified:
    httpcomponents/httpclient/trunk/pom.xml

Modified: httpcomponents/httpclient/trunk/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/pom.xml?rev=886326&amp;r1=886325&amp;r2=886326&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/pom.xml (original)
+++ httpcomponents/httpclient/trunk/pom.xml Wed Dec  2 22:29:10 2009
@@ -173,7 +173,27 @@
       &lt;plugin&gt;
         &lt;groupId&gt;com.agilejava.docbkx&lt;/groupId&gt;
         &lt;artifactId&gt;docbkx-maven-plugin&lt;/artifactId&gt;
+        &lt;dependencies&gt;
+          &lt;dependency&gt;
+            &lt;groupId&gt;org.docbook&lt;/groupId&gt;
+            &lt;artifactId&gt;docbook-xml&lt;/artifactId&gt;
+            &lt;version&gt;4.4&lt;/version&gt;
+            &lt;scope&gt;runtime&lt;/scope&gt;
+          &lt;/dependency&gt;
+        &lt;/dependencies&gt;
         &lt;configuration&gt;
+          &lt;includes&gt;index.xml&lt;/includes&gt;
+          &lt;chunkedOutput&gt;true&lt;/chunkedOutput&gt;
+          &lt;xincludeSupported&gt;true&lt;/xincludeSupported&gt;
+          &lt;foCustomization&gt;src/docbkx/resources/xsl/fopdf.xsl&lt;/foCustomization&gt;
+          &lt;htmlCustomization&gt;src/docbkx/resources/xsl/html_chunk.xsl&lt;/htmlCustomization&gt;
+          &lt;htmlStylesheet&gt;css/hc-tutorial.css&lt;/htmlStylesheet&gt;
+          &lt;entities&gt;
+            &lt;entity&gt;
+              &lt;name&gt;version&lt;/name&gt;
+              &lt;value&gt;${pom.version}&lt;/value&gt;
+            &lt;/entity&gt;
+          &lt;/entities&gt;
           &lt;postProcess&gt;
             &lt;copy todir="target/site/tutorial"&gt;
               &lt;fileset dir="target/docbkx"&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886284 - in /httpcomponents/httpclient/trunk: httpclient-osgi/pom.xml httpclient/pom.xml httpmime/pom.xml pom.xml</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200912.mbox/%3c20091202193643.01F7623889F1@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091202193643-01F7623889F1@eris-apache-org%3e</id>
<updated>2009-12-02T19:36:42Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Wed Dec  2 19:36:42 2009
New Revision: 886284

URL: http://svn.apache.org/viewvc?rev=886284&amp;view=rev
Log:
[maven-release-plugin] prepare for next development iteration

Modified:
    httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml
    httpcomponents/httpclient/trunk/httpclient/pom.xml
    httpcomponents/httpclient/trunk/httpmime/pom.xml
    httpcomponents/httpclient/trunk/pom.xml

Modified: httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml?rev=886284&amp;r1=886283&amp;r2=886284&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml (original)
+++ httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml Wed Dec  2 19:36:42 2009
@@ -30,7 +30,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
-    &lt;version&gt;4.1-alpha1&lt;/version&gt;
+    &lt;version&gt;4.1-alpha2-SNAPSHOT&lt;/version&gt;
   &lt;/parent&gt;
   &lt;artifactId&gt;httpclient-osgi&lt;/artifactId&gt;
   &lt;name&gt;HttpClient OSGi bundle&lt;/name&gt;

Modified: httpcomponents/httpclient/trunk/httpclient/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/pom.xml?rev=886284&amp;r1=886283&amp;r2=886284&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/pom.xml (original)
+++ httpcomponents/httpclient/trunk/httpclient/pom.xml Wed Dec  2 19:36:42 2009
@@ -30,7 +30,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
-    &lt;version&gt;4.1-alpha1&lt;/version&gt;
+    &lt;version&gt;4.1-alpha2-SNAPSHOT&lt;/version&gt;
   &lt;/parent&gt;
   &lt;artifactId&gt;httpclient&lt;/artifactId&gt;
   &lt;name&gt;HttpClient&lt;/name&gt;

Modified: httpcomponents/httpclient/trunk/httpmime/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpmime/pom.xml?rev=886284&amp;r1=886283&amp;r2=886284&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpmime/pom.xml (original)
+++ httpcomponents/httpclient/trunk/httpmime/pom.xml Wed Dec  2 19:36:42 2009
@@ -30,7 +30,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
-    &lt;version&gt;4.1-alpha1&lt;/version&gt;
+    &lt;version&gt;4.1-alpha2-SNAPSHOT&lt;/version&gt;
   &lt;/parent&gt;
   &lt;artifactId&gt;httpmime&lt;/artifactId&gt;
   &lt;name&gt;HttpMime&lt;/name&gt;

Modified: httpcomponents/httpclient/trunk/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/pom.xml?rev=886284&amp;r1=886283&amp;r2=886284&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/pom.xml (original)
+++ httpcomponents/httpclient/trunk/pom.xml Wed Dec  2 19:36:42 2009
@@ -35,7 +35,7 @@
   &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
   &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
   &lt;name&gt;HttpComponents Client&lt;/name&gt;
-  &lt;version&gt;4.1-alpha1&lt;/version&gt;
+  &lt;version&gt;4.1-alpha2-SNAPSHOT&lt;/version&gt;
   &lt;description&gt;Components to build client side HTTP services&lt;/description&gt;
   &lt;url&gt;http://hc.apache.org/httpcomponents-client&lt;/url&gt;
   &lt;inceptionYear&gt;1999&lt;/inceptionYear&gt;
@@ -60,9 +60,9 @@
   &lt;/issueManagement&gt;
 
   &lt;scm&gt;
-    &lt;connection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.1-alpha1&lt;/connection&gt;
-    &lt;developerConnection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.1-alpha1&lt;/developerConnection&gt;
-    &lt;url&gt;https://svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.1-alpha1&lt;/url&gt;
+    &lt;connection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk&lt;/connection&gt;
+    &lt;developerConnection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk&lt;/developerConnection&gt;
+    &lt;url&gt;https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk&lt;/url&gt;
   &lt;/scm&gt;
 
   &lt;properties&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886283 - in /httpcomponents/httpclient/tags/4.1-alpha1: ./ httpclient-osgi/pom.xml httpclient/pom.xml httpmime/pom.xml pom.xml</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200912.mbox/%3c20091202193618.6591123889D0@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091202193618-6591123889D0@eris-apache-org%3e</id>
<updated>2009-12-02T19:36:18Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Wed Dec  2 19:36:17 2009
New Revision: 886283

URL: http://svn.apache.org/viewvc?rev=886283&amp;view=rev
Log:
[maven-release-plugin]  copy for tag 4.1-alpha1

Added:
    httpcomponents/httpclient/tags/4.1-alpha1/   (props changed)
      - copied from r885284, httpcomponents/httpclient/trunk/
    httpcomponents/httpclient/tags/4.1-alpha1/httpclient-osgi/pom.xml
      - copied unchanged from r886282, httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml
    httpcomponents/httpclient/tags/4.1-alpha1/httpclient/pom.xml
      - copied unchanged from r886282, httpcomponents/httpclient/trunk/httpclient/pom.xml
    httpcomponents/httpclient/tags/4.1-alpha1/httpmime/pom.xml
      - copied unchanged from r886282, httpcomponents/httpclient/trunk/httpmime/pom.xml
    httpcomponents/httpclient/tags/4.1-alpha1/pom.xml
      - copied unchanged from r886282, httpcomponents/httpclient/trunk/pom.xml

Propchange: httpcomponents/httpclient/tags/4.1-alpha1/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Dec  2 19:36:17 2009
@@ -0,0 +1,8 @@
+bin
+.classpath
+.project
+dist
+target
+.fbprefs
+.settings
+.pmd

Propchange: httpcomponents/httpclient/tags/4.1-alpha1/
------------------------------------------------------------------------------
    svn:mergeinfo = /httpcomponents/httpclient/branches/branch_4_1:755593-811107




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886282 - in /httpcomponents/httpclient/trunk: httpclient-osgi/pom.xml httpclient/pom.xml httpmime/pom.xml pom.xml</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200912.mbox/%3c20091202193555.3A4D823888D1@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091202193555-3A4D823888D1@eris-apache-org%3e</id>
<updated>2009-12-02T19:35:54Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Wed Dec  2 19:35:54 2009
New Revision: 886282

URL: http://svn.apache.org/viewvc?rev=886282&amp;view=rev
Log:
[maven-release-plugin] prepare release 4.1-alpha1

Modified:
    httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml
    httpcomponents/httpclient/trunk/httpclient/pom.xml
    httpcomponents/httpclient/trunk/httpmime/pom.xml
    httpcomponents/httpclient/trunk/pom.xml

Modified: httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml?rev=886282&amp;r1=886281&amp;r2=886282&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml (original)
+++ httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml Wed Dec  2 19:35:54 2009
@@ -30,7 +30,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
-    &lt;version&gt;4.1-alpha1-SNAPSHOT&lt;/version&gt;
+    &lt;version&gt;4.1-alpha1&lt;/version&gt;
   &lt;/parent&gt;
   &lt;artifactId&gt;httpclient-osgi&lt;/artifactId&gt;
   &lt;name&gt;HttpClient OSGi bundle&lt;/name&gt;

Modified: httpcomponents/httpclient/trunk/httpclient/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/pom.xml?rev=886282&amp;r1=886281&amp;r2=886282&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/pom.xml (original)
+++ httpcomponents/httpclient/trunk/httpclient/pom.xml Wed Dec  2 19:35:54 2009
@@ -30,7 +30,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
-    &lt;version&gt;4.1-alpha1-SNAPSHOT&lt;/version&gt;
+    &lt;version&gt;4.1-alpha1&lt;/version&gt;
   &lt;/parent&gt;
   &lt;artifactId&gt;httpclient&lt;/artifactId&gt;
   &lt;name&gt;HttpClient&lt;/name&gt;

Modified: httpcomponents/httpclient/trunk/httpmime/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpmime/pom.xml?rev=886282&amp;r1=886281&amp;r2=886282&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpmime/pom.xml (original)
+++ httpcomponents/httpclient/trunk/httpmime/pom.xml Wed Dec  2 19:35:54 2009
@@ -30,7 +30,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
-    &lt;version&gt;4.1-alpha1-SNAPSHOT&lt;/version&gt;
+    &lt;version&gt;4.1-alpha1&lt;/version&gt;
   &lt;/parent&gt;
   &lt;artifactId&gt;httpmime&lt;/artifactId&gt;
   &lt;name&gt;HttpMime&lt;/name&gt;

Modified: httpcomponents/httpclient/trunk/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/pom.xml?rev=886282&amp;r1=886281&amp;r2=886282&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/pom.xml (original)
+++ httpcomponents/httpclient/trunk/pom.xml Wed Dec  2 19:35:54 2009
@@ -35,7 +35,7 @@
   &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
   &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
   &lt;name&gt;HttpComponents Client&lt;/name&gt;
-  &lt;version&gt;4.1-alpha1-SNAPSHOT&lt;/version&gt;
+  &lt;version&gt;4.1-alpha1&lt;/version&gt;
   &lt;description&gt;Components to build client side HTTP services&lt;/description&gt;
   &lt;url&gt;http://hc.apache.org/httpcomponents-client&lt;/url&gt;
   &lt;inceptionYear&gt;1999&lt;/inceptionYear&gt;
@@ -60,9 +60,9 @@
   &lt;/issueManagement&gt;
 
   &lt;scm&gt;
-    &lt;connection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk&lt;/connection&gt;
-    &lt;developerConnection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk&lt;/developerConnection&gt;
-    &lt;url&gt;https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk&lt;/url&gt;
+    &lt;connection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.1-alpha1&lt;/connection&gt;
+    &lt;developerConnection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.1-alpha1&lt;/developerConnection&gt;
+    &lt;url&gt;https://svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.1-alpha1&lt;/url&gt;
   &lt;/scm&gt;
 
   &lt;properties&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886280 - in /httpcomponents/httpclient/branches/4.0.x: httpclient-osgi/pom.xml httpclient/pom.xml httpmime/pom.xml pom.xml</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200912.mbox/%3c20091202193031.11E1C23888D1@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091202193031-11E1C23888D1@eris-apache-org%3e</id>
<updated>2009-12-02T19:30:30Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Wed Dec  2 19:30:30 2009
New Revision: 886280

URL: http://svn.apache.org/viewvc?rev=886280&amp;view=rev
Log:
[maven-release-plugin] prepare for next development iteration

Modified:
    httpcomponents/httpclient/branches/4.0.x/httpclient-osgi/pom.xml
    httpcomponents/httpclient/branches/4.0.x/httpclient/pom.xml
    httpcomponents/httpclient/branches/4.0.x/httpmime/pom.xml
    httpcomponents/httpclient/branches/4.0.x/pom.xml

Modified: httpcomponents/httpclient/branches/4.0.x/httpclient-osgi/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.0.x/httpclient-osgi/pom.xml?rev=886280&amp;r1=886279&amp;r2=886280&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.0.x/httpclient-osgi/pom.xml (original)
+++ httpcomponents/httpclient/branches/4.0.x/httpclient-osgi/pom.xml Wed Dec  2 19:30:30 2009
@@ -30,7 +30,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
-    &lt;version&gt;4.0.1&lt;/version&gt;
+    &lt;version&gt;4.0.2-SNAPSHOT&lt;/version&gt;
   &lt;/parent&gt;
   &lt;artifactId&gt;httpclient-osgi&lt;/artifactId&gt;
   &lt;name&gt;HttpClient OSGi bundle&lt;/name&gt;

Modified: httpcomponents/httpclient/branches/4.0.x/httpclient/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.0.x/httpclient/pom.xml?rev=886280&amp;r1=886279&amp;r2=886280&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.0.x/httpclient/pom.xml (original)
+++ httpcomponents/httpclient/branches/4.0.x/httpclient/pom.xml Wed Dec  2 19:30:30 2009
@@ -30,7 +30,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
-    &lt;version&gt;4.0.1&lt;/version&gt;
+    &lt;version&gt;4.0.2-SNAPSHOT&lt;/version&gt;
   &lt;/parent&gt;
   &lt;artifactId&gt;httpclient&lt;/artifactId&gt;
   &lt;name&gt;HttpClient&lt;/name&gt;

Modified: httpcomponents/httpclient/branches/4.0.x/httpmime/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.0.x/httpmime/pom.xml?rev=886280&amp;r1=886279&amp;r2=886280&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.0.x/httpmime/pom.xml (original)
+++ httpcomponents/httpclient/branches/4.0.x/httpmime/pom.xml Wed Dec  2 19:30:30 2009
@@ -30,7 +30,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
-    &lt;version&gt;4.0.1&lt;/version&gt;
+    &lt;version&gt;4.0.2-SNAPSHOT&lt;/version&gt;
   &lt;/parent&gt;
   &lt;artifactId&gt;httpmime&lt;/artifactId&gt;
   &lt;name&gt;HttpMime&lt;/name&gt;

Modified: httpcomponents/httpclient/branches/4.0.x/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.0.x/pom.xml?rev=886280&amp;r1=886279&amp;r2=886280&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.0.x/pom.xml (original)
+++ httpcomponents/httpclient/branches/4.0.x/pom.xml Wed Dec  2 19:30:30 2009
@@ -35,7 +35,7 @@
   &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
   &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
   &lt;name&gt;HttpComponents Client&lt;/name&gt;
-  &lt;version&gt;4.0.1&lt;/version&gt;
+  &lt;version&gt;4.0.2-SNAPSHOT&lt;/version&gt;
   &lt;description&gt;Components to build client side HTTP services&lt;/description&gt;
   &lt;url&gt;http://hc.apache.org/httpcomponents-client&lt;/url&gt;
   &lt;inceptionYear&gt;1999&lt;/inceptionYear&gt;
@@ -60,9 +60,9 @@
   &lt;/issueManagement&gt;
 
   &lt;scm&gt;
-    &lt;connection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.0.1&lt;/connection&gt;
-    &lt;developerConnection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.0.1&lt;/developerConnection&gt;
-    &lt;url&gt;https://svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.0.1&lt;/url&gt;
+    &lt;connection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk&lt;/connection&gt;
+    &lt;developerConnection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk&lt;/developerConnection&gt;
+    &lt;url&gt;https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk&lt;/url&gt;
   &lt;/scm&gt;
 
   &lt;properties&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886279 - in /httpcomponents/httpclient/tags/4.0.1: ./ httpclient-osgi/pom.xml httpclient/pom.xml httpmime/pom.xml pom.xml</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200912.mbox/%3c20091202193007.2307B23889D0@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091202193007-2307B23889D0@eris-apache-org%3e</id>
<updated>2009-12-02T19:30:07Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Wed Dec  2 19:30:06 2009
New Revision: 886279

URL: http://svn.apache.org/viewvc?rev=886279&amp;view=rev
Log:
[maven-release-plugin]  copy for tag 4.0.1

Added:
    httpcomponents/httpclient/tags/4.0.1/   (props changed)
      - copied from r885284, httpcomponents/httpclient/branches/4.0.x/
    httpcomponents/httpclient/tags/4.0.1/httpclient-osgi/pom.xml
      - copied unchanged from r886278, httpcomponents/httpclient/branches/4.0.x/httpclient-osgi/pom.xml
    httpcomponents/httpclient/tags/4.0.1/httpclient/pom.xml
      - copied unchanged from r886278, httpcomponents/httpclient/branches/4.0.x/httpclient/pom.xml
    httpcomponents/httpclient/tags/4.0.1/httpmime/pom.xml
      - copied unchanged from r886278, httpcomponents/httpclient/branches/4.0.x/httpmime/pom.xml
    httpcomponents/httpclient/tags/4.0.1/pom.xml
      - copied unchanged from r886278, httpcomponents/httpclient/branches/4.0.x/pom.xml

Propchange: httpcomponents/httpclient/tags/4.0.1/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Dec  2 19:30:06 2009
@@ -0,0 +1,7 @@
+bin
+.classpath
+.project
+dist
+target
+.fbprefs
+.settings

Propchange: httpcomponents/httpclient/tags/4.0.1/
------------------------------------------------------------------------------
    svn:mergeinfo = /httpcomponents/httpclient/trunk:825864-828185




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r886278 - in /httpcomponents/httpclient/branches/4.0.x: httpclient-osgi/pom.xml httpclient/pom.xml httpmime/pom.xml pom.xml</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200912.mbox/%3c20091202192943.22CD623888D1@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091202192943-22CD623888D1@eris-apache-org%3e</id>
<updated>2009-12-02T19:29:43Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Wed Dec  2 19:29:42 2009
New Revision: 886278

URL: http://svn.apache.org/viewvc?rev=886278&amp;view=rev
Log:
[maven-release-plugin] prepare release 4.0.1

Modified:
    httpcomponents/httpclient/branches/4.0.x/httpclient-osgi/pom.xml
    httpcomponents/httpclient/branches/4.0.x/httpclient/pom.xml
    httpcomponents/httpclient/branches/4.0.x/httpmime/pom.xml
    httpcomponents/httpclient/branches/4.0.x/pom.xml

Modified: httpcomponents/httpclient/branches/4.0.x/httpclient-osgi/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.0.x/httpclient-osgi/pom.xml?rev=886278&amp;r1=886277&amp;r2=886278&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.0.x/httpclient-osgi/pom.xml (original)
+++ httpcomponents/httpclient/branches/4.0.x/httpclient-osgi/pom.xml Wed Dec  2 19:29:42 2009
@@ -30,7 +30,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
-    &lt;version&gt;4.0.1-SNAPSHOT&lt;/version&gt;
+    &lt;version&gt;4.0.1&lt;/version&gt;
   &lt;/parent&gt;
   &lt;artifactId&gt;httpclient-osgi&lt;/artifactId&gt;
   &lt;name&gt;HttpClient OSGi bundle&lt;/name&gt;

Modified: httpcomponents/httpclient/branches/4.0.x/httpclient/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.0.x/httpclient/pom.xml?rev=886278&amp;r1=886277&amp;r2=886278&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.0.x/httpclient/pom.xml (original)
+++ httpcomponents/httpclient/branches/4.0.x/httpclient/pom.xml Wed Dec  2 19:29:42 2009
@@ -30,7 +30,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
-    &lt;version&gt;4.0.1-SNAPSHOT&lt;/version&gt;
+    &lt;version&gt;4.0.1&lt;/version&gt;
   &lt;/parent&gt;
   &lt;artifactId&gt;httpclient&lt;/artifactId&gt;
   &lt;name&gt;HttpClient&lt;/name&gt;

Modified: httpcomponents/httpclient/branches/4.0.x/httpmime/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.0.x/httpmime/pom.xml?rev=886278&amp;r1=886277&amp;r2=886278&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.0.x/httpmime/pom.xml (original)
+++ httpcomponents/httpclient/branches/4.0.x/httpmime/pom.xml Wed Dec  2 19:29:42 2009
@@ -30,7 +30,7 @@
   &lt;parent&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
-    &lt;version&gt;4.0.1-SNAPSHOT&lt;/version&gt;
+    &lt;version&gt;4.0.1&lt;/version&gt;
   &lt;/parent&gt;
   &lt;artifactId&gt;httpmime&lt;/artifactId&gt;
   &lt;name&gt;HttpMime&lt;/name&gt;

Modified: httpcomponents/httpclient/branches/4.0.x/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.0.x/pom.xml?rev=886278&amp;r1=886277&amp;r2=886278&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.0.x/pom.xml (original)
+++ httpcomponents/httpclient/branches/4.0.x/pom.xml Wed Dec  2 19:29:42 2009
@@ -35,7 +35,7 @@
   &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
   &lt;artifactId&gt;httpcomponents-client&lt;/artifactId&gt;
   &lt;name&gt;HttpComponents Client&lt;/name&gt;
-  &lt;version&gt;4.0.1-SNAPSHOT&lt;/version&gt;
+  &lt;version&gt;4.0.1&lt;/version&gt;
   &lt;description&gt;Components to build client side HTTP services&lt;/description&gt;
   &lt;url&gt;http://hc.apache.org/httpcomponents-client&lt;/url&gt;
   &lt;inceptionYear&gt;1999&lt;/inceptionYear&gt;
@@ -60,9 +60,9 @@
   &lt;/issueManagement&gt;
 
   &lt;scm&gt;
-    &lt;connection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk&lt;/connection&gt;
-    &lt;developerConnection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk&lt;/developerConnection&gt;
-    &lt;url&gt;https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk&lt;/url&gt;
+    &lt;connection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.0.1&lt;/connection&gt;
+    &lt;developerConnection&gt;scm:svn:https://svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.0.1&lt;/developerConnection&gt;
+    &lt;url&gt;https://svn.apache.org/repos/asf/httpcomponents/httpclient/tags/4.0.1&lt;/url&gt;
   &lt;/scm&gt;
 
   &lt;properties&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885903 - in /httpcomponents/httpclient/branches/4.0.x: ./ httpclient/src/main/java/org/apache/http/impl/client/</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200912.mbox/%3c20091201201458.2E28F23889B6@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091201201458-2E28F23889B6@eris-apache-org%3e</id>
<updated>2009-12-01T20:14:58Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Tue Dec  1 20:14:57 2009
New Revision: 885903

URL: http://svn.apache.org/viewvc?rev=885903&amp;view=rev
Log:
HTTPCLIENT-895: Log object lookups by short lived components impair performance

Modified:
    httpcomponents/httpclient/branches/4.0.x/RELEASE_NOTES.txt
    httpcomponents/httpclient/branches/4.0.x/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java
    httpcomponents/httpclient/branches/4.0.x/httpclient/src/main/java/org/apache/http/impl/client/ClientParamsStack.java
    httpcomponents/httpclient/branches/4.0.x/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java

Modified: httpcomponents/httpclient/branches/4.0.x/RELEASE_NOTES.txt
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.0.x/RELEASE_NOTES.txt?rev=885903&amp;r1=885902&amp;r2=885903&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.0.x/RELEASE_NOTES.txt (original)
+++ httpcomponents/httpclient/branches/4.0.x/RELEASE_NOTES.txt Tue Dec  1 20:14:57 2009
@@ -5,9 +5,16 @@
 the previous stable release. None of the fixed bugs is considered critical. 
 Most notably this release eliminates eliminates dependency on JCIP annotations.
 
+This release is also expected to improve performance by 5 to 10% due to
+elimination of unnecessary Log object lookups by short-lived components.
+
 Changelog
 -------------------
 
+* [HTTPCLIENT-895] Eliminated Log object lookups by short-lived components 
+  impairing performance.
+  Contributed by Oleg Kalnichevski &lt;olegk at apache.org&gt;
+
 * [HTTPCLIENT-885] URLEncodedUtils now correctly parses form-url-encoded 
   entities that specify a charset.
   Contributed by Oleg Kalnichevski &lt;olegk at apache.org&gt;

Modified: httpcomponents/httpclient/branches/4.0.x/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.0.x/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java?rev=885903&amp;r1=885902&amp;r2=885903&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.0.x/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java
(original)
+++ httpcomponents/httpclient/branches/4.0.x/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java
Tue Dec  1 20:14:57 2009
@@ -658,6 +658,7 @@
             final UserTokenHandler stateHandler,
             final HttpParams params) {
         return new DefaultRequestDirector(
+                log,
                 requestExec,
                 conman,
                 reustrat,

Modified: httpcomponents/httpclient/branches/4.0.x/httpclient/src/main/java/org/apache/http/impl/client/ClientParamsStack.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.0.x/httpclient/src/main/java/org/apache/http/impl/client/ClientParamsStack.java?rev=885903&amp;r1=885902&amp;r2=885903&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.0.x/httpclient/src/main/java/org/apache/http/impl/client/ClientParamsStack.java
(original)
+++ httpcomponents/httpclient/branches/4.0.x/httpclient/src/main/java/org/apache/http/impl/client/ClientParamsStack.java
Tue Dec  1 20:14:57 2009
@@ -29,8 +29,6 @@
 
 import org.apache.http.annotation.NotThreadSafe;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.http.params.HttpParams;
 import org.apache.http.params.AbstractHttpParams;
 
@@ -73,8 +71,6 @@
 @NotThreadSafe
 public class ClientParamsStack extends AbstractHttpParams {
 
-    private final Log log = LogFactory.getLog(getClass());
-    
     /** The application parameter collection, or &lt;code&gt;null&lt;/code&gt;. */
     protected final HttpParams applicationParams;
 
@@ -211,10 +207,6 @@
         if ((result == null) &amp;&amp; (applicationParams != null)) {
             result = applicationParams.getParameter(name);
         }
-        if (this.log.isDebugEnabled() &amp;&amp; result != null) {
-            this.log.debug("'" + name + "': " + result);
-        }
-
         return result;
     }
 

Modified: httpcomponents/httpclient/branches/4.0.x/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.0.x/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java?rev=885903&amp;r1=885902&amp;r2=885903&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.0.x/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java
(original)
+++ httpcomponents/httpclient/branches/4.0.x/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java
Tue Dec  1 20:14:57 2009
@@ -133,7 +133,7 @@
 @NotThreadSafe // e.g. managedConn
 public class DefaultRequestDirector implements RequestDirector {
 
-    private final Log log = LogFactory.getLog(getClass());
+    private final Log log;
     
     /** The connection manager. */
     protected final ClientConnectionManager connManager;
@@ -184,7 +184,8 @@
     
     private HttpHost virtualHost;
     
-    public DefaultRequestDirector(
+    DefaultRequestDirector(
+            final Log log,
             final HttpRequestExecutor requestExec,
             final ClientConnectionManager conman,
             final ConnectionReuseStrategy reustrat,
@@ -198,6 +199,10 @@
             final UserTokenHandler userTokenHandler,
             final HttpParams params) {
 
+        if (log == null) {
+            throw new IllegalArgumentException
+                ("Log may not be null.");
+        }
         if (requestExec == null) {
             throw new IllegalArgumentException
                 ("Request executor may not be null.");
@@ -246,6 +251,7 @@
             throw new IllegalArgumentException
                 ("HTTP parameters may not be null");
         }
+        this.log               = log;
         this.requestExec       = requestExec;
         this.connManager       = conman;
         this.reuseStrategy     = reustrat;
@@ -267,6 +273,34 @@
         this.proxyAuthState = new AuthState();
     } // constructor
 
+    public DefaultRequestDirector(
+            final HttpRequestExecutor requestExec,
+            final ClientConnectionManager conman,
+            final ConnectionReuseStrategy reustrat,
+            final ConnectionKeepAliveStrategy kastrat,
+            final HttpRoutePlanner rouplan,
+            final HttpProcessor httpProcessor,
+            final HttpRequestRetryHandler retryHandler,
+            final RedirectHandler redirectHandler,
+            final AuthenticationHandler targetAuthHandler,
+            final AuthenticationHandler proxyAuthHandler,
+            final UserTokenHandler userTokenHandler,
+            final HttpParams params) {
+        this(LogFactory.getLog(DefaultRequestDirector.class),
+                requestExec,
+                conman,
+                reustrat,
+                kastrat,
+                rouplan,
+                httpProcessor,
+                retryHandler,
+                redirectHandler,
+                targetAuthHandler,
+                proxyAuthHandler,
+                userTokenHandler,
+                params);
+                
+    }    
 
     private RequestWrapper wrapRequest(
             final HttpRequest request) throws ProtocolException {




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r885900 - in /httpcomponents/httpclient/trunk: ./ httpclient/src/main/java/org/apache/http/impl/client/</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200912.mbox/%3c20091201200146.C024B23889B6@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091201200146-C024B23889B6@eris-apache-org%3e</id>
<updated>2009-12-01T20:01:45Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Tue Dec  1 20:01:44 2009
New Revision: 885900

URL: http://svn.apache.org/viewvc?rev=885900&amp;view=rev
Log:
HTTPCLIENT-895: Log object lookups by short lived components impair performance

Modified:
    httpcomponents/httpclient/trunk/RELEASE_NOTES.txt
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/ClientParamsStack.java
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java

Modified: httpcomponents/httpclient/trunk/RELEASE_NOTES.txt
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/RELEASE_NOTES.txt?rev=885900&amp;r1=885899&amp;r2=885900&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/RELEASE_NOTES.txt (original)
+++ httpcomponents/httpclient/trunk/RELEASE_NOTES.txt Tue Dec  1 20:01:44 2009
@@ -14,7 +14,10 @@
 * Support for transparent content encoding. Please note transparent content 
   encoding is not enabled per default in order to avoid conflicts with
   already existing custom content encoding solutions.
-  
+
+* 5 to 10% performance increase due to elimination of unnecessary Log object 
+  lookups by short-lived components.
+
 Please note all methods and classes added in this release and marked as
 4.1 are API unstable and can change in the future 4.1 ALPHA releases.
   
@@ -69,9 +72,16 @@
 the previous stable release. None of the fixed bugs is considered critical. 
 Most notably this release eliminates eliminates dependency on JCIP annotations.
 
+This release is also expected to improve performance by 5 to 10% due to
+elimination of unnecessary Log object lookups by short-lived components.
+
 Changelog
 -------------------
 
+* [HTTPCLIENT-895] Eliminated Log lookups in short lived objects impairing 
+  performance.
+  Contributed by Oleg Kalnichevski &lt;olegk at apache.org&gt;
+
 * [HTTPCLIENT-885] URLEncodedUtils now correctly parses form-url-encoded 
   entities that specify a charset.
   Contributed by Oleg Kalnichevski &lt;olegk at apache.org&gt;

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java?rev=885900&amp;r1=885899&amp;r2=885900&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java
Tue Dec  1 20:01:44 2009
@@ -738,6 +738,7 @@
             final UserTokenHandler stateHandler,
             final HttpParams params) {
         return new DefaultRequestDirector(
+                log,
                 requestExec,
                 conman,
                 reustrat,

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/ClientParamsStack.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/ClientParamsStack.java?rev=885900&amp;r1=885899&amp;r2=885900&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/ClientParamsStack.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/ClientParamsStack.java
Tue Dec  1 20:01:44 2009
@@ -29,8 +29,6 @@
 
 import org.apache.http.annotation.NotThreadSafe;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.http.params.HttpParams;
 import org.apache.http.params.AbstractHttpParams;
 
@@ -73,8 +71,6 @@
 @NotThreadSafe
 public class ClientParamsStack extends AbstractHttpParams {
 
-    private final Log log = LogFactory.getLog(getClass());
-    
     /** The application parameter collection, or &lt;code&gt;null&lt;/code&gt;. */
     protected final HttpParams applicationParams;
 
@@ -211,10 +207,6 @@
         if ((result == null) &amp;&amp; (applicationParams != null)) {
             result = applicationParams.getParameter(name);
         }
-        if (this.log.isDebugEnabled() &amp;&amp; result != null) {
-            this.log.debug("'" + name + "': " + result);
-        }
-
         return result;
     }
 

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java?rev=885900&amp;r1=885899&amp;r2=885900&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java
Tue Dec  1 20:01:44 2009
@@ -135,7 +135,7 @@
 @NotThreadSafe // e.g. managedConn
 public class DefaultRequestDirector implements RequestDirector {
 
-    private final Log log = LogFactory.getLog(getClass());
+    private final Log log;
     
     /** The connection manager. */
     protected final ClientConnectionManager connManager;
@@ -204,7 +204,8 @@
             final AuthenticationHandler proxyAuthHandler,
             final UserTokenHandler userTokenHandler,
             final HttpParams params) {
-        this(requestExec, conman, reustrat, kastrat, rouplan, httpProcessor, retryHandler,
+        this(LogFactory.getLog(DefaultRequestDirector.class),
+                requestExec, conman, reustrat, kastrat, rouplan, httpProcessor, retryHandler,
                 new DefaultRedirectStrategyAdaptor(redirectHandler), 
                 targetAuthHandler, proxyAuthHandler, userTokenHandler, params);
     }    
@@ -214,6 +215,7 @@
      * @since 4.1
      */
     public DefaultRequestDirector(
+            final Log log,
             final HttpRequestExecutor requestExec,
             final ClientConnectionManager conman,
             final ConnectionReuseStrategy reustrat,
@@ -227,6 +229,10 @@
             final UserTokenHandler userTokenHandler,
             final HttpParams params) {
 
+        if (log == null) {
+            throw new IllegalArgumentException
+                ("Log may not be null.");
+        }
         if (requestExec == null) {
             throw new IllegalArgumentException
                 ("Request executor may not be null.");
@@ -275,6 +281,7 @@
             throw new IllegalArgumentException
                 ("HTTP parameters may not be null");
         }
+        this.log               = log;
         this.requestExec       = requestExec;
         this.connManager       = conman;
         this.reuseStrategy     = reustrat;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r884701 - /httpcomponents/httpclient/trunk/RELEASE_NOTES.txt</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200911.mbox/%3c20091126214140.0412C23888DC@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091126214140-0412C23888DC@eris-apache-org%3e</id>
<updated>2009-11-26T21:41:39Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Thu Nov 26 21:41:39 2009
New Revision: 884701

URL: http://svn.apache.org/viewvc?rev=884701&amp;view=rev
Log:
Updated release notes for 4.1-alpha1 release

Modified:
    httpcomponents/httpclient/trunk/RELEASE_NOTES.txt

Modified: httpcomponents/httpclient/trunk/RELEASE_NOTES.txt
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/RELEASE_NOTES.txt?rev=884701&amp;r1=884700&amp;r2=884701&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/RELEASE_NOTES.txt (original)
+++ httpcomponents/httpclient/trunk/RELEASE_NOTES.txt Thu Nov 26 21:41:39 2009
@@ -1,4 +1,4 @@
-Release 4.1
+Release 4.1 ALPHA1
 -------------------
 
 HttpClient 4.1 ALPHA1 builds on the stable 4.0 release and adds several 




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r884699 - /httpcomponents/httpclient/trunk/src/docbkx/connmgmt.xml</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200911.mbox/%3c20091126211902.33EB623888DC@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091126211902-33EB623888DC@eris-apache-org%3e</id>
<updated>2009-11-26T21:19:02Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Thu Nov 26 21:19:00 2009
New Revision: 884699

URL: http://svn.apache.org/viewvc?rev=884699&amp;view=rev
Log:
Formatting fix

Modified:
    httpcomponents/httpclient/trunk/src/docbkx/connmgmt.xml

Modified: httpcomponents/httpclient/trunk/src/docbkx/connmgmt.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/src/docbkx/connmgmt.xml?rev=884699&amp;r1=884698&amp;r2=884699&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/src/docbkx/connmgmt.xml (original)
+++ httpcomponents/httpclient/trunk/src/docbkx/connmgmt.xml Thu Nov 26 21:19:00 2009
@@ -40,6 +40,8 @@
                         a value of type &lt;classname&gt;java.lang.Integer&lt;/classname&gt;.
If this parameter
                         is not set read operations will not time out (infinite timeout).&lt;/para&gt;
                 &lt;/formalpara&gt;
+            &lt;/listitem&gt;
+            &lt;listitem&gt;
                 &lt;formalpara&gt;
                     &lt;title&gt;'http.tcp.nodelay':&lt;/title&gt;
                     &lt;para&gt;determines whether Nagle's algorithm is to be used. The Nagle's
algorithm
@@ -51,6 +53,8 @@
                         type &lt;classname&gt;java.lang.Boolean&lt;/classname&gt;. If this
parameter is not,
                             &lt;literal&gt;TCP_NODELAY&lt;/literal&gt; will be enabled (no
delay).&lt;/para&gt;
                 &lt;/formalpara&gt;
+            &lt;/listitem&gt;
+            &lt;listitem&gt;
                 &lt;formalpara&gt;
                     &lt;title&gt;'http.socket.buffer-size':&lt;/title&gt;
                     &lt;para&gt;determines the size of the internal socket buffer used to
buffer data
@@ -58,6 +62,8 @@
                         of type &lt;classname&gt;java.lang.Integer&lt;/classname&gt;. If
this parameter is not
                         set HttpClient will allocate 8192 byte socket buffers.&lt;/para&gt;
                 &lt;/formalpara&gt;
+            &lt;/listitem&gt;
+            &lt;listitem&gt;
                 &lt;formalpara&gt;
                     &lt;title&gt;'http.socket.linger':&lt;/title&gt;
                     &lt;para&gt;sets &lt;literal&gt;SO_LINGER&lt;/literal&gt; with the specified
linger time in
@@ -66,6 +72,8 @@
                         The setting only affects the socket close operation. If this parameter
is
                         not set value -1 (JRE default) will be assumed.&lt;/para&gt;
                 &lt;/formalpara&gt;
+            &lt;/listitem&gt;
+            &lt;listitem&gt;
                 &lt;formalpara&gt;
                     &lt;title&gt;'http.connection.timeout':&lt;/title&gt;
                     &lt;para&gt;determines the timeout in milliseconds until a connection
is established.
@@ -74,6 +82,8 @@
                         If this parameter is not set connect operations will not time out
(infinite
                         timeout).&lt;/para&gt;
                 &lt;/formalpara&gt;
+            &lt;/listitem&gt;
+            &lt;listitem&gt;
                 &lt;formalpara&gt;
                     &lt;title&gt;'http.connection.stalecheck':&lt;/title&gt;
                     &lt;para&gt;determines whether stale connection check is to be used.
Disabling stale
@@ -85,6 +95,8 @@
                         operations the check should be disabled. If this parameter is not
set the
                         stale connection will be performed before each request execution.&lt;/para&gt;
                 &lt;/formalpara&gt;
+            &lt;/listitem&gt;
+            &lt;listitem&gt;
                 &lt;formalpara&gt;
                     &lt;title&gt;'http.connection.max-line-length':&lt;/title&gt;
                     &lt;para&gt;determines the maximum line length limit. If set to a positive
value, any
@@ -94,6 +106,8 @@
                         type &lt;classname&gt;java.lang.Integer&lt;/classname&gt;. If this
parameter is not set,
                         no limit will be enforced.&lt;/para&gt;
                 &lt;/formalpara&gt;
+            &lt;/listitem&gt;
+            &lt;listitem&gt;
                 &lt;formalpara&gt;
                     &lt;title&gt;'http.connection.max-header-count':&lt;/title&gt;
                     &lt;para&gt;determines the maximum HTTP header count allowed. If set
to a positive
@@ -103,6 +117,8 @@
                         expects a value of type &lt;classname&gt;java.lang.Integer&lt;/classname&gt;.
If this
                         parameter is not set, no limit will be enforced.&lt;/para&gt;
                 &lt;/formalpara&gt;
+            &lt;/listitem&gt;
+            &lt;listitem&gt;
                 &lt;formalpara&gt;
                     &lt;title&gt;'http.connection.max-status-line-garbage':&lt;/title&gt;
                     &lt;para&gt;defines the maximum number of ignorable lines before we expect
a HTTP




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r884696 - /httpcomponents/httpclient/trunk/RELEASE_NOTES.txt</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200911.mbox/%3c20091126204424.BCEC323889ED@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091126204424-BCEC323889ED@eris-apache-org%3e</id>
<updated>2009-11-26T20:44:24Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Thu Nov 26 20:44:22 2009
New Revision: 884696

URL: http://svn.apache.org/viewvc?rev=884696&amp;view=rev
Log:
Updated release notes

Modified:
    httpcomponents/httpclient/trunk/RELEASE_NOTES.txt

Modified: httpcomponents/httpclient/trunk/RELEASE_NOTES.txt
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/RELEASE_NOTES.txt?rev=884696&amp;r1=884695&amp;r2=884696&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/RELEASE_NOTES.txt (original)
+++ httpcomponents/httpclient/trunk/RELEASE_NOTES.txt Thu Nov 26 20:44:22 2009
@@ -76,6 +76,10 @@
   entities that specify a charset.
   Contributed by Oleg Kalnichevski &lt;olegk at apache.org&gt;
 
+* [HTTPCLIENT-884] UrlEncodedFormEntity now sets charset on the Content-Type 
+  header.
+  Contributed by Jared Jacobs &lt;jmjacobs at cs.stanford.edu&gt;  
+  
 * [HTTPCLIENT-883] SO_TIMEOUT is not reset on persistent (re-used) connections.
   Contributed by Oleg Kalnichevski &lt;olegk at apache.org&gt;
 




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r884695 - /httpcomponents/httpclient/branches/4.0.x/RELEASE_NOTES.txt</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200911.mbox/%3c20091126204351.091DA238899B@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091126204351-091DA238899B@eris-apache-org%3e</id>
<updated>2009-11-26T20:43:50Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Thu Nov 26 20:43:49 2009
New Revision: 884695

URL: http://svn.apache.org/viewvc?rev=884695&amp;view=rev
Log:
Updated release notes

Modified:
    httpcomponents/httpclient/branches/4.0.x/RELEASE_NOTES.txt

Modified: httpcomponents/httpclient/branches/4.0.x/RELEASE_NOTES.txt
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.0.x/RELEASE_NOTES.txt?rev=884695&amp;r1=884694&amp;r2=884695&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.0.x/RELEASE_NOTES.txt (original)
+++ httpcomponents/httpclient/branches/4.0.x/RELEASE_NOTES.txt Thu Nov 26 20:43:49 2009
@@ -12,6 +12,10 @@
   entities that specify a charset.
   Contributed by Oleg Kalnichevski &lt;olegk at apache.org&gt;
 
+* [HTTPCLIENT-884] UrlEncodedFormEntity now sets charset on the Content-Type 
+  header.
+  Contributed by Jared Jacobs &lt;jmjacobs at cs.stanford.edu&gt;  
+  
 * [HTTPCLIENT-883] SO_TIMEOUT is not reset on persistent (re-used) connections.
   Contributed by Oleg Kalnichevski &lt;olegk at apache.org&gt;
 




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r884693 - /httpcomponents/httpcore/trunk/src/site/apt/download.apt</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200911.mbox/%3c20091126203740.3AD0E238899B@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091126203740-3AD0E238899B@eris-apache-org%3e</id>
<updated>2009-11-26T20:37:39Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Thu Nov 26 20:37:37 2009
New Revision: 884693

URL: http://svn.apache.org/viewvc?rev=884693&amp;view=rev
Log:
Download page markup tweak

Modified:
    httpcomponents/httpcore/trunk/src/site/apt/download.apt

Modified: httpcomponents/httpcore/trunk/src/site/apt/download.apt
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/src/site/apt/download.apt?rev=884693&amp;r1=884692&amp;r2=884693&amp;view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/src/site/apt/download.apt (original)
+++ httpcomponents/httpcore/trunk/src/site/apt/download.apt Thu Nov 26 20:37:37 2009
@@ -32,7 +32,7 @@
 
     The latest release available for download:
 
-    {{{http://hc.apache.org/downloads.cgi}4.0}} - 
+    {{{http://hc.apache.org/downloads.cgi}Release packages}} - 
     {{{http://www.apache.org/dist/httpcomponents/httpcore/RELEASE_NOTES.txt}Release Notes}}
-
     {{{http://www.apache.org/licenses/LICENSE-2.0.html}License}}
 




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r884692 - /httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/RouteSpecificPool.java</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200911.mbox/%3c20091126203653.0B510238899B@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091126203653-0B510238899B@eris-apache-org%3e</id>
<updated>2009-11-26T20:36:51Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Thu Nov 26 20:36:48 2009
New Revision: 884692

URL: http://svn.apache.org/viewvc?rev=884692&amp;view=rev
Log:
Javadoc fix

Modified:
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/RouteSpecificPool.java

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/RouteSpecificPool.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/RouteSpecificPool.java?rev=884692&amp;r1=884691&amp;r2=884692&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/RouteSpecificPool.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/RouteSpecificPool.java
Thu Nov 26 20:36:48 2009
@@ -77,7 +77,7 @@
 
 
     /**
-     * @Deprecated use {@link RouteSpecificPool#RouteSpecificPool(HttpRoute, ConnPerRoute)}
+     * @deprecated use {@link RouteSpecificPool#RouteSpecificPool(HttpRoute, ConnPerRoute)}
      */
     @Deprecated
     public RouteSpecificPool(HttpRoute route, int maxEntries) {
@@ -98,7 +98,7 @@
      * Creates a new route-specific pool.
      *
      * @param route the route for which to pool
-     * @param maxEntries the maximum number of entries allowed for this pool
+     * @param connPerRoute the connections per route configuration
      */
     public RouteSpecificPool(HttpRoute route, ConnPerRoute connPerRoute) {
         this.route = route;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r884691 - /httpcomponents/httpclient/trunk/src/site/apt/download.apt</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200911.mbox/%3c20091126203604.A0CF3238899B@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091126203604-A0CF3238899B@eris-apache-org%3e</id>
<updated>2009-11-26T20:36:02Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Thu Nov 26 20:35:53 2009
New Revision: 884691

URL: http://svn.apache.org/viewvc?rev=884691&amp;view=rev
Log:
Updated download page for 4.0.1 / 4.1- alpha1 releases

Modified:
    httpcomponents/httpclient/trunk/src/site/apt/download.apt

Modified: httpcomponents/httpclient/trunk/src/site/apt/download.apt
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/src/site/apt/download.apt?rev=884691&amp;r1=884690&amp;r2=884691&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/src/site/apt/download.apt (original)
+++ httpcomponents/httpclient/trunk/src/site/apt/download.apt Thu Nov 26 20:35:53 2009
@@ -32,7 +32,7 @@
 
     The latest release available for download:
 
-    {{{http://hc.apache.org/downloads.cgi}4.0}} - 
+    {{{http://hc.apache.org/downloads.cgi}Release packages}} - 
     {{{http://www.apache.org/dist/httpcomponents/httpclient/RELEASE_NOTES.txt}Release Notes}}
-
     {{{http://www.apache.org/licenses/LICENSE-2.0.html}License}}
 
@@ -42,24 +42,46 @@
     in your {{{http://maven.apache.org/guides/introduction/introduction-to-the-pom.html}pom.xml}}

     by adding the following block to the dependency descriptor:
 
-* {HttpComponents Client}
+* {HttpComponents Client 4.0.1}
 
 -------------------------
   &lt;dependency&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpclient&lt;/artifactId&gt;
-    &lt;version&gt;4.0&lt;/version&gt;
+    &lt;version&gt;4.0.1&lt;/version&gt;
     &lt;scope&gt;compile&lt;/scope&gt;
   &lt;/dependency&gt;
 -------------------------
 
-* {HttpComponents HttpMime}
+* {HttpComponents HttpMime 4.0.1}
 
 -------------------------
   &lt;dependency&gt;
     &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
     &lt;artifactId&gt;httpmime&lt;/artifactId&gt;
-    &lt;version&gt;4.0&lt;/version&gt;
+    &lt;version&gt;4.0.1&lt;/version&gt;
+    &lt;scope&gt;compile&lt;/scope&gt;
+  &lt;/dependency&gt;
+-------------------------
+
+* {HttpComponents Client 4.1-alpha1 (development branch)}
+
+-------------------------
+  &lt;dependency&gt;
+    &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
+    &lt;artifactId&gt;httpclient&lt;/artifactId&gt;
+    &lt;version&gt;4.1-alpha1&lt;/version&gt;
+    &lt;scope&gt;compile&lt;/scope&gt;
+  &lt;/dependency&gt;
+-------------------------
+
+* {HttpComponents HttpMime 4.1-alpha1 (development branch)}
+
+-------------------------
+  &lt;dependency&gt;
+    &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
+    &lt;artifactId&gt;httpmime&lt;/artifactId&gt;
+    &lt;version&gt;4.1-alpha1&lt;/version&gt;
     &lt;scope&gt;compile&lt;/scope&gt;
   &lt;/dependency&gt;
 -------------------------




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r884256 - /httpcomponents/httpclient/branches/4.0.x/RELEASE_NOTES.txt</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200911.mbox/%3c20091125203646.BA4922388A1D@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091125203646-BA4922388A1D@eris-apache-org%3e</id>
<updated>2009-11-25T20:36:46Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Wed Nov 25 20:36:46 2009
New Revision: 884256

URL: http://svn.apache.org/viewvc?rev=884256&amp;view=rev
Log:
Updated release notes for 4.0.1 release

Modified:
    httpcomponents/httpclient/branches/4.0.x/RELEASE_NOTES.txt

Modified: httpcomponents/httpclient/branches/4.0.x/RELEASE_NOTES.txt
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.0.x/RELEASE_NOTES.txt?rev=884256&amp;r1=884255&amp;r2=884256&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.0.x/RELEASE_NOTES.txt (original)
+++ httpcomponents/httpclient/branches/4.0.x/RELEASE_NOTES.txt Wed Nov 25 20:36:46 2009
@@ -1,5 +1,11 @@
+Release 4.0.1
+-------------------
+
+This is a bug fix release that addresses a number of issues discovered since 
+the previous stable release. None of the fixed bugs is considered critical. 
+Most notably this release eliminates eliminates dependency on JCIP annotations.
 
-Changes since 4.0
+Changelog
 -------------------
 
 * [HTTPCLIENT-885] URLEncodedUtils now correctly parses form-url-encoded 




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r884253 - /httpcomponents/httpclient/trunk/RELEASE_NOTES.txt</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200911.mbox/%3c20091125203426.B6CC323889D0@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091125203426-B6CC323889D0@eris-apache-org%3e</id>
<updated>2009-11-25T20:34:26Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Wed Nov 25 20:34:26 2009
New Revision: 884253

URL: http://svn.apache.org/viewvc?rev=884253&amp;view=rev
Log:
Updated release notes for 4.1-alpha1 release

Modified:
    httpcomponents/httpclient/trunk/RELEASE_NOTES.txt

Modified: httpcomponents/httpclient/trunk/RELEASE_NOTES.txt
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/RELEASE_NOTES.txt?rev=884253&amp;r1=884252&amp;r2=884253&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/RELEASE_NOTES.txt (original)
+++ httpcomponents/httpclient/trunk/RELEASE_NOTES.txt Wed Nov 25 20:34:26 2009
@@ -1,4 +1,24 @@
-Changes since 4.0
+Release 4.1
+-------------------
+
+HttpClient 4.1 ALPHA1 builds on the stable 4.0 release and adds several 
+functionality improvements and new features.
+
+* Simplified configuration of connection managers.
+
+* Persistence of authentication data between request executions within 
+  the same execution context.
+
+* Support for SPNEGO/Kerberos authentication scheme
+
+* Support for transparent content encoding. Please note transparent content 
+  encoding is not enabled per default in order to avoid conflicts with
+  already existing custom content encoding solutions.
+  
+Please note all methods and classes added in this release and marked as
+4.1 are API unstable and can change in the future 4.1 ALPHA releases.
+  
+Changelog
 -------------------
 
 * [HTTPCLIENT-889] 'expect: continue' handshake disabled per default.
@@ -14,23 +34,9 @@
   authentication data cache.
   Contributed by Oleg Kalnichevski &lt;olegk at apache.org&gt;
 
-* [HTTPCLIENT-885] URLEncodedUtils now correctly parses form-url-encoded 
-  entities that specify a charset.
-  Contributed by Oleg Kalnichevski &lt;olegk at apache.org&gt;
-
 * [HTTPCLIENT-883] SO_TIMEOUT is not reset on persistent (re-used) connections.
   Contributed by Oleg Kalnichevski &lt;olegk at apache.org&gt;
 
-* [HTTPCLIENT-882] Auth state is not correctly updated if a successful NTLM 
-  authentication results in a redirect. This is a minor bug as HttpClient 
-  manages to recover from the problem automatically.
-  Contributed by Oleg Kalnichevski &lt;olegk at apache.org&gt;
-
-* [HTTPCLIENT-881] Fixed race condition in AbstractClientConnAdapter that makes
-  it possible for an aborted connection to be returned to the pool.
-  Contributed by Tim Boemker &lt;tboemker at elynx.com&gt; and 
-  Oleg Kalnichevski &lt;olegk at apache.org&gt;
-
 * [HTTPCLIENT-832] Distinguish cookie format errors from violations of 
   restrictions imposed by a cookie specification. In the latter case 
   CookieRestrictionViolationException will be thrown.
@@ -56,6 +62,37 @@
 * [HTTPCLIENT-834] Transparent content encoding support.
   Contributed by James Abley &lt;james.abley at gmail.com&gt;
 
+Release 4.0.1
+-------------------
+
+This is a bug fix release that addresses a number of issues discovered since 
+the previous stable release. None of the fixed bugs is considered critical. 
+Most notably this release eliminates eliminates dependency on JCIP annotations.
+
+Changelog
+-------------------
+
+* [HTTPCLIENT-885] URLEncodedUtils now correctly parses form-url-encoded 
+  entities that specify a charset.
+  Contributed by Oleg Kalnichevski &lt;olegk at apache.org&gt;
+
+* [HTTPCLIENT-883] SO_TIMEOUT is not reset on persistent (re-used) connections.
+  Contributed by Oleg Kalnichevski &lt;olegk at apache.org&gt;
+
+* [HTTPCLIENT-882] Auth state is now correctly updated if a successful NTLM 
+  authentication results in a redirect. This is a minor bug as HttpClient 
+  manages to recover from the problem automatically.
+  Contributed by Oleg Kalnichevski &lt;olegk at apache.org&gt;
+
+* [HTTPCLIENT-881] Fixed race condition in AbstractClientConnAdapter that makes
+  it possible for an aborted connection to be returned to the pool.
+  Contributed by Tim Boemker &lt;tboemker at elynx.com&gt; and 
+  Oleg Kalnichevski &lt;olegk at apache.org&gt;
+
+* [HTTPCLIENT-866] Removed dependency on jcip-annotations.jar.
+  Contributed by Oleg Kalnichevski &lt;olegk at apache.org&gt; 
+  and Sebastian Bazley &lt;sebb at apache.org&gt;
+
 
 Release 4.0
 -------------------




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r884246 - /httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200911.mbox/%3c20091125201532.8173123889D0@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091125201532-8173123889D0@eris-apache-org%3e</id>
<updated>2009-11-25T20:15:32Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Wed Nov 25 20:15:32 2009
New Revision: 884246

URL: http://svn.apache.org/viewvc?rev=884246&amp;view=rev
Log:
HTTPCLIENT-865: use explicit version in package imports and exports

Modified:
    httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml

Modified: httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml?rev=884246&amp;r1=884245&amp;r2=884246&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml (original)
+++ httpcomponents/httpclient/trunk/httpclient-osgi/pom.xml Wed Nov 25 20:15:32 2009
@@ -90,21 +90,33 @@
             &lt;Bundle-Name&gt;Apache ${pom.name}&lt;/Bundle-Name&gt;
             &lt;Bundle-SymbolicName&gt;${pom.groupId}.httpclient&lt;/Bundle-SymbolicName&gt;
             &lt;_exportcontents&gt;
-            org.apache.http.cookie.*;version=${project.version},
-            org.apache.http.impl.cookie.*;version=${project.version},
             org.apache.http.auth.*;version=${project.version},
-            org.apache.http.impl.auth.*;version=${project.version},
+            org.apache.http.cookie.*;version=${project.version},
             org.apache.http.conn.*;version=${project.version},
-            org.apache.http.impl.conn.*;version=${project.version},
             org.apache.http.client.*;version=${project.version},
-            org.apache.http.impl.client.*;version=${project.version},
             org.apache.http.entity.mime.*;version=${project.version},
-            org.apache.http.entity.mime.content.*;version=${project.version}
+            org.apache.http.impl.auth.*;version=${project.version},
+            org.apache.http.impl.cookie.*;version=${project.version},
+            org.apache.http.impl.conn.*;version=${project.version},
+            org.apache.http.impl.client.*;version=${project.version}
             &lt;/_exportcontents&gt;
             &lt;Embed-Dependency&gt;*;scope=compile|runtime;inline=false&lt;/Embed-Dependency&gt;
             &lt;Import-Package&gt;
+            javax.crypto,
+            javax.crypto.spec,
+            javax.net.ssl,javax.security.auth.x500,
+            org.ietf.jgss,
             org.apache.commons.logging;version=${commons-logging.version},
-            *
+            org.apache.http;version=${httpcore.version},
+            org.apache.http.entity;version=${httpcore.version},
+            org.apache.http.io;version=${httpcore.version},
+            org.apache.http.message;version=${httpcore.version},
+            org.apache.http.params;version=${httpcore.version},
+            org.apache.http.protocol;version=${httpcore.version},
+            org.apache.http.util;version=${httpcore.version},
+            org.apache.http.impl;version=${httpcore.version},
+            org.apache.http.impl.entity;version=${httpcore.version},
+            org.apache.http.impl.io;version=${httpcore.version}
             &lt;/Import-Package&gt;
           &lt;/instructions&gt;
         &lt;/configuration&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r884245 - in /httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client: AbstractHttpClient.java DefaultHttpClient.java</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200911.mbox/%3c20091125201315.29BD82388A4E@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091125201315-29BD82388A4E@eris-apache-org%3e</id>
<updated>2009-11-25T20:13:15Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Wed Nov 25 20:13:14 2009
New Revision: 884245

URL: http://svn.apache.org/viewvc?rev=884245&amp;view=rev
Log:
Fixed binary compatibility breakage

Modified:
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java?rev=884245&amp;r1=884244&amp;r2=884245&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java
Wed Nov 25 20:13:14 2009
@@ -130,8 +130,6 @@
  *   &lt;li&gt;{@link RedirectStrategy}&lt;/li&gt; object used to determine if an HTTP 
  *    request should be redirected to a new location in response to an HTTP 
  *    response received from the target server. 
- *    The {@link #createRedirectStrategy()} must be implemented 
- *    by concrete super classes to instantiate this object.
  *   &lt;li&gt;{@link UserTokenHandler}&lt;/li&gt; object used to determine if the 
  *    execution context is user identity specific. 
  *    The {@link #createUserTokenHandler()} must be implemented by 
@@ -273,11 +271,6 @@
     @Deprecated
     protected abstract org.apache.http.client.RedirectHandler createRedirectHandler();
 
-    /**
-     * @since 4.1
-     */
-    protected abstract RedirectStrategy createRedirectStrategy();
-    
 
     protected abstract AuthenticationHandler createTargetAuthenticationHandler();
 
@@ -296,7 +289,6 @@
     
     protected abstract UserTokenHandler createUserTokenHandler();
 
-    
     // non-javadoc, see interface HttpClient
     public synchronized final HttpParams getParams() {
         if (defaultParams == null) {
@@ -412,9 +404,10 @@
     /**
      * @since 4.1
      */
+    @SuppressWarnings("deprecation")
     public synchronized final RedirectStrategy getRedirectStrategy() {
         if (redirectStrategy == null) {
-            redirectStrategy = createRedirectStrategy();
+            redirectStrategy = new DefaultRedirectStrategyAdaptor(createRedirectHandler());
         }
         return redirectStrategy;
     }
@@ -685,7 +678,7 @@
                     getRoutePlanner(),
                     getProtocolProcessor(),
                     getHttpRequestRetryHandler(),
-                    getRedirectHandler(),
+                    getRedirectStrategy(),
                     getTargetAuthenticationHandler(),
                     getProxyAuthenticationHandler(),
                     getUserTokenHandler(),

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java?rev=884245&amp;r1=884244&amp;r2=884245&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java
Wed Nov 25 20:13:14 2009
@@ -36,7 +36,6 @@
 import org.apache.http.client.CookieStore;
 import org.apache.http.client.CredentialsProvider;
 import org.apache.http.client.HttpRequestRetryHandler;
-import org.apache.http.client.RedirectStrategy;
 import org.apache.http.client.UserTokenHandler;
 import org.apache.http.client.params.AuthPolicy;
 import org.apache.http.client.params.ClientPNames;
@@ -165,6 +164,7 @@
             final ClientConnectionManager conman,
             final HttpParams params) {
         super(conman, params);
+        setRedirectStrategy(new DefaultRedirectStrategy());
     }
     
     
@@ -357,15 +357,6 @@
         return new DefaultRedirectHandler();
     }
 
-    /**
-     * @since 4.1
-     */
-    @Override
-    protected RedirectStrategy createRedirectStrategy() {
-        return new DefaultRedirectStrategy();
-    }
-
-
     @Override
     protected AuthenticationHandler createTargetAuthenticationHandler() {
         return new DefaultTargetAuthenticationHandler();




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r884242 - in /httpcomponents/httpcore/trunk/httpcore/src: main/java/org/apache/http/util/EntityUtils.java test/java/org/apache/http/util/TestEntityUtils.java</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200911.mbox/%3c20091125200713.D585B23889D0@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091125200713-D585B23889D0@eris-apache-org%3e</id>
<updated>2009-11-25T20:07:13Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Wed Nov 25 20:07:13 2009
New Revision: 884242

URL: http://svn.apache.org/viewvc?rev=884242&amp;view=rev
Log:
HTTPCORE-210: get entity MimeType utility method

Modified:
    httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/EntityUtils.java
    httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/util/TestEntityUtils.java

Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/EntityUtils.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/EntityUtils.java?rev=884242&amp;r1=884241&amp;r2=884242&amp;view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/EntityUtils.java
(original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/util/EntityUtils.java
Wed Nov 25 20:07:13 2009
@@ -92,9 +92,7 @@
      * @throws ParseException if header elements cannot be parsed
      * @throws IllegalArgumentException if entity is null
      */
-    public static String getContentCharSet(final HttpEntity entity)
-        throws ParseException {
-
+    public static String getContentCharSet(final HttpEntity entity) throws ParseException
{
         if (entity == null) {
             throw new IllegalArgumentException("HTTP entity may not be null");
         }
@@ -112,6 +110,30 @@
     }
 
     /**
+     * Obtains mime type of the entity, if known.
+     * 
+     * @param entity must not be null
+     * @return the character set, or null if not found
+     * @throws ParseException if header elements cannot be parsed
+     * @throws IllegalArgumentException if entity is null
+     * 
+     * @since 4.1
+     */
+    public static String getContentMimeType(final HttpEntity entity) throws ParseException
{
+        if (entity == null) {
+            throw new IllegalArgumentException("HTTP entity may not be null");
+        }
+        String mimeType = null;
+        if (entity.getContentType() != null) { 
+            HeaderElement values[] = entity.getContentType().getElements();
+            if (values.length &gt; 0) {
+                mimeType = values[0].getName();
+            }
+        }
+        return mimeType;
+    }
+
+    /**
      * Get the entity content as a String, using the provided default character set
      * if none is found in the entity. 
      * If defaultCharset is null, the default "ISO-8859-1" is used.

Modified: httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/util/TestEntityUtils.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/util/TestEntityUtils.java?rev=884242&amp;r1=884241&amp;r2=884242&amp;view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/util/TestEntityUtils.java
(original)
+++ httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/util/TestEntityUtils.java
Wed Nov 25 20:07:13 2009
@@ -139,6 +139,28 @@
         assertEquals("UTF-8", EntityUtils.getContentCharSet(httpentity));
     }
     
+    public void testGetContentMimeTypeWithCharset() throws Exception {
+        BasicHttpEntity httpentity = new BasicHttpEntity();
+        httpentity.setContentType(new BasicHeader("Content-Type", "text/plain; " +
+        		"whatever; charset = UTF-8"));
+        assertEquals("text/plain", EntityUtils.getContentMimeType(httpentity));
+    }
+    
+    public void testGetContentMimeTypeWithoutCharset() throws Exception {
+        BasicHttpEntity httpentity = new BasicHttpEntity();
+        httpentity.setContentType(new BasicHeader("Content-Type", "text/whatever"));
+        assertEquals("text/whatever", EntityUtils.getContentMimeType(httpentity));
+    }
+    
+    public void testNullEntityGetMimeType() throws Exception {
+        try {
+            EntityUtils.getContentMimeType(null);
+            fail("IllegalArgumentException should have been thrown");
+        } catch (IllegalArgumentException ex) {
+            // expected
+        }
+    }
+    
     public void testNullEntityToString() throws Exception {
         try {
             EntityUtils.toString(null);




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r883874 - /httpcomponents/project/src/site/apt/user-docs.apt</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200911.mbox/%3c20091124210205.8588723888C2@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091124210205-8588723888C2@eris-apache-org%3e</id>
<updated>2009-11-24T21:02:05Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Tue Nov 24 21:02:05 2009
New Revision: 883874

URL: http://svn.apache.org/viewvc?rev=883874&amp;view=rev
Log:
HTTPCLIENT-892: Links in Section Example Code are broken

Modified:
    httpcomponents/project/src/site/apt/user-docs.apt

Modified: httpcomponents/project/src/site/apt/user-docs.apt
URL: http://svn.apache.org/viewvc/httpcomponents/project/src/site/apt/user-docs.apt?rev=883874&amp;r1=883873&amp;r2=883874&amp;view=diff
==============================================================================
--- httpcomponents/project/src/site/apt/user-docs.apt (original)
+++ httpcomponents/project/src/site/apt/user-docs.apt Tue Nov 24 21:02:05 2009
@@ -100,16 +100,16 @@
 
 * {Example Code}
 
-    * {{{http://svn.apache.org/repos/asf/httpcomponents/httpcore/trunk/module-main/src/examples/org/apache/http/examples/}
+    * {{{http://svn.apache.org/repos/asf/httpcomponents/httpcore/branches/4.0.x/httpcore/src/examples/org/apache/http/examples/}
        HttpCore}}
        
-    * {{{http://svn.apache.org/repos/asf/httpcomponents/httpcore/trunk/module-nio/src/examples/org/apache/http/examples/nio/}
+    * {{{http://svn.apache.org/repos/asf/httpcomponents/httpcore/branches/4.0.x/httpcore-nio/src/examples/org/apache/http/examples/nio/}
        HttpCore NIO}}
        
-    * {{{http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/}
+    * {{{http://svn.apache.org/repos/asf/httpcomponents/httpclient/branches/4.0.x/httpclient/src/examples/org/apache/http/examples/client/}
        HttpClient}}
        
-    * {{{http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/module-httpmime/src/examples/org/apache/http/examples/entity/mime/}
+    * {{{http://svn.apache.org/repos/asf/httpcomponents/httpclient/branches/4.0.x/httpmime/src/examples/org/apache/http/examples/entity/mime/}
        HttpMime}}       
        
     Example code is meant to help you understand the API. It is also shipped with releases.




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r883868 - in /httpcomponents/httpclient/trunk: RELEASE_NOTES.txt httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200911.mbox/%3c20091124205231.BADD623889B8@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091124205231-BADD623889B8@eris-apache-org%3e</id>
<updated>2009-11-24T20:52:31Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Tue Nov 24 20:52:31 2009
New Revision: 883868

URL: http://svn.apache.org/viewvc?rev=883868&amp;view=rev
Log:
HTTPCLIENT-889: 'expect: continue' handshake disabled per default

Modified:
    httpcomponents/httpclient/trunk/RELEASE_NOTES.txt
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java

Modified: httpcomponents/httpclient/trunk/RELEASE_NOTES.txt
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/RELEASE_NOTES.txt?rev=883868&amp;r1=883867&amp;r2=883868&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/RELEASE_NOTES.txt (original)
+++ httpcomponents/httpclient/trunk/RELEASE_NOTES.txt Tue Nov 24 20:52:31 2009
@@ -1,6 +1,9 @@
 Changes since 4.0
 -------------------
 
+* [HTTPCLIENT-889] 'expect: continue' handshake disabled per default.
+  Contributed by Oleg Kalnichevski &lt;olegk at apache.org&gt;
+
 * [HTTPCLIENT-862] Extended client's redirect handling interface to allow 
   control of the content of the redirect.
   Contributed by Oleg Kalnichevski &lt;olegk at apache.org&gt;

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java?rev=883868&amp;r1=883867&amp;r2=883868&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java
Tue Nov 24 20:52:31 2009
@@ -194,8 +194,6 @@
                 HttpVersion.HTTP_1_1);
         HttpProtocolParams.setContentCharset(params, 
                 HTTP.DEFAULT_CONTENT_CHARSET);
-        HttpProtocolParams.setUseExpectContinue(params, 
-                true);
         HttpConnectionParams.setTcpNoDelay(params, 
                 true);
         HttpConnectionParams.setSocketBufferSize(params, 




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r883867 - in /httpcomponents/httpclient/trunk/httpclient/src: main/java/org/apache/http/impl/conn/tsccm/ test/java/org/apache/http/impl/conn/tsccm/</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200911.mbox/%3c20091124204821.B57A223889B8@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091124204821-B57A223889B8@eris-apache-org%3e</id>
<updated>2009-11-24T20:48:21Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Tue Nov 24 20:48:21 2009
New Revision: 883867

URL: http://svn.apache.org/viewvc?rev=883867&amp;view=rev
Log:
Use ConnPerRoute interface to look up maxEntries value for RouteSpecificPools

Modified:
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ConnPoolByRoute.java
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/RouteSpecificPool.java
    httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/tsccm/TestWaitingThread.java

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ConnPoolByRoute.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ConnPoolByRoute.java?rev=883867&amp;r1=883866&amp;r2=883867&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ConnPoolByRoute.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ConnPoolByRoute.java
Tue Nov 24 20:48:21 2009
@@ -166,7 +166,7 @@
      * @return  the new pool
      */
     protected RouteSpecificPool newRouteSpecificPool(HttpRoute route) {
-        return new RouteSpecificPool(route, this.connPerRoute.getMaxForRoute(route));
+        return new RouteSpecificPool(route, this.connPerRoute);
     }
 
 

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/RouteSpecificPool.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/RouteSpecificPool.java?rev=883867&amp;r1=883866&amp;r2=883867&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/RouteSpecificPool.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/RouteSpecificPool.java
Tue Nov 24 20:48:21 2009
@@ -36,6 +36,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.http.conn.OperatedClientConnection;
+import org.apache.http.conn.params.ConnPerRoute;
 import org.apache.http.conn.routing.HttpRoute;
 import org.apache.http.util.LangUtils;
 
@@ -55,9 +56,12 @@
     /** The route this pool is for. */
     protected final HttpRoute route; //Immutable
 
-    /** the maximum number of entries allowed for this pool */
+    @Deprecated
     protected final int maxEntries;
     
+    /** Connections per route */
+    protected final ConnPerRoute connPerRoute;
+    
     /**
      * The list of free entries.
      * This list is managed LIFO, to increase idle times and
@@ -73,20 +77,39 @@
 
 
     /**
+     * @Deprecated use {@link RouteSpecificPool#RouteSpecificPool(HttpRoute, ConnPerRoute)}
+     */
+    @Deprecated
+    public RouteSpecificPool(HttpRoute route, int maxEntries) {
+        this.route = route;
+        this.maxEntries = maxEntries;
+        this.connPerRoute = new ConnPerRoute() {
+            public int getMaxForRoute(HttpRoute route) {
+                return RouteSpecificPool.this.maxEntries;
+            }
+        };
+        this.freeEntries = new LinkedList&lt;BasicPoolEntry&gt;();
+        this.waitingThreads = new LinkedList&lt;WaitingThread&gt;();
+        this.numEntries = 0;
+    }
+
+
+    /**
      * Creates a new route-specific pool.
      *
      * @param route the route for which to pool
      * @param maxEntries the maximum number of entries allowed for this pool
      */
-    public RouteSpecificPool(HttpRoute route, int maxEntries) {
+    public RouteSpecificPool(HttpRoute route, ConnPerRoute connPerRoute) {
         this.route = route;
-        this.maxEntries = maxEntries;
+        this.connPerRoute = connPerRoute;
+        this.maxEntries = connPerRoute.getMaxForRoute(route);
         this.freeEntries = new LinkedList&lt;BasicPoolEntry&gt;();
         this.waitingThreads = new LinkedList&lt;WaitingThread&gt;();
         this.numEntries = 0;
     }
 
-
+    
     /**
      * Obtains the route for which this pool is specific.
      *
@@ -126,7 +149,7 @@
      * @return capacity
      */
     public int getCapacity() {
-        return maxEntries - numEntries;
+        return connPerRoute.getMaxForRoute(route) - numEntries;
     }
     
     

Modified: httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/tsccm/TestWaitingThread.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/tsccm/TestWaitingThread.java?rev=883867&amp;r1=883866&amp;r2=883867&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/tsccm/TestWaitingThread.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/tsccm/TestWaitingThread.java
Tue Nov 24 20:48:21 2009
@@ -36,6 +36,8 @@
 import junit.framework.TestSuite;
 
 import org.apache.http.HttpHost;
+import org.apache.http.conn.params.ConnPerRoute;
+import org.apache.http.conn.params.ConnPerRouteBean;
 import org.apache.http.conn.routing.HttpRoute;
 
 
@@ -79,8 +81,9 @@
         assertNull  ("pool from nowhere", wt.getPool());
         assertNull  ("thread from nowhere", wt.getThread());
 
-        HttpRoute         route = new HttpRoute(TARGET);
-        RouteSpecificPool rospl = new RouteSpecificPool(route, 10);
+        HttpRoute route = new HttpRoute(TARGET);
+        ConnPerRoute connPerRoute = new ConnPerRouteBean(10);
+        RouteSpecificPool rospl = new RouteSpecificPool(route, connPerRoute);
         wt = new WaitingThread(cnd, rospl);
         assertEquals("wrong condition", cnd, wt.getCondition());
         assertEquals("wrong pool", rospl, wt.getPool());




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r883855 - in /httpcomponents/httpclient/trunk: ./ httpclient/src/main/java/org/apache/http/client/ httpclient/src/main/java/org/apache/http/impl/client/</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200911.mbox/%3c20091124202719.86F532388A2D@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091124202719-86F532388A2D@eris-apache-org%3e</id>
<updated>2009-11-24T20:27:19Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Tue Nov 24 20:27:18 2009
New Revision: 883855

URL: http://svn.apache.org/viewvc?rev=883855&amp;view=rev
Log:
HTTPCLIENT-862: Extended client's redirect handling interface to allow control of the content
of the redirect

Added:
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/RedirectStrategy.java
      - copied, changed from r833339, httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/RedirectHandler.java
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectStrategy.java
      - copied, changed from r833339, httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectHandler.java
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectStrategyAdaptor.java
  (with props)
Removed:
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/HttpRedirect.java
Modified:
    httpcomponents/httpclient/trunk/RELEASE_NOTES.txt
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/RedirectHandler.java
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectHandler.java
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java

Modified: httpcomponents/httpclient/trunk/RELEASE_NOTES.txt
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/RELEASE_NOTES.txt?rev=883855&amp;r1=883854&amp;r2=883855&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/RELEASE_NOTES.txt (original)
+++ httpcomponents/httpclient/trunk/RELEASE_NOTES.txt Tue Nov 24 20:27:18 2009
@@ -1,6 +1,10 @@
 Changes since 4.0
 -------------------
 
+* [HTTPCLIENT-862] Extended client's redirect handling interface to allow 
+  control of the content of the redirect.
+  Contributed by Oleg Kalnichevski &lt;olegk at apache.org&gt;
+
 * [HTTPCLIENT-872] HttpClient can now persist authentication data between request 
   executions as long as they share the same execution context. It has also become
   much easier to make HttpClient authenticate preemptively by pre-populating 

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/RedirectHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/RedirectHandler.java?rev=883855&amp;r1=883854&amp;r2=883855&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/RedirectHandler.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/RedirectHandler.java
Tue Nov 24 20:27:18 2009
@@ -43,7 +43,10 @@
  * from multiple threads.
  *
  * @since 4.0
+ * 
+ * @deprecated use {@link RedirectStrategy}
  */
+@Deprecated
 public interface RedirectHandler {
 
     /**

Copied: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/RedirectStrategy.java
(from r833339, httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/RedirectHandler.java)
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/RedirectStrategy.java?p2=httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/RedirectStrategy.java&amp;p1=httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/RedirectHandler.java&amp;r1=833339&amp;r2=883855&amp;rev=883855&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/RedirectHandler.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/RedirectStrategy.java
Tue Nov 24 20:27:18 2009
@@ -27,14 +27,14 @@
 
 package org.apache.http.client;
 
-import java.net.URI;
-
+import org.apache.http.HttpRequest;
 import org.apache.http.HttpResponse;
 import org.apache.http.ProtocolException;
+import org.apache.http.client.methods.HttpUriRequest;
 import org.apache.http.protocol.HttpContext;
 
 /**
- * A handler for determining if an HTTP request should be redirected to 
+ * A strategy for determining if an HTTP request should be redirected to 
  * a new location in response to an HTTP response received from the target
  * server.
  * &lt;p&gt;
@@ -42,33 +42,40 @@
  * data must be synchronized as methods of this interface may be executed 
  * from multiple threads.
  *
- * @since 4.0
+ * @since 4.1
  */
-public interface RedirectHandler {
+public interface RedirectStrategy {
 
     /**
      * Determines if a request should be redirected to a new location
      * given the response from the target server.
      * 
+     * @param request the executed request
      * @param response the response received from the target server
      * @param context the context for the request execution
      * 
      * @return &lt;code&gt;true&lt;/code&gt; if the request should be redirected, &lt;code&gt;false&lt;/code&gt;
      * otherwise
      */
-    boolean isRedirectRequested(HttpResponse response, HttpContext context);
+    boolean isRedirected(
+            HttpRequest request,
+            HttpResponse response, 
+            HttpContext context) throws ProtocolException;
     
     /**
-     * Determines the location request is expected to be redirected to 
-     * given the response from the target server and the current request
-     * execution context.
+     * Determines the redirect location given the response from the target 
+     * server and the current request execution context and generates a new 
+     * request to be sent to the location.
      * 
+     * @param request the executed request
      * @param response the response received from the target server
      * @param context the context for the request execution
      * 
-     * @return redirect URI 
+     * @return redirected request 
      */
-    URI getLocationURI(HttpResponse response, HttpContext context)
-            throws ProtocolException;
-
-}
+    HttpUriRequest getRedirect(
+            HttpRequest request,
+            HttpResponse response, 
+            HttpContext context) throws ProtocolException;
+    
+}
\ No newline at end of file

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java?rev=883855&amp;r1=883854&amp;r2=883855&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java
Tue Nov 24 20:27:18 2009
@@ -47,13 +47,13 @@
 import org.apache.http.auth.AuthSchemeRegistry;
 import org.apache.http.client.AuthenticationHandler;
 import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.RedirectStrategy;
 import org.apache.http.client.RequestDirector;
 import org.apache.http.client.ResponseHandler;
 import org.apache.http.client.CookieStore;
 import org.apache.http.client.CredentialsProvider;
 import org.apache.http.client.HttpClient;
 import org.apache.http.client.HttpRequestRetryHandler;
-import org.apache.http.client.RedirectHandler;
 import org.apache.http.client.UserTokenHandler;
 import org.apache.http.client.methods.HttpUriRequest;
 import org.apache.http.conn.ClientConnectionManager;
@@ -127,10 +127,10 @@
  *    may involve multiple intermediate hops. 
  *    The {@link #createHttpRoutePlanner()} must be implemented 
  *    by concrete super classes to instantiate this object.
- *   &lt;li&gt;{@link RedirectHandler}&lt;/li&gt; object used to determine if an HTTP 
+ *   &lt;li&gt;{@link RedirectStrategy}&lt;/li&gt; object used to determine if an HTTP 
  *    request should be redirected to a new location in response to an HTTP 
  *    response received from the target server. 
- *    The {@link #createRedirectHandler()} must be implemented 
+ *    The {@link #createRedirectStrategy()} must be implemented 
  *    by concrete super classes to instantiate this object.
  *   &lt;li&gt;{@link UserTokenHandler}&lt;/li&gt; object used to determine if the 
  *    execution context is user identity specific. 
@@ -200,7 +200,7 @@
 
     /** The redirect handler. */
     @GuardedBy("this")
-    private RedirectHandler redirectHandler;
+    private RedirectStrategy redirectStrategy;
 
     /** The target authentication handler. */
     @GuardedBy("this")
@@ -270,9 +270,15 @@
     protected abstract HttpRequestRetryHandler createHttpRequestRetryHandler();
 
     
-    protected abstract RedirectHandler createRedirectHandler();
+    @Deprecated
+    protected abstract org.apache.http.client.RedirectHandler createRedirectHandler();
 
+    /**
+     * @since 4.1
+     */
+    protected abstract RedirectStrategy createRedirectStrategy();
     
+
     protected abstract AuthenticationHandler createTargetAuthenticationHandler();
 
     
@@ -392,16 +398,32 @@
     }
 
 
-    public synchronized final RedirectHandler getRedirectHandler() {
-        if (redirectHandler == null) {
-            redirectHandler = createRedirectHandler();
-        }
-        return redirectHandler;
+    @Deprecated
+    public synchronized final org.apache.http.client.RedirectHandler getRedirectHandler()
{
+        return createRedirectHandler();
+    }
+
+
+    @Deprecated
+    public synchronized void setRedirectHandler(final org.apache.http.client.RedirectHandler
redirectHandler) {
+        this.redirectStrategy = new DefaultRedirectStrategyAdaptor(redirectHandler);
     }
 
+    /**
+     * @since 4.1
+     */
+    public synchronized final RedirectStrategy getRedirectStrategy() {
+        if (redirectStrategy == null) {
+            redirectStrategy = createRedirectStrategy();
+        }
+        return redirectStrategy;
+    }
 
-    public synchronized void setRedirectHandler(final RedirectHandler redirectHandler) {
-        this.redirectHandler = redirectHandler;
+    /**
+     * @since 4.1
+     */
+    public synchronized void setRedirectStrategy(final RedirectStrategy redirectStrategy)
{
+        this.redirectStrategy = redirectStrategy;
     }
 
 
@@ -677,6 +699,7 @@
         }
     }
 
+    @Deprecated
     protected RequestDirector createClientRequestDirector(
             final HttpRequestExecutor requestExec,
             final ClientConnectionManager conman,
@@ -685,7 +708,7 @@
             final HttpRoutePlanner rouplan,
             final HttpProcessor httpProcessor,
             final HttpRequestRetryHandler retryHandler,
-            final RedirectHandler redirectHandler,
+            final org.apache.http.client.RedirectHandler redirectHandler,
             final AuthenticationHandler targetAuthHandler,
             final AuthenticationHandler proxyAuthHandler,
             final UserTokenHandler stateHandler,
@@ -706,6 +729,36 @@
     }
 
     /**
+     * @since 4.1
+     */
+    protected RequestDirector createClientRequestDirector(
+            final HttpRequestExecutor requestExec,
+            final ClientConnectionManager conman,
+            final ConnectionReuseStrategy reustrat,
+            final ConnectionKeepAliveStrategy kastrat,
+            final HttpRoutePlanner rouplan,
+            final HttpProcessor httpProcessor,
+            final HttpRequestRetryHandler retryHandler,
+            final RedirectStrategy redirectStrategy,
+            final AuthenticationHandler targetAuthHandler,
+            final AuthenticationHandler proxyAuthHandler,
+            final UserTokenHandler stateHandler,
+            final HttpParams params) {
+        return new DefaultRequestDirector(
+                requestExec,
+                conman,
+                reustrat,
+                kastrat,
+                rouplan,
+                httpProcessor,
+                retryHandler,
+                redirectStrategy,
+                targetAuthHandler,
+                proxyAuthHandler,
+                stateHandler,
+                params);
+    }
+    /**
      * Obtains parameters for executing a request.
      * The default implementation in this class creates a new
      * {@link ClientParamsStack} from the request parameters

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java?rev=883855&amp;r1=883854&amp;r2=883855&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java
Tue Nov 24 20:27:18 2009
@@ -36,7 +36,7 @@
 import org.apache.http.client.CookieStore;
 import org.apache.http.client.CredentialsProvider;
 import org.apache.http.client.HttpRequestRetryHandler;
-import org.apache.http.client.RedirectHandler;
+import org.apache.http.client.RedirectStrategy;
 import org.apache.http.client.UserTokenHandler;
 import org.apache.http.client.params.AuthPolicy;
 import org.apache.http.client.params.ClientPNames;
@@ -354,10 +354,19 @@
 
 
     @Override
-    protected RedirectHandler createRedirectHandler() {
+    @Deprecated
+    protected org.apache.http.client.RedirectHandler createRedirectHandler() {
         return new DefaultRedirectHandler();
     }
 
+    /**
+     * @since 4.1
+     */
+    @Override
+    protected RedirectStrategy createRedirectStrategy() {
+        return new DefaultRedirectStrategy();
+    }
+
 
     @Override
     protected AuthenticationHandler createTargetAuthenticationHandler() {

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectHandler.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectHandler.java?rev=883855&amp;r1=883854&amp;r2=883855&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectHandler.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectHandler.java
Tue Nov 24 20:27:18 2009
@@ -54,8 +54,11 @@
  * Default implementation of {@link RedirectHandler}.
  *
  * @since 4.0
+ * 
+ * @deprecated use {@link DefaultRedirectStrategy}.
  */
 @Immutable
+@Deprecated
 public class DefaultRedirectHandler implements RedirectHandler {
 
     private final Log log = LogFactory.getLog(getClass());

Copied: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectStrategy.java
(from r833339, httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectHandler.java)
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectStrategy.java?p2=httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectStrategy.java&amp;p1=httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectHandler.java&amp;r1=833339&amp;r2=883855&amp;rev=883855&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectHandler.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectStrategy.java
Tue Nov 24 20:27:18 2009
@@ -41,9 +41,10 @@
 import org.apache.http.HttpStatus;
 import org.apache.http.ProtocolException;
 import org.apache.http.client.CircularRedirectException;
-import org.apache.http.client.RedirectHandler;
+import org.apache.http.client.RedirectStrategy;
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.client.methods.HttpHead;
+import org.apache.http.client.methods.HttpUriRequest;
 import org.apache.http.client.params.ClientPNames;
 import org.apache.http.client.utils.URIUtils;
 import org.apache.http.params.HttpParams;
@@ -51,24 +52,25 @@
 import org.apache.http.protocol.ExecutionContext;
 
 /**
- * Default implementation of {@link RedirectHandler}.
+ * Default implementation of {@link RedirectStrategy}.
  *
- * @since 4.0
+ * @since 4.1
  */
 @Immutable
-public class DefaultRedirectHandler implements RedirectHandler {
+public class DefaultRedirectStrategy implements RedirectStrategy {
 
     private final Log log = LogFactory.getLog(getClass());
     
     private static final String REDIRECT_LOCATIONS = "http.protocol.redirect-locations";
 
-    public DefaultRedirectHandler() {
+    public DefaultRedirectStrategy() {
         super();
     }
     
-    public boolean isRedirectRequested(
-            final HttpResponse response,
-            final HttpContext context) {
+    public boolean isRedirected(
+            final HttpRequest request,
+            final HttpResponse response, 
+            final HttpContext context) throws ProtocolException {
         if (response == null) {
             throw new IllegalArgumentException("HTTP response may not be null");
         }
@@ -78,8 +80,6 @@
         case HttpStatus.SC_MOVED_TEMPORARILY:
         case HttpStatus.SC_MOVED_PERMANENTLY:
         case HttpStatus.SC_TEMPORARY_REDIRECT:
-            HttpRequest request = (HttpRequest) context.getAttribute(
-                    ExecutionContext.HTTP_REQUEST);
             String method = request.getRequestLine().getMethod();
             return method.equalsIgnoreCase(HttpGet.METHOD_NAME) 
                 || method.equalsIgnoreCase(HttpHead.METHOD_NAME);
@@ -91,6 +91,7 @@
     }
  
     public URI getLocationURI(
+            final HttpRequest request,
             final HttpResponse response, 
             final HttpContext context) throws ProtocolException {
         if (response == null) {
@@ -131,10 +132,6 @@
                 throw new IllegalStateException("Target host not available " +
                         "in the HTTP context");
             }
-            
-            HttpRequest request = (HttpRequest) context.getAttribute(
-                    ExecutionContext.HTTP_REQUEST);
-            
             try {
                 URI requestURI = new URI(request.getRequestLine().getUri());
                 URI absoluteRequestURI = URIUtils.rewriteURI(requestURI, target, true);
@@ -180,4 +177,17 @@
         return uri;
     }
 
-}
+    public HttpUriRequest getRedirect(
+            final HttpRequest request,
+            final HttpResponse response, 
+            final HttpContext context) throws ProtocolException {
+        URI uri = getLocationURI(request, response, context);
+        String method = request.getRequestLine().getMethod();
+        if (method.equalsIgnoreCase(HttpHead.METHOD_NAME)) {
+            return new HttpHead(uri);
+        } else {
+            return new HttpGet(uri);
+        }
+    }
+    
+}
\ No newline at end of file

Added: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectStrategyAdaptor.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectStrategyAdaptor.java?rev=883855&amp;view=auto
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectStrategyAdaptor.java
(added)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectStrategyAdaptor.java
Tue Nov 24 20:27:18 2009
@@ -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.
+ * ====================================================================
+ *
+ * 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
+ * &lt;http://www.apache.org/&gt;.
+ *
+ */
+
+package org.apache.http.impl.client;
+
+import java.net.URI;
+
+import org.apache.http.HttpRequest;
+import org.apache.http.HttpResponse;
+import org.apache.http.ProtocolException;
+import org.apache.http.annotation.Immutable;
+import org.apache.http.client.RedirectStrategy;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpHead;
+import org.apache.http.client.methods.HttpUriRequest;
+import org.apache.http.protocol.HttpContext;
+
+/**
+ * @since 4.1
+ */
+@Immutable
+@Deprecated
+class DefaultRedirectStrategyAdaptor implements RedirectStrategy {
+
+    private final org.apache.http.client.RedirectHandler handler;
+    
+    @Deprecated
+    public DefaultRedirectStrategyAdaptor(final org.apache.http.client.RedirectHandler handler)
{
+        super();
+        this.handler = handler;
+    }
+    
+    public boolean isRedirected(
+            final HttpRequest request,
+            final HttpResponse response, 
+            final HttpContext context) throws ProtocolException {
+        return this.handler.isRedirectRequested(response, context);
+    }
+ 
+    public HttpUriRequest getRedirect(
+            final HttpRequest request,
+            final HttpResponse response, 
+            final HttpContext context) throws ProtocolException {
+        URI uri = this.handler.getLocationURI(response, context);
+        String method = request.getRequestLine().getMethod();
+        if (method.equalsIgnoreCase(HttpHead.METHOD_NAME)) {
+            return new HttpHead(uri);
+        } else {
+            return new HttpGet(uri);
+        }
+    }
+    
+}

Propchange: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectStrategyAdaptor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectStrategyAdaptor.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRedirectStrategyAdaptor.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java?rev=883855&amp;r1=883854&amp;r2=883855&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java
Tue Nov 24 20:27:18 2009
@@ -56,14 +56,15 @@
 import org.apache.http.auth.Credentials;
 import org.apache.http.auth.MalformedChallengeException;
 import org.apache.http.client.AuthenticationHandler;
+import org.apache.http.client.RedirectStrategy;
 import org.apache.http.client.RequestDirector;
 import org.apache.http.client.CredentialsProvider;
 import org.apache.http.client.HttpRequestRetryHandler;
 import org.apache.http.client.NonRepeatableRequestException;
 import org.apache.http.client.RedirectException;
-import org.apache.http.client.RedirectHandler;
 import org.apache.http.client.UserTokenHandler;
 import org.apache.http.client.methods.AbortableHttpRequest;
+import org.apache.http.client.methods.HttpUriRequest;
 import org.apache.http.client.params.ClientPNames;
 import org.apache.http.client.params.HttpClientParams;
 import org.apache.http.client.protocol.ClientContext;
@@ -158,7 +159,11 @@
     protected final HttpRequestRetryHandler retryHandler;
     
     /** The redirect handler. */
-    protected final RedirectHandler redirectHandler;
+    @Deprecated
+    protected final org.apache.http.client.RedirectHandler redirectHandler = null;
+    
+    /** The redirect strategy. */
+    protected final RedirectStrategy redirectStrategy;
     
     /** The target authentication handler. */
     protected final AuthenticationHandler targetAuthHandler;
@@ -184,7 +189,30 @@
     private int maxRedirects;
     
     private HttpHost virtualHost;
+
+    @Deprecated
+    public DefaultRequestDirector(
+            final HttpRequestExecutor requestExec,
+            final ClientConnectionManager conman,
+            final ConnectionReuseStrategy reustrat,
+            final ConnectionKeepAliveStrategy kastrat,
+            final HttpRoutePlanner rouplan,
+            final HttpProcessor httpProcessor,
+            final HttpRequestRetryHandler retryHandler,
+            final org.apache.http.client.RedirectHandler redirectHandler,
+            final AuthenticationHandler targetAuthHandler,
+            final AuthenticationHandler proxyAuthHandler,
+            final UserTokenHandler userTokenHandler,
+            final HttpParams params) {
+        this(requestExec, conman, reustrat, kastrat, rouplan, httpProcessor, retryHandler,
+                new DefaultRedirectStrategyAdaptor(redirectHandler), 
+                targetAuthHandler, proxyAuthHandler, userTokenHandler, params);
+    }    
+    
     
+    /**
+     * @since 4.1
+     */
     public DefaultRequestDirector(
             final HttpRequestExecutor requestExec,
             final ClientConnectionManager conman,
@@ -193,7 +221,7 @@
             final HttpRoutePlanner rouplan,
             final HttpProcessor httpProcessor,
             final HttpRequestRetryHandler retryHandler,
-            final RedirectHandler redirectHandler,
+            final RedirectStrategy redirectStrategy,
             final AuthenticationHandler targetAuthHandler,
             final AuthenticationHandler proxyAuthHandler,
             final UserTokenHandler userTokenHandler,
@@ -227,9 +255,9 @@
             throw new IllegalArgumentException
                 ("HTTP request retry handler may not be null.");
         }
-        if (redirectHandler == null) {
+        if (redirectStrategy == null) {
             throw new IllegalArgumentException
-                ("Redirect handler may not be null.");
+                ("Redirect strategy may not be null.");
         }
         if (targetAuthHandler == null) {
             throw new IllegalArgumentException
@@ -254,7 +282,7 @@
         this.routePlanner      = rouplan;
         this.httpProcessor     = httpProcessor;
         this.retryHandler      = retryHandler;
-        this.redirectHandler   = redirectHandler;
+        this.redirectStrategy  = redirectStrategy;
         this.targetAuthHandler = targetAuthHandler;
         this.proxyAuthHandler  = proxyAuthHandler;
         this.userTokenHandler  = userTokenHandler; 
@@ -810,7 +838,6 @@
             }
         }
 
-        @SuppressWarnings("null")
         int status = response.getStatusLine().getStatusCode(); // can't be null
 
         if (status &gt; 299) {
@@ -936,7 +963,7 @@
         
         HttpParams params = request.getParams();
         if (HttpClientParams.isRedirecting(params) &amp;&amp; 
-                this.redirectHandler.isRedirectRequested(response, context)) {
+                this.redirectStrategy.isRedirected(request, response, context)) {
 
             if (redirectCount &gt;= maxRedirects) {
                 throw new RedirectException("Maximum redirects ("
@@ -947,7 +974,11 @@
             // Virtual host cannot be used any longer
             virtualHost = null;
             
-            URI uri = this.redirectHandler.getLocationURI(response, context);
+            HttpUriRequest redirect = redirectStrategy.getRedirect(request, response, context);

+            HttpRequest orig = request.getOriginal();
+            redirect.setHeaders(orig.getAllHeaders());
+            
+            URI uri = redirect.getURI();
 
             HttpHost newTarget = new HttpHost(
                     uri.getHost(), 
@@ -967,10 +998,6 @@
                 }
             }
 
-            HttpRedirect redirect = new HttpRedirect(request.getMethod(), uri); 
-            HttpRequest orig = request.getOriginal();
-            redirect.setHeaders(orig.getAllHeaders());
-            
             RequestWrapper wrapper = new RequestWrapper(redirect);
             wrapper.setParams(params);
             




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r881935 - in /httpcomponents/httpclient/trunk: ./ httpclient/src/examples/org/apache/http/examples/client/ httpclient/src/main/java/org/apache/http/client/ httpclient/src/main/java/org/apache/http/client/protocol/ httpclient/src/main/java/o...</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200911.mbox/%3c20091118210737.45F1D2388904@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091118210737-45F1D2388904@eris-apache-org%3e</id>
<updated>2009-11-18T21:07:36Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Wed Nov 18 21:07:35 2009
New Revision: 881935

URL: http://svn.apache.org/viewvc?rev=881935&amp;view=rev
Log:
HTTPCLIENT-872: HttpClient can now persist authentication data between request executions
as long as they share the same execution context. It has also become much easier to make HttpClient
authenticate preemptively by pre-populating authentication data cache

Added:
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/AuthCache.java
  (with props)
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/RequestAuthCache.java
  (with props)
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/ResponseAuthCache.java
  (with props)
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/BasicAuthCache.java
  (with props)
Modified:
    httpcomponents/httpclient/trunk/RELEASE_NOTES.txt
    httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientPreemptiveBasicAuthentication.java
    httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientPreemptiveDigestAuthentication.java
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/ClientContext.java
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/BasicCredentialsProvider.java
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java
    httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/TestClientAuthentication.java
    httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/localserver/RequestBasicAuth.java
    httpcomponents/httpclient/trunk/src/docbkx/authentication.xml

Modified: httpcomponents/httpclient/trunk/RELEASE_NOTES.txt
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/RELEASE_NOTES.txt?rev=881935&amp;r1=881934&amp;r2=881935&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/RELEASE_NOTES.txt (original)
+++ httpcomponents/httpclient/trunk/RELEASE_NOTES.txt Wed Nov 18 21:07:35 2009
@@ -1,6 +1,12 @@
 Changes since 4.0
 -------------------
 
+* [HTTPCLIENT-872] HttpClient can now persist authentication data between request 
+  executions as long as they share the same execution context. It has also become
+  much easier to make HttpClient authenticate preemptively by pre-populating 
+  authentication data cache.
+  Contributed by Oleg Kalnichevski &lt;olegk at apache.org&gt;
+
 * [HTTPCLIENT-885] URLEncodedUtils now correctly parses form-url-encoded 
   entities that specify a charset.
   Contributed by Oleg Kalnichevski &lt;olegk at apache.org&gt;

Modified: httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientPreemptiveBasicAuthentication.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientPreemptiveBasicAuthentication.java?rev=881935&amp;r1=881934&amp;r2=881935&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientPreemptiveBasicAuthentication.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientPreemptiveBasicAuthentication.java
Wed Nov 18 21:07:35 2009
@@ -25,27 +25,18 @@
 
 package org.apache.http.examples.client;
 
-import java.io.IOException;
-
 import org.apache.http.HttpEntity;
-import org.apache.http.HttpException;
 import org.apache.http.HttpHost;
-import org.apache.http.HttpRequest;
-import org.apache.http.HttpRequestInterceptor;
 import org.apache.http.HttpResponse;
-import org.apache.http.auth.AuthScheme;
 import org.apache.http.auth.AuthScope;
-import org.apache.http.auth.AuthState;
-import org.apache.http.auth.Credentials;
 import org.apache.http.auth.UsernamePasswordCredentials;
-import org.apache.http.client.CredentialsProvider;
+import org.apache.http.client.AuthCache;
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.client.protocol.ClientContext;
 import org.apache.http.impl.auth.BasicScheme;
+import org.apache.http.impl.client.BasicAuthCache;
 import org.apache.http.impl.client.DefaultHttpClient;
 import org.apache.http.protocol.BasicHttpContext;
-import org.apache.http.protocol.ExecutionContext;
-import org.apache.http.protocol.HttpContext;
 
 /**
  * An example of HttpClient can be customized to authenticate 
@@ -54,31 +45,30 @@
  * Generally, preemptive authentication can be considered less
  * secure than a response to an authentication challenge
  * and therefore discouraged.
- * &lt;b/&gt;
- * This code is NOT officially supported! Use at your risk.
  */
 public class ClientPreemptiveBasicAuthentication {
 
     public static void main(String[] args) throws Exception {
 
+        HttpHost targetHost = new HttpHost("localhost", 80, "http"); 
+        
         DefaultHttpClient httpclient = new DefaultHttpClient();
 
         httpclient.getCredentialsProvider().setCredentials(
-                new AuthScope("localhost", 80), 
+                new AuthScope(targetHost.getHostName(), targetHost.getPort()), 
                 new UsernamePasswordCredentials("username", "password"));
 
-        BasicHttpContext localcontext = new BasicHttpContext();
-
-        // Generate BASIC scheme object and stick it to the local 
-        // execution context
+        // Create AuthCache instance
+        AuthCache authCache = new BasicAuthCache();
+        // Generate BASIC scheme object and add it to the local 
+        // auth cache
         BasicScheme basicAuth = new BasicScheme();
-        localcontext.setAttribute("preemptive-auth", basicAuth);
+        authCache.put(targetHost, basicAuth);
         
-        // Add as the first request interceptor
-        httpclient.addRequestInterceptor(new PreemptiveAuth(), 0);
+        // Add AuthCache to the execution context
+        BasicHttpContext localcontext = new BasicHttpContext();
+        localcontext.setAttribute(ClientContext.AUTH_CACHE, authCache);        
         
-        HttpHost targetHost = new HttpHost("localhost", 80, "http"); 
-
         HttpGet httpget = new HttpGet("/");
 
         System.out.println("executing request: " + httpget.getRequestLine());
@@ -102,37 +92,4 @@
         httpclient.getConnectionManager().shutdown();        
     }
     
-    static class PreemptiveAuth implements HttpRequestInterceptor {
-
-        public void process(
-                final HttpRequest request, 
-                final HttpContext context) throws HttpException, IOException {
-            
-            AuthState authState = (AuthState) context.getAttribute(
-                    ClientContext.TARGET_AUTH_STATE);
-            
-            // If no auth scheme avaialble yet, try to initialize it preemptively
-            if (authState.getAuthScheme() == null) {
-                AuthScheme authScheme = (AuthScheme) context.getAttribute(
-                        "preemptive-auth");
-                CredentialsProvider credsProvider = (CredentialsProvider) context.getAttribute(
-                        ClientContext.CREDS_PROVIDER);
-                HttpHost targetHost = (HttpHost) context.getAttribute(
-                        ExecutionContext.HTTP_TARGET_HOST);
-                if (authScheme != null) {
-                    Credentials creds = credsProvider.getCredentials(
-                            new AuthScope(
-                                    targetHost.getHostName(), 
-                                    targetHost.getPort()));
-                    if (creds == null) {
-                        throw new HttpException("No credentials for preemptive authentication");
-                    }
-                    authState.setAuthScheme(authScheme);
-                    authState.setCredentials(creds);
-                }
-            }
-            
-        }
-        
-    }
 }

Modified: httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientPreemptiveDigestAuthentication.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientPreemptiveDigestAuthentication.java?rev=881935&amp;r1=881934&amp;r2=881935&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientPreemptiveDigestAuthentication.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientPreemptiveDigestAuthentication.java
Wed Nov 18 21:07:35 2009
@@ -25,28 +25,18 @@
 
 package org.apache.http.examples.client;
 
-import java.io.IOException;
-
 import org.apache.http.HttpEntity;
-import org.apache.http.HttpException;
 import org.apache.http.HttpHost;
-import org.apache.http.HttpRequest;
-import org.apache.http.HttpRequestInterceptor;
 import org.apache.http.HttpResponse;
-import org.apache.http.HttpResponseInterceptor;
-import org.apache.http.auth.AuthScheme;
 import org.apache.http.auth.AuthScope;
-import org.apache.http.auth.AuthState;
-import org.apache.http.auth.Credentials;
 import org.apache.http.auth.UsernamePasswordCredentials;
-import org.apache.http.client.CredentialsProvider;
+import org.apache.http.client.AuthCache;
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.client.protocol.ClientContext;
 import org.apache.http.impl.auth.DigestScheme;
+import org.apache.http.impl.client.BasicAuthCache;
 import org.apache.http.impl.client.DefaultHttpClient;
 import org.apache.http.protocol.BasicHttpContext;
-import org.apache.http.protocol.ExecutionContext;
-import org.apache.http.protocol.HttpContext;
 
 /**
  * An example of HttpClient can be customized to authenticate 
@@ -55,36 +45,34 @@
  * Generally, preemptive authentication can be considered less
  * secure than a response to an authentication challenge
  * and therefore discouraged.
- * &lt;b/&gt;
- * This code is NOT officially supported! Use at your risk.
  */
 public class ClientPreemptiveDigestAuthentication {
 
     public static void main(String[] args) throws Exception {
 
+        HttpHost targetHost = new HttpHost("localhost", 80, "http"); 
+
         DefaultHttpClient httpclient = new DefaultHttpClient();
 
         httpclient.getCredentialsProvider().setCredentials(
-                new AuthScope("localhost", 80), 
+                new AuthScope(targetHost.getHostName(), targetHost.getPort()), 
                 new UsernamePasswordCredentials("username", "password"));
 
-        BasicHttpContext localcontext = new BasicHttpContext();
-        // Generate DIGEST scheme object, initialize it and stick it to 
-        // the local execution context
+        // Create AuthCache instance
+        AuthCache authCache = new BasicAuthCache();
+        // Generate DIGEST scheme object, initialize it and add it to the local 
+        // auth cache
         DigestScheme digestAuth = new DigestScheme();
         // Suppose we already know the realm name
         digestAuth.overrideParamter("realm", "some realm");        
         // Suppose we already know the expected nonce value 
         digestAuth.overrideParamter("nonce", "whatever");        
-        localcontext.setAttribute("preemptive-auth", digestAuth);
+        authCache.put(targetHost, digestAuth);
         
-        // Add as the first request interceptor
-        httpclient.addRequestInterceptor(new PreemptiveAuth(), 0);
-        // Add as the last response interceptor
-        httpclient.addResponseInterceptor(new PersistentDigest());
+        // Add AuthCache to the execution context
+        BasicHttpContext localcontext = new BasicHttpContext();
+        localcontext.setAttribute(ClientContext.AUTH_CACHE, authCache);        
         
-        HttpHost targetHost = new HttpHost("localhost", 80, "http"); 
-
         HttpGet httpget = new HttpGet("/");
 
         System.out.println("executing request: " + httpget.getRequestLine());
@@ -108,58 +96,4 @@
         httpclient.getConnectionManager().shutdown();        
     }
     
-    static class PreemptiveAuth implements HttpRequestInterceptor {
-
-        public void process(
-                final HttpRequest request, 
-                final HttpContext context) throws HttpException, IOException {
-            
-            AuthState authState = (AuthState) context.getAttribute(
-                    ClientContext.TARGET_AUTH_STATE);
-            
-            // If no auth scheme avaialble yet, try to initialize it preemptively
-            if (authState.getAuthScheme() == null) {
-                AuthScheme authScheme = (AuthScheme) context.getAttribute(
-                        "preemptive-auth");
-                CredentialsProvider credsProvider = (CredentialsProvider) context.getAttribute(
-                        ClientContext.CREDS_PROVIDER);
-                HttpHost targetHost = (HttpHost) context.getAttribute(
-                        ExecutionContext.HTTP_TARGET_HOST);
-                if (authScheme != null) {
-                    Credentials creds = credsProvider.getCredentials(
-                            new AuthScope(
-                                    targetHost.getHostName(), 
-                                    targetHost.getPort()));
-                    if (creds == null) {
-                        throw new HttpException("No credentials for preemptive authentication");
-                    }
-                    authState.setAuthScheme(authScheme);
-                    authState.setCredentials(creds);
-                }
-            }
-            
-        }
-        
-    }
-
-    static class PersistentDigest implements HttpResponseInterceptor {
-
-        public void process(
-                final HttpResponse response, 
-                final HttpContext context) throws HttpException, IOException {
-            AuthState authState = (AuthState) context.getAttribute(
-                    ClientContext.TARGET_AUTH_STATE);
-            if (authState != null) {
-                AuthScheme authScheme = authState.getAuthScheme();
-                // Stick the auth scheme to the local context, so
-                // we could try to authenticate subsequent requests
-                // preemptively
-                if (authScheme instanceof DigestScheme) {
-                    context.setAttribute("preemptive-auth", authScheme);
-                }
-            }
-        }
-        
-    }
-    
 }

Added: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/AuthCache.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/AuthCache.java?rev=881935&amp;view=auto
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/AuthCache.java
(added)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/AuthCache.java
Wed Nov 18 21:07:35 2009
@@ -0,0 +1,49 @@
+/*
+ * ====================================================================
+ *
+ *  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
+ * &lt;http://www.apache.org/&gt;.
+ *
+ */
+
+package org.apache.http.client;
+
+import org.apache.http.HttpHost;
+import org.apache.http.auth.AuthScheme;
+
+/**
+ * Abstract {@link AuthScheme} cache. Initialized {@link AuthScheme} objects 
+ * from this cache can be used to preemptively authenticate against known 
+ * hosts.
+ * 
+ * @since 4.1
+ */
+public interface AuthCache {
+
+    void put(HttpHost host, AuthScheme authScheme);
+
+    AuthScheme get(HttpHost host);
+
+    void remove(HttpHost host);
+
+    void clear();
+    
+}

Propchange: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/AuthCache.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/AuthCache.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/AuthCache.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/ClientContext.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/ClientContext.java?rev=881935&amp;r1=881934&amp;r2=881935&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/ClientContext.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/ClientContext.java
Wed Nov 18 21:07:35 2009
@@ -72,11 +72,17 @@
 
     /**
      * Attribute name of a {@link org.apache.http.client.CredentialsProvider} 
-     * object that represents the actual crednetials provider.
+     * object that represents the actual credentials provider.
      */
     public static final String CREDS_PROVIDER        = "http.auth.credentials-provider";

 
     /**
+     * Attribute name of a {@link org.apache.http.client.AuthCache} object 
+     * that represents the auth scheme cache.
+     */
+    public static final String AUTH_CACHE            = "http.auth.auth-cache"; 
+
+    /**
      * Attribute name of a {@link org.apache.http.auth.AuthState} 
      * object that represents the actual target authentication state.
      */

Added: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/RequestAuthCache.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/RequestAuthCache.java?rev=881935&amp;view=auto
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/RequestAuthCache.java
(added)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/RequestAuthCache.java
Wed Nov 18 21:07:35 2009
@@ -0,0 +1,129 @@
+/*
+ * ====================================================================
+ * 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
+ * &lt;http://www.apache.org/&gt;.
+ *
+ */
+
+package org.apache.http.client.protocol;
+
+import java.io.IOException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.http.HttpException;
+import org.apache.http.HttpHost;
+import org.apache.http.HttpRequest;
+import org.apache.http.HttpRequestInterceptor;
+import org.apache.http.annotation.Immutable;
+import org.apache.http.auth.AuthScheme;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.AuthState;
+import org.apache.http.auth.Credentials;
+import org.apache.http.client.AuthCache;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.impl.client.BasicAuthCache;
+import org.apache.http.protocol.ExecutionContext;
+import org.apache.http.protocol.HttpContext;
+
+/**
+ * Request interceptor that can preemptively authenticate against known hosts, 
+ * if there is a cached {@link AuthScheme} instance in the local 
+ * {@link AuthCache} associated with the given target or proxy host.
+ * 
+ * @since 4.1
+ */
+@Immutable
+public class RequestAuthCache implements HttpRequestInterceptor {
+
+    private final Log log = LogFactory.getLog(getClass());
+    
+    public RequestAuthCache() {
+        super();
+    }
+    
+    public void process(final HttpRequest request, final HttpContext context) 
+            throws HttpException, IOException {
+        if (request == null) {
+            throw new IllegalArgumentException("HTTP request may not be null");
+        }
+        if (context == null) {
+            throw new IllegalArgumentException("HTTP context may not be null");
+        }
+
+        AuthCache authCache = (AuthCache) context.getAttribute(ClientContext.AUTH_CACHE);
+        if (authCache == null) {
+            context.setAttribute(ClientContext.AUTH_CACHE, new BasicAuthCache());
+        } else {
+            
+            CredentialsProvider credsProvider = (CredentialsProvider) context.getAttribute(
+                    ClientContext.CREDS_PROVIDER);
+            
+            HttpHost target = (HttpHost) context.getAttribute(ExecutionContext.HTTP_TARGET_HOST);
+            if (target != null) {
+                AuthScheme authScheme = authCache.get(target);
+                if (authScheme != null) {
+                    doPreemptiveAuth(
+                            target, 
+                            authScheme,                     
+                            (AuthState) context.getAttribute(ClientContext.TARGET_AUTH_STATE),

+                            credsProvider);
+                }
+            }
+
+            HttpHost proxy = (HttpHost) context.getAttribute(ExecutionContext.HTTP_PROXY_HOST);
+            if (proxy != null) {
+                AuthScheme authScheme = authCache.get(proxy);
+                if (authScheme != null) {
+                    doPreemptiveAuth(
+                            proxy, 
+                            authScheme,                     
+                            (AuthState) context.getAttribute(ClientContext.PROXY_AUTH_STATE),

+                            credsProvider);
+                }
+            }
+        }
+    }
+
+    private void doPreemptiveAuth(
+            final HttpHost host, 
+            final AuthScheme authScheme, 
+            final AuthState authState,
+            final CredentialsProvider credsProvider) {
+        String schemeName = authScheme.getSchemeName();
+        if (this.log.isDebugEnabled()) {
+            this.log.debug("Re-using cached '" + schemeName + "' auth scheme for " + host);
+        }
+        
+        Credentials creds = credsProvider.getCredentials(
+                new AuthScope(host.getHostName(), host.getPort(), schemeName));
+        
+        if (creds != null) {
+            authState.setAuthScheme(authScheme);
+            authState.setCredentials(creds);
+        } else {
+            this.log.debug("No credentials for preemptive authentication");
+        }
+    }
+    
+}

Propchange: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/RequestAuthCache.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/RequestAuthCache.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/RequestAuthCache.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/ResponseAuthCache.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/ResponseAuthCache.java?rev=881935&amp;view=auto
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/ResponseAuthCache.java
(added)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/ResponseAuthCache.java
Wed Nov 18 21:07:35 2009
@@ -0,0 +1,110 @@
+/*
+ * ====================================================================
+ * 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
+ * &lt;http://www.apache.org/&gt;.
+ *
+ */
+
+package org.apache.http.client.protocol;
+
+import java.io.IOException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.http.HttpException;
+import org.apache.http.HttpHost;
+import org.apache.http.HttpResponse;
+import org.apache.http.HttpResponseInterceptor;
+import org.apache.http.annotation.Immutable;
+import org.apache.http.auth.AuthScheme;
+import org.apache.http.auth.AuthState;
+import org.apache.http.client.AuthCache;
+import org.apache.http.client.params.AuthPolicy;
+import org.apache.http.protocol.ExecutionContext;
+import org.apache.http.protocol.HttpContext;
+
+/**
+ * Response interceptor that adds successfully completed {@link AuthScheme}s
+ * to the local {@link AuthCache} instance. Cached {@link AuthScheme}s can be 
+ * re-used when executing requests against known hosts, thus avoiding 
+ * additional authentication round-trips. 
+ * 
+ * @since 4.1
+ */
+@Immutable
+public class ResponseAuthCache implements HttpResponseInterceptor {
+
+    private final Log log = LogFactory.getLog(getClass());
+    
+    public ResponseAuthCache() {
+        super();
+    }
+    
+    public void process(final HttpResponse response, final HttpContext context) 
+            throws HttpException, IOException {
+        if (response == null) {
+            throw new IllegalArgumentException("HTTP request may not be null");
+        }
+        if (context == null) {
+            throw new IllegalArgumentException("HTTP context may not be null");
+        }
+        AuthCache authCache = (AuthCache) context.getAttribute(ClientContext.AUTH_CACHE);
+        if (authCache != null) {
+            cache(authCache, 
+                    (HttpHost) context.getAttribute(ExecutionContext.HTTP_TARGET_HOST),
+                    (AuthState) context.getAttribute(ClientContext.TARGET_AUTH_STATE));
+            cache(authCache, 
+                    (HttpHost) context.getAttribute(ExecutionContext.HTTP_PROXY_HOST),
+                    (AuthState) context.getAttribute(ClientContext.PROXY_AUTH_STATE));
+        }
+    }
+    
+    private void cache(final AuthCache authCache, final HttpHost host, final AuthState authState)
{
+        if (authState == null) {
+            return;
+        }
+        
+        AuthScheme authScheme = authState.getAuthScheme();
+        if (authScheme == null || !authScheme.isComplete()) {
+            return;
+        }
+        
+        String schemeName = authScheme.getSchemeName();
+        if (!schemeName.equalsIgnoreCase(AuthPolicy.BASIC) &amp;&amp; 
+                !schemeName.equalsIgnoreCase(AuthPolicy.DIGEST)) {
+            return;
+        }
+        
+        if (authState.getAuthScope() != null) {
+            if (authState.getCredentials() != null) {
+                if (this.log.isDebugEnabled()) {
+                    this.log.debug("Caching '" + schemeName + "' auth scheme for " + host);
+                }
+                authCache.put(host, authScheme);
+            } else {
+                authCache.remove(host);
+            }
+        }
+    }
+     
+}

Propchange: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/ResponseAuthCache.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/ResponseAuthCache.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/ResponseAuthCache.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/BasicAuthCache.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/BasicAuthCache.java?rev=881935&amp;view=auto
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/BasicAuthCache.java
(added)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/BasicAuthCache.java
Wed Nov 18 21:07:35 2009
@@ -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.
+ * ====================================================================
+ *
+ * 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
+ * &lt;http://www.apache.org/&gt;.
+ *
+ */
+
+package org.apache.http.impl.client;
+
+import java.util.HashMap;
+
+import org.apache.http.HttpHost;
+import org.apache.http.annotation.NotThreadSafe;
+import org.apache.http.auth.AuthScheme;
+import org.apache.http.client.AuthCache;
+
+/**
+ * Default implementation of {@link AuthCache}.
+ * 
+ * @since 4.0
+ */
+@NotThreadSafe
+public class BasicAuthCache implements AuthCache {
+
+    private final HashMap&lt;HttpHost, AuthScheme&gt; map;
+
+    /**
+     * Default constructor.
+     */
+    public BasicAuthCache() {
+        super();
+        this.map = new HashMap&lt;HttpHost, AuthScheme&gt;();
+    }
+
+    public void put(final HttpHost host, final AuthScheme authScheme) {
+        if (host == null) {
+            throw new IllegalArgumentException("HTTP host may not be null");
+        }
+        this.map.put(host, authScheme);
+    }
+
+    public AuthScheme get(final HttpHost host) {
+        if (host == null) {
+            throw new IllegalArgumentException("HTTP host may not be null");
+        }
+        return this.map.get(host);
+    }
+    
+    public void remove(final HttpHost host) {
+        if (host == null) {
+            throw new IllegalArgumentException("HTTP host may not be null");
+        }
+        this.map.remove(host);
+    }
+
+    public void clear() {
+        this.map.clear();
+    }
+    
+    @Override
+    public String toString() {
+        return this.map.toString();
+    }
+    
+}

Propchange: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/BasicAuthCache.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/BasicAuthCache.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/BasicAuthCache.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/BasicCredentialsProvider.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/BasicCredentialsProvider.java?rev=881935&amp;r1=881934&amp;r2=881935&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/BasicCredentialsProvider.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/BasicCredentialsProvider.java
Wed Nov 18 21:07:35 2009
@@ -102,13 +102,13 @@
         return matchCredentials(this.credMap, authscope);
     }
 
+    public synchronized void clear() {
+        this.credMap.clear();
+    }
+    
     @Override
     public String toString() {
         return credMap.toString();
     }
     
-    public synchronized void clear() {
-        this.credMap.clear();
-    }
-    
 }

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java?rev=881935&amp;r1=881934&amp;r2=881935&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java
Wed Nov 18 21:07:35 2009
@@ -43,10 +43,12 @@
 import org.apache.http.client.params.CookiePolicy;
 import org.apache.http.client.protocol.ClientContext;
 import org.apache.http.client.protocol.RequestAddCookies;
+import org.apache.http.client.protocol.RequestAuthCache;
 import org.apache.http.client.protocol.RequestClientConnControl;
 import org.apache.http.client.protocol.RequestDefaultHeaders;
 import org.apache.http.client.protocol.RequestProxyAuthentication;
 import org.apache.http.client.protocol.RequestTargetAuthentication;
+import org.apache.http.client.protocol.ResponseAuthCache;
 import org.apache.http.client.protocol.ResponseProcessCookies;
 import org.apache.http.conn.ClientConnectionManager;
 import org.apache.http.conn.ClientConnectionManagerFactory;
@@ -337,6 +339,8 @@
         httpproc.addInterceptor(new RequestAddCookies());
         httpproc.addInterceptor(new ResponseProcessCookies());
         // HTTP authentication interceptors
+        httpproc.addInterceptor(new RequestAuthCache());
+        httpproc.addInterceptor(new ResponseAuthCache());
         httpproc.addInterceptor(new RequestTargetAuthentication());
         httpproc.addInterceptor(new RequestProxyAuthentication());
         return httpproc;

Modified: httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/TestClientAuthentication.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/TestClientAuthentication.java?rev=881935&amp;r1=881934&amp;r2=881935&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/TestClientAuthentication.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/TestClientAuthentication.java
Wed Nov 18 21:07:35 2009
@@ -50,6 +50,7 @@
 import org.apache.http.localserver.LocalTestServer;
 import org.apache.http.localserver.RequestBasicAuth;
 import org.apache.http.localserver.ResponseBasicUnauthorized;
+import org.apache.http.protocol.BasicHttpContext;
 import org.apache.http.protocol.BasicHttpProcessor;
 import org.apache.http.protocol.HTTP;
 import org.apache.http.protocol.HttpContext;
@@ -248,4 +249,67 @@
         }
     }
 
+    static class TestTargetAuthenticationHandler extends DefaultTargetAuthenticationHandler
{
+
+        private int count;
+        
+        public TestTargetAuthenticationHandler() {
+            super();
+            this.count = 0;
+        }
+        
+        @Override
+        public boolean isAuthenticationRequested(
+                final HttpResponse response, 
+                final HttpContext context) {
+            boolean res = super.isAuthenticationRequested(response, context);
+            if (res == true) {
+                synchronized (this) {
+                    this.count++;
+                }                
+            }
+            return res;
+        }
+        
+        public int getCount() {
+            synchronized (this) {
+                return this.count;
+            }                
+        }
+        
+    }
+    
+    public void testBasicAuthenticationCredentialsCaching() throws Exception {
+        localServer.register("*", new AuthHandler());
+        localServer.start();
+        
+        BasicCredentialsProvider credsProvider = new BasicCredentialsProvider();
+        credsProvider.setCredentials(AuthScope.ANY, 
+                new UsernamePasswordCredentials("test", "test"));
+        
+        TestTargetAuthenticationHandler authHandler = new TestTargetAuthenticationHandler();
       
+        
+        DefaultHttpClient httpclient = new DefaultHttpClient();
+        httpclient.setCredentialsProvider(credsProvider);
+        httpclient.setTargetAuthenticationHandler(authHandler);
+        
+        HttpContext context = new BasicHttpContext();
+        
+        HttpGet httpget = new HttpGet("/");
+        
+        HttpResponse response1 = httpclient.execute(getServerHttp(), httpget, context);
+        HttpEntity entity1 = response1.getEntity();
+        assertEquals(HttpStatus.SC_OK, response1.getStatusLine().getStatusCode());
+        assertNotNull(entity1);
+        entity1.consumeContent();
+
+        HttpResponse response2 = httpclient.execute(getServerHttp(), httpget, context);
+        HttpEntity entity2 = response1.getEntity();
+        assertEquals(HttpStatus.SC_OK, response2.getStatusLine().getStatusCode());
+        assertNotNull(entity2);
+        entity1.consumeContent();
+        
+        assertEquals(1, authHandler.getCount());
+    }
+
 }

Modified: httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/localserver/RequestBasicAuth.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/localserver/RequestBasicAuth.java?rev=881935&amp;r1=881934&amp;r2=881935&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/localserver/RequestBasicAuth.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/localserver/RequestBasicAuth.java
Wed Nov 18 21:07:35 2009
@@ -47,6 +47,8 @@
             final HttpRequest request, 
             final HttpContext context) throws HttpException, IOException {
         
+        context.removeAttribute("creds");
+
         String auth = null;
         
         Header h = request.getFirstHeader(AUTH.WWW_AUTH_RESP);

Modified: httpcomponents/httpclient/trunk/src/docbkx/authentication.xml
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/src/docbkx/authentication.xml?rev=881935&amp;r1=881934&amp;r2=881935&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/src/docbkx/authentication.xml (original)
+++ httpcomponents/httpclient/trunk/src/docbkx/authentication.xml Wed Nov 18 21:07:35 2009
@@ -305,6 +305,14 @@
                         takes precedence over the default one.&lt;/para&gt;
                 &lt;/formalpara&gt;
             &lt;/listitem&gt;
+            &lt;listitem&gt;
+                &lt;formalpara&gt;
+                    &lt;title&gt;'http.auth.auth-cache':&lt;/title&gt;
+                    &lt;para&gt;&lt;interfacename&gt;AuthCache&lt;/interfacename&gt; instance
representing the actual
+                        authentication data cache. The value of this attribute set in the
local 
+                        context takes precedence over the default one.&lt;/para&gt;
+                &lt;/formalpara&gt;
+            &lt;/listitem&gt;
         &lt;/itemizedlist&gt;
         &lt;para&gt;The local &lt;interfacename&gt;HttpContext&lt;/interfacename&gt; object
can be used to customize
             the HTTP authentication context prior to request execution or examine its state
after
@@ -328,52 +336,50 @@
 ]]&gt;&lt;/programlisting&gt;
     &lt;/section&gt;
     &lt;section&gt;
+        &lt;title&gt;Caching of authentication data&lt;/title&gt;
+        &lt;para&gt;As of version 4.1 HttpClient automatically caches information about hosts
it 
+            successfully authenticated with. Please note that one must use the same execution

+            context to execute logically related requests in order for cached authentication
data
+            to propagate from one request to another. Authentication data will be lost as
soon as 
+            the execution context goes out of scope.&lt;/para&gt;
+    &lt;/section&gt;
+    &lt;section&gt;
         &lt;title&gt;Preemptive authentication&lt;/title&gt;
         &lt;para&gt;HttpClient does not support preemptive authentication out of the box,
because if
             misused or used incorrectly the preemptive authentication can lead to significant
             security issues, such as sending user credentials in clear text to an unauthorized
third
             party. Therefore, users are expected to evaluate potential benefits of preemptive
             authentication versus security risks in the context of their specific application
-            environment and are required to add support for preemptive authentication using
standard
-            HttpClient extension mechanisms such as protocol interceptors.&lt;/para&gt;
-        &lt;para&gt;This is an example of a simple protocol interceptor that preemptively
introduces an
-            instance of &lt;classname&gt;BasicScheme&lt;/classname&gt; to the execution context,
if no
-            authentication has been attempted yet. Please note that this interceptor must
be added
-            to the protocol processing chain before the standard authentication interceptors.&lt;/para&gt;
+            environment.&lt;/para&gt;
+        &lt;para&gt;Nonethess one can configure HttpClient to authenticate preemptively by
prepopulating
+            the authentication data cache.&lt;/para&gt;
         &lt;programlisting&gt;&lt;![CDATA[
-HttpRequestInterceptor preemptiveAuth = new HttpRequestInterceptor() {
-    
-    public void process(
-            final HttpRequest request, 
-            final HttpContext context) throws HttpException, IOException {
-        
-        AuthState authState = (AuthState) context.getAttribute(
-                ClientContext.TARGET_AUTH_STATE);
-        CredentialsProvider credsProvider = (CredentialsProvider) context.getAttribute(
-                ClientContext.CREDS_PROVIDER);
-        HttpHost targetHost = (HttpHost) context.getAttribute(
-                ExecutionContext.HTTP_TARGET_HOST);
-        
-        // If not auth scheme has been initialized yet
-        if (authState.getAuthScheme() == null) {
-            AuthScope authScope = new AuthScope(
-                    targetHost.getHostName(), 
-                    targetHost.getPort());
-            // Obtain credentials matching the target host
-            Credentials creds = credsProvider.getCredentials(authScope);
-            // If found, generate BasicScheme preemptively
-            if (creds != null) {
-                authState.setAuthScheme(new BasicScheme());
-                authState.setCredentials(creds);
-            }
-        }
-    }
-    
-};
+HttpHost targetHost = new HttpHost("localhost", 80, "http"); 
 
 DefaultHttpClient httpclient = new DefaultHttpClient();
-// Add as the very first interceptor in the protocol chain
-httpclient.addRequestInterceptor(preemptiveAuth, 0);
+
+httpclient.getCredentialsProvider().setCredentials(
+        new AuthScope(targetHost.getHostName(), targetHost.getPort()), 
+        new UsernamePasswordCredentials("username", "password"));
+
+// Create AuthCache instance
+AuthCache authCache = new BasicAuthCache();
+// Generate BASIC scheme object and add it to the local auth cache
+BasicScheme basicAuth = new BasicScheme();
+authCache.put(targetHost, basicAuth);
+
+// Add AuthCache to the execution context
+BasicHttpContext localcontext = new BasicHttpContext();
+localcontext.setAttribute(ClientContext.AUTH_CACHE, authCache);        
+
+HttpGet httpget = new HttpGet("/");
+for (int i = 0; i &lt; 3; i++) {
+    HttpResponse response = httpclient.execute(targetHost, httpget, localcontext);
+    HttpEntity entity = response.getEntity();
+    if (entity != null) {
+        entity.consumeContent();
+    }
+}
 ]]&gt;&lt;/programlisting&gt;
     &lt;/section&gt;
 




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r836372 - in /httpcomponents/asynchttpclient/trunk/src/main/java/org/apache/http: impl/nio/client/HttpExchangeImpl.java nio/concurrent/BasicFuture.java nio/concurrent/FutureCallback.java</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200911.mbox/%3c20091115152940.214F723888FD@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091115152940-214F723888FD@eris-apache-org%3e</id>
<updated>2009-11-15T15:29:40Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Sun Nov 15 15:29:39 2009
New Revision: 836372

URL: http://svn.apache.org/viewvc?rev=836372&amp;view=rev
Log:
Simplifed FutureCallback interface

Modified:
    httpcomponents/asynchttpclient/trunk/src/main/java/org/apache/http/impl/nio/client/HttpExchangeImpl.java
    httpcomponents/asynchttpclient/trunk/src/main/java/org/apache/http/nio/concurrent/BasicFuture.java
    httpcomponents/asynchttpclient/trunk/src/main/java/org/apache/http/nio/concurrent/FutureCallback.java

Modified: httpcomponents/asynchttpclient/trunk/src/main/java/org/apache/http/impl/nio/client/HttpExchangeImpl.java
URL: http://svn.apache.org/viewvc/httpcomponents/asynchttpclient/trunk/src/main/java/org/apache/http/impl/nio/client/HttpExchangeImpl.java?rev=836372&amp;r1=836371&amp;r2=836372&amp;view=diff
==============================================================================
--- httpcomponents/asynchttpclient/trunk/src/main/java/org/apache/http/impl/nio/client/HttpExchangeImpl.java
(original)
+++ httpcomponents/asynchttpclient/trunk/src/main/java/org/apache/http/impl/nio/client/HttpExchangeImpl.java
Sun Nov 15 15:29:39 2009
@@ -86,40 +86,33 @@
         this.responseFuture.cancel(true);
     }
 
-    private synchronized void sessionRequestCompleted() {
-        try {
-            this.managedSession = this.sessionFuture.get();
-            if (this.managedSession == null || this.sessionFuture.isCancelled()) {
-                this.responseFuture.cancel(true);
-            } else {
-                IOSession iosession = this.managedSession.getSession();
-                iosession.setAttribute(InternalRequestExecutionHandler.HTTP_EXCHANGE, this);
-                iosession.setEvent(SelectionKey.OP_WRITE);
-            }
-        } catch (InterruptedException ex) {
-            this.responseFuture.cancel(true);
-        } catch (ExecutionException ex) {
-            Throwable cause = ex.getCause(); 
-            if (cause != null &amp;&amp; cause instanceof Exception) {
-                this.responseFuture.failed((Exception) cause);
-            } else {
-                this.responseFuture.failed(ex);
-            }
-        }
+    private synchronized void requestCompleted(final ManagedIOSession session) {
+        this.managedSession = session;
+        IOSession iosession = session.getSession();
+        iosession.setAttribute(InternalRequestExecutionHandler.HTTP_EXCHANGE, this);
+        iosession.setEvent(SelectionKey.OP_WRITE);
+    }
+    
+    private synchronized void requestFailed(final Exception ex) {
+        this.responseFuture.failed(ex);
+    }
+    
+    private synchronized void requestCancelled() {
+        this.responseFuture.cancel(true);
     }
     
     class InternalFutureCallback implements FutureCallback&lt;ManagedIOSession&gt; {
 
-        public void completed(final Future&lt;ManagedIOSession&gt; future) {
-            sessionRequestCompleted();
+        public void completed(final ManagedIOSession session) {
+            requestCompleted(session);
         }
 
-        public void failed(final Future&lt;ManagedIOSession&gt; future) {
-            sessionRequestCompleted();
+        public void failed(final Exception ex) {
+            requestFailed(ex);
         }
         
-        public void cancelled(final Future&lt;ManagedIOSession&gt; future) {
-            sessionRequestCompleted();            
+        public void cancelled() {
+            requestCancelled();            
         }
 
     }

Modified: httpcomponents/asynchttpclient/trunk/src/main/java/org/apache/http/nio/concurrent/BasicFuture.java
URL: http://svn.apache.org/viewvc/httpcomponents/asynchttpclient/trunk/src/main/java/org/apache/http/nio/concurrent/BasicFuture.java?rev=836372&amp;r1=836371&amp;r2=836372&amp;view=diff
==============================================================================
--- httpcomponents/asynchttpclient/trunk/src/main/java/org/apache/http/nio/concurrent/BasicFuture.java
(original)
+++ httpcomponents/asynchttpclient/trunk/src/main/java/org/apache/http/nio/concurrent/BasicFuture.java
Sun Nov 15 15:29:39 2009
@@ -97,10 +97,10 @@
         }
         this.completed = true;
         this.result = result;
-        notifyAll();
         if (this.callback != null) {
-            this.callback.completed(this);
+            this.callback.completed(result);
         }
+        notifyAll();
         return true;
     }
 
@@ -110,10 +110,10 @@
         }
         this.completed = true;
         this.ex = exception;
-        notifyAll();
         if (this.callback != null) {
-            this.callback.failed(this);
+            this.callback.failed(exception);
         }
+        notifyAll();
         return true;
     }
 
@@ -123,10 +123,10 @@
         }
         this.completed = true;
         this.cancelled = true;
-        notifyAll();
         if (this.callback != null) {
-            this.callback.cancelled(this);
+            this.callback.cancelled();
         }
+        notifyAll();
         return true;
     }
 

Modified: httpcomponents/asynchttpclient/trunk/src/main/java/org/apache/http/nio/concurrent/FutureCallback.java
URL: http://svn.apache.org/viewvc/httpcomponents/asynchttpclient/trunk/src/main/java/org/apache/http/nio/concurrent/FutureCallback.java?rev=836372&amp;r1=836371&amp;r2=836372&amp;view=diff
==============================================================================
--- httpcomponents/asynchttpclient/trunk/src/main/java/org/apache/http/nio/concurrent/FutureCallback.java
(original)
+++ httpcomponents/asynchttpclient/trunk/src/main/java/org/apache/http/nio/concurrent/FutureCallback.java
Sun Nov 15 15:29:39 2009
@@ -26,14 +26,12 @@
  */
 package org.apache.http.nio.concurrent;
 
-import java.util.concurrent.Future;
-
 public interface FutureCallback&lt;T&gt; {
 
-    void completed(Future&lt;T&gt; future);
+    void completed(T result);
 
-    void failed(Future&lt;T&gt; future);
+    void failed(Exception ex);
 
-    void cancelled(Future&lt;T&gt; future);
+    void cancelled();
 
 }




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r833339 - /httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200911.mbox/%3c20091106104933.511E82388905@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091106104933-511E82388905@eris-apache-org%3e</id>
<updated>2009-11-06T10:49:33Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Fri Nov  6 10:49:32 2009
New Revision: 833339

URL: http://svn.apache.org/viewvc?rev=833339&amp;view=rev
Log:
Added missing null check

Modified:
    httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java

Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java?rev=833339&amp;r1=833338&amp;r2=833339&amp;view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java
(original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java
Fri Nov  6 10:49:32 2009
@@ -525,7 +525,9 @@
             for (Iterator&lt;SelectionKey&gt; it = keys.iterator(); it.hasNext(); ) {
                 SelectionKey key = it.next();
                 IOSession session = getSession(key);
-                session.close();
+                if (session != null) {
+                    session.close();
+                }
             }
             this.selector.close();
         } catch (IOException ignore) {




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r833249 - in /httpcomponents/httpclient/trunk/httpclient/src: main/java/org/apache/http/client/protocol/ main/java/org/apache/http/impl/auth/ main/java/org/apache/http/impl/client/ main/java/org/apache/http/impl/conn/ main/java/org/apache/h...</title>
<author><name>sebb@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200911.mbox/%3c20091106000136.9558B23888CD@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091106000136-9558B23888CD@eris-apache-org%3e</id>
<updated>2009-11-06T00:01:36Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: sebb
Date: Fri Nov  6 00:01:35 2009
New Revision: 833249

URL: http://svn.apache.org/viewvc?rev=833249&amp;view=rev
Log:
Javadoc fixes; add missing @Deprecated markers

Modified:
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/RequestAcceptEncoding.java
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/NegotiateScheme.java
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/AbstractPooledConnAdapter.java
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ConnPoolByRoute.java
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager.java
    httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestSCMWithServer.java
    httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestTSCCMNoServer.java
    httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestTSCCMWithServer.java

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/RequestAcceptEncoding.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/RequestAcceptEncoding.java?rev=833249&amp;r1=833248&amp;r2=833249&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/RequestAcceptEncoding.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/protocol/RequestAcceptEncoding.java
Fri Nov  6 00:01:35 2009
@@ -37,7 +37,7 @@
  * &lt;p&gt;
  * Instances of this class are stateless, therefore they're thread-safe and immutable.
  * 
- * @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.5
+ * @see "http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.5"
  * 
  * @since 4.1
  */

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/NegotiateScheme.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/NegotiateScheme.java?rev=833249&amp;r1=833248&amp;r2=833249&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/NegotiateScheme.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/NegotiateScheme.java
Fri Nov  6 00:01:35 2009
@@ -324,7 +324,7 @@
     /**
      * Inject the class to be used to generate an SPNEGO token from a Kerberos ticket.
      * Use only with Java &lt;= 1.5 , tested against Jboss Negotiate.
-     * @param spengoGenerator - An SpnegoTokenGenerator implementation Class
+     * @param SpengoGenerator - An SpnegoTokenGenerator implementation Class
      */
     public void setSpengoGenerator(SpnegoTokenGenerator SpengoGenerator) {
         this.spengoGenerator = SpengoGenerator;

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java?rev=833249&amp;r1=833248&amp;r2=833249&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java
Fri Nov  6 00:01:35 2009
@@ -809,7 +809,8 @@
                 }
             }
         }
-        
+
+        @SuppressWarnings("null")
         int status = response.getStatusLine().getStatusCode(); // can't be null
 
         if (status &gt; 299) {

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/AbstractPooledConnAdapter.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/AbstractPooledConnAdapter.java?rev=833249&amp;r1=833248&amp;r2=833249&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/AbstractPooledConnAdapter.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/AbstractPooledConnAdapter.java
Fri Nov  6 00:01:35 2009
@@ -90,6 +90,7 @@
     /**
      * @deprecated use {@link #assertValid(AbstractPoolEntry)}
      */
+    @Deprecated
     protected final void assertAttached() {
         if (poolEntry == null) {
             throw new ConnectionShutdownException();

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ConnPoolByRoute.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ConnPoolByRoute.java?rev=833249&amp;r1=833248&amp;r2=833249&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ConnPoolByRoute.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ConnPoolByRoute.java
Fri Nov  6 00:01:35 2009
@@ -117,7 +117,7 @@
     /**
      * Creates a new connection pool, managed by route.
      * 
-     * @deprecated use {@link ConnPoolByRoute#ConnPoolByRoute(ClientConnectionOperator, ConnPerRoute)}
+     * @deprecated use {@link ConnPoolByRoute#ConnPoolByRoute(ClientConnectionOperator, ConnPerRoute,
int)}
      */
     @Deprecated
     public ConnPoolByRoute(final ClientConnectionOperator operator, final HttpParams params)
{

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager.java?rev=833249&amp;r1=833248&amp;r2=833249&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager.java
Fri Nov  6 00:01:35 2009
@@ -84,7 +84,6 @@
     /**
      * Creates a new thread safe connection manager.
      *
-     * @param params    the parameters for this manager.
      * @param schreg    the scheme registry.
      */
     public ThreadSafeClientConnManager(final SchemeRegistry schreg) {
@@ -138,6 +137,7 @@
      * 
      * @deprecated use {@link #createConnectionPool(ConnPerRouteBean)}
      */
+    @Deprecated
     protected AbstractConnPool createConnectionPool(final HttpParams params) {
         return new ConnPoolByRoute(connOperator, params);
     }

Modified: httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestSCMWithServer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestSCMWithServer.java?rev=833249&amp;r1=833248&amp;r2=833249&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestSCMWithServer.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestSCMWithServer.java
Fri Nov  6 00:01:35 2009
@@ -63,8 +63,6 @@
     /**
      * Helper to instantiate a &lt;code&gt;SingleClientConnManager&lt;/code&gt;.
      *
-     * @param params    the parameters, or
-     *                  &lt;code&gt;null&lt;/code&gt; to use defaults
      * @param schreg    the scheme registry, or
      *                  &lt;code&gt;null&lt;/code&gt; to use defaults
      *

Modified: httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestTSCCMNoServer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestTSCCMNoServer.java?rev=833249&amp;r1=833248&amp;r2=833249&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestTSCCMNoServer.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestTSCCMNoServer.java
Fri Nov  6 00:01:35 2009
@@ -88,8 +88,6 @@
     /**
      * Helper to instantiate a &lt;code&gt;ThreadSafeClientConnManager&lt;/code&gt;.
      *
-     * @param params    the parameters, or
-     *                  &lt;code&gt;null&lt;/code&gt; to use defaults
      * @param schreg    the scheme registry, or
      *                  &lt;code&gt;null&lt;/code&gt; to use defaults
      *

Modified: httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestTSCCMWithServer.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestTSCCMWithServer.java?rev=833249&amp;r1=833248&amp;r2=833249&amp;view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestTSCCMWithServer.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/conn/TestTSCCMWithServer.java
Fri Nov  6 00:01:35 2009
@@ -89,8 +89,6 @@
     /**
      * Helper to instantiate a &lt;code&gt;ThreadSafeClientConnManager&lt;/code&gt;.
      *
-     * @param params    the parameters, or
-     *                  &lt;code&gt;null&lt;/code&gt; to use defaults
      * @param schreg    the scheme registry, or
      *                  &lt;code&gt;null&lt;/code&gt; to use defaults
      *




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r833205 - in /httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor: AbstractIOReactor.java AbstractMultiworkerIOReactor.java</title>
<author><name>olegk@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hc-commits/200911.mbox/%3c20091105220321.106F02388A1A@eris.apache.org%3e"/>
<id>urn:uuid:%3c20091105220321-106F02388A1A@eris-apache-org%3e</id>
<updated>2009-11-05T22:03:20Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: olegk
Date: Thu Nov  5 22:03:20 2009
New Revision: 833205

URL: http://svn.apache.org/viewvc?rev=833205&amp;view=rev
Log:
Minor cleanups in I/O reactor shut down code

Modified:
    httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java
    httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractMultiworkerIOReactor.java

Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java?rev=833205&amp;r1=833204&amp;r2=833205&amp;view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java
(original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java
Thu Nov  5 22:03:20 2009
@@ -58,7 +58,7 @@
 
     private volatile IOReactorStatus status;
     
-    private final Object shutdownMutex;
+    private final Object statusMutex;
     private final long selectTimeout;
     private final boolean interestOpsQueueing;
     private final Selector selector;
@@ -103,7 +103,7 @@
         } catch (IOException ex) {
             throw new IOReactorException("Failure opening selector", ex);
         }
-        this.shutdownMutex = new Object();
+        this.statusMutex = new Object();
         this.status = IOReactorStatus.INACTIVE;
     }
 
@@ -299,15 +299,11 @@
                 
             }
             
-            // Close remaining active channels and the selector itself
-            closeActiveChannels();
-            this.status = IOReactorStatus.SHUT_DOWN;
-            
         } catch (ClosedSelectorException ex) {
         } finally {
-            synchronized (this.shutdownMutex) {
-                hardShutdown();
-                this.shutdownMutex.notifyAll();
+            hardShutdown();
+            synchronized (this.statusMutex) {
+                this.statusMutex.notifyAll();
             }
         }
     }
@@ -529,10 +525,7 @@
             for (Iterator&lt;SelectionKey&gt; it = keys.iterator(); it.hasNext(); ) {
                 SelectionKey key = it.next();
                 IOSession session = getSession(key);
-                if (!session.isClosed()) {
-                    session.close();
-                    sessionClosed(session);
-                }
+                session.close();
             }
             this.selector.close();
         } catch (IOException ignore) {
@@ -543,11 +536,13 @@
      * Attempts graceful shutdown of this I/O reactor.
      */
     public void gracefulShutdown() {
-        if (this.status != IOReactorStatus.ACTIVE) {
-            // Already shutting down
-            return;
+        synchronized (this.statusMutex) {
+            if (this.status != IOReactorStatus.ACTIVE) {
+                // Already shutting down
+                return;
+            }
+            this.status = IOReactorStatus.SHUTTING_DOWN;
         }
-        this.status = IOReactorStatus.SHUTTING_DOWN;
         this.selector.wakeup();
     }
         
@@ -555,13 +550,17 @@
      * Attempts force-shutdown of this I/O reactor.
      */
     public void hardShutdown() throws IOReactorException {
-        if (this.status == IOReactorStatus.SHUT_DOWN) {
-            // Already shut down
-            return;
+        synchronized (this.statusMutex) {
+            if (this.status == IOReactorStatus.SHUT_DOWN) {
+                // Already shut down
+                return;
+            }
+            this.status = IOReactorStatus.SHUT_DOWN;
         }
-        this.status = IOReactorStatus.SHUT_DOWN;
+        
         closeNewChannels();
         closeActiveChannels();
+        processClosedSessions();
     }
     
     /**
@@ -572,11 +571,11 @@
      * @throws InterruptedException if interrupted.
      */
     public void awaitShutdown(long timeout) throws InterruptedException {
-        synchronized (this.shutdownMutex) {
+        synchronized (this.statusMutex) {
             long deadline = System.currentTimeMillis() + timeout;
             long remaining = timeout;
             while (this.status != IOReactorStatus.SHUT_DOWN) {
-                this.shutdownMutex.wait(remaining);
+                this.statusMutex.wait(remaining);
                 if (timeout &gt; 0) {
                     remaining = deadline - System.currentTimeMillis();
                     if (remaining &lt;= 0) {

Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractMultiworkerIOReactor.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractMultiworkerIOReactor.java?rev=833205&amp;r1=833204&amp;r2=833205&amp;view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractMultiworkerIOReactor.java
(original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractMultiworkerIOReactor.java
Thu Nov  5 22:03:20 2009
@@ -336,8 +336,8 @@
             }
             throw ex;
         } finally {
+            doShutdown();
             synchronized (this.statusLock) {
-                doShutdown();
                 this.status = IOReactorStatus.SHUT_DOWN;
                 this.statusLock.notifyAll();
             }
@@ -355,10 +355,12 @@
      *   interrupted.
      */
     protected void doShutdown() throws InterruptedIOException {
-        if (this.status.compareTo(IOReactorStatus.SHUTTING_DOWN) &gt;= 0) {
-            return;
+        synchronized (this.statusLock) {
+            if (this.status.compareTo(IOReactorStatus.SHUTTING_DOWN) &gt;= 0) {
+                return;
+            }
+            this.status = IOReactorStatus.SHUTTING_DOWN;
         }
-        this.status = IOReactorStatus.SHUTTING_DOWN;
         try {
             cancelRequests();        
         } catch (IOReactorException ex) {
@@ -507,11 +509,11 @@
                 return;
             }
             this.status = IOReactorStatus.SHUTDOWN_REQUEST;
-            this.selector.wakeup();
-            try {
-                awaitShutdown(waitMs);
-            } catch (InterruptedException ignore) {
-            }
+        }
+        this.selector.wakeup();
+        try {
+            awaitShutdown(waitMs);
+        } catch (InterruptedException ignore) {
         }
     }
 




</pre>
</div>
</content>
</entry>
</feed>
